Index: /trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.asm
===================================================================
--- /trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.asm	(revision 60442)
+++ /trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.asm	(revision 60443)
@@ -856,10 +856,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, 040h, 02bh, 05ch, 081h, 0c2h, 090h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 02bh, 0e5h, 080h, 04bh, 090h
 _softrst:                                    ; 0xf0076 LB 0xc
-    db  000h, 000h, 000h, 000h, 000h, 000h, 0c9h, 02dh, 008h, 03bh, 008h, 03bh
+    db  000h, 000h, 000h, 000h, 000h, 000h, 089h, 02dh, 0c8h, 03ah, 0c8h, 03ah
 _dskacc:                                     ; 0xf0082 LB 0x2e
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 030h, 02ah, 0e5h, 02ah, 000h, 000h, 000h, 000h
-    db  09ch, 07fh, 07ch, 080h, 094h, 08fh, 03ch, 090h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0f0h, 029h, 0a5h, 02ah, 000h, 000h, 000h, 000h
+    db  025h, 07fh, 005h, 080h, 01dh, 08fh, 0c5h, 08fh, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
     db  032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h
 
@@ -1058,5 +1058,5 @@
   times 1144 db 0
 
-section _TEXT progbits vstart=0x1600 align=1 ; size=0x8ac5 class=CODE group=AUTO
+section _TEXT progbits vstart=0x1600 align=1 ; size=0x8a45 class=CODE group=AUTO
 rom_scan_:                                   ; 0xf1600 LB 0x50
     push bp                                   ; 55
@@ -1308,5 +1308,5 @@
     int 010h                                  ; cd 10
     jmp short 017b7h                          ; eb 03
-    call 07b63h                               ; e8 ac 63
+    call 07aeah                               ; e8 33 63
     mov sp, bp                                ; 89 ec
     pop bp                                    ; 5d
@@ -1453,5 +1453,5 @@
     mov bx, strict word 0000ah                ; bb 0a 00
     xor cx, cx                                ; 31 c9
-    call 09fb0h                               ; e8 e3 86
+    call 09f30h                               ; e8 63 86
     mov word [bp-008h], ax                    ; 89 46 f8
     mov cx, dx                                ; 89 d1
@@ -1683,5 +1683,5 @@
     mov dx, word [bp-026h]                    ; 8b 56 da
     mov si, word [bp-01eh]                    ; 8b 76 e2
-    call 0a02ah                               ; e8 2d 85
+    call 09faah                               ; e8 ad 84
     mov ax, dx                                ; 89 d0
     xor ah, dh                                ; 30 f4
@@ -2122,5 +2122,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00018h                ; be 18 00
-    call 0a02ah                               ; e8 da 80
+    call 09faah                               ; e8 5a 80
     xor dh, dh                                ; 30 f6
     mov word [bp-014h], dx                    ; 89 56 ec
@@ -2132,5 +2132,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00020h                ; be 20 00
-    call 0a02ah                               ; e8 ba 80
+    call 09faah                               ; e8 3a 80
     mov bx, dx                                ; 89 d3
     mov ax, word [bp-01ch]                    ; 8b 46 e4
@@ -2163,5 +2163,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00008h                ; be 08 00
-    call 0a02ah                               ; e8 69 80
+    call 09faah                               ; e8 e9 7f
     mov word [bp-012h], dx                    ; 89 56 ee
     mov bx, word [bp-016h]                    ; 8b 5e ea
@@ -2172,5 +2172,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00018h                ; be 18 00
-    call 0a02ah                               ; e8 4b 80
+    call 09faah                               ; e8 cb 7f
     mov ah, dl                                ; 88 d4
     and ah, 00fh                              ; 80 e4 0f
@@ -2307,5 +2307,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-_ata_detect:                                 ; 0xf2118 LB 0x68e
+_ata_detect:                                 ; 0xf2118 LB 0x64e
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -2316,9 +2316,9 @@
     mov ax, strict word 00040h                ; b8 40 00
     call 0166ch                               ; e8 42 f5
-    mov word [bp-01ah], ax                    ; 89 46 e6
+    mov word [bp-026h], ax                    ; 89 46 da
     mov di, 00122h                            ; bf 22 01
     mov es, ax                                ; 8e c0
-    mov word [bp-01ch], di                    ; 89 7e e4
-    mov word [bp-01eh], ax                    ; 89 46 e2
+    mov word [bp-022h], di                    ; 89 7e de
+    mov word [bp-020h], ax                    ; 89 46 e0
     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
@@ -2330,56 +2330,55 @@
     mov byte [es:di+0020bh], 00fh             ; 26 c6 85 0b 02 0f
     xor al, al                                ; 30 c0
-    mov byte [bp-00ch], al                    ; 88 46 f4
+    mov byte [bp-008h], al                    ; 88 46 f8
     mov byte [bp-012h], al                    ; 88 46 ee
-    mov byte [bp-00eh], al                    ; 88 46 f2
-    jmp near 02726h                           ; e9 ac 05
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    jmp near 026ech                           ; e9 72 05
     mov ax, 000a0h                            ; b8 a0 00
     lea dx, [si+006h]                         ; 8d 54 06
     out DX, AL                                ; ee
-    lea bx, [si+002h]                         ; 8d 5c 02
+    lea di, [si+002h]                         ; 8d 7c 02
+    mov AL, strict byte 055h                  ; b0 55
+    mov dx, di                                ; 89 fa
+    out DX, AL                                ; ee
+    lea bx, [si+003h]                         ; 8d 5c 03
+    mov AL, strict byte 0aah                  ; b0 aa
+    mov dx, bx                                ; 89 da
+    out DX, AL                                ; ee
+    mov dx, di                                ; 89 fa
+    out DX, AL                                ; ee
     mov AL, strict byte 055h                  ; b0 55
     mov dx, bx                                ; 89 da
     out DX, AL                                ; ee
-    lea di, [si+003h]                         ; 8d 7c 03
+    mov dx, di                                ; 89 fa
+    out DX, AL                                ; ee
     mov AL, strict byte 0aah                  ; b0 aa
+    mov dx, bx                                ; 89 da
+    out DX, AL                                ; ee
     mov dx, di                                ; 89 fa
-    out DX, AL                                ; ee
-    mov dx, bx                                ; 89 da
-    out DX, AL                                ; ee
-    mov AL, strict byte 055h                  ; b0 55
-    mov dx, di                                ; 89 fa
-    out DX, AL                                ; ee
-    mov dx, bx                                ; 89 da
-    out DX, AL                                ; ee
-    mov AL, strict byte 0aah                  ; b0 aa
-    mov dx, di                                ; 89 fa
-    out DX, AL                                ; ee
+    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
-    mov bx, ax                                ; 89 c3
-    mov dx, di                                ; 89 fa
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    cmp bl, 055h                              ; 80 fb 55
-    jne short 021fch                          ; 75 4a
+    cmp cl, 055h                              ; 80 f9 55
+    jne short 021f9h                          ; 75 47
     cmp AL, strict byte 0aah                  ; 3c aa
-    jne short 021fch                          ; 75 46
-    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    jne short 021f9h                          ; 75 43
+    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-01eh]                         ; 8e 46 e2
-    mov bx, word [bp-01ch]                    ; 8b 5e e4
+    les bx, [bp-022h]                         ; c4 5e de
     add bx, ax                                ; 01 c3
     mov byte [es:bx+022h], 001h               ; 26 c6 47 22 01
-    mov al, byte [bp-00eh]                    ; 8a 46 f2
-    xor ah, ah                                ; 30 e4
-    call 01d85h                               ; e8 b2 fb
-    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
-    je short 021deh                           ; 74 05
+    mov 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
     mov ax, 000b0h                            ; b8 b0 00
-    jmp short 021e1h                          ; eb 03
+    jmp short 021deh                          ; eb 03
     mov ax, 000a0h                            ; b8 a0 00
     lea dx, [si+006h]                         ; 8d 54 06
@@ -2395,15 +2394,9 @@
     ; sub ah, ah                                ; 2a e4
     cmp bl, 001h                              ; 80 fb 01
-    jne short 02238h                          ; 75 40
+    jne short 02232h                          ; 75 3d
     cmp al, bl                                ; 38 d8
-    je short 021feh                           ; 74 02
-    jmp short 02238h                          ; eb 3a
+    je short 021fbh                           ; 74 02
+    jmp short 02232h                          ; eb 37
     lea dx, [si+004h]                         ; 8d 54 04
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    mov cx, ax                                ; 89 c1
-    mov ch, al                                ; 88 c5
-    lea dx, [si+005h]                         ; 8d 54 05
     in AL, DX                                 ; ec
     db  02ah, 0e4h
@@ -2411,133 +2404,130 @@
     mov bx, ax                                ; 89 c3
     mov byte [bp-006h], al                    ; 88 46 fa
+    lea dx, [si+005h]                         ; 8d 54 05
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov cx, ax                                ; 89 c1
+    mov bh, al                                ; 88 c7
     lea dx, [si+007h]                         ; 8d 54 07
     in AL, DX                                 ; ec
     db  02ah, 0e4h
     ; sub ah, ah                                ; 2a e4
-    cmp cl, 014h                              ; 80 f9 14
-    jne short 0223ah                          ; 75 1c
-    cmp bl, 0ebh                              ; 80 fb eb
-    jne short 0223ah                          ; 75 17
-    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    cmp bl, 014h                              ; 80 fb 14
+    jne short 02234h                          ; 75 19
+    cmp cl, 0ebh                              ; 80 f9 eb
+    jne short 02234h                          ; 75 14
+    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-01eh]                         ; 8e 46 e2
-    mov bx, word [bp-01ch]                    ; 8b 5e e4
+    les bx, [bp-022h]                         ; c4 5e de
     add bx, ax                                ; 01 c3
     mov byte [es:bx+022h], 003h               ; 26 c6 47 22 03
-    jmp short 0227eh                          ; eb 44
-    test ch, ch                               ; 84 ed
-    jne short 0225fh                          ; 75 21
+    jmp short 02273h                          ; eb 3f
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    jne short 0225fh                          ; 75 1b
+    jne short 02256h                          ; 75 1c
+    test bh, bh                               ; 84 ff
+    jne short 02256h                          ; 75 18
     test al, al                               ; 84 c0
-    je short 0225fh                           ; 74 17
-    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    je short 02256h                           ; 74 14
+    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-01eh]                         ; 8e 46 e2
-    mov bx, word [bp-01ch]                    ; 8b 5e e4
+    les bx, [bp-022h]                         ; c4 5e de
     add bx, ax                                ; 01 c3
     mov byte [es:bx+022h], 002h               ; 26 c6 47 22 02
-    jmp short 0227eh                          ; eb 1f
-    cmp ch, 0ffh                              ; 80 fd ff
-    jne short 0227eh                          ; 75 1a
-    cmp ch, byte [bp-006h]                    ; 3a 6e fa
-    jne short 0227eh                          ; 75 15
-    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    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
+    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-01eh]                         ; 8e 46 e2
-    mov bx, word [bp-01ch]                    ; 8b 5e e4
+    les bx, [bp-022h]                         ; c4 5e de
     add bx, ax                                ; 01 c3
     mov byte [es:bx+022h], 000h               ; 26 c6 47 22 00
-    mov dx, word [bp-02ah]                    ; 8b 56 d6
+    mov dx, word [bp-01ah]                    ; 8b 56 e6
     add dx, strict byte 00006h                ; 83 c2 06
     mov AL, strict byte 008h                  ; b0 08
     out DX, AL                                ; ee
-    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    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-01eh]                         ; 8e 46 e2
-    mov si, word [bp-01ch]                    ; 8b 76 e4
+    les si, [bp-022h]                         ; c4 76 de
     add si, ax                                ; 01 c6
     mov al, byte [es:si+022h]                 ; 26 8a 44 22
-    mov byte [bp-008h], al                    ; 88 46 f8
+    mov byte [bp-00ch], al                    ; 88 46 f4
     cmp AL, strict byte 002h                  ; 3c 02
-    jne short 022fdh                          ; 75 5b
+    jne short 022ddh                          ; 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-01ch]                    ; 8b 5e e4
+    mov bx, word [bp-022h]                    ; 8b 5e de
     mov word [es:bx+008h], dx                 ; 26 89 57 08
     mov [es:bx+00ah], ss                      ; 26 8c 57 0a
-    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
     mov byte [es:bx+00ch], al                 ; 26 88 47 0c
     mov cx, strict word 00001h                ; b9 01 00
     mov bx, 000ech                            ; bb ec 00
-    mov ax, word [bp-01ch]                    ; 8b 46 e4
+    mov ax, word [bp-022h]                    ; 8b 46 de
     mov dx, es                                ; 8c c2
-    call 01e63h                               ; e8 93 fb
+    call 01e63h                               ; e8 a1 fb
     test ax, ax                               ; 85 c0
-    je short 022dfh                           ; 74 0b
+    je short 022d1h                           ; 74 0b
     push 00124h                               ; 68 24 01
     push strict byte 00007h                   ; 6a 07
-    call 01966h                               ; e8 8a f6
+    call 01966h                               ; e8 98 f6
     add sp, strict byte 00004h                ; 83 c4 04
     test byte [bp-00264h], 080h               ; f6 86 9c fd 80
-    je short 022ebh                           ; 74 05
+    je short 022e0h                           ; 74 08
     mov ax, strict word 00001h                ; b8 01 00
-    jmp short 022edh                          ; eb 02
+    jmp short 022e2h                          ; eb 05
+    jmp near 024bfh                           ; e9 df 01
     xor ax, ax                                ; 31 c0
     mov byte [bp-016h], al                    ; 88 46 ea
-    mov al, byte [bp-00204h]                  ; 8a 86 fc fd
-    test al, al                               ; 84 c0
-    je short 02300h                           ; 74 08
-    mov ax, strict word 00001h                ; b8 01 00
-    jmp short 02302h                          ; eb 05
-    jmp near 024deh                           ; e9 de 01
-    xor ah, ah                                ; 30 e4
-    mov byte [bp-018h], al                    ; 88 46 e8
+    mov byte [bp-018h], 000h                  ; c6 46 e8 00
     mov word [bp-034h], 00200h                ; c7 46 cc 00 02
     mov ax, word [bp-00262h]                  ; 8b 86 9e fd
-    mov word [bp-024h], ax                    ; 89 46 dc
+    mov word [bp-01ch], ax                    ; 89 46 e4
     mov ax, word [bp-0025eh]                  ; 8b 86 a2 fd
-    mov word [bp-026h], ax                    ; 89 46 da
+    mov word [bp-030h], ax                    ; 89 46 d0
     mov ax, word [bp-00258h]                  ; 8b 86 a8 fd
-    mov word [bp-022h], ax                    ; 89 46 de
+    mov word [bp-02ah], ax                    ; 89 46 d6
     mov si, word [bp-001ech]                  ; 8b b6 14 fe
     mov ax, word [bp-001eah]                  ; 8b 86 16 fe
-    mov word [bp-020h], ax                    ; 89 46 e0
+    mov word [bp-028h], ax                    ; 89 46 d8
     xor ax, ax                                ; 31 c0
-    mov word [bp-030h], ax                    ; 89 46 d0
+    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
+    cmp si, strict byte 0ffffh                ; 83 fe ff
+    jne short 0233bh                          ; 75 19
+    mov ax, word [bp-00196h]                  ; 8b 86 6a fe
+    mov word [bp-02ch], ax                    ; 89 46 d4
+    mov ax, word [bp-00198h]                  ; 8b 86 68 fe
+    mov word [bp-01eh], ax                    ; 89 46 e2
+    mov ax, word [bp-0019ah]                  ; 8b 86 66 fe
     mov word [bp-028h], ax                    ; 89 46 d8
-    cmp word [bp-020h], 00fffh                ; 81 7e e0 ff 0f
-    jne short 02357h                          ; 75 1e
-    cmp si, strict byte 0ffffh                ; 83 fe ff
-    jne short 02357h                          ; 75 19
-    mov ax, word [bp-00196h]                  ; 8b 86 6a fe
-    mov word [bp-028h], ax                    ; 89 46 d8
-    mov ax, word [bp-00198h]                  ; 8b 86 68 fe
-    mov word [bp-030h], ax                    ; 89 46 d0
-    mov ax, word [bp-0019ah]                  ; 8b 86 66 fe
-    mov word [bp-020h], ax                    ; 89 46 e0
     mov si, word [bp-0019ch]                  ; 8b b6 64 fe
-    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
     cmp AL, strict byte 001h                  ; 3c 01
-    jc short 0236ah                           ; 72 0c
-    jbe short 02372h                          ; 76 12
+    jc short 0234eh                           ; 72 0c
+    jbe short 02356h                          ; 76 12
     cmp AL, strict byte 003h                  ; 3c 03
-    je short 0237ah                           ; 74 16
+    je short 0235eh                           ; 74 16
     cmp AL, strict byte 002h                  ; 3c 02
-    je short 02376h                           ; 74 0e
-    jmp short 023b4h                          ; eb 4a
+    je short 0235ah                           ; 74 0e
+    jmp short 02398h                          ; eb 4a
     test al, al                               ; 84 c0
-    jne short 023b4h                          ; 75 46
+    jne short 02398h                          ; 75 46
     mov BL, strict byte 01eh                  ; b3 1e
-    jmp short 0237ch                          ; eb 0a
+    jmp short 02360h                          ; eb 0a
     mov BL, strict byte 026h                  ; b3 26
-    jmp short 0237ch                          ; eb 06
+    jmp short 02360h                          ; eb 06
     mov BL, strict byte 067h                  ; b3 67
-    jmp short 0237ch                          ; eb 02
+    jmp short 02360h                          ; eb 02
     mov BL, strict byte 070h                  ; b3 70
     mov al, bl                                ; 88 d8
@@ -2545,10 +2535,10 @@
     ; inc al                                    ; fe c0
     xor ah, ah                                ; 30 e4
-    call 016ach                               ; e8 27 f3
+    call 016ach                               ; e8 43 f3
     xor ah, ah                                ; 30 e4
     mov dx, ax                                ; 89 c2
     sal dx, 008h                              ; c1 e2 08
     mov al, bl                                ; 88 d8
-    call 016ach                               ; e8 1b f3
+    call 016ach                               ; e8 37 f3
     xor ah, ah                                ; 30 e4
     add ax, dx                                ; 01 d0
@@ -2557,24 +2547,24 @@
     add AL, strict byte 002h                  ; 04 02
     xor ah, ah                                ; 30 e4
-    call 016ach                               ; e8 0b f3
+    call 016ach                               ; e8 27 f3
     xor ah, ah                                ; 30 e4
     mov word [bp-03ah], ax                    ; 89 46 c6
     mov al, bl                                ; 88 d8
     add AL, strict byte 007h                  ; 04 07
-    call 016ach                               ; e8 ff f2
+    call 016ach                               ; e8 1b f3
     xor ah, ah                                ; 30 e4
     mov word [bp-036h], ax                    ; 89 46 ca
-    jmp short 023c6h                          ; eb 12
+    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
-    push word [bp-030h]                       ; ff 76 d0
-    push word [bp-020h]                       ; ff 76 e0
     push si                                   ; 56
     mov dx, ss                                ; 8c d2
     lea ax, [bp-03ah]                         ; 8d 46 c6
-    call 059d2h                               ; e8 0c 36
+    call 05977h                               ; e8 cd 35
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 52 f5
+    call 01923h                               ; e8 6e f5
     mov ax, word [bp-036h]                    ; 8b 46 ca
     push ax                                   ; 50
@@ -2583,8 +2573,8 @@
     mov ax, word [bp-038h]                    ; 8b 46 c8
     push ax                                   ; 50
-    push word [bp-022h]                       ; ff 76 de
-    push word [bp-026h]                       ; ff 76 da
-    push word [bp-024h]                       ; ff 76 dc
-    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    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
     xor ah, ah                                ; 30 e4
     push ax                                   ; 50
@@ -2593,11 +2583,10 @@
     push 0014dh                               ; 68 4d 01
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 6e f5
+    call 01966h                               ; e8 8a f5
     add sp, strict byte 00014h                ; 83 c4 14
-    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    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-01eh]                         ; 8e 46 e2
-    mov di, word [bp-01ch]                    ; 8b 7e e4
+    les di, [bp-022h]                         ; c4 7e de
     add di, ax                                ; 01 c7
     mov byte [es:di+023h], 0ffh               ; 26 c6 45 23 ff
@@ -2608,15 +2597,15 @@
     mov ax, word [bp-034h]                    ; 8b 46 cc
     mov word [es:di+028h], ax                 ; 26 89 45 28
-    mov ax, word [bp-026h]                    ; 8b 46 da
+    mov ax, word [bp-030h]                    ; 8b 46 d0
     mov word [es:di+030h], ax                 ; 26 89 45 30
-    mov ax, word [bp-024h]                    ; 8b 46 dc
+    mov ax, word [bp-01ch]                    ; 8b 46 e4
     mov word [es:di+032h], ax                 ; 26 89 45 32
-    mov ax, word [bp-022h]                    ; 8b 46 de
+    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 word [es:di+03ah], ax                 ; 26 89 45 3a
     mov ax, word [bp-028h]                    ; 8b 46 d8
-    mov word [es:di+03ch], ax                 ; 26 89 45 3c
-    mov ax, word [bp-030h]                    ; 8b 46 d0
-    mov word [es:di+03ah], ax                 ; 26 89 45 3a
-    mov ax, word [bp-020h]                    ; 8b 46 e0
     mov word [es:di+038h], ax                 ; 26 89 45 38
     mov word [es:di+036h], si                 ; 26 89 75 36
@@ -2630,13 +2619,13 @@
     movsw                                     ; a5
     pop DS                                    ; 1f
-    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
     cmp AL, strict byte 002h                  ; 3c 02
-    jnc short 024c8h                          ; 73 61
+    jnc short 024a9h                          ; 73 61
     test al, al                               ; 84 c0
-    jne short 02470h                          ; 75 05
+    jne short 02451h                          ; 75 05
     mov di, strict word 0003dh                ; bf 3d 00
-    jmp short 02473h                          ; eb 03
+    jmp short 02454h                          ; eb 03
     mov di, strict word 0004dh                ; bf 4d 00
-    mov dx, word [bp-01ah]                    ; 8b 56 e6
+    mov dx, word [bp-026h]                    ; 8b 56 da
     mov ax, word [bp-038h]                    ; 8b 46 c8
     mov es, dx                                ; 8e c2
@@ -2645,17 +2634,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-022h]                    ; 8a 46 de
+    mov al, byte [bp-02ah]                    ; 8a 46 d6
     mov byte [es:di+004h], al                 ; 26 88 45 04
-    mov ax, word [bp-024h]                    ; 8b 46 dc
+    mov ax, word [bp-01ch]                    ; 8b 46 e4
     mov word [es:di+009h], ax                 ; 26 89 45 09
-    mov al, byte [bp-026h]                    ; 8a 46 da
+    mov al, byte [bp-030h]                    ; 8a 46 d0
     mov byte [es:di+00bh], al                 ; 26 88 45 0b
-    mov al, byte [bp-022h]                    ; 8a 46 de
+    mov al, byte [bp-02ah]                    ; 8a 46 d6
     mov byte [es:di+00eh], al                 ; 26 88 45 0e
     xor al, al                                ; 30 c0
     xor ah, ah                                ; 30 e4
-    jmp short 024b1h                          ; eb 05
+    jmp short 02492h                          ; eb 05
     cmp ah, 00fh                              ; 80 fc 0f
-    jnc short 024c0h                          ; 73 0f
+    jnc short 024a1h                          ; 73 0f
     mov bl, ah                                ; 88 e3
     xor bh, bh                                ; 30 ff
@@ -2665,5 +2654,5 @@
     db  0feh, 0c4h
     ; inc ah                                    ; fe c4
-    jmp short 024ach                          ; eb ec
+    jmp short 0248dh                          ; eb ec
     neg al                                    ; f6 d8
     mov es, dx                                ; 8e c2
@@ -2671,76 +2660,67 @@
     mov bl, byte [bp-012h]                    ; 8a 5e ee
     xor bh, bh                                ; 30 ff
-    mov es, [bp-01eh]                         ; 8e 46 e2
-    add bx, word [bp-01ch]                    ; 03 5e e4
-    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    mov es, [bp-020h]                         ; 8e 46 e0
+    add bx, word [bp-022h]                    ; 03 5e de
+    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-008h], 003h                  ; 80 7e f8 03
-    jne short 02554h                          ; 75 70
-    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    cmp byte [bp-00ch], 003h                  ; 80 7e f4 03
+    jne short 02522h                          ; 75 5d
+    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-01eh]                         ; 8e 46 e2
-    mov bx, word [bp-01ch]                    ; 8b 5e e4
+    les bx, [bp-022h]                         ; c4 5e de
     add bx, ax                                ; 01 c3
     mov byte [es:bx+023h], 005h               ; 26 c6 47 23 05
     mov byte [es:bx+026h], 000h               ; 26 c6 47 26 00
     lea dx, [bp-00264h]                       ; 8d 96 9c fd
-    mov bx, word [bp-01ch]                    ; 8b 5e e4
+    mov bx, word [bp-022h]                    ; 8b 5e de
     mov word [es:bx+008h], dx                 ; 26 89 57 08
     mov [es:bx+00ah], ss                      ; 26 8c 57 0a
-    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
     mov byte [es:bx+00ch], al                 ; 26 88 47 0c
     mov cx, strict word 00001h                ; b9 01 00
     mov bx, 000a1h                            ; bb a1 00
-    mov ax, word [bp-01ch]                    ; 8b 46 e4
+    mov ax, word [bp-022h]                    ; 8b 46 de
     mov dx, es                                ; 8c c2
-    call 01e63h                               ; e8 41 f9
+    call 01e63h                               ; e8 63 f9
     test ax, ax                               ; 85 c0
-    je short 02531h                           ; 74 0b
+    je short 0250fh                           ; 74 0b
     push 00174h                               ; 68 74 01
     push strict byte 00007h                   ; 6a 07
-    call 01966h                               ; e8 38 f4
+    call 01966h                               ; e8 5a f4
     add sp, strict byte 00004h                ; 83 c4 04
-    mov bh, byte [bp-00263h]                  ; 8a be 9d fd
-    and bh, 01fh                              ; 80 e7 1f
+    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 02544h                           ; 74 05
+    je short 02524h                           ; 74 07
     mov ax, strict word 00001h                ; b8 01 00
-    jmp short 02546h                          ; eb 02
+    jmp short 02526h                          ; eb 04
+    jmp short 02559h                          ; eb 35
     xor ax, ax                                ; 31 c0
-    mov bl, al                                ; 88 c3
-    cmp byte [bp-00204h], 000h                ; 80 be fc fd 00
-    je short 02556h                           ; 74 07
-    mov dx, strict word 00001h                ; ba 01 00
-    jmp short 02558h                          ; eb 04
-    jmp short 0258dh                          ; eb 37
-    xor dx, dx                                ; 31 d2
-    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    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
+    xor bh, bh                                ; 30 ff
+    add bx, word [bp-022h]                    ; 03 5e de
+    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
+    cmp AL, strict byte 003h                  ; 3c 03
+    je short 0258dh                           ; 74 2d
+    cmp AL, strict byte 002h                  ; 3c 02
+    jne short 025bdh                          ; 75 59
+    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-01eh]                         ; 8e 46 e2
-    mov di, word [bp-01ch]                    ; 8b 7e e4
-    add di, ax                                ; 01 c7
-    mov byte [es:di+023h], bh                 ; 26 88 7d 23
-    mov byte [es:di+024h], bl                 ; 26 88 5d 24
-    mov byte [es:di+026h], dl                 ; 26 88 55 26
-    mov word [es:di+028h], 00800h             ; 26 c7 45 28 00 08
-    mov bl, byte [bp-00ch]                    ; 8a 5e f4
-    xor bh, bh                                ; 30 ff
-    add bx, word [bp-01ch]                    ; 03 5e e4
-    mov al, byte [bp-00eh]                    ; 8a 46 f2
-    mov byte [es:bx+001f4h], al               ; 26 88 87 f4 01
-    inc byte [bp-00ch]                        ; fe 46 f4
-    mov al, byte [bp-008h]                    ; 8a 46 f8
-    cmp AL, strict byte 003h                  ; 3c 03
-    je short 025c4h                           ; 74 30
-    cmp AL, strict byte 002h                  ; 3c 02
-    jne short 025f4h                          ; 75 5c
-    mov al, byte [bp-00eh]                    ; 8a 46 f2
-    xor ah, ah                                ; 30 e4
-    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
-    mov es, [bp-01eh]                         ; 8e 46 e2
-    mov di, word [bp-01ch]                    ; 8b 7e e4
+    les di, [bp-022h]                         ; c4 7e de
     add di, ax                                ; 01 c7
     mov ax, word [es:di+03ch]                 ; 26 8b 45 3c
@@ -2749,7 +2729,7 @@
     mov dx, word [es:di+036h]                 ; 26 8b 55 36
     mov si, strict word 0000bh                ; be 0b 00
-    call 0a02ah                               ; e8 6c 7a
-    mov word [bp-02eh], dx                    ; 89 56 d2
-    mov word [bp-02ch], cx                    ; 89 4e d4
+    call 09faah                               ; e8 23 7a
+    mov word [bp-024h], dx                    ; 89 56 dc
+    mov word [bp-032h], cx                    ; 89 4e ce
     mov al, byte [bp-001c3h]                  ; 8a 86 3d fe
     xor ah, ah                                ; 30 e4
@@ -2758,19 +2738,19 @@
     mov al, byte [bp-001c4h]                  ; 8a 86 3c fe
     or dx, ax                                 ; 09 c2
-    mov byte [bp-010h], 00fh                  ; c6 46 f0 0f
-    jmp short 025e4h                          ; eb 09
-    dec byte [bp-010h]                        ; fe 4e f0
-    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
-    jbe short 025f0h                          ; 76 0c
-    mov cl, byte [bp-010h]                    ; 8a 4e f0
+    mov 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 025dbh                           ; 74 eb
+    je short 025a4h                           ; 74 eb
     xor di, di                                ; 31 ff
-    jmp short 025fbh                          ; eb 07
-    jmp short 0262ah                          ; eb 34
+    jmp short 025c4h                          ; eb 07
+    jmp short 025f3h                          ; eb 34
     cmp di, strict byte 00014h                ; 83 ff 14
-    jnl short 02610h                          ; 7d 15
+    jnl short 025d9h                          ; 7d 15
     mov si, di                                ; 89 fe
     add si, di                                ; 01 fe
@@ -2780,27 +2760,27 @@
     mov byte [bp+si-063h], al                 ; 88 42 9d
     inc di                                    ; 47
-    jmp short 025f6h                          ; eb e6
+    jmp short 025bfh                          ; eb e6
     mov byte [bp-03ch], 000h                  ; c6 46 c4 00
     mov di, strict word 00027h                ; bf 27 00
-    jmp short 0261eh                          ; eb 05
+    jmp short 025e7h                          ; eb 05
     dec di                                    ; 4f
     test di, di                               ; 85 ff
-    jle short 0262ah                          ; 7e 0c
+    jle short 025f3h                          ; 7e 0c
     cmp byte [bp+di-064h], 020h               ; 80 7b 9c 20
-    jne short 0262ah                          ; 75 06
+    jne short 025f3h                          ; 75 06
     mov byte [bp+di-064h], 000h               ; c6 43 9c 00
-    jmp short 02619h                          ; eb ef
-    mov al, byte [bp-008h]                    ; 8a 46 f8
+    jmp short 025e2h                          ; eb ef
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
     cmp AL, strict byte 003h                  ; 3c 03
-    je short 0268eh                           ; 74 5d
+    je short 02657h                           ; 74 5d
     cmp AL, strict byte 002h                  ; 3c 02
-    je short 0263ch                           ; 74 07
+    je short 02605h                           ; 74 07
     cmp AL, strict byte 001h                  ; 3c 01
-    je short 02699h                           ; 74 60
-    jmp near 0271dh                           ; e9 e1 00
-    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
-    je short 02647h                           ; 74 05
+    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
     mov ax, 0019fh                            ; b8 9f 01
-    jmp short 0264ah                          ; eb 03
+    jmp short 02613h                          ; eb 03
     mov ax, 001a6h                            ; b8 a6 01
     push ax                                   ; 50
@@ -2810,5 +2790,5 @@
     push 001adh                               ; 68 ad 01
     push strict byte 00002h                   ; 6a 02
-    call 01966h                               ; e8 0d f3
+    call 01966h                               ; e8 44 f3
     add sp, strict byte 00008h                ; 83 c4 08
     xor di, di                                ; 31 ff
@@ -2817,25 +2797,25 @@
     inc di                                    ; 47
     test ax, ax                               ; 85 c0
-    je short 02676h                           ; 74 0e
+    je short 0263fh                           ; 74 0e
     push ax                                   ; 50
     push 001b8h                               ; 68 b8 01
     push strict byte 00002h                   ; 6a 02
-    call 01966h                               ; e8 f5 f2
+    call 01966h                               ; e8 2c f3
     add sp, strict byte 00006h                ; 83 c4 06
-    jmp short 0265eh                          ; eb e8
-    push word [bp-02ch]                       ; ff 76 d4
-    push word [bp-02eh]                       ; ff 76 d2
-    mov al, byte [bp-010h]                    ; 8a 46 f0
+    jmp short 02627h                          ; 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 ax                                   ; 50
     push 001bbh                               ; 68 bb 01
     push strict byte 00002h                   ; 6a 02
-    call 01966h                               ; e8 de f2
+    call 01966h                               ; e8 15 f3
     add sp, strict byte 0000ah                ; 83 c4 0a
-    jmp near 0271dh                           ; e9 8f 00
-    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
-    je short 0269bh                           ; 74 07
+    jmp near 026e3h                           ; e9 8c 00
+    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
+    je short 02664h                           ; 74 07
     mov ax, 0019fh                            ; b8 9f 01
-    jmp short 0269eh                          ; eb 05
-    jmp short 026fdh                          ; eb 62
+    jmp short 02667h                          ; eb 05
+    jmp short 026c3h                          ; eb 5f
     mov ax, 001a6h                            ; b8 a6 01
     push ax                                   ; 50
@@ -2845,5 +2825,5 @@
     push 001adh                               ; 68 ad 01
     push strict byte 00002h                   ; 6a 02
-    call 01966h                               ; e8 b9 f2
+    call 01966h                               ; e8 f0 f2
     add sp, strict byte 00008h                ; 83 c4 08
     xor di, di                                ; 31 ff
@@ -2852,35 +2832,34 @@
     inc di                                    ; 47
     test ax, ax                               ; 85 c0
-    je short 026cah                           ; 74 0e
+    je short 02693h                           ; 74 0e
     push ax                                   ; 50
     push 001b8h                               ; 68 b8 01
     push strict byte 00002h                   ; 6a 02
-    call 01966h                               ; e8 a1 f2
+    call 01966h                               ; e8 d8 f2
     add sp, strict byte 00006h                ; 83 c4 06
-    jmp short 026b2h                          ; eb e8
-    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    jmp short 0267bh                          ; eb e8
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
     imul ax, ax, strict byte 0001ch           ; 6b c0 1c
-    mov es, [bp-01eh]                         ; 8e 46 e2
-    mov bx, word [bp-01ch]                    ; 8b 5e e4
+    les bx, [bp-022h]                         ; c4 5e de
     add bx, ax                                ; 01 c3
     cmp byte [es:bx+023h], 005h               ; 26 80 7f 23 05
-    jne short 026eah                          ; 75 0b
-    mov al, byte [bp-010h]                    ; 8a 46 f0
+    jne short 026b0h                          ; 75 0b
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
     xor ah, ah                                ; 30 e4
     push ax                                   ; 50
     push 001dbh                               ; 68 db 01
-    jmp short 026f3h                          ; eb 09
-    mov al, byte [bp-010h]                    ; 8a 46 f0
+    jmp short 026b9h                          ; eb 09
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
     xor ah, ah                                ; 30 e4
     push ax                                   ; 50
     push 001f5h                               ; 68 f5 01
     push strict byte 00002h                   ; 6a 02
-    call 01966h                               ; e8 6e f2
+    call 01966h                               ; e8 a8 f2
     add sp, strict byte 00006h                ; 83 c4 06
-    jmp short 0271dh                          ; eb 20
-    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
-    je short 02708h                           ; 74 05
+    jmp short 026e3h                          ; eb 20
+    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
+    je short 026ceh                           ; 74 05
     mov ax, 0019fh                            ; b8 9f 01
-    jmp short 0270bh                          ; eb 03
+    jmp short 026d1h                          ; eb 03
     mov ax, 001a6h                            ; b8 a6 01
     push ax                                   ; 50
@@ -2890,10 +2869,10 @@
     push 00207h                               ; 68 07 02
     push strict byte 00002h                   ; 6a 02
-    call 01966h                               ; e8 4c f2
+    call 01966h                               ; e8 86 f2
     add sp, strict byte 00008h                ; 83 c4 08
-    inc byte [bp-00eh]                        ; fe 46 f2
-    cmp byte [bp-00eh], 008h                  ; 80 7e f2 08
-    jnc short 0277bh                          ; 73 55
-    mov bl, byte [bp-00eh]                    ; 8a 5e f2
+    inc byte [bp-00ah]                        ; fe 46 f6
+    cmp byte [bp-00ah], 008h                  ; 80 7e f6 08
+    jnc short 0273eh                          ; 73 52
+    mov bl, byte [bp-00ah]                    ; 8a 5e f6
     xor bh, bh                                ; 30 ff
     mov ax, bx                                ; 89 d8
@@ -2908,30 +2887,28 @@
     mov bx, strict word 00002h                ; bb 02 00
     idiv bx                                   ; f7 fb
-    mov word [bp-032h], dx                    ; 89 56 ce
-    mov al, byte [bp-032h]                    ; 8a 46 ce
-    mov byte [bp-00ah], al                    ; 88 46 f6
+    mov word [bp-02eh], dx                    ; 89 56 d2
+    mov al, byte [bp-02eh]                    ; 8a 46 d2
+    mov byte [bp-010h], al                    ; 88 46 f0
     mov al, cl                                ; 88 c8
     xor ah, ah                                ; 30 e4
     imul ax, ax, strict byte 00006h           ; 6b c0 06
-    mov es, [bp-01eh]                         ; 8e 46 e2
-    mov bx, word [bp-01ch]                    ; 8b 5e e4
+    les bx, [bp-022h]                         ; c4 5e de
     add bx, ax                                ; 01 c3
     mov si, word [es:bx+00206h]               ; 26 8b b7 06 02
     mov ax, word [es:bx+00208h]               ; 26 8b 87 08 02
-    mov word [bp-02ah], ax                    ; 89 46 d6
+    mov word [bp-01ah], ax                    ; 89 46 e6
     mov dx, ax                                ; 89 c2
     add dx, strict byte 00006h                ; 83 c2 06
     mov AL, strict byte 00ah                  ; b0 0a
     out DX, AL                                ; ee
-    cmp byte [bp-032h], 000h                  ; 80 7e ce 00
-    jne short 02775h                          ; 75 03
-    jmp near 0217ah                           ; e9 05 fa
+    cmp byte [bp-02eh], 000h                  ; 80 7e d2 00
+    jne short 02738h                          ; 75 03
+    jmp near 0217ah                           ; e9 42 fa
     mov ax, 000b0h                            ; b8 b0 00
-    jmp near 0217dh                           ; e9 02 fa
+    jmp near 0217dh                           ; e9 3f fa
     mov al, byte [bp-012h]                    ; 8a 46 ee
-    mov es, [bp-01eh]                         ; 8e 46 e2
-    mov bx, word [bp-01ch]                    ; 8b 5e e4
+    les bx, [bp-022h]                         ; c4 5e de
     mov byte [es:bx+001e2h], al               ; 26 88 87 e2 01
-    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    mov al, byte [bp-008h]                    ; 8a 46 f8
     mov byte [es:bx+001f3h], al               ; 26 88 87 f3 01
     mov bl, byte [bp-012h]                    ; 8a 5e ee
@@ -2939,5 +2916,5 @@
     mov dx, strict word 00075h                ; ba 75 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 bf ee
+    call 0165eh                               ; e8 ff ee
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop di                                    ; 5f
@@ -2945,5 +2922,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ata_cmd_data_out_:                           ; 0xf27a6 LB 0x28a
+ata_cmd_data_out_:                           ; 0xf2766 LB 0x28a
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -2977,5 +2954,5 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 080h                 ; a8 80
-    je short 02805h                           ; 74 0f
+    je short 027c5h                           ; 74 0f
     mov dx, word [bp-01ah]                    ; 8b 56 e6
     add dx, strict byte 00006h                ; 83 c2 06
@@ -2983,5 +2960,5 @@
     out DX, AL                                ; ee
     mov ax, strict word 00001h                ; b8 01 00
-    jmp near 02a29h                           ; e9 24 02
+    jmp near 029e9h                           ; e9 24 02
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov ax, word [es:di+006h]                 ; 26 8b 45 06
@@ -3005,6 +2982,6 @@
     mov ax, word [bp-014h]                    ; 8b 46 ec
     test ax, ax                               ; 85 c0
-    je short 02850h                           ; 74 03
-    jmp near 02917h                           ; e9 c7 00
+    je short 02810h                           ; 74 03
+    jmp near 028d7h                           ; e9 c7 00
     xor bx, bx                                ; 31 db
     xor dx, dx                                ; 31 d2
@@ -3015,12 +2992,12 @@
     adc dx, word [bp-00ch]                    ; 13 56 f4
     test dx, dx                               ; 85 d2
-    jnbe short 02877h                         ; 77 10
-    jne short 028dah                          ; 75 71
+    jnbe short 02837h                         ; 77 10
+    jne short 0289ah                          ; 75 71
     test ax, ax                               ; 85 c0
-    jnbe short 02877h                         ; 77 0a
-    jne short 028dah                          ; 75 6b
+    jnbe short 02837h                         ; 77 0a
+    jne short 0289ah                          ; 75 6b
     cmp bx, 01000h                            ; 81 fb 00 10
-    jnbe short 02877h                         ; 77 02
-    jne short 028dah                          ; 75 63
+    jnbe short 02837h                         ; 77 02
+    jne short 0289ah                          ; 75 63
     mov ax, word [bp-00ch]                    ; 8b 46 f4
     mov bx, word [bp-00eh]                    ; 8b 5e f2
@@ -3028,5 +3005,5 @@
     mov dx, word [bp-024h]                    ; 8b 56 dc
     mov si, strict word 00018h                ; be 18 00
-    call 0a02ah                               ; e8 a1 77
+    call 09faah                               ; e8 61 77
     xor dh, dh                                ; 30 f6
     mov word [bp-014h], dx                    ; 89 56 ec
@@ -3036,5 +3013,5 @@
     mov dx, word [bp-024h]                    ; 8b 56 dc
     mov si, strict word 00020h                ; be 20 00
-    call 0a02ah                               ; e8 8a 77
+    call 09faah                               ; e8 4a 77
     mov bx, dx                                ; 89 d3
     mov ax, word [bp-022h]                    ; 8b 46 de
@@ -3070,5 +3047,5 @@
     mov dx, word [bp-024h]                    ; 8b 56 dc
     mov si, strict word 00008h                ; be 08 00
-    call 0a02ah                               ; e8 36 77
+    call 09faah                               ; e8 f6 76
     mov word [bp-00ch], ax                    ; 89 46 f4
     mov word [bp-00eh], bx                    ; 89 5e f2
@@ -3077,5 +3054,5 @@
     mov word [bp-018h], dx                    ; 89 56 e8
     mov si, strict word 00010h                ; be 10 00
-    call 0a02ah                               ; e8 21 77
+    call 09faah                               ; e8 e1 76
     mov word [bp-024h], dx                    ; 89 56 dc
     mov ax, dx                                ; 89 d0
@@ -3110,7 +3087,7 @@
     out DX, AL                                ; ee
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    je short 02959h                           ; 74 05
+    je short 02919h                           ; 74 05
     mov ax, 000b0h                            ; b8 b0 00
-    jmp short 0295ch                          ; eb 03
+    jmp short 0291ch                          ; eb 03
     mov ax, 000a0h                            ; b8 a0 00
     mov dl, byte [bp-01ch]                    ; 8a 56 e4
@@ -3131,7 +3108,7 @@
     mov bl, al                                ; 88 c3
     test AL, strict byte 080h                 ; a8 80
-    jne short 02974h                          ; 75 f1
+    jne short 02934h                          ; 75 f1
     test AL, strict byte 001h                 ; a8 01
-    je short 02996h                           ; 74 0f
+    je short 02956h                           ; 74 0f
     mov dx, word [bp-01ah]                    ; 8b 56 e6
     add dx, strict byte 00006h                ; 83 c2 06
@@ -3139,7 +3116,7 @@
     out DX, AL                                ; ee
     mov ax, strict word 00002h                ; b8 02 00
-    jmp near 02a29h                           ; e9 93 00
+    jmp near 029e9h                           ; e9 93 00
     test bl, 008h                             ; f6 c3 08
-    jne short 029aah                          ; 75 0f
+    jne short 0296ah                          ; 75 0f
     mov dx, word [bp-01ah]                    ; 8b 56 e6
     add dx, strict byte 00006h                ; 83 c2 06
@@ -3147,9 +3124,9 @@
     out DX, AL                                ; ee
     mov ax, strict word 00003h                ; b8 03 00
-    jmp near 02a29h                           ; e9 7f 00
+    jmp near 029e9h                           ; e9 7f 00
     sti                                       ; fb
     mov ax, word [bp-016h]                    ; 8b 46 ea
     cmp ax, 0f800h                            ; 3d 00 f8
-    jc short 029c3h                           ; 72 10
+    jc short 02983h                           ; 72 10
     sub ax, 00800h                            ; 2d 00 08
     mov dx, word [bp-012h]                    ; 8b 56 ee
@@ -3174,10 +3151,10 @@
     mov bl, al                                ; 88 c3
     test AL, strict byte 080h                 ; a8 80
-    jne short 029dfh                          ; 75 f1
+    jne short 0299fh                          ; 75 f1
     cmp word [bp-022h], strict byte 00000h    ; 83 7e de 00
-    jne short 02a08h                          ; 75 14
+    jne short 029c8h                          ; 75 14
     and AL, strict byte 0e9h                  ; 24 e9
     cmp AL, strict byte 040h                  ; 3c 40
-    je short 02a1eh                           ; 74 24
+    je short 029deh                           ; 74 24
     mov dx, word [bp-01ah]                    ; 8b 56 e6
     add dx, strict byte 00006h                ; 83 c2 06
@@ -3185,9 +3162,9 @@
     out DX, AL                                ; ee
     mov ax, strict word 00006h                ; b8 06 00
-    jmp short 02a29h                          ; eb 21
+    jmp short 029e9h                          ; eb 21
     mov al, bl                                ; 88 d8
     and AL, strict byte 0c9h                  ; 24 c9
     cmp AL, strict byte 048h                  ; 3c 48
-    je short 029abh                           ; 74 9b
+    je short 0296bh                           ; 74 9b
     mov dx, word [bp-01ah]                    ; 8b 56 e6
     add dx, strict byte 00006h                ; 83 c2 06
@@ -3195,5 +3172,5 @@
     out DX, AL                                ; ee
     mov ax, strict word 00007h                ; b8 07 00
-    jmp short 02a29h                          ; eb 0b
+    jmp short 029e9h                          ; eb 0b
     mov dx, word [bp-01ah]                    ; 8b 56 e6
     add dx, strict byte 00006h                ; 83 c2 06
@@ -3206,5 +3183,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-@ata_read_sectors:                           ; 0xf2a30 LB 0xb5
+@ata_read_sectors:                           ; 0xf29f0 LB 0xb5
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3219,5 +3196,5 @@
     sal dx, 009h                              ; c1 e2 09
     cmp word [es:si+016h], strict byte 00000h ; 26 83 7c 16 00
-    je short 02a71h                           ; 74 1f
+    je short 02a31h                           ; 74 1f
     xor ah, ah                                ; 30 e4
     imul ax, ax, strict byte 0001ch           ; 6b c0 1c
@@ -3229,7 +3206,7 @@
     mov ax, si                                ; 89 f0
     mov dx, es                                ; 8c c2
-    call 01e63h                               ; e8 f7 f3
+    call 01e63h                               ; e8 37 f4
     mov es, [bp-00ch]                         ; 8e 46 f4
-    jmp short 02ad6h                          ; eb 65
+    jmp short 02a96h                          ; eb 65
     xor bx, bx                                ; 31 db
     mov word [bp-00ch], bx                    ; 89 5e f4
@@ -3246,17 +3223,17 @@
     adc di, word [bp-006h]                    ; 13 7e fa
     test di, di                               ; 85 ff
-    jnbe short 02aadh                         ; 77 11
-    jne short 02ab9h                          ; 75 1b
+    jnbe short 02a6dh                         ; 77 11
+    jne short 02a79h                          ; 75 1b
     test bx, bx                               ; 85 db
-    jnbe short 02aadh                         ; 77 0b
-    jne short 02ab9h                          ; 75 15
+    jnbe short 02a6dh                         ; 77 0b
+    jne short 02a79h                          ; 75 15
     cmp word [bp-008h], 01000h                ; 81 7e f8 00 10
-    jnbe short 02aadh                         ; 77 02
-    jne short 02ab9h                          ; 75 0c
+    jnbe short 02a6dh                         ; 77 02
+    jne short 02a79h                          ; 75 0c
     mov bx, strict word 00024h                ; bb 24 00
     mov ax, si                                ; 89 f0
     mov dx, es                                ; 8c c2
-    call 01e63h                               ; e8 ac f3
-    jmp short 02adch                          ; eb 23
+    call 01e63h                               ; e8 ec f3
+    jmp short 02a9ch                          ; eb 23
     xor ah, ah                                ; 30 e4
     imul ax, ax, strict byte 0001ch           ; 6b c0 1c
@@ -3268,5 +3245,5 @@
     mov ax, si                                ; 89 f0
     mov dx, es                                ; 8c c2
-    call 01e63h                               ; e8 90 f3
+    call 01e63h                               ; e8 d0 f3
     mov es, [bp-006h]                         ; 8e 46 fa
     mov word [es:di+028h], 00200h             ; 26 c7 45 28 00 02
@@ -3276,5 +3253,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-@ata_write_sectors:                          ; 0xf2ae5 LB 0x5b
+@ata_write_sectors:                          ; 0xf2aa5 LB 0x5b
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3285,10 +3262,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 02b05h                           ; 74 0c
+    je short 02ac5h                           ; 74 0c
     mov bx, strict word 00030h                ; bb 30 00
     mov ax, si                                ; 89 f0
     mov dx, es                                ; 8c c2
-    call 027a6h                               ; e8 a3 fc
-    jmp short 02b37h                          ; eb 32
+    call 02766h                               ; e8 a3 fc
+    jmp short 02af7h                          ; eb 32
     xor ax, ax                                ; 31 c0
     xor bx, bx                                ; 31 db
@@ -3301,14 +3278,14 @@
     adc dx, word [es:si+006h]                 ; 26 13 54 06
     test dx, dx                               ; 85 d2
-    jnbe short 02b32h                         ; 77 0f
-    jne short 02af9h                          ; 75 d4
+    jnbe short 02af2h                         ; 77 0f
+    jne short 02ab9h                          ; 75 d4
     test bx, bx                               ; 85 db
-    jnbe short 02b32h                         ; 77 09
-    jne short 02af9h                          ; 75 ce
+    jnbe short 02af2h                         ; 77 09
+    jne short 02ab9h                          ; 75 ce
     cmp ax, 01000h                            ; 3d 00 10
-    jnbe short 02b32h                         ; 77 02
-    jne short 02af9h                          ; 75 c7
+    jnbe short 02af2h                         ; 77 02
+    jne short 02ab9h                          ; 75 c7
     mov bx, strict word 00034h                ; bb 34 00
-    jmp short 02afch                          ; eb c5
+    jmp short 02abch                          ; eb c5
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop di                                    ; 5f
@@ -3316,5 +3293,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-ata_cmd_packet_:                             ; 0xf2b40 LB 0x289
+ata_cmd_packet_:                             ; 0xf2b00 LB 0x289
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3327,5 +3304,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 15 eb
+    call 0166ch                               ; e8 55 eb
     mov word [bp-010h], 00122h                ; c7 46 f0 22 01
     mov word [bp-012h], ax                    ; 89 46 ee
@@ -3336,18 +3313,18 @@
     mov byte [bp-008h], ah                    ; 88 66 f8
     cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
-    jne short 02b92h                          ; 75 1f
+    jne short 02b52h                          ; 75 1f
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 a5 ed
+    call 01923h                               ; e8 e5 ed
     push 00221h                               ; 68 21 02
     push 00230h                               ; 68 30 02
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 dd ed
+    call 01966h                               ; e8 1d ee
     add sp, strict byte 00006h                ; 83 c4 06
     mov ax, strict word 00001h                ; b8 01 00
-    jmp near 02dc0h                           ; e9 2e 02
+    jmp near 02d80h                           ; e9 2e 02
     test byte [bp+004h], 001h                 ; f6 46 04 01
-    jne short 02b8ch                          ; 75 f4
+    jne short 02b4ch                          ; 75 f4
     xor ah, ah                                ; 30 e4
     imul ax, ax, strict byte 00006h           ; 6b c0 06
@@ -3364,8 +3341,8 @@
     mov al, byte [bp-006h]                    ; 8a 46 fa
     cmp AL, strict byte 00ch                  ; 3c 0c
-    jnc short 02bcah                          ; 73 06
+    jnc short 02b8ah                          ; 73 06
     mov byte [bp-006h], 00ch                  ; c6 46 fa 0c
-    jmp short 02bd0h                          ; eb 06
-    jbe short 02bd0h                          ; 76 04
+    jmp short 02b90h                          ; eb 06
+    jbe short 02b90h                          ; 76 04
     mov byte [bp-006h], 010h                  ; c6 46 fa 10
     shr byte [bp-006h], 1                     ; d0 6e fa
@@ -3381,7 +3358,7 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 080h                 ; a8 80
-    je short 02bfeh                           ; 74 06
+    je short 02bbeh                           ; 74 06
     mov ax, strict word 00002h                ; b8 02 00
-    jmp near 02dc0h                           ; e9 c2 01
+    jmp near 02d80h                           ; e9 c2 01
     mov dx, word [bp-00eh]                    ; 8b 56 f2
     add dx, strict byte 00006h                ; 83 c2 06
@@ -3397,7 +3374,7 @@
     out DX, AL                                ; ee
     cmp byte [bp-008h], 000h                  ; 80 7e f8 00
-    je short 02c24h                           ; 74 05
+    je short 02be4h                           ; 74 05
     mov ax, 000b0h                            ; b8 b0 00
-    jmp short 02c27h                          ; eb 03
+    jmp short 02be7h                          ; eb 03
     mov ax, 000a0h                            ; b8 a0 00
     mov dx, word [bp-00ah]                    ; 8b 56 f6
@@ -3415,7 +3392,7 @@
     mov bx, ax                                ; 89 c3
     test AL, strict byte 080h                 ; a8 80
-    jne short 02c37h                          ; 75 f1
+    jne short 02bf7h                          ; 75 f1
     test AL, strict byte 001h                 ; a8 01
-    je short 02c59h                           ; 74 0f
+    je short 02c19h                           ; 74 0f
     mov dx, word [bp-00eh]                    ; 8b 56 f2
     add dx, strict byte 00006h                ; 83 c2 06
@@ -3423,7 +3400,7 @@
     out DX, AL                                ; ee
     mov ax, strict word 00003h                ; b8 03 00
-    jmp near 02dc0h                           ; e9 67 01
+    jmp near 02d80h                           ; e9 67 01
     test AL, strict byte 008h                 ; a8 08
-    jne short 02c6ch                          ; 75 0f
+    jne short 02c2ch                          ; 75 0f
     mov dx, word [bp-00eh]                    ; 8b 56 f2
     add dx, strict byte 00006h                ; 83 c2 06
@@ -3431,5 +3408,5 @@
     out DX, AL                                ; ee
     mov ax, strict word 00004h                ; b8 04 00
-    jmp near 02dc0h                           ; e9 54 01
+    jmp near 02d80h                           ; e9 54 01
     sti                                       ; fb
     mov ax, si                                ; 89 f0
@@ -3444,10 +3421,10 @@
     ; rep es outsw                              ; f3 26 6f
     cmp byte [bp+00ah], 000h                  ; 80 7e 0a 00
-    jne short 02c93h                          ; 75 09
+    jne short 02c53h                          ; 75 09
     add dx, strict byte 00007h                ; 83 c2 07
     in AL, DX                                 ; ec
     db  02ah, 0e4h
     ; sub ah, ah                                ; 2a e4
-    jmp near 02da3h                           ; e9 10 01
+    jmp near 02d63h                           ; e9 10 01
     mov dx, word [bp-00ah]                    ; 8b 56 f6
     add dx, strict byte 00007h                ; 83 c2 07
@@ -3457,22 +3434,22 @@
     mov bx, ax                                ; 89 c3
     test AL, strict byte 080h                 ; a8 80
-    jne short 02c93h                          ; 75 f1
+    jne short 02c53h                          ; 75 f1
     test AL, strict byte 088h                 ; a8 88
-    je short 02d06h                           ; 74 60
+    je short 02cc6h                           ; 74 60
     test AL, strict byte 001h                 ; a8 01
-    je short 02cb5h                           ; 74 0b
+    je short 02c75h                           ; 74 0b
     mov dx, word [bp-00eh]                    ; 8b 56 f2
     add dx, strict byte 00006h                ; 83 c2 06
     mov AL, strict byte 008h                  ; b0 08
     out DX, AL                                ; ee
-    jmp short 02c53h                          ; eb 9e
+    jmp short 02c13h                          ; eb 9e
     and AL, strict byte 0c9h                  ; 24 c9
     cmp AL, strict byte 048h                  ; 3c 48
-    je short 02cc6h                           ; 74 0b
+    je short 02c86h                           ; 74 0b
     mov dx, word [bp-00eh]                    ; 8b 56 f2
     add dx, strict byte 00006h                ; 83 c2 06
     mov AL, strict byte 008h                  ; b0 08
     out DX, AL                                ; ee
-    jmp short 02c66h                          ; eb a0
+    jmp short 02c26h                          ; eb a0
     mov ax, word [bp+00ch]                    ; 8b 46 0c
     shr ax, 004h                              ; c1 e8 04
@@ -3498,10 +3475,10 @@
     mov ax, word [bp+004h]                    ; 8b 46 04
     cmp bx, ax                                ; 39 c3
-    jnc short 02d09h                          ; 73 0c
+    jnc short 02cc9h                          ; 73 0c
     mov cx, bx                                ; 89 d9
     sub word [bp+004h], bx                    ; 29 5e 04
     xor bx, bx                                ; 31 db
-    jmp short 02d12h                          ; eb 0c
-    jmp near 02da3h                           ; e9 9a 00
+    jmp short 02cd2h                          ; eb 0c
+    jmp near 02d63h                           ; e9 9a 00
     mov cx, ax                                ; 89 c1
     mov word [bp+004h], strict word 00000h    ; c7 46 04 00 00
@@ -3509,7 +3486,7 @@
     xor ax, ax                                ; 31 c0
     cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
-    jne short 02d30h                          ; 75 16
+    jne short 02cf0h                          ; 75 16
     cmp bx, word [bp+006h]                    ; 3b 5e 06
-    jbe short 02d30h                          ; 76 11
+    jbe short 02cf0h                          ; 76 11
     sub bx, word [bp+006h]                    ; 2b 5e 06
     mov word [bp-00ch], bx                    ; 89 5e f4
@@ -3517,5 +3494,5 @@
     mov word [bp+006h], ax                    ; 89 46 06
     mov word [bp+008h], ax                    ; 89 46 08
-    jmp short 02d39h                          ; eb 09
+    jmp short 02cf9h                          ; eb 09
     mov word [bp-00ch], ax                    ; 89 46 f4
     sub word [bp+006h], bx                    ; 29 5e 06
@@ -3526,10 +3503,10 @@
     test byte [bp-00ch], 003h                 ; f6 46 f4 03
     test bl, 001h                             ; f6 c3 01
-    je short 02d5ah                           ; 74 10
+    je short 02d1ah                           ; 74 10
     inc bx                                    ; 43
     cmp word [bp-00ch], strict byte 00000h    ; 83 7e f4 00
-    jbe short 02d5ah                          ; 76 09
+    jbe short 02d1ah                          ; 76 09
     test byte [bp-00ch], 001h                 ; f6 46 f4 01
-    je short 02d5ah                           ; 74 03
+    je short 02d1ah                           ; 74 03
     dec word [bp-00ch]                        ; ff 4e f4
     shr bx, 1                                 ; d1 eb
@@ -3537,8 +3514,8 @@
     shr word [bp-00ch], 1                     ; d1 6e f4
     test cx, cx                               ; 85 c9
-    je short 02d6bh                           ; 74 06
+    je short 02d2bh                           ; 74 06
     mov dx, word [bp-00ah]                    ; 8b 56 f6
     in ax, DX                                 ; ed
-    loop 02d68h                               ; e2 fd
+    loop 02d28h                               ; e2 fd
     mov dx, word [bp-00ah]                    ; 8b 56 f6
     mov cx, bx                                ; 89 d9
@@ -3547,8 +3524,8 @@
     mov ax, word [bp-00ch]                    ; 8b 46 f4
     test ax, ax                               ; 85 c0
-    je short 02d81h                           ; 74 05
+    je short 02d41h                           ; 74 05
     mov cx, ax                                ; 89 c1
     in ax, DX                                 ; ed
-    loop 02d7eh                               ; e2 fd
+    loop 02d3eh                               ; e2 fd
     add word [bp+00ch], si                    ; 01 76 0c
     xor ax, ax                                ; 31 c0
@@ -3561,13 +3538,13 @@
     mov ax, word [bp-014h]                    ; 8b 46 ec
     mov word [es:bx+01ch], ax                 ; 26 89 47 1c
-    jmp near 02c93h                           ; e9 f0 fe
+    jmp near 02c53h                           ; e9 f0 fe
     and AL, strict byte 0e9h                  ; 24 e9
     cmp AL, strict byte 040h                  ; 3c 40
-    je short 02db5h                           ; 74 0c
+    je short 02d75h                           ; 74 0c
     mov dx, word [bp-00eh]                    ; 8b 56 f2
     add dx, strict byte 00006h                ; 83 c2 06
     mov AL, strict byte 008h                  ; b0 08
     out DX, AL                                ; ee
-    jmp near 02c66h                           ; e9 b1 fe
+    jmp near 02c26h                           ; e9 b1 fe
     mov dx, word [bp-00eh]                    ; 8b 56 f2
     add dx, strict byte 00006h                ; 83 c2 06
@@ -3580,5 +3557,5 @@
     pop bp                                    ; 5d
     retn 0000ch                               ; c2 0c 00
-ata_soft_reset_:                             ; 0xf2dc9 LB 0x80
+ata_soft_reset_:                             ; 0xf2d89 LB 0x80
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3590,5 +3567,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 91 e8
+    call 0166ch                               ; e8 d1 e8
     mov dx, bx                                ; 89 da
     shr dx, 1                                 ; d1 ea
@@ -3605,7 +3582,7 @@
     out DX, AL                                ; ee
     cmp byte [bp-008h], 000h                  ; 80 7e f8 00
-    je short 02e0bh                           ; 74 05
+    je short 02dcbh                           ; 74 05
     mov ax, 000b0h                            ; b8 b0 00
-    jmp short 02e0eh                          ; eb 03
+    jmp short 02dceh                          ; eb 03
     mov ax, 000a0h                            ; b8 a0 00
     mov dx, cx                                ; 89 ca
@@ -3622,13 +3599,13 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 080h                 ; a8 80
-    jne short 02e1ch                          ; 75 f4
+    jne short 02ddch                          ; 75 f4
     and AL, strict byte 0e9h                  ; 24 e9
     cmp AL, strict byte 040h                  ; 3c 40
-    je short 02e39h                           ; 74 0b
+    je short 02df9h                           ; 74 0b
     lea dx, [bx+006h]                         ; 8d 57 06
     mov AL, strict byte 008h                  ; b0 08
     out DX, AL                                ; ee
     mov ax, strict word 00001h                ; b8 01 00
-    jmp short 02e41h                          ; eb 08
+    jmp short 02e01h                          ; eb 08
     lea dx, [bx+006h]                         ; 8d 57 06
     mov AL, strict byte 008h                  ; b0 08
@@ -3641,5 +3618,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-set_diskette_ret_status_:                    ; 0xf2e49 LB 0x19
+set_diskette_ret_status_:                    ; 0xf2e09 LB 0x19
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3650,5 +3627,5 @@
     mov dx, strict word 00041h                ; ba 41 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 03 e8
+    call 0165eh                               ; e8 43 e8
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop dx                                    ; 5a
@@ -3656,5 +3633,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-set_diskette_current_cyl_:                   ; 0xf2e62 LB 0x30
+set_diskette_current_cyl_:                   ; 0xf2e22 LB 0x30
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3662,8 +3639,8 @@
     mov bl, al                                ; 88 c3
     cmp AL, strict byte 001h                  ; 3c 01
-    jbe short 02e77h                          ; 76 0b
+    jbe short 02e37h                          ; 76 0b
     push 00250h                               ; 68 50 02
     push strict byte 00007h                   ; 6a 07
-    call 01966h                               ; e8 f2 ea
+    call 01966h                               ; e8 32 eb
     add sp, strict byte 00004h                ; 83 c4 04
     mov al, dl                                ; 88 d0
@@ -3675,10 +3652,10 @@
     mov dx, ax                                ; 89 c2
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 d2 e7
+    call 0165eh                               ; e8 12 e8
     lea sp, [bp-002h]                         ; 8d 66 fe
     pop bx                                    ; 5b
     pop bp                                    ; 5d
     retn                                      ; c3
-floppy_wait_for_interrupt_:                  ; 0xf2e92 LB 0x21
+floppy_wait_for_interrupt_:                  ; 0xf2e52 LB 0x21
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3687,18 +3664,18 @@
     mov dx, strict word 0003eh                ; ba 3e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 b0 e7
+    call 01650h                               ; e8 f0 e7
     test AL, strict byte 080h                 ; a8 80
-    je short 02ea8h                           ; 74 04
+    je short 02e68h                           ; 74 04
     and AL, strict byte 080h                  ; 24 80
-    jmp short 02eadh                          ; eb 05
+    jmp short 02e6dh                          ; eb 05
     sti                                       ; fb
     hlt                                       ; f4
     cli                                       ; fa
-    jmp short 02e97h                          ; eb ea
+    jmp short 02e57h                          ; eb ea
     lea sp, [bp-002h]                         ; 8d 66 fe
     pop dx                                    ; 5a
     pop bp                                    ; 5d
     retn                                      ; c3
-floppy_wait_for_interrupt_or_timeout_:       ; 0xf2eb3 LB 0x47
+floppy_wait_for_interrupt_or_timeout_:       ; 0xf2e73 LB 0x47
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3709,16 +3686,16 @@
     mov dx, strict word 00040h                ; ba 40 00
     mov ax, dx                                ; 89 d0
-    call 01650h                               ; e8 8e e7
+    call 01650h                               ; e8 ce e7
     test al, al                               ; 84 c0
-    jne short 02ecbh                          ; 75 05
+    jne short 02e8bh                          ; 75 05
     sti                                       ; fb
     xor cl, cl                                ; 30 c9
-    jmp short 02ef0h                          ; eb 25
+    jmp short 02eb0h                          ; eb 25
     mov dx, strict word 0003eh                ; ba 3e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 7c e7
+    call 01650h                               ; e8 bc e7
     mov cl, al                                ; 88 c1
     test AL, strict byte 080h                 ; a8 80
-    je short 02eebh                           ; 74 11
+    je short 02eabh                           ; 74 11
     and AL, strict byte 07fh                  ; 24 7f
     xor ah, ah                                ; 30 e4
@@ -3726,10 +3703,10 @@
     mov dx, strict word 0003eh                ; ba 3e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 75 e7
-    jmp short 02ef0h                          ; eb 05
+    call 0165eh                               ; e8 b5 e7
+    jmp short 02eb0h                          ; eb 05
     sti                                       ; fb
     hlt                                       ; f4
     cli                                       ; fa
-    jmp short 02ebah                          ; eb ca
+    jmp short 02e7ah                          ; eb ca
     mov al, cl                                ; 88 c8
     lea sp, [bp-006h]                         ; 8d 66 fa
@@ -3739,5 +3716,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-floppy_reset_controller_:                    ; 0xf2efa LB 0x28
+floppy_reset_controller_:                    ; 0xf2eba LB 0x28
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3760,5 +3737,5 @@
     and AL, strict byte 0c0h                  ; 24 c0
     cmp AL, strict byte 080h                  ; 3c 80
-    jne short 02f0fh                          ; 75 f4
+    jne short 02ecfh                          ; 75 f4
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop dx                                    ; 5a
@@ -3766,5 +3743,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-floppy_prepare_controller_:                  ; 0xf2f22 LB 0x83
+floppy_prepare_controller_:                  ; 0xf2ee2 LB 0x83
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3776,5 +3753,5 @@
     mov dx, strict word 0003eh                ; ba 3e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 1c e7
+    call 01650h                               ; e8 5c e7
     and AL, strict byte 07fh                  ; 24 7f
     xor ah, ah                                ; 30 e4
@@ -3782,5 +3759,5 @@
     mov dx, strict word 0003eh                ; ba 3e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 1b e7
+    call 0165eh                               ; e8 5b e7
     mov dx, 003f2h                            ; ba f2 03
     in AL, DX                                 ; ec
@@ -3790,7 +3767,7 @@
     mov byte [bp-008h], al                    ; 88 46 f8
     test cx, cx                               ; 85 c9
-    je short 02f56h                           ; 74 04
+    je short 02f16h                           ; 74 04
     mov AL, strict byte 020h                  ; b0 20
-    jmp short 02f58h                          ; eb 02
+    jmp short 02f18h                          ; eb 02
     mov AL, strict byte 010h                  ; b0 10
     or AL, strict byte 00ch                   ; 0c 0c
@@ -3801,8 +3778,8 @@
     mov dx, strict word 00040h                ; ba 40 00
     mov ax, dx                                ; 89 d0
-    call 0165eh                               ; e8 f3 e6
+    call 0165eh                               ; e8 33 e7
     mov dx, 0008bh                            ; ba 8b 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 dc e6
+    call 01650h                               ; e8 1c e7
     shr al, 006h                              ; c0 e8 06
     mov dx, 003f7h                            ; ba f7 03
@@ -3814,13 +3791,13 @@
     and AL, strict byte 0c0h                  ; 24 c0
     cmp AL, strict byte 080h                  ; 3c 80
-    jne short 02f7bh                          ; 75 f4
+    jne short 02f3bh                          ; 75 f4
     cmp byte [bp-008h], 000h                  ; 80 7e f8 00
-    jne short 02f9dh                          ; 75 10
-    call 02e92h                               ; e8 02 ff
+    jne short 02f5dh                          ; 75 10
+    call 02e52h                               ; e8 02 ff
     mov bl, al                                ; 88 c3
     xor bh, bh                                ; 30 ff
     mov dx, strict word 0003eh                ; ba 3e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 c1 e6
+    call 0165eh                               ; e8 01 e7
     lea sp, [bp-006h]                         ; 8d 66 fa
     pop dx                                    ; 5a
@@ -3829,5 +3806,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-floppy_media_known_:                         ; 0xf2fa5 LB 0x43
+floppy_media_known_:                         ; 0xf2f65 LB 0x43
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3837,23 +3814,23 @@
     mov dx, strict word 0003eh                ; ba 3e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 9b e6
+    call 01650h                               ; e8 db e6
     mov ah, al                                ; 88 c4
     test bx, bx                               ; 85 db
-    je short 02fbdh                           ; 74 02
+    je short 02f7dh                           ; 74 02
     shr al, 1                                 ; d0 e8
     and AL, strict byte 001h                  ; 24 01
-    jne short 02fc5h                          ; 75 04
-    xor ah, ah                                ; 30 e4
-    jmp short 02fe1h                          ; eb 1c
+    jne short 02f85h                          ; 75 04
+    xor ah, ah                                ; 30 e4
+    jmp short 02fa1h                          ; eb 1c
     mov dx, 00090h                            ; ba 90 00
     test bx, bx                               ; 85 db
-    je short 02fcfh                           ; 74 03
+    je short 02f8fh                           ; 74 03
     mov dx, 00091h                            ; ba 91 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 7b e6
+    call 01650h                               ; e8 bb e6
     xor ah, ah                                ; 30 e4
     sar ax, 004h                              ; c1 f8 04
     and AL, strict byte 001h                  ; 24 01
-    je short 02fc1h                           ; 74 e3
+    je short 02f81h                           ; 74 e3
     mov ax, strict word 00001h                ; b8 01 00
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -3862,5 +3839,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-floppy_read_id_:                             ; 0xf2fe8 LB 0x44
+floppy_read_id_:                             ; 0xf2fa8 LB 0x44
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3870,5 +3847,5 @@
     sub sp, strict byte 00008h                ; 83 ec 08
     mov bx, ax                                ; 89 c3
-    call 02f22h                               ; e8 2c ff
+    call 02ee2h                               ; e8 2c ff
     mov AL, strict byte 04ah                  ; b0 4a
     mov dx, 003f5h                            ; ba f5 03
@@ -3876,9 +3853,9 @@
     mov al, bl                                ; 88 d8
     out DX, AL                                ; ee
-    call 02e92h                               ; e8 90 fe
+    call 02e52h                               ; e8 90 fe
     xor si, si                                ; 31 f6
-    jmp short 0300bh                          ; eb 05
+    jmp short 02fcbh                          ; eb 05
     cmp si, strict byte 00007h                ; 83 fe 07
-    jnl short 03017h                          ; 7d 0c
+    jnl short 02fd7h                          ; 7d 0c
     mov dx, 003f5h                            ; ba f5 03
     in AL, DX                                 ; ec
@@ -3887,9 +3864,9 @@
     mov byte [bp+si-00eh], al                 ; 88 42 f2
     inc si                                    ; 46
-    jmp short 03006h                          ; eb ef
+    jmp short 02fc6h                          ; eb ef
     test byte [bp-00eh], 0c0h                 ; f6 46 f2 c0
-    je short 03021h                           ; 74 04
+    je short 02fe1h                           ; 74 04
     xor ax, ax                                ; 31 c0
-    jmp short 03024h                          ; eb 03
+    jmp short 02fe4h                          ; eb 03
     mov ax, strict word 00001h                ; b8 01 00
     lea sp, [bp-006h]                         ; 8d 66 fa
@@ -3899,5 +3876,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-floppy_drive_recal_:                         ; 0xf302c LB 0x4d
+floppy_drive_recal_:                         ; 0xf2fec LB 0x4d
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3906,5 +3883,5 @@
     push dx                                   ; 52
     mov bx, ax                                ; 89 c3
-    call 02f22h                               ; e8 eb fe
+    call 02ee2h                               ; e8 eb fe
     mov AL, strict byte 007h                  ; b0 07
     mov dx, 003f5h                            ; ba f5 03
@@ -3912,11 +3889,11 @@
     mov al, bl                                ; 88 d8
     out DX, AL                                ; ee
-    call 02e92h                               ; e8 4f fe
+    call 02e52h                               ; e8 4f fe
     test bx, bx                               ; 85 db
-    je short 03051h                           ; 74 0a
+    je short 03011h                           ; 74 0a
     mov bl, al                                ; 88 c3
     or bl, 002h                               ; 80 cb 02
     mov cx, 00095h                            ; b9 95 00
-    jmp short 03059h                          ; eb 08
+    jmp short 03019h                          ; eb 08
     mov bl, al                                ; 88 c3
     or bl, 001h                               ; 80 cb 01
@@ -3925,9 +3902,9 @@
     mov dx, strict word 0003eh                ; ba 3e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 fa e5
+    call 0165eh                               ; e8 3a e6
     xor bx, bx                                ; 31 db
     mov dx, cx                                ; 89 ca
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 f0 e5
+    call 0165eh                               ; e8 30 e6
     mov ax, strict word 00001h                ; b8 01 00
     lea sp, [bp-006h]                         ; 8d 66 fa
@@ -3937,5 +3914,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-floppy_media_sense_:                         ; 0xf3079 LB 0xf9
+floppy_media_sense_:                         ; 0xf3039 LB 0xf9
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3946,49 +3923,49 @@
     push di                                   ; 57
     mov di, ax                                ; 89 c7
-    call 0302ch                               ; e8 a6 ff
+    call 02fech                               ; e8 a6 ff
     test ax, ax                               ; 85 c0
-    jne short 0308fh                          ; 75 05
+    jne short 0304fh                          ; 75 05
     xor cx, cx                                ; 31 c9
-    jmp near 03166h                           ; e9 d7 00
+    jmp near 03126h                           ; e9 d7 00
     mov ax, strict word 00010h                ; b8 10 00
-    call 016ach                               ; e8 17 e6
+    call 016ach                               ; e8 57 e6
     test di, di                               ; 85 ff
-    jne short 030a0h                          ; 75 07
+    jne short 03060h                          ; 75 07
     mov cl, al                                ; 88 c1
     shr cl, 004h                              ; c0 e9 04
-    jmp short 030a5h                          ; eb 05
+    jmp short 03065h                          ; eb 05
     mov cl, al                                ; 88 c1
     and cl, 00fh                              ; 80 e1 0f
     cmp cl, 001h                              ; 80 f9 01
-    jne short 030b3h                          ; 75 09
+    jne short 03073h                          ; 75 09
     xor cl, cl                                ; 30 c9
     mov CH, strict byte 015h                  ; b5 15
     mov si, strict word 00001h                ; be 01 00
-    jmp short 030f1h                          ; eb 3e
+    jmp short 030b1h                          ; eb 3e
     cmp cl, 002h                              ; 80 f9 02
-    jne short 030beh                          ; 75 06
+    jne short 0307eh                          ; 75 06
     xor cl, cl                                ; 30 c9
     mov CH, strict byte 035h                  ; b5 35
-    jmp short 030aeh                          ; eb f0
+    jmp short 0306eh                          ; eb f0
     cmp cl, 003h                              ; 80 f9 03
-    jne short 030c9h                          ; 75 06
+    jne short 03089h                          ; 75 06
     xor cl, cl                                ; 30 c9
     mov CH, strict byte 017h                  ; b5 17
-    jmp short 030aeh                          ; eb e5
+    jmp short 0306eh                          ; eb e5
     cmp cl, 004h                              ; 80 f9 04
-    jne short 030d4h                          ; 75 06
+    jne short 03094h                          ; 75 06
     xor cl, cl                                ; 30 c9
     mov CH, strict byte 017h                  ; b5 17
-    jmp short 030aeh                          ; eb da
+    jmp short 0306eh                          ; eb da
     cmp cl, 005h                              ; 80 f9 05
-    jne short 030dfh                          ; 75 06
+    jne short 0309fh                          ; 75 06
     mov CL, strict byte 0cch                  ; b1 cc
     mov CH, strict byte 0d7h                  ; b5 d7
-    jmp short 030aeh                          ; eb cf
+    jmp short 0306eh                          ; eb cf
     cmp cl, 00eh                              ; 80 f9 0e
-    je short 030e9h                           ; 74 05
+    je short 030a9h                           ; 74 05
     cmp cl, 00fh                              ; 80 f9 0f
-    jne short 030ebh                          ; 75 02
-    jmp short 030d9h                          ; eb ee
+    jne short 030abh                          ; 75 02
+    jmp short 03099h                          ; eb ee
     xor cl, cl                                ; 30 c9
     xor ch, ch                                ; 30 ed
@@ -3999,36 +3976,36 @@
     mov dx, 0008bh                            ; ba 8b 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 5e e5
+    call 0165eh                               ; e8 9e e5
     mov ax, di                                ; 89 f8
-    call 02fe8h                               ; e8 e3 fe
+    call 02fa8h                               ; e8 e3 fe
     test ax, ax                               ; 85 c0
-    jne short 0313bh                          ; 75 32
+    jne short 030fbh                          ; 75 32
     mov al, cl                                ; 88 c8
     and AL, strict byte 0c0h                  ; 24 c0
     cmp AL, strict byte 080h                  ; 3c 80
-    je short 0313bh                           ; 74 2a
+    je short 030fbh                           ; 74 2a
     mov al, cl                                ; 88 c8
     and AL, strict byte 0c0h                  ; 24 c0
     cmp AL, strict byte 0c0h                  ; 3c c0
-    je short 03128h                           ; 74 0f
+    je short 030e8h                           ; 74 0f
     mov ah, cl                                ; 88 cc
     and ah, 03fh                              ; 80 e4 3f
     cmp AL, strict byte 040h                  ; 3c 40
-    je short 03134h                           ; 74 12
+    je short 030f4h                           ; 74 12
     test al, al                               ; 84 c0
-    je short 0312dh                           ; 74 07
-    jmp short 030f1h                          ; eb c9
+    je short 030edh                           ; 74 07
+    jmp short 030b1h                          ; eb c9
     and cl, 03fh                              ; 80 e1 3f
-    jmp short 030f1h                          ; eb c4
+    jmp short 030b1h                          ; eb c4
     mov cl, ah                                ; 88 e1
     or cl, 040h                               ; 80 c9 40
-    jmp short 030f1h                          ; eb bd
+    jmp short 030b1h                          ; eb bd
     mov cl, ah                                ; 88 e1
     or cl, 080h                               ; 80 c9 80
-    jmp short 030f1h                          ; eb b6
+    jmp short 030b1h                          ; eb b6
     test di, di                               ; 85 ff
-    jne short 03144h                          ; 75 05
+    jne short 03104h                          ; 75 05
     mov di, 00090h                            ; bf 90 00
-    jmp short 03147h                          ; eb 03
+    jmp short 03107h                          ; eb 03
     mov di, 00091h                            ; bf 91 00
     mov al, cl                                ; 88 c8
@@ -4037,5 +4014,5 @@
     mov dx, 0008bh                            ; ba 8b 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 08 e5
+    call 0165eh                               ; e8 48 e5
     mov al, ch                                ; 88 e8
     xor ah, ah                                ; 30 e4
@@ -4043,5 +4020,5 @@
     mov dx, di                                ; 89 fa
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 fa e4
+    call 0165eh                               ; e8 3a e5
     mov cx, si                                ; 89 f1
     mov ax, cx                                ; 89 c8
@@ -4054,5 +4031,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-floppy_drive_exists_:                        ; 0xf3172 LB 0x28
+floppy_drive_exists_:                        ; 0xf3132 LB 0x28
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -4060,14 +4037,14 @@
     mov dx, ax                                ; 89 c2
     mov ax, strict word 00010h                ; b8 10 00
-    call 016ach                               ; e8 2e e5
+    call 016ach                               ; e8 6e e5
     test dx, dx                               ; 85 d2
-    jne short 03187h                          ; 75 05
+    jne short 03147h                          ; 75 05
     shr al, 004h                              ; c0 e8 04
-    jmp short 03189h                          ; eb 02
+    jmp short 03149h                          ; eb 02
     and AL, strict byte 00fh                  ; 24 0f
     test al, al                               ; 84 c0
-    je short 03192h                           ; 74 05
+    je short 03152h                           ; 74 05
     mov ax, strict word 00001h                ; b8 01 00
-    jmp short 03194h                          ; eb 02
+    jmp short 03154h                          ; eb 02
     xor ah, ah                                ; 30 e4
     lea sp, [bp-002h]                         ; 8d 66 fe
@@ -4075,5 +4052,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-_int13_diskette_function:                    ; 0xf319a LB 0x93e
+_int13_diskette_function:                    ; 0xf315a LB 0x93e
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -4093,36 +4070,36 @@
     mov word [bp-010h], dx                    ; 89 56 f0
     cmp bl, 008h                              ; 80 fb 08
-    jc short 031f7h                           ; 72 2e
+    jc short 031b7h                           ; 72 2e
     mov dx, word [bp+01ch]                    ; 8b 56 1c
     or dl, 001h                               ; 80 ca 01
     cmp bl, 008h                              ; 80 fb 08
-    jbe short 0322dh                          ; 76 59
+    jbe short 031edh                          ; 76 59
     cmp bl, 016h                              ; 80 fb 16
-    jc short 031efh                           ; 72 16
+    jc short 031afh                           ; 72 16
     or si, 00100h                             ; 81 ce 00 01
     cmp bl, 016h                              ; 80 fb 16
-    jbe short 03230h                          ; 76 4e
+    jbe short 031f0h                          ; 76 4e
     cmp bl, 018h                              ; 80 fb 18
-    je short 03233h                           ; 74 4c
+    je short 031f3h                           ; 74 4c
     cmp bl, 017h                              ; 80 fb 17
-    je short 03249h                           ; 74 5d
-    jmp near 03ab5h                           ; e9 c6 08
+    je short 03209h                           ; 74 5d
+    jmp near 03a75h                           ; e9 c6 08
     cmp bl, 015h                              ; 80 fb 15
-    je short 0324ch                           ; 74 58
-    jmp near 03ab5h                           ; e9 be 08
+    je short 0320ch                           ; 74 58
+    jmp near 03a75h                           ; e9 be 08
     cmp bl, 001h                              ; 80 fb 01
-    jc short 0320bh                           ; 72 0f
-    jbe short 0324fh                          ; 76 51
+    jc short 031cbh                           ; 72 0f
+    jbe short 0320fh                          ; 76 51
     cmp bl, 005h                              ; 80 fb 05
-    je short 0326ah                           ; 74 67
+    je short 0322ah                           ; 74 67
     cmp bl, 004h                              ; 80 fb 04
-    jbe short 0326dh                          ; 76 65
-    jmp near 03ab5h                           ; e9 aa 08
+    jbe short 0322dh                          ; 76 65
+    jmp near 03a75h                           ; e9 aa 08
     test bl, bl                               ; 84 db
-    jne short 0326fh                          ; 75 60
+    jne short 0322fh                          ; 75 60
     mov al, byte [bp+00eh]                    ; 8a 46 0e
     mov byte [bp-006h], al                    ; 88 46 fa
     cmp AL, strict byte 001h                  ; 3c 01
-    jbe short 03236h                          ; 76 1d
+    jbe short 031f6h                          ; 76 1d
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -4130,23 +4107,23 @@
     mov word [bp+016h], ax                    ; 89 46 16
     mov ax, strict word 00001h                ; b8 01 00
-    call 02e49h                               ; e8 1f fc
-    jmp near 035d9h                           ; e9 ac 03
-    jmp near 03797h                           ; e9 67 05
-    jmp near 038cbh                           ; e9 98 06
-    jmp near 03964h                           ; e9 2e 07
+    call 02e09h                               ; e8 1f fc
+    jmp near 03599h                           ; e9 ac 03
+    jmp near 03757h                           ; e9 67 05
+    jmp near 0388bh                           ; e9 98 06
+    jmp near 03924h                           ; e9 2e 07
     mov ax, strict word 00010h                ; b8 10 00
-    call 016ach                               ; e8 70 e4
+    call 016ach                               ; e8 b0 e4
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    jne short 03251h                          ; 75 0f
+    jne short 03211h                          ; 75 0f
     mov cl, al                                ; 88 c1
     shr cl, 004h                              ; c0 e9 04
-    jmp short 03256h                          ; eb 0d
-    jmp near 038efh                           ; e9 a3 06
-    jmp near 03887h                           ; e9 38 06
-    jmp short 03298h                          ; eb 47
+    jmp short 03216h                          ; eb 0d
+    jmp near 038afh                           ; e9 a3 06
+    jmp near 03847h                           ; e9 38 06
+    jmp short 03258h                          ; eb 47
     mov cl, al                                ; 88 c1
     and cl, 00fh                              ; 80 e1 0f
     test cl, cl                               ; 84 c9
-    jne short 03272h                          ; 75 18
+    jne short 03232h                          ; 75 18
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -4154,26 +4131,26 @@
     mov word [bp+016h], ax                    ; 89 46 16
     mov ax, 00080h                            ; b8 80 00
-    jmp short 03227h                          ; eb bd
-    jmp near 03603h                           ; e9 96 03
-    jmp short 032b7h                          ; eb 48
-    jmp near 03ab5h                           ; e9 43 08
+    jmp short 031e7h                          ; eb bd
+    jmp near 035c3h                           ; e9 96 03
+    jmp short 03277h                          ; eb 48
+    jmp near 03a75h                           ; e9 43 08
     xor bx, bx                                ; 31 db
     mov dx, strict word 0003eh                ; ba 3e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 e1 e3
+    call 0165eh                               ; e8 21 e4
     xor al, al                                ; 30 c0
     mov byte [bp+017h], al                    ; 88 46 17
     xor ah, ah                                ; 30 e4
-    call 02e49h                               ; e8 c2 fb
+    call 02e09h                               ; e8 c2 fb
     and byte [bp+01ch], 0feh                  ; 80 66 1c fe
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
     xor dx, dx                                ; 31 d2
-    call 02e62h                               ; e8 cd fb
-    jmp near 035fch                           ; e9 64 03
+    call 02e22h                               ; e8 cd fb
+    jmp near 035bch                           ; e9 64 03
     and byte [bp+01ch], 0feh                  ; 80 66 1c fe
     mov dx, 00441h                            ; ba 41 04
     xor ax, ax                                ; 31 c0
-    call 01650h                               ; e8 ac e3
+    call 01650h                               ; e8 ec e3
     mov dl, al                                ; 88 c2
     xor dh, dh                                ; 30 f6
@@ -4182,6 +4159,6 @@
     mov word [bp+016h], si                    ; 89 76 16
     test al, al                               ; 84 c0
-    je short 0330ah                           ; 74 56
-    jmp near 035d9h                           ; e9 22 03
+    je short 032cah                           ; 74 56
+    jmp near 03599h                           ; e9 22 03
     mov ch, cl                                ; 88 cd
     mov dl, byte [bp-010h]                    ; 8a 56 f0
@@ -4193,19 +4170,19 @@
     mov byte [bp-006h], al                    ; 88 46 fa
     cmp AL, strict byte 001h                  ; 3c 01
-    jnbe short 032e0h                         ; 77 0e
+    jnbe short 032a0h                         ; 77 0e
     cmp dl, 001h                              ; 80 fa 01
-    jnbe short 032e0h                         ; 77 09
+    jnbe short 032a0h                         ; 77 09
     test cl, cl                               ; 84 c9
-    je short 032e0h                           ; 74 05
+    je short 032a0h                           ; 74 05
     cmp cl, 048h                              ; 80 f9 48
-    jbe short 0330dh                          ; 76 2d
+    jbe short 032cdh                          ; 76 2d
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 38 e6
+    call 01923h                               ; e8 78 e6
     push 00275h                               ; 68 75 02
     push 0028dh                               ; 68 8d 02
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 70 e6
+    call 01966h                               ; e8 b0 e6
     add sp, strict byte 00006h                ; 83 c4 06
     mov ax, word [bp+016h]                    ; 8b 46 16
@@ -4214,21 +4191,21 @@
     mov word [bp+016h], ax                    ; 89 46 16
     mov ax, strict word 00001h                ; b8 01 00
-    jmp near 0338eh                           ; e9 84 00
-    jmp near 035fch                           ; e9 ef 02
+    jmp near 0334eh                           ; e9 84 00
+    jmp near 035bch                           ; e9 ef 02
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
-    call 03172h                               ; e8 5d fe
+    call 03132h                               ; e8 5d fe
     test ax, ax                               ; 85 c0
-    je short 03347h                           ; 74 2e
+    je short 03307h                           ; 74 2e
     mov dl, byte [bp-006h]                    ; 8a 56 fa
     xor dh, dh                                ; 30 f6
     mov ax, dx                                ; 89 d0
-    call 02fa5h                               ; e8 82 fc
+    call 02f65h                               ; e8 82 fc
     test ax, ax                               ; 85 c0
-    jne short 0334ah                          ; 75 23
+    jne short 0330ah                          ; 75 23
     mov ax, dx                                ; 89 d0
-    call 03079h                               ; e8 4d fd
+    call 03039h                               ; e8 4d fd
     test ax, ax                               ; 85 c0
-    jne short 0334ah                          ; 75 1a
+    jne short 0330ah                          ; 75 1a
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -4236,10 +4213,10 @@
     mov word [bp+016h], ax                    ; 89 46 16
     mov ax, strict word 0000ch                ; b8 0c 00
-    call 02e49h                               ; e8 08 fb
+    call 02e09h                               ; e8 08 fb
     mov byte [bp+016h], dh                    ; 88 76 16
-    jmp near 035d9h                           ; e9 92 02
-    jmp near 03429h                           ; e9 df 00
+    jmp near 03599h                           ; e9 92 02
+    jmp near 033e9h                           ; e9 df 00
     cmp byte [bp-00eh], 002h                  ; 80 7e f2 02
-    jne short 03398h                          ; 75 48
+    jne short 03358h                          ; 75 48
     mov ax, word [bp+006h]                    ; 8b 46 06
     shr ax, 00ch                              ; c1 e8 0c
@@ -4251,5 +4228,5 @@
     mov word [bp-012h], bx                    ; 89 5e ee
     cmp dx, bx                                ; 39 da
-    jbe short 0336ch                          ; 76 02
+    jbe short 0332ch                          ; 76 02
     db  0feh, 0c1h
     ; inc cl                                    ; fe c1
@@ -4262,5 +4239,5 @@
     add ax, bx                                ; 01 d8
     cmp ax, word [bp-012h]                    ; 3b 46 ee
-    jnc short 0339bh                          ; 73 1b
+    jnc short 0335bh                          ; 73 1b
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -4268,8 +4245,8 @@
     mov word [bp+016h], ax                    ; 89 46 16
     mov ax, strict word 00009h                ; b8 09 00
-    call 02e49h                               ; e8 b8 fa
+    call 02e09h                               ; e8 b8 fa
     mov byte [bp+016h], 000h                  ; c6 46 16 00
-    jmp near 035d9h                           ; e9 41 02
-    jmp near 034bfh                           ; e9 24 01
+    jmp near 03599h                           ; e9 41 02
+    jmp near 0347fh                           ; e9 24 01
     mov AL, strict byte 006h                  ; b0 06
     mov dx, strict word 0000ah                ; ba 0a 00
@@ -4304,5 +4281,5 @@
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
-    call 02f22h                               ; e8 41 fb
+    call 02ee2h                               ; e8 41 fb
     mov AL, strict byte 0e6h                  ; b0 e6
     mov dx, 003f5h                            ; ba f5 03
@@ -4336,8 +4313,8 @@
     mov AL, strict byte 0ffh                  ; b0 ff
     out DX, AL                                ; ee
-    call 02eb3h                               ; e8 91 fa
+    call 02e73h                               ; e8 91 fa
     test al, al                               ; 84 c0
-    jne short 0343ah                          ; 75 14
-    call 02efah                               ; e8 d1 fa
+    jne short 033fah                          ; 75 14
+    call 02ebah                               ; e8 d1 fa
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -4345,5 +4322,5 @@
     mov word [bp+016h], ax                    ; 89 46 16
     mov ax, 00080h                            ; b8 80 00
-    jmp near 0338eh                           ; e9 54 ff
+    jmp near 0334eh                           ; e9 54 ff
     mov dx, 003f4h                            ; ba f4 03
     in AL, DX                                 ; ec
@@ -4352,14 +4329,14 @@
     and AL, strict byte 0c0h                  ; 24 c0
     cmp AL, strict byte 0c0h                  ; 3c c0
-    je short 03454h                           ; 74 0e
+    je short 03414h                           ; 74 0e
     push 00275h                               ; 68 75 02
     push 002a8h                               ; 68 a8 02
     push strict byte 00007h                   ; 6a 07
-    call 01966h                               ; e8 15 e5
+    call 01966h                               ; e8 55 e5
     add sp, strict byte 00006h                ; 83 c4 06
     xor si, si                                ; 31 f6
-    jmp short 0345dh                          ; eb 05
+    jmp short 0341dh                          ; eb 05
     cmp si, strict byte 00007h                ; 83 fe 07
-    jnl short 03476h                          ; 7d 19
+    jnl short 03436h                          ; 7d 19
     mov dx, 003f5h                            ; ba f5 03
     in AL, DX                                 ; ec
@@ -4371,9 +4348,9 @@
     lea dx, [si+042h]                         ; 8d 54 42
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 eb e1
+    call 0165eh                               ; e8 2b e2
     inc si                                    ; 46
-    jmp short 03458h                          ; eb e2
+    jmp short 03418h                          ; eb e2
     test byte [bp-01ah], 0c0h                 ; f6 46 e6 c0
-    je short 0348dh                           ; 74 11
+    je short 0344dh                           ; 74 11
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -4381,5 +4358,5 @@
     mov word [bp+016h], ax                    ; 89 46 16
     mov ax, strict word 00020h                ; b8 20 00
-    jmp near 0338eh                           ; e9 01 ff
+    jmp near 0334eh                           ; e9 01 ff
     mov al, ch                                ; 88 e8
     xor ah, ah                                ; 30 e4
@@ -4402,10 +4379,10 @@
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
-    call 02e62h                               ; e8 aa f9
+    call 02e22h                               ; e8 aa f9
     mov byte [bp+017h], 000h                  ; c6 46 17 00
-    jmp near 0395dh                           ; e9 9e 04
+    jmp near 0391dh                           ; e9 9e 04
     cmp byte [bp-00eh], 003h                  ; 80 7e f2 03
-    je short 034c8h                           ; 74 03
-    jmp near 035e7h                           ; e9 1f 01
+    je short 03488h                           ; 74 03
+    jmp near 035a7h                           ; e9 1f 01
     mov dx, word [bp+006h]                    ; 8b 56 06
     shr dx, 00ch                              ; c1 ea 0c
@@ -4417,5 +4394,5 @@
     mov word [bp-012h], bx                    ; 89 5e ee
     cmp ax, bx                                ; 39 d8
-    jbe short 034e4h                          ; 76 02
+    jbe short 034a4h                          ; 76 02
     db  0feh, 0c1h
     ; inc cl                                    ; fe c1
@@ -4428,6 +4405,6 @@
     add ax, bx                                ; 01 d8
     cmp ax, word [bp-012h]                    ; 3b 46 ee
-    jnc short 034fbh                          ; 73 03
-    jmp near 03380h                           ; e9 85 fe
+    jnc short 034bbh                          ; 73 03
+    jmp near 03340h                           ; e9 85 fe
     mov AL, strict byte 006h                  ; b0 06
     mov dx, strict word 0000ah                ; ba 0a 00
@@ -4462,5 +4439,5 @@
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
-    call 02f22h                               ; e8 e1 f9
+    call 02ee2h                               ; e8 e1 f9
     mov AL, strict byte 0c5h                  ; b0 c5
     mov dx, 003f5h                            ; ba f5 03
@@ -4494,8 +4471,8 @@
     mov AL, strict byte 0ffh                  ; b0 ff
     out DX, AL                                ; ee
-    call 02eb3h                               ; e8 31 f9
+    call 02e73h                               ; e8 31 f9
     test al, al                               ; 84 c0
-    jne short 03589h                          ; 75 03
-    jmp near 03426h                           ; e9 9d fe
+    jne short 03549h                          ; 75 03
+    jmp near 033e6h                           ; e9 9d fe
     mov dx, 003f4h                            ; ba f4 03
     in AL, DX                                 ; ec
@@ -4504,14 +4481,14 @@
     and AL, strict byte 0c0h                  ; 24 c0
     cmp AL, strict byte 0c0h                  ; 3c c0
-    je short 035a3h                           ; 74 0e
+    je short 03563h                           ; 74 0e
     push 00275h                               ; 68 75 02
     push 002a8h                               ; 68 a8 02
     push strict byte 00007h                   ; 6a 07
-    call 01966h                               ; e8 c6 e3
+    call 01966h                               ; e8 06 e4
     add sp, strict byte 00006h                ; 83 c4 06
     xor si, si                                ; 31 f6
-    jmp short 035ach                          ; eb 05
+    jmp short 0356ch                          ; eb 05
     cmp si, strict byte 00007h                ; 83 fe 07
-    jnl short 035c5h                          ; 7d 19
+    jnl short 03585h                          ; 7d 19
     mov dx, 003f5h                            ; ba f5 03
     in AL, DX                                 ; ec
@@ -4523,22 +4500,22 @@
     lea dx, [si+042h]                         ; 8d 54 42
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 9c e0
+    call 0165eh                               ; e8 dc e0
     inc si                                    ; 46
-    jmp short 035a7h                          ; eb e2
+    jmp short 03567h                          ; eb e2
     test byte [bp-01ah], 0c0h                 ; f6 46 e6 c0
-    jne short 035ceh                          ; 75 03
-    jmp near 034abh                           ; e9 dd fe
+    jne short 0358eh                          ; 75 03
+    jmp near 0346bh                           ; e9 dd fe
     test byte [bp-019h], 002h                 ; f6 46 e7 02
-    je short 035e0h                           ; 74 0c
+    je short 035a0h                           ; 74 0c
     mov word [bp+016h], 00300h                ; c7 46 16 00 03
     or byte [bp+01ch], 001h                   ; 80 4e 1c 01
-    jmp near 035fch                           ; e9 1c 00
+    jmp near 035bch                           ; e9 1c 00
     mov word [bp+016h], 00100h                ; c7 46 16 00 01
-    jmp short 035d9h                          ; eb f2
+    jmp short 03599h                          ; eb f2
     mov dl, byte [bp-008h]                    ; 8a 56 f8
     xor dh, dh                                ; 30 f6
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
-    call 02e62h                               ; e8 6e f8
+    call 02e22h                               ; e8 6e f8
     and byte [bp+01ch], 0feh                  ; 80 66 1c fe
     mov byte [bp+017h], 000h                  ; c6 46 17 00
@@ -4558,13 +4535,13 @@
     mov byte [bp-006h], bl                    ; 88 5e fa
     cmp bl, 001h                              ; 80 fb 01
-    jnbe short 03635h                         ; 77 12
+    jnbe short 035f5h                         ; 77 12
     cmp dl, 001h                              ; 80 fa 01
-    jnbe short 03635h                         ; 77 0d
+    jnbe short 035f5h                         ; 77 0d
     cmp AL, strict byte 04fh                  ; 3c 4f
-    jnbe short 03635h                         ; 77 09
+    jnbe short 035f5h                         ; 77 09
     test ch, ch                               ; 84 ed
-    je short 03635h                           ; 74 05
+    je short 035f5h                           ; 74 05
     cmp ch, 012h                              ; 80 fd 12
-    jbe short 0364ah                          ; 76 15
+    jbe short 0360ah                          ; 76 15
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -4572,23 +4549,23 @@
     mov word [bp+016h], ax                    ; 89 46 16
     mov ax, strict word 00001h                ; b8 01 00
-    call 02e49h                               ; e8 03 f8
+    call 02e09h                               ; e8 03 f8
     or byte [bp+01ch], 001h                   ; 80 4e 1c 01
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
-    call 03172h                               ; e8 20 fb
+    call 03132h                               ; e8 20 fb
     test ax, ax                               ; 85 c0
-    jne short 03659h                          ; 75 03
-    jmp near 0325ah                           ; e9 01 fc
+    jne short 03619h                          ; 75 03
+    jmp near 0321ah                           ; e9 01 fc
     mov dl, byte [bp-006h]                    ; 8a 56 fa
     xor dh, dh                                ; 30 f6
     mov ax, dx                                ; 89 d0
-    call 02fa5h                               ; e8 42 f9
+    call 02f65h                               ; e8 42 f9
     test ax, ax                               ; 85 c0
-    jne short 03673h                          ; 75 0c
+    jne short 03633h                          ; 75 0c
     mov ax, dx                                ; 89 d0
-    call 03079h                               ; e8 0d fa
+    call 03039h                               ; e8 0d fa
     test ax, ax                               ; 85 c0
-    jne short 03673h                          ; 75 03
-    jmp near 03330h                           ; e9 bd fc
+    jne short 03633h                          ; 75 03
+    jmp near 032f0h                           ; e9 bd fc
     mov dx, word [bp+006h]                    ; 8b 56 06
     shr dx, 00ch                              ; c1 ea 0c
@@ -4600,5 +4577,5 @@
     mov word [bp-012h], bx                    ; 89 5e ee
     cmp ax, bx                                ; 39 d8
-    jbe short 0368fh                          ; 76 02
+    jbe short 0364fh                          ; 76 02
     db  0feh, 0c1h
     ; inc cl                                    ; fe c1
@@ -4611,6 +4588,6 @@
     add ax, bx                                ; 01 d8
     cmp ax, word [bp-012h]                    ; 3b 46 ee
-    jnc short 036a6h                          ; 73 03
-    jmp near 03380h                           ; e9 da fc
+    jnc short 03666h                          ; 73 03
+    jmp near 03340h                           ; e9 da fc
     mov AL, strict byte 006h                  ; b0 06
     mov dx, strict word 0000ah                ; ba 0a 00
@@ -4645,5 +4622,5 @@
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
-    call 02f22h                               ; e8 36 f8
+    call 02ee2h                               ; e8 36 f8
     mov AL, strict byte 00fh                  ; b0 0f
     mov dx, 003f5h                            ; ba f5 03
@@ -4671,9 +4648,9 @@
     mov AL, strict byte 0f6h                  ; b0 f6
     out DX, AL                                ; ee
-    call 02eb3h                               ; e8 96 f7
+    call 02e73h                               ; e8 96 f7
     test al, al                               ; 84 c0
-    jne short 03727h                          ; 75 06
-    call 02efah                               ; e8 d6 f7
-    jmp near 0325ah                           ; e9 33 fb
+    jne short 036e7h                          ; 75 06
+    call 02ebah                               ; e8 d6 f7
+    jmp near 0321ah                           ; e9 33 fb
     mov dx, 003f4h                            ; ba f4 03
     in AL, DX                                 ; ec
@@ -4682,14 +4659,14 @@
     and AL, strict byte 0c0h                  ; 24 c0
     cmp AL, strict byte 0c0h                  ; 3c c0
-    je short 03741h                           ; 74 0e
+    je short 03701h                           ; 74 0e
     push 00275h                               ; 68 75 02
     push 002a8h                               ; 68 a8 02
     push strict byte 00007h                   ; 6a 07
-    call 01966h                               ; e8 28 e2
+    call 01966h                               ; e8 68 e2
     add sp, strict byte 00006h                ; 83 c4 06
     xor si, si                                ; 31 f6
-    jmp short 0374ah                          ; eb 05
+    jmp short 0370ah                          ; eb 05
     cmp si, strict byte 00007h                ; 83 fe 07
-    jnl short 03763h                          ; 7d 19
+    jnl short 03723h                          ; 7d 19
     mov dx, 003f5h                            ; ba f5 03
     in AL, DX                                 ; ec
@@ -4701,29 +4678,29 @@
     lea dx, [si+042h]                         ; 8d 54 42
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 fe de
+    call 0165eh                               ; e8 3e df
     inc si                                    ; 46
-    jmp short 03745h                          ; eb e2
+    jmp short 03705h                          ; eb e2
     test byte [bp-01ah], 0c0h                 ; f6 46 e6 c0
-    je short 03780h                           ; 74 17
+    je short 03740h                           ; 74 17
     test byte [bp-019h], 002h                 ; f6 46 e7 02
-    je short 03772h                           ; 74 03
-    jmp near 035d4h                           ; e9 62 fe
+    je short 03732h                           ; 74 03
+    jmp near 03594h                           ; e9 62 fe
     push 00275h                               ; 68 75 02
     push 002bch                               ; 68 bc 02
     push strict byte 00007h                   ; 6a 07
-    call 01966h                               ; e8 e9 e1
+    call 01966h                               ; e8 29 e2
     add sp, strict byte 00006h                ; 83 c4 06
     xor al, al                                ; 30 c0
     mov byte [bp+017h], al                    ; 88 46 17
     xor ah, ah                                ; 30 e4
-    call 02e49h                               ; e8 bf f6
+    call 02e09h                               ; e8 bf f6
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
     xor dx, dx                                ; 31 d2
-    call 02e62h                               ; e8 ce f6
-    jmp near 0395dh                           ; e9 c6 01
+    call 02e22h                               ; e8 ce f6
+    jmp near 0391dh                           ; e9 c6 01
     mov byte [bp-006h], al                    ; 88 46 fa
     cmp AL, strict byte 001h                  ; 3c 01
-    jbe short 037bch                          ; 76 1e
+    jbe short 0377ch                          ; 76 1e
     xor ax, ax                                ; 31 c0
     mov word [bp+016h], ax                    ; 89 46 16
@@ -4736,20 +4713,20 @@
     xor ah, ah                                ; 30 e4
     mov word [bp+012h], ax                    ; 89 46 12
-    jmp near 038d8h                           ; e9 1c 01
+    jmp near 03898h                           ; e9 1c 01
     mov ax, strict word 00010h                ; b8 10 00
-    call 016ach                               ; e8 ea de
+    call 016ach                               ; e8 2a df
     mov cl, al                                ; 88 c1
     xor ch, ch                                ; 30 ed
     test AL, strict byte 0f0h                 ; a8 f0
-    je short 037cch                           ; 74 02
+    je short 0378ch                           ; 74 02
     mov CH, strict byte 001h                  ; b5 01
     test cl, 00fh                             ; f6 c1 0f
-    je short 037d3h                           ; 74 02
+    je short 03793h                           ; 74 02
     db  0feh, 0c5h
     ; inc ch                                    ; fe c5
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    jne short 037deh                          ; 75 05
+    jne short 0379eh                          ; 75 05
     shr cl, 004h                              ; c0 e9 04
-    jmp short 037e1h                          ; eb 03
+    jmp short 037a1h                          ; eb 03
     and cl, 00fh                              ; 80 e1 0f
     mov byte [bp+011h], 000h                  ; c6 46 11 00
@@ -4767,60 +4744,60 @@
     mov word [bp+012h], ax                    ; 89 46 12
     cmp cl, 003h                              ; 80 f9 03
-    jc short 0381dh                           ; 72 15
-    jbe short 03844h                          ; 76 3a
+    jc short 037ddh                           ; 72 15
+    jbe short 03804h                          ; 76 3a
     cmp cl, 005h                              ; 80 f9 05
-    jc short 0384bh                           ; 72 3c
-    jbe short 03852h                          ; 76 41
+    jc short 0380bh                           ; 72 3c
+    jbe short 03812h                          ; 76 41
     cmp cl, 00fh                              ; 80 f9 0f
-    je short 03860h                           ; 74 4a
+    je short 03820h                           ; 74 4a
     cmp cl, 00eh                              ; 80 f9 0e
-    je short 03859h                           ; 74 3e
-    jmp short 03867h                          ; eb 4a
+    je short 03819h                           ; 74 3e
+    jmp short 03827h                          ; eb 4a
     cmp cl, 002h                              ; 80 f9 02
-    je short 0383dh                           ; 74 1b
+    je short 037fdh                           ; 74 1b
     cmp cl, 001h                              ; 80 f9 01
-    je short 03836h                           ; 74 0f
+    je short 037f6h                           ; 74 0f
     test cl, cl                               ; 84 c9
-    jne short 03867h                          ; 75 3c
+    jne short 03827h                          ; 75 3c
     mov word [bp+014h], strict word 00000h    ; c7 46 14 00 00
     mov byte [bp+013h], 000h                  ; c6 46 13 00
-    jmp short 03875h                          ; eb 3f
+    jmp short 03835h                          ; eb 3f
     mov word [bp+014h], 02709h                ; c7 46 14 09 27
-    jmp short 03875h                          ; eb 38
+    jmp short 03835h                          ; eb 38
     mov word [bp+014h], 04f0fh                ; c7 46 14 0f 4f
-    jmp short 03875h                          ; eb 31
+    jmp short 03835h                          ; eb 31
     mov word [bp+014h], 04f09h                ; c7 46 14 09 4f
-    jmp short 03875h                          ; eb 2a
+    jmp short 03835h                          ; eb 2a
     mov word [bp+014h], 04f12h                ; c7 46 14 12 4f
-    jmp short 03875h                          ; eb 23
+    jmp short 03835h                          ; eb 23
     mov word [bp+014h], 04f24h                ; c7 46 14 24 4f
-    jmp short 03875h                          ; eb 1c
+    jmp short 03835h                          ; eb 1c
     mov word [bp+014h], 0fe3fh                ; c7 46 14 3f fe
-    jmp short 03875h                          ; eb 15
+    jmp short 03835h                          ; eb 15
     mov word [bp+014h], 0feffh                ; c7 46 14 ff fe
-    jmp short 03875h                          ; eb 0e
+    jmp short 03835h                          ; eb 0e
     push 00275h                               ; 68 75 02
     push 002cdh                               ; 68 cd 02
     push strict byte 00007h                   ; 6a 07
-    call 01966h                               ; e8 f4 e0
+    call 01966h                               ; e8 34 e1
     add sp, strict byte 00006h                ; 83 c4 06
     mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
     mov al, cl                                ; 88 c8
     xor ah, ah                                ; 30 e4
-    call 03ad8h                               ; e8 57 02
+    call 03a98h                               ; e8 57 02
     mov word [bp+008h], ax                    ; 89 46 08
-    jmp near 0395dh                           ; e9 d6 00
+    jmp near 0391dh                           ; e9 d6 00
     mov byte [bp-006h], al                    ; 88 46 fa
     cmp AL, strict byte 001h                  ; 3c 01
-    jbe short 03893h                          ; 76 05
+    jbe short 03853h                          ; 76 05
     mov word [bp+016h], si                    ; 89 76 16
-    jmp short 038d8h                          ; eb 45
+    jmp short 03898h                          ; eb 45
     mov ax, strict word 00010h                ; b8 10 00
-    call 016ach                               ; e8 13 de
+    call 016ach                               ; e8 53 de
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    jne short 038a6h                          ; 75 07
+    jne short 03866h                          ; 75 07
     mov cl, al                                ; 88 c1
     shr cl, 004h                              ; c0 e9 04
-    jmp short 038abh                          ; eb 05
+    jmp short 0386bh                          ; eb 05
     mov cl, al                                ; 88 c1
     and cl, 00fh                              ; 80 e1 0f
@@ -4829,19 +4806,19 @@
     xor ah, ah                                ; 30 e4
     test cl, cl                               ; 84 c9
-    je short 038c5h                           ; 74 0d
+    je short 03885h                           ; 74 0d
     cmp cl, 001h                              ; 80 f9 01
-    jbe short 038c2h                          ; 76 05
+    jbe short 03882h                          ; 76 05
     or ah, 002h                               ; 80 cc 02
-    jmp short 038c5h                          ; eb 03
+    jmp short 03885h                          ; eb 03
     or ah, 001h                               ; 80 cc 01
     mov word [bp+016h], ax                    ; 89 46 16
-    jmp near 035fch                           ; e9 31 fd
+    jmp near 035bch                           ; e9 31 fd
     cmp AL, strict byte 001h                  ; 3c 01
-    jbe short 038deh                          ; 76 0f
+    jbe short 0389eh                          ; 76 0f
     mov word [bp+016h], si                    ; 89 76 16
     mov ax, strict word 00001h                ; b8 01 00
-    call 02e49h                               ; e8 71 f5
+    call 02e09h                               ; e8 71 f5
     mov word [bp+01ch], dx                    ; 89 56 1c
-    jmp near 035fch                           ; e9 1e fd
+    jmp near 035bch                           ; e9 1e fd
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -4849,39 +4826,39 @@
     mov word [bp+016h], ax                    ; 89 46 16
     mov ax, strict word 00006h                ; b8 06 00
-    jmp near 03227h                           ; e9 38 f9
+    jmp near 031e7h                           ; e9 38 f9
     mov byte [bp-006h], al                    ; 88 46 fa
     mov bl, cl                                ; 88 cb
     cmp AL, strict byte 001h                  ; 3c 01
-    jnbe short 038cfh                         ; 77 d7
+    jnbe short 0388fh                         ; 77 d7
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
-    call 03172h                               ; e8 72 f8
+    call 03132h                               ; e8 72 f8
     test ax, ax                               ; 85 c0
-    jne short 03907h                          ; 75 03
-    jmp near 0325ah                           ; e9 53 f9
+    jne short 038c7h                          ; 75 03
+    jmp near 0321ah                           ; e9 53 f9
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    je short 03912h                           ; 74 05
+    je short 038d2h                           ; 74 05
     mov dx, 00091h                            ; ba 91 00
-    jmp short 03915h                          ; eb 03
+    jmp short 038d5h                          ; eb 03
     mov dx, 00090h                            ; ba 90 00
     mov word [bp-012h], dx                    ; 89 56 ee
     mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 32 dd
+    call 01650h                               ; e8 72 dd
     and AL, strict byte 00fh                  ; 24 0f
     cmp bl, 002h                              ; 80 fb 02
-    jc short 03934h                           ; 72 0f
-    jbe short 03940h                          ; 76 19
+    jc short 038f4h                           ; 72 0f
+    jbe short 03900h                          ; 76 19
     cmp bl, 004h                              ; 80 fb 04
-    je short 0393ch                           ; 74 10
+    je short 038fch                           ; 74 10
     cmp bl, 003h                              ; 80 fb 03
-    je short 03944h                           ; 74 13
-    jmp near 03219h                           ; e9 e5 f8
+    je short 03904h                           ; 74 13
+    jmp near 031d9h                           ; e9 e5 f8
     cmp bl, 001h                              ; 80 fb 01
-    je short 0393ch                           ; 74 03
-    jmp near 03219h                           ; e9 dd f8
+    je short 038fch                           ; 74 03
+    jmp near 031d9h                           ; e9 dd f8
     or AL, strict byte 090h                   ; 0c 90
-    jmp short 03946h                          ; eb 06
+    jmp short 03906h                          ; eb 06
     or AL, strict byte 070h                   ; 0c 70
-    jmp short 03946h                          ; eb 02
+    jmp short 03906h                          ; eb 02
     or AL, strict byte 010h                   ; 0c 10
     mov bl, al                                ; 88 c3
@@ -4889,11 +4866,11 @@
     mov dx, word [bp-012h]                    ; 8b 56 ee
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 0b dd
+    call 0165eh                               ; e8 4b dd
     xor al, al                                ; 30 c0
     mov byte [bp+017h], al                    ; 88 46 17
     xor ah, ah                                ; 30 e4
-    call 02e49h                               ; e8 ec f4
+    call 02e09h                               ; e8 ec f4
     and byte [bp+01ch], 0feh                  ; 80 66 1c fe
-    jmp near 035fch                           ; e9 98 fc
+    jmp near 035bch                           ; e9 98 fc
     mov byte [bp-006h], al                    ; 88 46 fa
     mov ch, ah                                ; 88 e5
@@ -4906,22 +4883,22 @@
     mov byte [bp-008h], bl                    ; 88 5e f8
     cmp AL, strict byte 001h                  ; 3c 01
-    jbe short 03983h                          ; 76 03
-    jmp near 038cfh                           ; e9 4c ff
+    jbe short 03943h                          ; 76 03
+    jmp near 0388fh                           ; e9 4c ff
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
-    call 03172h                               ; e8 e7 f7
+    call 03132h                               ; e8 e7 f7
     test ax, ax                               ; 85 c0
-    jne short 03992h                          ; 75 03
-    jmp near 0325ah                           ; e9 c8 f8
+    jne short 03952h                          ; 75 03
+    jmp near 0321ah                           ; e9 c8 f8
     mov dl, byte [bp-006h]                    ; 8a 56 fa
     xor dh, dh                                ; 30 f6
     mov ax, dx                                ; 89 d0
-    call 02fa5h                               ; e8 09 f6
+    call 02f65h                               ; e8 09 f6
     test ax, ax                               ; 85 c0
-    jne short 039bah                          ; 75 1a
+    jne short 0397ah                          ; 75 1a
     mov ax, dx                                ; 89 d0
-    call 03079h                               ; e8 d4 f6
+    call 03039h                               ; e8 d4 f6
     test ax, ax                               ; 85 c0
-    jne short 039bah                          ; 75 11
+    jne short 0397ah                          ; 75 11
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -4929,85 +4906,85 @@
     mov word [bp+016h], ax                    ; 89 46 16
     mov ax, strict word 0000ch                ; b8 0c 00
-    jmp near 03227h                           ; e9 6d f8
+    jmp near 031e7h                           ; e9 6d f8
     mov ax, strict word 00010h                ; b8 10 00
-    call 016ach                               ; e8 ec dc
+    call 016ach                               ; e8 2c dd
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    jne short 039cdh                          ; 75 07
+    jne short 0398dh                          ; 75 07
     mov cl, al                                ; 88 c1
     shr cl, 004h                              ; c0 e9 04
-    jmp short 039d2h                          ; eb 05
+    jmp short 03992h                          ; eb 05
     mov cl, al                                ; 88 c1
     and cl, 00fh                              ; 80 e1 0f
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    je short 039ddh                           ; 74 05
+    je short 0399dh                           ; 74 05
     mov dx, 00091h                            ; ba 91 00
-    jmp short 039e0h                          ; eb 03
+    jmp short 039a0h                          ; eb 03
     mov dx, 00090h                            ; ba 90 00
     mov word [bp-012h], dx                    ; 89 56 ee
     mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 67 dc
+    call 01650h                               ; e8 a7 dc
     and AL, strict byte 00fh                  ; 24 0f
     cmp cl, 003h                              ; 80 f9 03
-    jc short 03a0ch                           ; 72 1c
+    jc short 039cch                           ; 72 1c
     mov ah, al                                ; 88 c4
     or ah, 090h                               ; 80 cc 90
     cmp cl, 003h                              ; 80 f9 03
-    jbe short 03a43h                          ; 76 49
+    jbe short 03a03h                          ; 76 49
     mov dl, al                                ; 88 c2
     or dl, 010h                               ; 80 ca 10
     cmp cl, 005h                              ; 80 f9 05
-    je short 03a50h                           ; 74 4c
+    je short 03a10h                           ; 74 4c
     cmp cl, 004h                              ; 80 f9 04
-    je short 03a56h                           ; 74 4d
-    jmp near 03a87h                           ; e9 7b 00
+    je short 03a16h                           ; 74 4d
+    jmp near 03a47h                           ; e9 7b 00
     cmp cl, 002h                              ; 80 f9 02
-    je short 03a25h                           ; 74 14
+    je short 039e5h                           ; 74 14
     cmp cl, 001h                              ; 80 f9 01
-    jne short 03a54h                          ; 75 3e
+    jne short 03a14h                          ; 75 3e
     cmp byte [bp-008h], 027h                  ; 80 7e f8 27
-    jne short 03a54h                          ; 75 38
+    jne short 03a14h                          ; 75 38
     cmp ch, 009h                              ; 80 fd 09
-    jne short 03a6ah                          ; 75 49
+    jne short 03a2ah                          ; 75 49
     or AL, strict byte 090h                   ; 0c 90
-    jmp short 03a6ah                          ; eb 45
+    jmp short 03a2ah                          ; eb 45
     cmp byte [bp-008h], 027h                  ; 80 7e f8 27
-    jne short 03a34h                          ; 75 09
+    jne short 039f4h                          ; 75 09
     cmp ch, 009h                              ; 80 fd 09
-    jne short 03a34h                          ; 75 04
+    jne short 039f4h                          ; 75 04
     or AL, strict byte 070h                   ; 0c 70
-    jmp short 03a6ah                          ; eb 36
+    jmp short 03a2ah                          ; eb 36
     cmp byte [bp-008h], 04fh                  ; 80 7e f8 4f
-    jne short 03a87h                          ; 75 4d
+    jne short 03a47h                          ; 75 4d
     cmp ch, 00fh                              ; 80 fd 0f
-    jne short 03a87h                          ; 75 48
+    jne short 03a47h                          ; 75 48
     or AL, strict byte 010h                   ; 0c 10
-    jmp short 03a87h                          ; eb 44
+    jmp short 03a47h                          ; eb 44
     cmp byte [bp-008h], 04fh                  ; 80 7e f8 4f
-    jne short 03a87h                          ; 75 3e
+    jne short 03a47h                          ; 75 3e
     cmp ch, 009h                              ; 80 fd 09
-    je short 03a52h                           ; 74 04
-    jmp short 03a87h                          ; eb 37
-    jmp short 03a6ch                          ; eb 1a
+    je short 03a12h                           ; 74 04
+    jmp short 03a47h                          ; eb 37
+    jmp short 03a2ch                          ; eb 1a
     mov al, ah                                ; 88 e0
-    jmp short 03a87h                          ; eb 31
+    jmp short 03a47h                          ; eb 31
     cmp byte [bp-008h], 04fh                  ; 80 7e f8 4f
-    jne short 03a87h                          ; 75 2b
+    jne short 03a47h                          ; 75 2b
     cmp ch, 009h                              ; 80 fd 09
-    jne short 03a63h                          ; 75 02
-    jmp short 03a52h                          ; eb ef
+    jne short 03a23h                          ; 75 02
+    jmp short 03a12h                          ; eb ef
     cmp ch, 012h                              ; 80 fd 12
-    jne short 03a87h                          ; 75 1f
+    jne short 03a47h                          ; 75 1f
     mov al, dl                                ; 88 d0
-    jmp short 03a87h                          ; eb 1b
+    jmp short 03a47h                          ; eb 1b
     cmp byte [bp-008h], 04fh                  ; 80 7e f8 4f
-    jne short 03a87h                          ; 75 15
+    jne short 03a47h                          ; 75 15
     cmp ch, 009h                              ; 80 fd 09
-    jne short 03a79h                          ; 75 02
-    jmp short 03a52h                          ; eb d9
+    jne short 03a39h                          ; 75 02
+    jmp short 03a12h                          ; eb d9
     cmp ch, 012h                              ; 80 fd 12
-    jne short 03a80h                          ; 75 02
-    jmp short 03a68h                          ; eb e8
+    jne short 03a40h                          ; 75 02
+    jmp short 03a28h                          ; eb e8
     cmp ch, 024h                              ; 80 fd 24
-    jne short 03a87h                          ; 75 02
+    jne short 03a47h                          ; 75 02
     or AL, strict byte 0d0h                   ; 0c d0
     mov dl, al                                ; 88 c2
@@ -5015,21 +4992,21 @@
     sar dx, 004h                              ; c1 fa 04
     test dl, 001h                             ; f6 c2 01
-    jne short 03a96h                          ; 75 03
-    jmp near 039a9h                           ; e9 13 ff
+    jne short 03a56h                          ; 75 03
+    jmp near 03969h                           ; e9 13 ff
     mov bl, al                                ; 88 c3
     xor bh, bh                                ; 30 ff
     mov dx, word [bp-012h]                    ; 8b 56 ee
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 bb db
+    call 0165eh                               ; e8 fb db
     mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
     mov al, cl                                ; 88 c8
     xor ah, ah                                ; 30 e4
-    call 03ad8h                               ; e8 29 00
+    call 03a98h                               ; e8 29 00
     mov word [bp+008h], ax                    ; 89 46 08
-    jmp near 03953h                           ; e9 9e fe
+    jmp near 03913h                           ; e9 9e fe
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 63 de
+    call 01923h                               ; e8 a3 de
     mov ax, word [bp+016h]                    ; 8b 46 16
     shr ax, 008h                              ; c1 e8 08
@@ -5038,8 +5015,8 @@
     push 002e2h                               ; 68 e2 02
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 94 de
+    call 01966h                               ; e8 d4 de
     add sp, strict byte 00008h                ; 83 c4 08
-    jmp near 03219h                           ; e9 41 f7
-get_floppy_dpt_:                             ; 0xf3ad8 LB 0x30
+    jmp near 031d9h                           ; e9 41 f7
+get_floppy_dpt_:                             ; 0xf3a98 LB 0x30
     push bx                                   ; 53
     push dx                                   ; 52
@@ -5048,17 +5025,17 @@
     mov dl, al                                ; 88 c2
     xor ax, ax                                ; 31 c0
-    jmp short 03ae9h                          ; eb 06
+    jmp short 03aa9h                          ; eb 06
     inc ax                                    ; 40
     cmp ax, strict word 00007h                ; 3d 07 00
-    jnc short 03b01h                          ; 73 18
+    jnc short 03ac1h                          ; 73 18
     mov bx, ax                                ; 89 c3
     add bx, ax                                ; 01 c3
     cmp dl, byte [word bx+0005bh]             ; 3a 97 5b 00
-    jne short 03ae3h                          ; 75 f0
+    jne short 03aa3h                          ; 75 f0
     mov al, byte [word bx+0005ch]             ; 8a 87 5c 00
     xor ah, ah                                ; 30 e4
     imul ax, ax, strict byte 0000dh           ; 6b c0 0d
     add ax, strict word 00000h                ; 05 00 00
-    jmp short 03b04h                          ; eb 03
+    jmp short 03ac4h                          ; eb 03
     mov ax, strict word 00041h                ; b8 41 00
     pop bp                                    ; 5d
@@ -5066,5 +5043,5 @@
     pop bx                                    ; 5b
     retn                                      ; c3
-dummy_soft_reset_:                           ; 0xf3b08 LB 0x7
+dummy_soft_reset_:                           ; 0xf3ac8 LB 0x7
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -5072,39 +5049,39 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-_cdemu_init:                                 ; 0xf3b0f LB 0x18
+_cdemu_init:                                 ; 0xf3acf LB 0x18
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 51 db
+    call 0166ch                               ; e8 91 db
     xor bx, bx                                ; 31 db
     mov dx, 00366h                            ; ba 66 03
-    call 0165eh                               ; e8 3b db
+    call 0165eh                               ; e8 7b db
     mov sp, bp                                ; 89 ec
     pop bp                                    ; 5d
     retn                                      ; c3
-_cdemu_isactive:                             ; 0xf3b27 LB 0x16
+_cdemu_isactive:                             ; 0xf3ae7 LB 0x16
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 39 db
+    call 0166ch                               ; e8 79 db
     mov dx, 00366h                            ; ba 66 03
-    call 01650h                               ; e8 17 db
+    call 01650h                               ; e8 57 db
     mov sp, bp                                ; 89 ec
     pop bp                                    ; 5d
     retn                                      ; c3
-_cdemu_emulated_drive:                       ; 0xf3b3d LB 0x16
+_cdemu_emulated_drive:                       ; 0xf3afd LB 0x16
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 23 db
+    call 0166ch                               ; e8 63 db
     mov dx, 00368h                            ; ba 68 03
-    call 01650h                               ; e8 01 db
+    call 01650h                               ; e8 41 db
     mov sp, bp                                ; 89 ec
     pop bp                                    ; 5d
     retn                                      ; c3
-_int13_eltorito:                             ; 0xf3b53 LB 0x190
+_int13_eltorito:                             ; 0xf3b13 LB 0x190
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -5113,5 +5090,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 0b db
+    call 0166ch                               ; e8 4b db
     mov si, 00366h                            ; be 66 03
     mov di, ax                                ; 89 c7
@@ -5119,27 +5096,27 @@
     shr ax, 008h                              ; c1 e8 08
     cmp ax, strict word 0004bh                ; 3d 4b 00
-    jc short 03b7bh                           ; 72 0a
-    jbe short 03ba2h                          ; 76 2f
+    jc short 03b3bh                           ; 72 0a
+    jbe short 03b62h                          ; 76 2f
     cmp ax, strict word 0004dh                ; 3d 4d 00
-    jbe short 03b80h                          ; 76 08
-    jmp near 03ca7h                           ; e9 2c 01
+    jbe short 03b40h                          ; 76 08
+    jmp near 03c67h                           ; e9 2c 01
     cmp ax, strict word 0004ah                ; 3d 4a 00
-    jne short 03b9fh                          ; 75 1f
+    jne short 03b5fh                          ; 75 1f
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 98 dd
+    call 01923h                               ; e8 d8 dd
     push word [bp+016h]                       ; ff 76 16
     push 002fch                               ; 68 fc 02
     push 0030bh                               ; 68 0b 03
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 cd dd
+    call 01966h                               ; e8 0d de
     add sp, strict byte 00008h                ; 83 c4 08
-    jmp near 03cc2h                           ; e9 23 01
-    jmp near 03ca7h                           ; e9 05 01
+    jmp near 03c82h                           ; e9 23 01
+    jmp near 03c67h                           ; e9 05 01
     mov dx, word [bp+00ah]                    ; 8b 56 0a
     mov ax, word [bp+004h]                    ; 8b 46 04
     mov bx, strict word 00013h                ; bb 13 00
-    call 0165eh                               ; e8 b0 da
+    call 0165eh                               ; e8 f0 da
     mov es, di                                ; 8e c7
     mov bl, byte [es:si+001h]                 ; 26 8a 5c 01
@@ -5148,5 +5125,5 @@
     inc dx                                    ; 42
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 0165eh                               ; e8 9e da
+    call 0165eh                               ; e8 de da
     mov es, di                                ; 8e c7
     mov bl, byte [es:si+002h]                 ; 26 8a 5c 02
@@ -5156,5 +5133,5 @@
     inc dx                                    ; 42
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 0165eh                               ; e8 8b da
+    call 0165eh                               ; e8 cb da
     mov es, di                                ; 8e c7
     mov bl, byte [es:si+003h]                 ; 26 8a 5c 03
@@ -5163,5 +5140,5 @@
     add dx, strict byte 00003h                ; 83 c2 03
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 0165eh                               ; e8 77 da
+    call 0165eh                               ; e8 b7 da
     mov es, di                                ; 8e c7
     mov bx, word [es:si+008h]                 ; 26 8b 5c 08
@@ -5170,5 +5147,5 @@
     add dx, strict byte 00004h                ; 83 c2 04
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 0169ah                               ; e8 9d da
+    call 0169ah                               ; e8 dd da
     mov es, di                                ; 8e c7
     mov bx, word [es:si+004h]                 ; 26 8b 5c 04
@@ -5176,5 +5153,5 @@
     add dx, strict byte 00008h                ; 83 c2 08
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 0167ah                               ; e8 6b da
+    call 0167ah                               ; e8 ab da
     mov es, di                                ; 8e c7
     mov bx, word [es:si+006h]                 ; 26 8b 5c 06
@@ -5182,5 +5159,5 @@
     add dx, strict byte 0000ah                ; 83 c2 0a
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 0167ah                               ; e8 59 da
+    call 0167ah                               ; e8 99 da
     mov es, di                                ; 8e c7
     mov bx, word [es:si+00ch]                 ; 26 8b 5c 0c
@@ -5188,5 +5165,5 @@
     add dx, strict byte 0000ch                ; 83 c2 0c
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 0167ah                               ; e8 47 da
+    call 0167ah                               ; e8 87 da
     mov es, di                                ; 8e c7
     mov bx, word [es:si+00eh]                 ; 26 8b 5c 0e
@@ -5194,5 +5171,5 @@
     add dx, strict byte 0000eh                ; 83 c2 0e
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 0167ah                               ; e8 35 da
+    call 0167ah                               ; e8 75 da
     mov es, di                                ; 8e c7
     mov bl, byte [es:si+012h]                 ; 26 8a 5c 12
@@ -5201,5 +5178,5 @@
     add dx, strict byte 00010h                ; 83 c2 10
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 0165eh                               ; e8 05 da
+    call 0165eh                               ; e8 45 da
     mov es, di                                ; 8e c7
     mov bl, byte [es:si+014h]                 ; 26 8a 5c 14
@@ -5208,5 +5185,5 @@
     add dx, strict byte 00011h                ; 83 c2 11
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 0165eh                               ; e8 f1 d9
+    call 0165eh                               ; e8 31 da
     mov es, di                                ; 8e c7
     mov bl, byte [es:si+010h]                 ; 26 8a 5c 10
@@ -5215,7 +5192,7 @@
     add dx, strict byte 00012h                ; 83 c2 12
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 0165eh                               ; e8 dd d9
+    call 0165eh                               ; e8 1d da
     test byte [bp+016h], 0ffh                 ; f6 46 16 ff
-    jne short 03c8dh                          ; 75 06
+    jne short 03c4dh                          ; 75 06
     mov es, di                                ; 8e c7
     mov byte [es:si], 000h                    ; 26 c6 04 00
@@ -5224,5 +5201,5 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 c2 d9
+    call 0165eh                               ; e8 02 da
     and byte [bp+01ch], 0feh                  ; 80 66 1c fe
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -5234,5 +5211,5 @@
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 71 dc
+    call 01923h                               ; e8 b1 dc
     mov ax, word [bp+016h]                    ; 8b 46 16
     shr ax, 008h                              ; c1 e8 08
@@ -5240,5 +5217,5 @@
     push 002fch                               ; 68 fc 02
     push 00333h                               ; 68 33 03
-    jmp near 03b94h                           ; e9 d2 fe
+    jmp near 03b54h                           ; e9 d2 fe
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -5250,8 +5227,8 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 81 d9
+    call 0165eh                               ; e8 c1 d9
     or byte [bp+01ch], 001h                   ; 80 4e 1c 01
-    jmp short 03ca0h                          ; eb bd
-device_is_cdrom_:                            ; 0xf3ce3 LB 0x35
+    jmp short 03c60h                          ; eb bd
+device_is_cdrom_:                            ; 0xf3ca3 LB 0x35
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -5261,9 +5238,9 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 79 d9
+    call 0166ch                               ; e8 b9 d9
     cmp bl, 010h                              ; 80 fb 10
-    jc short 03cfch                           ; 72 04
+    jc short 03cbch                           ; 72 04
     xor ax, ax                                ; 31 c0
-    jmp short 03d11h                          ; eb 15
+    jmp short 03cd1h                          ; eb 15
     xor bh, bh                                ; 30 ff
     imul bx, bx, strict byte 0001ch           ; 6b db 1c
@@ -5271,5 +5248,5 @@
     add bx, 00122h                            ; 81 c3 22 01
     cmp byte [es:bx+023h], 005h               ; 26 80 7f 23 05
-    jne short 03cf8h                          ; 75 ea
+    jne short 03cb8h                          ; 75 ea
     mov ax, strict word 00001h                ; b8 01 00
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -5278,5 +5255,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-cdrom_boot_:                                 ; 0xf3d18 LB 0x434
+cdrom_boot_:                                 ; 0xf3cd8 LB 0x434
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -5289,5 +5266,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 3f d9
+    call 0166ch                               ; e8 7f d9
     mov word [bp-01ah], ax                    ; 89 46 e6
     mov si, 00366h                            ; be 66 03
@@ -5296,22 +5273,22 @@
     mov word [bp-012h], ax                    ; 89 46 ee
     mov byte [bp-00ch], 000h                  ; c6 46 f4 00
-    jmp short 03d4dh                          ; eb 09
+    jmp short 03d0dh                          ; eb 09
     inc byte [bp-00ch]                        ; fe 46 f4
     cmp byte [bp-00ch], 010h                  ; 80 7e f4 10
-    jnc short 03d59h                          ; 73 0c
+    jnc short 03d19h                          ; 73 0c
     mov al, byte [bp-00ch]                    ; 8a 46 f4
     xor ah, ah                                ; 30 e4
-    call 03ce3h                               ; e8 8e ff
+    call 03ca3h                               ; e8 8e ff
     test ax, ax                               ; 85 c0
-    je short 03d44h                           ; 74 eb
+    je short 03d04h                           ; 74 eb
     cmp byte [bp-00ch], 010h                  ; 80 7e f4 10
-    jc short 03d65h                           ; 72 06
+    jc short 03d25h                           ; 72 06
     mov ax, strict word 00002h                ; b8 02 00
-    jmp near 040e9h                           ; e9 84 03
+    jmp near 040a9h                           ; e9 84 03
     mov cx, strict word 0000ch                ; b9 0c 00
     xor bx, bx                                ; 31 db
     mov dx, ss                                ; 8c d2
     lea ax, [bp-026h]                         ; 8d 46 da
-    call 0a03ah                               ; e8 c8 62
+    call 09fbah                               ; e8 88 62
     mov word [bp-026h], strict word 00028h    ; c7 46 da 28 00
     mov ax, strict word 00011h                ; b8 11 00
@@ -5330,8 +5307,8 @@
     mov word [es:bx+010h], 00800h             ; 26 c7 47 10 00 08
     mov byte [bp-00eh], 000h                  ; c6 46 f2 00
-    jmp short 03db0h                          ; eb 09
+    jmp short 03d70h                          ; eb 09
     inc byte [bp-00eh]                        ; fe 46 f2
     cmp byte [bp-00eh], 004h                  ; 80 7e f2 04
-    jnbe short 03dech                         ; 77 3c
+    jnbe short 03dach                         ; 77 3c
     mov al, byte [bp-00ch]                    ; 8a 46 f4
     xor ah, ah                                ; 30 e4
@@ -5357,33 +5334,33 @@
     call word [word di+0006ah]                ; ff 95 6a 00
     test ax, ax                               ; 85 c0
-    jne short 03da7h                          ; 75 bb
+    jne short 03d67h                          ; 75 bb
     test ax, ax                               ; 85 c0
-    je short 03df6h                           ; 74 06
+    je short 03db6h                           ; 74 06
     mov ax, strict word 00003h                ; b8 03 00
-    jmp near 040e9h                           ; e9 f3 02
+    jmp near 040a9h                           ; e9 f3 02
     cmp byte [bp-00826h], 000h                ; 80 be da f7 00
-    je short 03e03h                           ; 74 06
+    je short 03dc3h                           ; 74 06
     mov ax, strict word 00004h                ; b8 04 00
-    jmp near 040e9h                           ; e9 e6 02
+    jmp near 040a9h                           ; e9 e6 02
     xor di, di                                ; 31 ff
-    jmp short 03e0dh                          ; eb 06
+    jmp short 03dcdh                          ; eb 06
     inc di                                    ; 47
     cmp di, strict byte 00005h                ; 83 ff 05
-    jnc short 03e1dh                          ; 73 10
+    jnc short 03dddh                          ; 73 10
     mov al, byte [bp+di-00825h]               ; 8a 83 db f7
     cmp al, byte [di+00da8h]                  ; 3a 85 a8 0d
-    je short 03e07h                           ; 74 f0
+    je short 03dc7h                           ; 74 f0
     mov ax, strict word 00005h                ; b8 05 00
-    jmp near 040e9h                           ; e9 cc 02
+    jmp near 040a9h                           ; e9 cc 02
     xor di, di                                ; 31 ff
-    jmp short 03e27h                          ; eb 06
+    jmp short 03de7h                          ; eb 06
     inc di                                    ; 47
     cmp di, strict byte 00017h                ; 83 ff 17
-    jnc short 03e37h                          ; 73 10
+    jnc short 03df7h                          ; 73 10
     mov al, byte [bp+di-0081fh]               ; 8a 83 e1 f7
     cmp al, byte [di+00daeh]                  ; 3a 85 ae 0d
-    je short 03e21h                           ; 74 f0
+    je short 03de1h                           ; 74 f0
     mov ax, strict word 00006h                ; b8 06 00
-    jmp near 040e9h                           ; e9 b2 02
+    jmp near 040a9h                           ; e9 b2 02
     mov ax, word [bp-007dfh]                  ; 8b 86 21 f8
     mov dx, word [bp-007ddh]                  ; 8b 96 23 f8
@@ -5420,36 +5397,36 @@
     call word [word di+0006ah]                ; ff 95 6a 00
     test ax, ax                               ; 85 c0
-    je short 03e99h                           ; 74 06
+    je short 03e59h                           ; 74 06
     mov ax, strict word 00007h                ; b8 07 00
-    jmp near 040e9h                           ; e9 50 02
+    jmp near 040a9h                           ; e9 50 02
     cmp byte [bp-00826h], 001h                ; 80 be da f7 01
-    je short 03ea6h                           ; 74 06
+    je short 03e66h                           ; 74 06
     mov ax, strict word 00008h                ; b8 08 00
-    jmp near 040e9h                           ; e9 43 02
+    jmp near 040a9h                           ; e9 43 02
     cmp byte [bp-00825h], 000h                ; 80 be db f7 00
-    je short 03eb3h                           ; 74 06
+    je short 03e73h                           ; 74 06
     mov ax, strict word 00009h                ; b8 09 00
-    jmp near 040e9h                           ; e9 36 02
+    jmp near 040a9h                           ; e9 36 02
     cmp byte [bp-00808h], 055h                ; 80 be f8 f7 55
-    je short 03ec0h                           ; 74 06
+    je short 03e80h                           ; 74 06
     mov ax, strict word 0000ah                ; b8 0a 00
-    jmp near 040e9h                           ; e9 29 02
+    jmp near 040a9h                           ; e9 29 02
     cmp byte [bp-00807h], 0aah                ; 80 be f9 f7 aa
-    jne short 03ebah                          ; 75 f3
+    jne short 03e7ah                          ; 75 f3
     cmp byte [bp-00806h], 088h                ; 80 be fa f7 88
-    je short 03ed4h                           ; 74 06
+    je short 03e94h                           ; 74 06
     mov ax, strict word 0000bh                ; b8 0b 00
-    jmp near 040e9h                           ; e9 15 02
+    jmp near 040a9h                           ; e9 15 02
     mov al, byte [bp-00805h]                  ; 8a 86 fb f7
     mov es, [bp-016h]                         ; 8e 46 ea
     mov byte [es:si+001h], al                 ; 26 88 44 01
     cmp byte [bp-00805h], 000h                ; 80 be fb f7 00
-    jne short 03eedh                          ; 75 07
+    jne short 03eadh                          ; 75 07
     mov byte [es:si+002h], 0e0h               ; 26 c6 44 02 e0
-    jmp short 03f00h                          ; eb 13
+    jmp short 03ec0h                          ; eb 13
     cmp byte [bp-00805h], 004h                ; 80 be fb f7 04
-    jnc short 03efbh                          ; 73 07
+    jnc short 03ebbh                          ; 73 07
     mov byte [es:si+002h], 000h               ; 26 c6 44 02 00
-    jmp short 03f00h                          ; eb 05
+    jmp short 03ec0h                          ; eb 05
     mov byte [es:si+002h], 080h               ; 26 c6 44 02 80
     mov bl, byte [bp-00ch]                    ; 8a 5e f4
@@ -5470,5 +5447,5 @@
     mov word [bp-010h], ax                    ; 89 46 f0
     test ax, ax                               ; 85 c0
-    jne short 03f2fh                          ; 75 05
+    jne short 03eefh                          ; 75 05
     mov word [bp-010h], 007c0h                ; c7 46 f0 c0 07
     mov ax, word [bp-010h]                    ; 8b 46 f0
@@ -5479,9 +5456,9 @@
     mov word [es:si+00eh], di                 ; 26 89 7c 0e
     test di, di                               ; 85 ff
-    je short 03f51h                           ; 74 06
+    je short 03f11h                           ; 74 06
     cmp di, 00400h                            ; 81 ff 00 04
-    jbe short 03f57h                          ; 76 06
+    jbe short 03f17h                          ; 76 06
     mov ax, strict word 0000ch                ; b8 0c 00
-    jmp near 040e9h                           ; e9 92 01
+    jmp near 040a9h                           ; e9 92 01
     mov ax, word [bp-007feh]                  ; 8b 86 02 f8
     mov dx, word [bp-007fch]                  ; 8b 96 04 f8
@@ -5527,5 +5504,5 @@
     sal ax, 1                                 ; d1 e0
     rcl di, 1                                 ; d1 d7
-    loop 03fcbh                               ; e2 fa
+    loop 03f8bh                               ; e2 fa
     push di                                   ; 57
     push ax                                   ; 50
@@ -5542,31 +5519,31 @@
     mov word [es:bx+020h], strict word 00000h ; 26 c7 47 20 00 00
     test ax, ax                               ; 85 c0
-    je short 03fffh                           ; 74 06
+    je short 03fbfh                           ; 74 06
     mov ax, strict word 0000dh                ; b8 0d 00
-    jmp near 040e9h                           ; e9 ea 00
+    jmp near 040a9h                           ; e9 ea 00
     mov es, [bp-016h]                         ; 8e 46 ea
     mov al, byte [es:si+001h]                 ; 26 8a 44 01
     cmp AL, strict byte 002h                  ; 3c 02
-    jc short 04017h                           ; 72 0d
-    jbe short 04032h                          ; 76 26
+    jc short 03fd7h                           ; 72 0d
+    jbe short 03ff2h                          ; 76 26
     cmp AL, strict byte 004h                  ; 3c 04
-    je short 04042h                           ; 74 32
+    je short 04002h                           ; 74 32
     cmp AL, strict byte 003h                  ; 3c 03
-    je short 0403ah                           ; 74 26
-    jmp near 0408eh                           ; e9 77 00
+    je short 03ffah                           ; 74 26
+    jmp near 0404eh                           ; e9 77 00
     cmp AL, strict byte 001h                  ; 3c 01
-    jne short 0408eh                          ; 75 73
+    jne short 0404eh                          ; 75 73
     mov es, [bp-016h]                         ; 8e 46 ea
     mov word [es:si+014h], strict word 0000fh ; 26 c7 44 14 0f 00
     mov word [es:si+012h], strict word 00050h ; 26 c7 44 12 50 00
     mov word [es:si+010h], strict word 00002h ; 26 c7 44 10 02 00
-    jmp short 0408eh                          ; eb 5c
+    jmp short 0404eh                          ; eb 5c
     mov word [es:si+014h], strict word 00012h ; 26 c7 44 14 12 00
-    jmp short 04024h                          ; eb ea
+    jmp short 03fe4h                          ; eb ea
     mov word [es:si+014h], strict word 00024h ; 26 c7 44 14 24 00
-    jmp short 04024h                          ; eb e2
+    jmp short 03fe4h                          ; eb e2
     mov dx, 001c4h                            ; ba c4 01
     mov ax, word [bp-010h]                    ; 8b 46 f0
-    call 01650h                               ; e8 05 d6
+    call 01650h                               ; e8 45 d6
     and AL, strict byte 03fh                  ; 24 3f
     xor ah, ah                                ; 30 e4
@@ -5575,5 +5552,5 @@
     mov dx, 001c4h                            ; ba c4 01
     mov ax, word [bp-010h]                    ; 8b 46 f0
-    call 01650h                               ; e8 f1 d5
+    call 01650h                               ; e8 31 d6
     xor ah, ah                                ; 30 e4
     mov bx, ax                                ; 89 c3
@@ -5581,5 +5558,5 @@
     mov dx, 001c5h                            ; ba c5 01
     mov ax, word [bp-010h]                    ; 8b 46 f0
-    call 01650h                               ; e8 e1 d5
+    call 01650h                               ; e8 21 d6
     xor ah, ah                                ; 30 e4
     add ax, bx                                ; 01 d8
@@ -5589,5 +5566,5 @@
     mov dx, 001c3h                            ; ba c3 01
     mov ax, word [bp-010h]                    ; 8b 46 f0
-    call 01650h                               ; e8 cc d5
+    call 01650h                               ; e8 0c d6
     xor ah, ah                                ; 30 e4
     inc ax                                    ; 40
@@ -5596,10 +5573,10 @@
     mov es, [bp-016h]                         ; 8e 46 ea
     cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
-    je short 040cfh                           ; 74 37
+    je short 0408fh                           ; 74 37
     cmp byte [es:si+002h], 000h               ; 26 80 7c 02 00
-    jne short 040b7h                          ; 75 18
+    jne short 04077h                          ; 75 18
     mov dx, strict word 00010h                ; ba 10 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 a8 d5
+    call 01650h                               ; e8 e8 d5
     mov bl, al                                ; 88 c3
     or bl, 041h                               ; 80 cb 41
@@ -5607,8 +5584,8 @@
     mov dx, strict word 00010h                ; ba 10 00
     mov ax, strict word 00040h                ; b8 40 00
-    jmp short 040cch                          ; eb 15
+    jmp short 0408ch                          ; eb 15
     mov dx, 00304h                            ; ba 04 03
     mov ax, word [bp-01ah]                    ; 8b 46 e6
-    call 01650h                               ; e8 90 d5
+    call 01650h                               ; e8 d0 d5
     mov bl, al                                ; 88 c3
     db  0feh, 0c3h
@@ -5617,8 +5594,8 @@
     mov dx, 00304h                            ; ba 04 03
     mov ax, word [bp-01ah]                    ; 8b 46 e6
-    call 0165eh                               ; e8 8f d5
+    call 0165eh                               ; e8 cf d5
     mov es, [bp-016h]                         ; 8e 46 ea
     cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
-    je short 040ddh                           ; 74 04
+    je short 0409dh                           ; 74 04
     mov byte [es:si], 001h                    ; 26 c6 04 01
     mov es, [bp-016h]                         ; 8e 46 ea
@@ -5635,10 +5612,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, 0f2h, 044h, 0f1h
-    db  041h, 024h, 042h, 04eh, 042h, 019h, 042h, 04eh, 042h, 019h, 042h, 040h, 044h, 026h, 044h, 0f2h
-    db  044h, 0f2h, 044h, 026h, 044h, 026h, 044h, 026h, 044h, 026h, 044h, 026h, 044h, 0e9h, 044h, 026h
-    db  044h, 0f2h, 044h, 0f2h, 044h, 0f2h, 044h, 0f2h, 044h, 0f2h, 044h, 0f2h, 044h, 0f2h, 044h, 0f2h
-    db  044h, 0f2h, 044h, 0f2h, 044h, 0f2h, 044h, 0f2h, 044h
-_int13_cdemu:                                ; 0xf414c LB 0x442
+    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0b2h, 044h, 0b1h
+    db  041h, 0e4h, 041h, 00eh, 042h, 0d9h, 041h, 00eh, 042h, 0d9h, 041h, 000h, 044h, 0e6h, 043h, 0b2h
+    db  044h, 0b2h, 044h, 0e6h, 043h, 0e6h, 043h, 0e6h, 043h, 0e6h, 043h, 0e6h, 043h, 0a9h, 044h, 0e6h
+    db  043h, 0b2h, 044h, 0b2h, 044h, 0b2h, 044h, 0b2h, 044h, 0b2h, 044h, 0b2h, 044h, 0b2h, 044h, 0b2h
+    db  044h, 0b2h, 044h, 0b2h, 044h, 0b2h, 044h, 0b2h, 044h
+_int13_cdemu:                                ; 0xf410c LB 0x442
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -5648,5 +5625,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 0f d5
+    call 0166ch                               ; e8 4f d5
     mov di, 00366h                            ; bf 66 03
     mov cx, ax                                ; 89 c1
@@ -5664,8 +5641,8 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 d2 d4
+    call 0165eh                               ; e8 12 d5
     mov es, cx                                ; 8e c1
     cmp byte [es:di], 000h                    ; 26 80 3d 00
-    je short 041a3h                           ; 74 0f
+    je short 04163h                           ; 74 0f
     mov al, byte [es:di+002h]                 ; 26 8a 45 02
     xor ah, ah                                ; 30 e4
@@ -5673,9 +5650,9 @@
     xor dh, dh                                ; 30 f6
     cmp ax, dx                                ; 39 d0
-    je short 041cch                           ; 74 29
+    je short 0418ch                           ; 74 29
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 75 d7
+    call 01923h                               ; e8 b5 d7
     mov ax, word [bp+012h]                    ; 8b 46 12
     xor ah, ah                                ; 30 e4
@@ -5687,19 +5664,19 @@
     push 00358h                               ; 68 58 03
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 a0 d7
+    call 01966h                               ; e8 e0 d7
     add sp, strict byte 0000ah                ; 83 c4 0a
-    jmp near 04512h                           ; e9 46 03
+    jmp near 044d2h                           ; e9 46 03
     mov ax, word [bp+016h]                    ; 8b 46 16
     shr ax, 008h                              ; c1 e8 08
     cmp ax, strict word 00050h                ; 3d 50 00
-    jnbe short 0424bh                         ; 77 74
+    jnbe short 0420bh                         ; 77 74
     push CS                                   ; 0e
     pop ES                                    ; 07
     mov cx, strict word 0001eh                ; b9 1e 00
-    mov di, 040f3h                            ; bf f3 40
+    mov di, 040b3h                            ; bf b3 40
     repne scasb                               ; f2 ae
     sal cx, 1                                 ; d1 e1
     mov di, cx                                ; 89 cf
-    mov ax, word [cs:di+04110h]               ; 2e 8b 85 10 41
+    mov ax, word [cs:di+040d0h]               ; 2e 8b 85 d0 40
     mov bx, word [bp+016h]                    ; 8b 5e 16
     xor bh, bh                                ; 30 ff
@@ -5714,16 +5691,16 @@
     add bx, bx                                ; 01 db
     cmp word [word bx+0006ah], strict byte 00000h ; 83 bf 6a 00 00
-    je short 04216h                           ; 74 09
+    je short 041d6h                           ; 74 09
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
     call word [word bx+00076h]                ; ff 97 76 00
-    jmp near 04426h                           ; e9 0d 02
+    jmp near 043e6h                           ; e9 0d 02
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
     or ah, 003h                               ; 80 cc 03
-    jmp near 0451ah                           ; e9 f6 02
+    jmp near 044dah                           ; e9 f6 02
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 23 d4
+    call 01650h                               ; e8 63 d4
     mov cl, al                                ; 88 c1
     xor ah, ah                                ; 30 e4
@@ -5734,9 +5711,9 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 1a d4
+    call 0165eh                               ; e8 5a d4
     test cl, cl                               ; 84 c9
-    je short 042a8h                           ; 74 60
-    jmp near 0452eh                           ; e9 e3 02
-    jmp near 044f2h                           ; e9 a4 02
+    je short 04268h                           ; 74 60
+    jmp near 044eeh                           ; e9 e3 02
+    jmp near 044b2h                           ; e9 a4 02
     mov es, [bp-008h]                         ; 8e 46 f8
     mov di, word [es:si+014h]                 ; 26 8b 7c 14
@@ -5762,18 +5739,18 @@
     mov word [bp-00ah], cx                    ; 89 4e f6
     test cx, cx                               ; 85 c9
-    je short 042b6h                           ; 74 1e
+    je short 04276h                           ; 74 1e
     cmp di, word [bp-010h]                    ; 3b 7e f0
-    jc short 042a5h                           ; 72 08
+    jc short 04265h                           ; 72 08
     cmp ax, dx                                ; 39 d0
-    jnc short 042a5h                          ; 73 04
+    jnc short 04265h                          ; 73 04
     cmp si, bx                                ; 39 de
-    jc short 042abh                           ; 72 06
-    jmp near 04512h                           ; e9 6a 02
-    jmp near 0442ah                           ; e9 7f 01
+    jc short 0426bh                           ; 72 06
+    jmp near 044d2h                           ; e9 6a 02
+    jmp near 043eah                           ; e9 7f 01
     mov dx, word [bp+016h]                    ; 8b 56 16
     shr dx, 008h                              ; c1 ea 08
     cmp dx, strict byte 00004h                ; 83 fa 04
-    jne short 042b9h                          ; 75 03
-    jmp near 04426h                           ; e9 6d 01
+    jne short 04279h                          ; 75 03
+    jmp near 043e6h                           ; e9 6d 01
     mov dx, word [bp+010h]                    ; 8b 56 10
     shr dx, 004h                              ; c1 ea 04
@@ -5786,5 +5763,5 @@
     xor dl, dl                                ; 30 d2
     xor cx, cx                                ; 31 c9
-    call 09fe9h                               ; e8 12 5d
+    call 09f69h                               ; e8 d2 5c
     xor bx, bx                                ; 31 db
     add ax, si                                ; 01 f0
@@ -5792,5 +5769,5 @@
     mov bx, di                                ; 89 fb
     xor cx, cx                                ; 31 c9
-    call 09fe9h                               ; e8 05 5d
+    call 09f69h                               ; e8 c5 5c
     mov bx, ax                                ; 89 c3
     mov ax, word [bp-010h]                    ; 8b 46 f0
@@ -5827,5 +5804,5 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-02eh]                         ; 8d 46 d2
-    call 0a03ah                               ; e8 ff 5c
+    call 09fbah                               ; e8 bf 5c
     mov word [bp-02eh], strict word 00028h    ; c7 46 d2 28 00
     mov ax, word [bp-014h]                    ; 8b 46 ec
@@ -5877,5 +5854,5 @@
     sal si, 1                                 ; d1 e6
     rcl di, 1                                 ; d1 d7
-    loop 043bdh                               ; e2 fa
+    loop 0437dh                               ; e2 fa
     push di                                   ; 57
     push si                                   ; 56
@@ -5893,9 +5870,9 @@
     mov word [es:bx+020h], strict word 00000h ; 26 c7 47 20 00 00
     test al, al                               ; 84 c0
-    je short 04426h                           ; 74 37
+    je short 043e6h                           ; 74 37
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 29 d5
+    call 01923h                               ; e8 69 d5
     mov al, dl                                ; 88 d0
     xor ah, ah                                ; 30 e4
@@ -5907,5 +5884,5 @@
     push 0038eh                               ; 68 8e 03
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 55 d5
+    call 01966h                               ; e8 95 d5
     add sp, strict byte 0000ah                ; 83 c4 0a
     mov ax, word [bp+016h]                    ; 8b 46 16
@@ -5914,10 +5891,10 @@
     mov word [bp+016h], ax                    ; 89 46 16
     mov byte [bp+016h], 000h                  ; c6 46 16 00
-    jmp near 0451dh                           ; e9 f7 00
+    jmp near 044ddh                           ; e9 f7 00
     mov byte [bp+017h], 000h                  ; c6 46 17 00
     xor bx, bx                                ; 31 db
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 29 d2
+    call 0165eh                               ; e8 69 d2
     and byte [bp+01ch], 0feh                  ; 80 66 1c fe
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -5967,32 +5944,32 @@
     mov word [bp+010h], ax                    ; 89 46 10
     cmp dl, 003h                              ; 80 fa 03
-    je short 044cch                           ; 74 1a
+    je short 0448ch                           ; 74 1a
     cmp dl, 002h                              ; 80 fa 02
-    je short 044c8h                           ; 74 11
+    je short 04488h                           ; 74 11
     cmp dl, 001h                              ; 80 fa 01
-    jne short 044d0h                          ; 75 14
+    jne short 04490h                          ; 75 14
     mov ax, word [bp+010h]                    ; 8b 46 10
     xor al, al                                ; 30 c0
     or AL, strict byte 002h                   ; 0c 02
     mov word [bp+010h], ax                    ; 89 46 10
-    jmp short 044d0h                          ; eb 08
+    jmp short 04490h                          ; eb 08
     or AL, strict byte 004h                   ; 0c 04
-    jmp short 044c3h                          ; eb f7
+    jmp short 04483h                          ; eb f7
     or AL, strict byte 005h                   ; 0c 05
-    jmp short 044c3h                          ; eb f3
+    jmp short 04483h                          ; eb f3
     mov es, [bp-008h]                         ; 8e 46 f8
     cmp byte [es:si+001h], 004h               ; 26 80 7c 01 04
-    jc short 044ddh                           ; 72 03
-    jmp near 04426h                           ; e9 49 ff
+    jc short 0449dh                           ; 72 03
+    jmp near 043e6h                           ; e9 49 ff
     mov word [bp+008h], 0efc7h                ; c7 46 08 c7 ef
     mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
-    jmp short 044dah                          ; eb f1
+    jmp short 0449ah                          ; eb f1
     or bh, 003h                               ; 80 cf 03
     mov word [bp+016h], bx                    ; 89 5e 16
-    jmp near 0442ah                           ; e9 38 ff
+    jmp near 043eah                           ; e9 38 ff
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 26 d4
+    call 01923h                               ; e8 66 d4
     mov ax, word [bp+016h]                    ; 8b 46 16
     shr ax, 008h                              ; c1 e8 08
@@ -6001,5 +5978,5 @@
     push 003afh                               ; 68 af 03
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 57 d4
+    call 01966h                               ; e8 97 d4
     add sp, strict byte 00008h                ; 83 c4 08
     mov ax, word [bp+016h]                    ; 8b 46 16
@@ -6012,35 +5989,35 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 30 d1
+    call 0165eh                               ; e8 70 d1
     or byte [bp+01ch], 001h                   ; 80 4e 1c 01
-    jmp near 04439h                           ; e9 04 ff
+    jmp near 043f9h                           ; e9 04 ff
     db  050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h
-    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 07ch, 046h, 0cch
-    db  04ah, 039h, 046h, 07ch, 046h, 02eh, 046h, 07ch, 046h, 02eh, 046h, 07ch, 046h, 0cch, 04ah, 07ch
-    db  046h, 07ch, 046h, 0cch, 04ah, 0cch, 04ah, 0cch, 04ah, 0cch, 04ah, 0cch, 04ah, 060h, 046h, 0cch
-    db  04ah, 07ch, 046h, 069h, 046h, 098h, 046h, 02eh, 046h, 098h, 046h, 0d8h, 047h, 073h, 048h, 098h
-    db  046h, 09bh, 048h, 0e6h, 04ah, 0eeh, 04ah, 07ch, 046h
-_int13_cdrom:                                ; 0xf458e LB 0x598
+    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 03ch, 046h, 071h
+    db  04ah, 0f9h, 045h, 03ch, 046h, 0eeh, 045h, 03ch, 046h, 0eeh, 045h, 03ch, 046h, 071h, 04ah, 03ch
+    db  046h, 03ch, 046h, 071h, 04ah, 071h, 04ah, 071h, 04ah, 071h, 04ah, 071h, 04ah, 020h, 046h, 071h
+    db  04ah, 03ch, 046h, 029h, 046h, 058h, 046h, 0eeh, 045h, 058h, 046h, 09ah, 047h, 035h, 048h, 058h
+    db  046h, 05dh, 048h, 08bh, 04ah, 093h, 04ah, 03ch, 046h
+_int13_cdrom:                                ; 0xf454e LB 0x57d
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     push si                                   ; 56
     push di                                   ; 57
-    sub sp, strict byte 0002ah                ; 83 ec 2a
+    sub sp, strict byte 0002ch                ; 83 ec 2c
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 cd d0
-    mov word [bp-01ah], ax                    ; 89 46 e6
+    call 0166ch                               ; e8 0d d1
+    mov word [bp-016h], ax                    ; 89 46 ea
     mov si, 00122h                            ; be 22 01
-    mov word [bp-00ch], ax                    ; 89 46 f4
+    mov word [bp-01eh], ax                    ; 89 46 e2
     xor bx, bx                                ; 31 db
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 ab d0
+    call 0165eh                               ; e8 eb d0
     mov ax, word [bp+010h]                    ; 8b 46 10
     xor ah, ah                                ; 30 e4
     cmp ax, 000e0h                            ; 3d e0 00
-    jc short 045c2h                           ; 72 05
+    jc short 04582h                           ; 72 05
     cmp ax, 000f0h                            ; 3d f0 00
-    jc short 045e0h                           ; 72 1e
+    jc short 045a0h                           ; 72 1e
     mov ax, word [bp+010h]                    ; 8b 46 10
     xor ah, ah                                ; 30 e4
@@ -6052,16 +6029,16 @@
     push 003ebh                               ; 68 eb 03
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 8c d3
+    call 01966h                               ; e8 cc d3
     add sp, strict byte 0000ah                ; 83 c4 0a
-    jmp near 04b04h                           ; e9 24 05
+    jmp near 04aa9h                           ; e9 09 05
     mov ax, word [bp+010h]                    ; 8b 46 10
     xor ah, ah                                ; 30 e4
-    mov es, [bp-00ch]                         ; 8e 46 f4
+    mov es, [bp-01eh]                         ; 8e 46 e2
     mov bx, si                                ; 89 f3
     add bx, ax                                ; 01 c3
     mov dl, byte [es:bx+00114h]               ; 26 8a 97 14 01
-    mov byte [bp-008h], dl                    ; 88 56 f8
+    mov byte [bp-006h], dl                    ; 88 56 fa
     cmp dl, 010h                              ; 80 fa 10
-    jc short 04609h                           ; 72 10
+    jc short 045c9h                           ; 72 10
     push ax                                   ; 50
     mov ax, word [bp+018h]                    ; 8b 46 18
@@ -6070,17 +6047,17 @@
     push 003dfh                               ; 68 df 03
     push 00416h                               ; 68 16 04
-    jmp short 045d5h                          ; eb cc
+    jmp short 04595h                          ; eb cc
     mov ax, word [bp+018h]                    ; 8b 46 18
     shr ax, 008h                              ; c1 e8 08
     cmp ax, strict word 00050h                ; 3d 50 00
-    jnbe short 0467ch                         ; 77 68
+    jnbe short 0463ch                         ; 77 68
     push CS                                   ; 0e
     pop ES                                    ; 07
     mov cx, strict word 0001eh                ; b9 1e 00
-    mov di, 04535h                            ; bf 35 45
+    mov di, 044f5h                            ; bf f5 44
     repne scasb                               ; f2 ae
     sal cx, 1                                 ; d1 e1
     mov di, cx                                ; 89 cf
-    mov ax, word [cs:di+04552h]               ; 2e 8b 85 52 45
+    mov ax, word [cs:di+04512h]               ; 2e 8b 85 12 45
     mov bx, word [bp+018h]                    ; 8b 5e 18
     xor bh, bh                                ; 30 ff
@@ -6089,8 +6066,8 @@
     xor ah, ah                                ; 30 e4
     or ah, 003h                               ; 80 cc 03
-    jmp near 04b0ch                           ; e9 d3 04
+    jmp near 04ab1h                           ; e9 b8 04
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 0e d0
+    call 01650h                               ; e8 4e d0
     mov cl, al                                ; 88 c1
     xor ah, ah                                ; 30 e4
@@ -6101,20 +6078,20 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 05 d0
+    call 0165eh                               ; e8 45 d0
     test cl, cl                               ; 84 c9
-    je short 04679h                           ; 74 1c
-    jmp near 04b20h                           ; e9 c0 04
+    je short 04639h                           ; 74 1c
+    jmp near 04ac5h                           ; e9 a5 04
     or bh, 002h                               ; 80 cf 02
     mov word [bp+018h], bx                    ; 89 5e 18
-    jmp near 04b0fh                           ; e9 a6 04
+    jmp near 04ab4h                           ; 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 04ad0h                           ; e9 54 04
+    jmp near 04a75h                           ; 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 9c d2
+    call 01923h                               ; e8 dc d2
     mov ax, word [bp+018h]                    ; 8b 46 18
     shr ax, 008h                              ; c1 e8 08
@@ -6123,20 +6100,20 @@
     push 00333h                               ; 68 33 03
     push strict byte 00004h                   ; 6a 04
-    jmp short 046d7h                          ; eb 3f
+    jmp short 04698h                          ; eb 40
     mov bx, word [bp+00ch]                    ; 8b 5e 0c
     mov es, [bp+006h]                         ; 8e 46 06
-    mov word [bp-018h], bx                    ; 89 5e e8
-    mov [bp-012h], es                         ; 8c 46 ee
-    mov ax, word [es:bx+002h]                 ; 26 8b 47 02
-    mov word [bp-010h], ax                    ; 89 46 f0
+    mov word [bp-014h], bx                    ; 89 5e ec
+    mov [bp-010h], es                         ; 8c 46 f0
+    mov di, word [es:bx+002h]                 ; 26 8b 7f 02
     mov ax, word [es:bx+006h]                 ; 26 8b 47 06
+    mov word [bp-01ah], ax                    ; 89 46 e6
+    mov ax, word [es:bx+004h]                 ; 26 8b 47 04
+    mov word [bp-01ch], ax                    ; 89 46 e4
+    mov ax, word [es:bx+00ch]                 ; 26 8b 47 0c
+    mov word [bp-00eh], ax                    ; 89 46 f2
+    mov ax, word [es:bx+00eh]                 ; 26 8b 47 0e
     mov word [bp-022h], ax                    ; 89 46 de
-    mov ax, word [es:bx+004h]                 ; 26 8b 47 04
-    mov word [bp-01eh], ax                    ; 89 46 e2
-    mov ax, word [es:bx+00ch]                 ; 26 8b 47 0c
-    mov word [bp-016h], ax                    ; 89 46 ea
-    mov di, word [es:bx+00eh]                 ; 26 8b 7f 0e
-    or di, ax                                 ; 09 c7
-    je short 046e0h                           ; 74 18
+    or ax, word [bp-00eh]                     ; 0b 46 f2
+    je short 046a1h                           ; 74 18
     mov ax, word [bp+018h]                    ; 8b 46 18
     shr ax, 008h                              ; c1 e8 08
@@ -6145,42 +6122,41 @@
     push 00448h                               ; 68 48 04
     push strict byte 00007h                   ; 6a 07
-    call 01966h                               ; e8 8c d2
+    call 01966h                               ; e8 cb d2
     add sp, strict byte 00008h                ; 83 c4 08
-    jmp near 04b04h                           ; e9 24 04
-    mov es, [bp-012h]                         ; 8e 46 ee
-    mov bx, word [bp-018h]                    ; 8b 5e e8
+    jmp near 04aa9h                           ; e9 08 04
+    mov es, [bp-010h]                         ; 8e 46 f0
+    mov bx, word [bp-014h]                    ; 8b 5e ec
     mov ax, word [es:bx+008h]                 ; 26 8b 47 08
-    mov word [bp-016h], ax                    ; 89 46 ea
-    mov di, bx                                ; 89 df
-    mov di, word [es:di+00ah]                 ; 26 8b 7d 0a
+    mov word [bp-00eh], ax                    ; 89 46 f2
+    mov ax, word [es:bx+00ah]                 ; 26 8b 47 0a
+    mov word [bp-022h], ax                    ; 89 46 de
     mov ax, word [bp+018h]                    ; 8b 46 18
     shr ax, 008h                              ; c1 e8 08
-    mov word [bp-014h], ax                    ; 89 46 ec
+    mov word [bp-012h], ax                    ; 89 46 ee
     cmp ax, strict word 00044h                ; 3d 44 00
-    je short 04706h                           ; 74 05
+    je short 046c8h                           ; 74 05
     cmp ax, strict word 00047h                ; 3d 47 00
-    jne short 04709h                          ; 75 03
-    jmp near 04acch                           ; e9 c3 03
+    jne short 046cbh                          ; 75 03
+    jmp near 04a71h                           ; e9 a6 03
     mov cx, strict word 0000ch                ; b9 0c 00
     xor bx, bx                                ; 31 db
     mov dx, ss                                ; 8c d2
-    lea ax, [bp-02eh]                         ; 8d 46 d2
-    call 0a03ah                               ; e8 24 59
-    mov word [bp-02eh], strict word 00028h    ; c7 46 d2 28 00
-    mov ax, word [bp-016h]                    ; 8b 46 ea
-    mov dx, di                                ; 89 fa
+    lea ax, [bp-030h]                         ; 8d 46 d0
+    call 09fbah                               ; e8 e2 58
+    mov word [bp-030h], strict word 00028h    ; c7 46 d0 28 00
+    mov ax, word [bp-00eh]                    ; 8b 46 f2
+    mov dx, word [bp-022h]                    ; 8b 56 de
     xchg ah, al                               ; 86 c4
     xchg dh, dl                               ; 86 d6
     xchg dx, ax                               ; 92
-    mov word [bp-02ch], ax                    ; 89 46 d4
-    mov word [bp-02ah], dx                    ; 89 56 d6
-    mov ax, word [bp-010h]                    ; 8b 46 f0
+    mov word [bp-02eh], ax                    ; 89 46 d2
+    mov word [bp-02ch], dx                    ; 89 56 d4
+    mov ax, di                                ; 89 f8
     xchg ah, al                               ; 86 c4
-    mov word [bp-027h], ax                    ; 89 46 d9
-    mov ax, word [bp-010h]                    ; 8b 46 f0
-    mov es, [bp-00ch]                         ; 8e 46 f4
-    mov word [es:si+00eh], ax                 ; 26 89 44 0e
+    mov word [bp-029h], ax                    ; 89 46 d7
+    mov es, [bp-01eh]                         ; 8e 46 e2
+    mov word [es:si+00eh], di                 ; 26 89 7c 0e
     mov word [es:si+010h], 00800h             ; 26 c7 44 10 00 08
-    mov al, byte [bp-008h]                    ; 8a 46 f8
+    mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
     imul ax, ax, strict byte 0001ch           ; 6b c0 1c
@@ -6189,26 +6165,27 @@
     mov al, byte [es:bx+022h]                 ; 26 8a 47 22
     xor ah, ah                                ; 30 e4
-    mov di, ax                                ; 89 c7
-    add di, ax                                ; 01 c7
-    push word [bp-022h]                       ; ff 76 de
-    push word [bp-01eh]                       ; ff 76 e2
+    add ax, ax                                ; 01 c0
+    mov word [bp-020h], ax                    ; 89 46 e0
+    push word [bp-01ah]                       ; ff 76 e6
+    push word [bp-01ch]                       ; ff 76 e4
     push strict byte 00001h                   ; 6a 01
-    mov ax, word [bp-010h]                    ; 8b 46 f0
+    mov ax, di                                ; 89 f8
     xor dx, dx                                ; 31 d2
     mov cx, strict word 0000bh                ; b9 0b 00
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 04769h                               ; e2 fa
+    loop 04728h                               ; e2 fa
     push dx                                   ; 52
     push ax                                   ; 50
     push strict byte 00000h                   ; 6a 00
-    mov al, byte [bp-008h]                    ; 8a 46 f8
+    mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
     mov cx, ss                                ; 8c d1
-    lea bx, [bp-02eh]                         ; 8d 5e d2
+    lea bx, [bp-030h]                         ; 8d 5e d0
     mov dx, strict word 0000ch                ; ba 0c 00
+    mov di, word [bp-020h]                    ; 8b 7e e0
     call word [word di+0006ah]                ; ff 95 6a 00
-    mov word [bp-01ch], ax                    ; 89 46 e4
-    mov es, [bp-00ch]                         ; 8e 46 f4
+    mov word [bp-018h], ax                    ; 89 46 e8
+    mov es, [bp-01eh]                         ; 8e 46 e2
     mov ax, word [es:si+01ah]                 ; 26 8b 44 1a
     mov dx, word [es:si+01ch]                 ; 26 8b 54 1c
@@ -6216,45 +6193,45 @@
     shr dx, 1                                 ; d1 ea
     rcr ax, 1                                 ; d1 d8
-    loop 04795h                               ; e2 fa
-    mov es, [bp-012h]                         ; 8e 46 ee
-    mov bx, word [bp-018h]                    ; 8b 5e e8
+    loop 04757h                               ; 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-01ch], 000h                  ; 80 7e e4 00
-    je short 047feh                           ; 74 53
+    cmp byte [bp-018h], 000h                  ; 80 7e e8 00
+    je short 047c0h                           ; 74 53
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 6d d1
-    mov al, byte [bp-01ch]                    ; 8a 46 e4
+    call 01923h                               ; e8 ab d1
+    mov al, byte [bp-018h]                    ; 8a 46 e8
     xor ah, ah                                ; 30 e4
     push ax                                   ; 50
-    push word [bp-014h]                       ; ff 76 ec
+    push word [bp-012h]                       ; ff 76 ee
     push 003dfh                               ; 68 df 03
     push 00471h                               ; 68 71 04
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 9c d1
+    call 01966h                               ; e8 da d1
     add sp, strict byte 0000ah                ; 83 c4 0a
     mov ax, word [bp+018h]                    ; 8b 46 18
     xor ah, ah                                ; 30 e4
     or ah, 00ch                               ; 80 cc 0c
-    jmp near 04b0ch                           ; e9 34 03
+    jmp near 04ab1h                           ; e9 17 03
     cmp bx, strict byte 00002h                ; 83 fb 02
-    jnbe short 04846h                         ; 77 69
-    mov al, byte [bp-008h]                    ; 8a 46 f8
+    jnbe short 04808h                         ; 77 69
+    mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
     imul ax, ax, strict byte 0001ch           ; 6b c0 1c
-    mov es, [bp-00ch]                         ; 8e 46 f4
+    mov es, [bp-01eh]                         ; 8e 46 e2
     mov di, si                                ; 89 f7
     add di, ax                                ; 01 c7
     mov al, byte [es:di+025h]                 ; 26 8a 45 25
     cmp bx, strict byte 00002h                ; 83 fb 02
-    je short 0485ch                           ; 74 67
+    je short 0481eh                           ; 74 67
     cmp bx, strict byte 00001h                ; 83 fb 01
-    je short 04836h                           ; 74 3c
+    je short 047f8h                           ; 74 3c
     test bx, bx                               ; 85 db
-    je short 04801h                           ; 74 03
-    jmp near 04acch                           ; e9 cb 02
+    je short 047c3h                           ; 74 03
+    jmp near 04a71h                           ; e9 ae 02
     cmp AL, strict byte 0ffh                  ; 3c ff
-    jne short 04817h                          ; 75 12
+    jne short 047d9h                          ; 75 12
     mov ax, word [bp+018h]                    ; 8b 46 18
     xor ah, ah                                ; 30 e4
@@ -6263,11 +6240,11 @@
     xor al, al                                ; 30 c0
     or AL, strict byte 001h                   ; 0c 01
-    jmp near 04b0ch                           ; e9 f5 02
-    mov dl, byte [bp-008h]                    ; 8a 56 f8
+    jmp near 04ab1h                           ; e9 d8 02
+    mov dl, byte [bp-006h]                    ; 8a 56 fa
     xor dh, dh                                ; 30 f6
     imul dx, dx, strict byte 0001ch           ; 6b d2 1c
     db  0feh, 0c0h
     ; inc al                                    ; fe c0
-    mov es, [bp-00ch]                         ; 8e 46 f4
+    mov es, [bp-01eh]                         ; 8e 46 e2
     add si, dx                                ; 01 d6
     mov byte [es:si+025h], al                 ; 26 88 44 25
@@ -6276,22 +6253,22 @@
     or AL, strict byte 001h                   ; 0c 01
     mov word [bp+018h], ax                    ; 89 46 18
-    jmp short 047feh                          ; eb c8
+    jmp short 047c0h                          ; eb c8
     test al, al                               ; 84 c0
-    jne short 04849h                          ; 75 0f
+    jne short 0480bh                          ; 75 0f
     or bh, 0b0h                               ; 80 cf b0
     mov word [bp+018h], bx                    ; 89 5e 18
     mov byte [bp+018h], al                    ; 88 46 18
-    jmp near 04b0fh                           ; e9 c9 02
-    jmp near 04b04h                           ; e9 bb 02
-    mov dl, byte [bp-008h]                    ; 8a 56 f8
+    jmp near 04ab4h                           ; e9 ac 02
+    jmp near 04aa9h                           ; e9 9e 02
+    mov dl, byte [bp-006h]                    ; 8a 56 fa
     xor dh, dh                                ; 30 f6
     imul dx, dx, strict byte 0001ch           ; 6b d2 1c
     db  0feh, 0c8h
     ; dec al                                    ; fe c8
-    mov es, [bp-00ch]                         ; 8e 46 f4
+    mov es, [bp-01eh]                         ; 8e 46 e2
     add si, dx                                ; 01 d6
     mov byte [es:si+025h], al                 ; 26 88 44 25
     test al, al                               ; 84 c0
-    jne short 0486eh                          ; 75 0e
+    jne short 04830h                          ; 75 0e
     xor ah, ah                                ; 30 e4
     mov dx, word [bp+018h]                    ; 8b 56 18
@@ -6299,22 +6276,22 @@
     or dx, ax                                 ; 09 c2
     mov word [bp+018h], dx                    ; 89 56 18
-    jmp short 047feh                          ; eb 90
+    jmp short 047c0h                          ; eb 90
     mov ax, strict word 00001h                ; b8 01 00
-    jmp short 04862h                          ; eb ef
-    mov al, byte [bp-008h]                    ; 8a 46 f8
+    jmp short 04824h                          ; eb ef
+    mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
     imul ax, ax, strict byte 0001ch           ; 6b c0 1c
-    mov es, [bp-00ch]                         ; 8e 46 f4
+    mov es, [bp-01eh]                         ; 8e 46 e2
     add si, ax                                ; 01 c6
     mov al, byte [es:si+025h]                 ; 26 8a 44 25
     test al, al                               ; 84 c0
-    je short 0488eh                           ; 74 06
+    je short 04850h                           ; 74 06
     or bh, 0b1h                               ; 80 cf b1
-    jmp near 04663h                           ; e9 d5 fd
-    je short 048b7h                           ; 74 27
+    jmp near 04623h                           ; e9 d3 fd
+    je short 04879h                           ; 74 27
     mov ax, word [bp+018h]                    ; 8b 46 18
     xor ah, ah                                ; 30 e4
     or ah, 0b1h                               ; 80 cc b1
-    jmp near 04b0ch                           ; e9 71 02
+    jmp near 04ab1h                           ; e9 54 02
     mov dx, word [bp+00ch]                    ; 8b 56 0c
     mov cx, word [bp+006h]                    ; 8b 4e 06
@@ -6324,14 +6301,14 @@
     mov di, dx                                ; 89 d7
     mov ax, word [es:di]                      ; 26 8b 05
-    mov word [bp-00eh], ax                    ; 89 46 f2
+    mov word [bp-00ch], ax                    ; 89 46 f4
     cmp ax, strict word 0001ah                ; 3d 1a 00
-    jnc short 048bah                          ; 73 05
-    jmp short 04846h                          ; eb 8f
-    jmp near 04acch                           ; e9 12 02
-    jc short 0491eh                           ; 72 62
-    mov al, byte [bp-008h]                    ; 8a 46 f8
+    jnc short 0487ch                          ; 73 05
+    jmp short 04808h                          ; eb 8f
+    jmp near 04a71h                           ; e9 f5 01
+    jc short 048e0h                           ; 72 62
+    mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
     imul ax, ax, strict byte 0001ch           ; 6b c0 1c
-    mov es, [bp-00ch]                         ; 8e 46 f4
+    mov es, [bp-01eh]                         ; 8e 46 e2
     mov di, si                                ; 89 f7
     add di, ax                                ; 01 c7
@@ -6352,12 +6329,13 @@
     mov word [es:di+014h], strict word 0ffffh ; 26 c7 45 14 ff ff
     mov word [es:di+016h], strict word 0ffffh ; 26 c7 45 16 ff ff
-    cmp word [bp-00eh], strict byte 0001eh    ; 83 7e f2 1e
-    jc short 0497dh                           ; 72 59
+    cmp word [bp-00ch], strict byte 0001eh    ; 83 7e f4 1e
+    jnc short 048e9h                          ; 73 03
+    jmp near 049a5h                           ; e9 bc 00
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov word [es:bx], strict word 0001eh      ; 26 c7 07 1e 00
-    mov ax, word [bp-01ah]                    ; 8b 46 e6
+    mov ax, word [bp-016h]                    ; 8b 46 ea
     mov word [es:bx+01ch], ax                 ; 26 89 47 1c
     mov word [es:bx+01ah], 00356h             ; 26 c7 47 1a 56 03
-    mov cl, byte [bp-008h]                    ; 8a 4e f8
+    mov cl, byte [bp-006h]                    ; 8a 4e fa
     xor ch, ch                                ; 30 ed
     mov ax, cx                                ; 89 c8
@@ -6368,65 +6346,52 @@
     xor ah, ah                                ; 30 e4
     imul ax, ax, strict byte 00006h           ; 6b c0 06
-    mov es, [bp-00ch]                         ; 8e 46 f4
+    mov es, [bp-01eh]                         ; 8e 46 e2
     mov di, si                                ; 89 f7
     add di, ax                                ; 01 c7
-    mov dx, word [es:di+00206h]               ; 26 8b 95 06 02
-    mov ax, word [es:di+00208h]               ; 26 8b 85 08 02
-    mov word [bp-020h], ax                    ; 89 46 e0
-    mov al, byte [es:di+00205h]               ; 26 8a 85 05 02
-    mov byte [bp-006h], al                    ; 88 46 fa
-    imul cx, cx, strict byte 0001ch           ; 6b c9 1c
-    mov di, si                                ; 89 f7
-    add di, cx                                ; 01 cf
-    mov al, byte [es:di+026h]                 ; 26 8a 45 26
-    mov cx, strict word 00070h                ; b9 70 00
-    cmp AL, strict byte 001h                  ; 3c 01
-    jne short 04980h                          ; 75 08
-    mov ax, strict word 00001h                ; b8 01 00
-    jmp short 04982h                          ; eb 05
-    jmp near 04a00h                           ; e9 80 00
-    xor ax, ax                                ; 31 c0
-    or cx, ax                                 ; 09 c1
-    mov es, [bp-00ch]                         ; 8e 46 f4
-    mov word [es:si+00234h], dx               ; 26 89 94 34 02
-    mov ax, word [bp-020h]                    ; 8b 46 e0
+    mov ax, word [es:di+00206h]               ; 26 8b 85 06 02
+    mov dx, word [es:di+00208h]               ; 26 8b 95 08 02
+    mov word [bp-024h], dx                    ; 89 56 dc
+    mov dl, byte [es:di+00205h]               ; 26 8a 95 05 02
+    mov byte [bp-008h], dl                    ; 88 56 f8
+    mov word [es:si+00234h], ax               ; 26 89 84 34 02
+    mov ax, word [bp-024h]                    ; 8b 46 dc
     mov word [es:si+00236h], ax               ; 26 89 84 36 02
-    mov al, byte [bp-008h]                    ; 8a 46 f8
-    xor ah, ah                                ; 30 e4
+    mov ax, cx                                ; 89 c8
     cwd                                       ; 99
-    mov di, strict word 00002h                ; bf 02 00
-    idiv di                                   ; f7 ff
+    mov cx, strict word 00002h                ; b9 02 00
+    idiv cx                                   ; f7 f9
     or dl, 00eh                               ; 80 ca 0e
     sal dx, 004h                              ; c1 e2 04
     mov byte [es:si+00238h], dl               ; 26 88 94 38 02
     mov byte [es:si+00239h], 0cbh             ; 26 c6 84 39 02 cb
-    mov al, byte [bp-006h]                    ; 8a 46 fa
+    mov al, byte [bp-008h]                    ; 8a 46 f8
     mov byte [es:si+0023ah], al               ; 26 88 84 3a 02
     mov word [es:si+0023bh], strict word 00001h ; 26 c7 84 3b 02 01 00
     mov byte [es:si+0023dh], 000h             ; 26 c6 84 3d 02 00
-    mov word [es:si+0023eh], cx               ; 26 89 8c 3e 02
+    mov word [es:si+0023eh], strict word 00070h ; 26 c7 84 3e 02 70 00
     mov word [es:si+00240h], strict word 00000h ; 26 c7 84 40 02 00 00
     mov byte [es:si+00242h], 011h             ; 26 c6 84 42 02 11
     xor cl, cl                                ; 30 c9
     xor ch, ch                                ; 30 ed
-    jmp short 049e2h                          ; eb 05
+    jmp short 04985h                          ; eb 05
     cmp ch, 00fh                              ; 80 fd 0f
-    jnc short 049f6h                          ; 73 14
-    mov dl, ch                                ; 88 ea
-    xor dh, dh                                ; 30 f6
+    jnc short 0499bh                          ; 73 16
+    mov al, ch                                ; 88 e8
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
     add dx, 00356h                            ; 81 c2 56 03
-    mov ax, word [bp-01ah]                    ; 8b 46 e6
-    call 01650h                               ; e8 60 cc
+    mov ax, word [bp-016h]                    ; 8b 46 ea
+    call 01650h                               ; e8 bb cc
     add cl, al                                ; 00 c1
     db  0feh, 0c5h
     ; inc ch                                    ; fe c5
-    jmp short 049ddh                          ; eb e7
+    jmp short 04980h                          ; eb e5
     neg cl                                    ; f6 d9
-    mov es, [bp-00ch]                         ; 8e 46 f4
+    mov es, [bp-01eh]                         ; 8e 46 e2
     mov byte [es:si+00243h], cl               ; 26 88 8c 43 02
-    cmp word [bp-00eh], strict byte 00042h    ; 83 7e f2 42
-    jnc short 04a09h                          ; 73 03
-    jmp near 04acch                           ; e9 c3 00
-    mov al, byte [bp-008h]                    ; 8a 46 f8
+    cmp word [bp-00ch], strict byte 00042h    ; 83 7e f4 42
+    jnc short 049aeh                          ; 73 03
+    jmp near 04a71h                           ; e9 c3 00
+    mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
     cwd                                       ; 99
@@ -6436,5 +6401,5 @@
     xor ah, ah                                ; 30 e4
     imul ax, ax, strict byte 00006h           ; 6b c0 06
-    mov es, [bp-00ch]                         ; 8e 46 f4
+    mov es, [bp-01eh]                         ; 8e 46 e2
     add si, ax                                ; 01 c6
     mov al, byte [es:si+00204h]               ; 26 8a 84 04 02
@@ -6446,5 +6411,5 @@
     mov word [es:bx+022h], strict word 00000h ; 26 c7 47 22 00 00
     test al, al                               ; 84 c0
-    jne short 04a51h                          ; 75 0c
+    jne short 049f6h                          ; 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
@@ -6455,10 +6420,10 @@
     mov word [es:bx+02eh], 02020h             ; 26 c7 47 2e 20 20
     test al, al                               ; 84 c0
-    jne short 04a86h                          ; 75 16
+    jne short 04a2bh                          ; 75 16
     mov word [es:bx+030h], dx                 ; 26 89 57 30
     mov word [es:bx+032h], strict word 00000h ; 26 c7 47 32 00 00
     mov word [es:bx+034h], strict word 00000h ; 26 c7 47 34 00 00
     mov word [es:bx+036h], strict word 00000h ; 26 c7 47 36 00 00
-    mov al, byte [bp-008h]                    ; 8a 46 f8
+    mov al, byte [bp-006h]                    ; 8a 46 fa
     and AL, strict byte 001h                  ; 24 01
     xor ah, ah                                ; 30 e4
@@ -6470,7 +6435,7 @@
     xor al, al                                ; 30 c0
     mov AH, strict byte 01eh                  ; b4 1e
-    jmp short 04ab1h                          ; eb 05
+    jmp short 04a56h                          ; eb 05
     cmp ah, 040h                              ; 80 fc 40
-    jnc short 04ac3h                          ; 73 12
+    jnc short 04a68h                          ; 73 12
     mov dl, ah                                ; 88 e2
     xor dh, dh                                ; 30 f6
@@ -6481,5 +6446,5 @@
     db  0feh, 0c4h
     ; inc ah                                    ; fe c4
-    jmp short 04aach                          ; eb e9
+    jmp short 04a51h                          ; eb e9
     neg al                                    ; f6 d8
     mov es, [bp-00ah]                         ; 8e 46 f6
@@ -6489,5 +6454,5 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 83 cb
+    call 0165eh                               ; e8 de cb
     and byte [bp+01eh], 0feh                  ; 80 66 1e fe
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -6498,14 +6463,14 @@
     or bh, 006h                               ; 80 cf 06
     mov word [bp+018h], bx                    ; 89 5e 18
-    jmp short 04b20h                          ; eb 32
+    jmp short 04ac5h                          ; eb 32
     cmp bx, strict byte 00006h                ; 83 fb 06
-    je short 04acch                           ; 74 d9
+    je short 04a71h                           ; 74 d9
     cmp bx, strict byte 00001h                ; 83 fb 01
-    jc short 04b04h                           ; 72 0c
-    jbe short 04acch                          ; 76 d2
+    jc short 04aa9h                           ; 72 0c
+    jbe short 04a71h                          ; 76 d2
     cmp bx, strict byte 00003h                ; 83 fb 03
-    jc short 04b04h                           ; 72 05
+    jc short 04aa9h                           ; 72 05
     cmp bx, strict byte 00004h                ; 83 fb 04
-    jbe short 04acch                          ; 76 c8
+    jbe short 04a71h                          ; 76 c8
     mov ax, word [bp+018h]                    ; 8b 46 18
     xor ah, ah                                ; 30 e4
@@ -6517,30 +6482,30 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 3e cb
+    call 0165eh                               ; e8 99 cb
     or byte [bp+01eh], 001h                   ; 80 4e 1e 01
-    jmp short 04adfh                          ; eb b9
-print_boot_device_:                          ; 0xf4b26 LB 0x4b
+    jmp short 04a84h                          ; eb b9
+print_boot_device_:                          ; 0xf4acb LB 0x4b
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     push cx                                   ; 51
     test al, al                               ; 84 c0
-    je short 04b33h                           ; 74 05
+    je short 04ad8h                           ; 74 05
     mov dx, strict word 00002h                ; ba 02 00
-    jmp short 04b4dh                          ; eb 1a
+    jmp short 04af2h                          ; eb 1a
     test dl, dl                               ; 84 d2
-    je short 04b3ch                           ; 74 05
+    je short 04ae1h                           ; 74 05
     mov dx, strict word 00003h                ; ba 03 00
-    jmp short 04b4dh                          ; eb 11
+    jmp short 04af2h                          ; eb 11
     test bl, 080h                             ; f6 c3 80
-    jne short 04b45h                          ; 75 04
+    jne short 04aeah                          ; 75 04
     xor dh, dh                                ; 30 f6
-    jmp short 04b4dh                          ; eb 08
+    jmp short 04af2h                          ; eb 08
     test bl, 080h                             ; f6 c3 80
-    je short 04b6bh                           ; 74 21
+    je short 04b10h                           ; 74 21
     mov dx, strict word 00001h                ; ba 01 00
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 cb cd
+    call 01923h                               ; e8 26 ce
     imul dx, dx, strict byte 0000ah           ; 6b d2 0a
     add dx, 00dc6h                            ; 81 c2 c6 0d
@@ -6548,5 +6513,5 @@
     push 00494h                               ; 68 94 04
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 fe cd
+    call 01966h                               ; e8 59 ce
     add sp, strict byte 00006h                ; 83 c4 06
     lea sp, [bp-002h]                         ; 8d 66 fe
@@ -6554,5 +6519,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-print_boot_failure_:                         ; 0xf4b71 LB 0x96
+print_boot_failure_:                         ; 0xf4b16 LB 0x96
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6565,51 +6530,51 @@
     mov si, cx                                ; 89 ce
     test al, al                               ; 84 c0
-    je short 04ba1h                           ; 74 1b
+    je short 04b46h                           ; 74 1b
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 92 cd
+    call 01923h                               ; e8 ed cd
     push 00ddah                               ; 68 da 0d
     push 004a8h                               ; 68 a8 04
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 ca cd
+    call 01966h                               ; e8 25 ce
     add sp, strict byte 00006h                ; 83 c4 06
-    jmp short 04be5h                          ; eb 44
+    jmp short 04b8ah                          ; eb 44
     test ah, ah                               ; 84 e4
-    je short 04bb5h                           ; 74 10
+    je short 04b5ah                           ; 74 10
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 73 cd
+    call 01923h                               ; e8 ce cd
     push 00de4h                               ; 68 e4 0d
-    jmp short 04b94h                          ; eb df
+    jmp short 04b39h                          ; eb df
     test bl, 080h                             ; f6 c3 80
-    je short 04bcbh                           ; 74 11
+    je short 04b70h                           ; 74 11
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 5e cd
+    call 01923h                               ; e8 b9 cd
     push si                                   ; 56
     push 00dd0h                               ; 68 d0 0d
-    jmp short 04bdah                          ; eb 0f
+    jmp short 04b7fh                          ; eb 0f
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 4d cd
+    call 01923h                               ; e8 a8 cd
     push si                                   ; 56
     push 00dc6h                               ; 68 c6 0d
     push 004bdh                               ; 68 bd 04
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 84 cd
+    call 01966h                               ; e8 df cd
     add sp, strict byte 00008h                ; 83 c4 08
     cmp byte [bp+004h], 001h                  ; 80 7e 04 01
-    jne short 04bffh                          ; 75 14
+    jne short 04ba4h                          ; 75 14
     test dl, dl                               ; 84 d2
-    jne short 04bf4h                          ; 75 05
+    jne short 04b99h                          ; 75 05
     push 004d5h                               ; 68 d5 04
-    jmp short 04bf7h                          ; eb 03
+    jmp short 04b9ch                          ; eb 03
     push 004ffh                               ; 68 ff 04
     push strict byte 00007h                   ; 6a 07
-    call 01966h                               ; e8 6a cd
+    call 01966h                               ; e8 c5 cd
     add sp, strict byte 00004h                ; 83 c4 04
     lea sp, [bp-002h]                         ; 8d 66 fe
@@ -6617,5 +6582,5 @@
     pop bp                                    ; 5d
     retn 00002h                               ; c2 02 00
-print_cdromboot_failure_:                    ; 0xf4c07 LB 0x27
+print_cdromboot_failure_:                    ; 0xf4bac LB 0x27
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6627,9 +6592,9 @@
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 09 cd
+    call 01923h                               ; e8 64 cd
     push dx                                   ; 52
     push 00534h                               ; 68 34 05
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 43 cd
+    call 01966h                               ; e8 9e cd
     add sp, strict byte 00006h                ; 83 c4 06
     lea sp, [bp-006h]                         ; 8d 66 fa
@@ -6639,5 +6604,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-_int19_function:                             ; 0xf4c2e LB 0x271
+_int19_function:                             ; 0xf4bd3 LB 0x271
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6647,14 +6612,14 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 2d ca
+    call 0166ch                               ; e8 88 ca
     mov bx, ax                                ; 89 c3
     mov word [bp-00eh], ax                    ; 89 46 f2
     mov byte [bp-00ch], 000h                  ; c6 46 f4 00
     mov ax, strict word 0003dh                ; b8 3d 00
-    call 016ach                               ; e8 5e ca
+    call 016ach                               ; e8 b9 ca
     mov dl, al                                ; 88 c2
     xor dh, dh                                ; 30 f6
     mov ax, strict word 00038h                ; b8 38 00
-    call 016ach                               ; e8 54 ca
+    call 016ach                               ; e8 af ca
     and AL, strict byte 0f0h                  ; 24 f0
     xor ah, ah                                ; 30 e4
@@ -6663,5 +6628,5 @@
     or si, ax                                 ; 09 c6
     mov ax, strict word 0003ch                ; b8 3c 00
-    call 016ach                               ; e8 43 ca
+    call 016ach                               ; e8 9e ca
     and AL, strict byte 00fh                  ; 24 0f
     xor ah, ah                                ; 30 e4
@@ -6670,31 +6635,31 @@
     mov dx, 0037dh                            ; ba 7d 03
     mov ax, bx                                ; 89 d8
-    call 01650h                               ; e8 d6 c9
+    call 01650h                               ; e8 31 ca
     test al, al                               ; 84 c0
-    je short 04c8ah                           ; 74 0c
+    je short 04c2fh                           ; 74 0c
     mov dx, 0037dh                            ; ba 7d 03
     mov ax, bx                                ; 89 d8
-    call 01650h                               ; e8 ca c9
+    call 01650h                               ; e8 25 ca
     xor ah, ah                                ; 30 e4
     mov si, ax                                ; 89 c6
     cmp byte [bp+004h], 001h                  ; 80 7e 04 01
-    jne short 04ca0h                          ; 75 10
+    jne short 04c45h                          ; 75 10
     mov ax, strict word 0003ch                ; b8 3c 00
-    call 016ach                               ; e8 16 ca
+    call 016ach                               ; e8 71 ca
     and AL, strict byte 0f0h                  ; 24 f0
     xor ah, ah                                ; 30 e4
     sar ax, 004h                              ; c1 f8 04
-    call 07d8bh                               ; e8 eb 30
+    call 07d10h                               ; e8 cb 30
     cmp byte [bp+004h], 002h                  ; 80 7e 04 02
-    jne short 04ca9h                          ; 75 03
+    jne short 04c4eh                          ; 75 03
     shr si, 004h                              ; c1 ee 04
     cmp byte [bp+004h], 003h                  ; 80 7e 04 03
-    jne short 04cb2h                          ; 75 03
+    jne short 04c57h                          ; 75 03
     shr si, 008h                              ; c1 ee 08
     cmp byte [bp+004h], 004h                  ; 80 7e 04 04
-    jne short 04cbbh                          ; 75 03
+    jne short 04c60h                          ; 75 03
     shr si, 00ch                              ; c1 ee 0c
     cmp si, strict byte 00010h                ; 83 fe 10
-    jnc short 04cc4h                          ; 73 04
+    jnc short 04c69h                          ; 73 04
     mov byte [bp-00ch], 001h                  ; c6 46 f4 01
     xor al, al                                ; 30 c0
@@ -6705,5 +6670,5 @@
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 49 cc
+    call 01923h                               ; e8 a4 cc
     push si                                   ; 56
     mov al, byte [bp+004h]                    ; 8a 46 04
@@ -6712,39 +6677,39 @@
     push 00554h                               ; 68 54 05
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 7d cc
+    call 01966h                               ; e8 d8 cc
     add sp, strict byte 00008h                ; 83 c4 08
     and si, strict byte 0000fh                ; 83 e6 0f
     cmp si, strict byte 00002h                ; 83 fe 02
-    jc short 04d02h                           ; 72 0e
-    jbe short 04d11h                          ; 76 1b
+    jc short 04ca7h                           ; 72 0e
+    jbe short 04cb6h                          ; 76 1b
     cmp si, strict byte 00004h                ; 83 fe 04
-    je short 04d2fh                           ; 74 34
+    je short 04cd4h                           ; 74 34
     cmp si, strict byte 00003h                ; 83 fe 03
-    je short 04d25h                           ; 74 25
-    jmp short 04d5eh                          ; eb 5c
+    je short 04ccah                           ; 74 25
+    jmp short 04d03h                          ; eb 5c
     cmp si, strict byte 00001h                ; 83 fe 01
-    jne short 04d5eh                          ; 75 57
+    jne short 04d03h                          ; 75 57
     xor al, al                                ; 30 c0
     mov byte [bp-006h], al                    ; 88 46 fa
     mov byte [bp-008h], al                    ; 88 46 f8
-    jmp short 04d76h                          ; eb 65
+    jmp short 04d1bh                          ; eb 65
     mov dx, 0037ch                            ; ba 7c 03
     mov ax, word [bp-00eh]                    ; 8b 46 f2
-    call 01650h                               ; e8 36 c9
+    call 01650h                               ; e8 91 c9
     add AL, strict byte 080h                  ; 04 80
     mov byte [bp-006h], al                    ; 88 46 fa
     mov byte [bp-008h], 000h                  ; c6 46 f8 00
-    jmp short 04d76h                          ; eb 51
+    jmp short 04d1bh                          ; eb 51
     mov byte [bp-006h], 000h                  ; c6 46 fa 00
     mov byte [bp-008h], 001h                  ; c6 46 f8 01
-    jmp short 04d39h                          ; eb 0a
+    jmp short 04cdeh                          ; eb 0a
     mov byte [bp-00ah], 001h                  ; c6 46 f6 01
     cmp byte [bp-008h], 000h                  ; 80 7e f8 00
-    je short 04d76h                           ; 74 3d
-    call 03d18h                               ; e8 dc ef
+    je short 04d1bh                           ; 74 3d
+    call 03cd8h                               ; e8 f7 ef
     mov bx, ax                                ; 89 c3
     test AL, strict byte 0ffh                 ; a8 ff
-    je short 04d65h                           ; 74 23
-    call 04c07h                               ; e8 c2 fe
+    je short 04d0ah                           ; 74 23
+    call 04bach                               ; e8 c2 fe
     mov al, byte [bp-00ch]                    ; 8a 46 f4
     xor ah, ah                                ; 30 e4
@@ -6756,34 +6721,34 @@
     mov al, byte [bp-008h]                    ; 8a 46 f8
     mov cx, strict word 00001h                ; b9 01 00
-    call 04b71h                               ; e8 13 fe
+    call 04b16h                               ; e8 13 fe
     xor ax, ax                                ; 31 c0
     xor dx, dx                                ; 31 d2
-    jmp near 04e98h                           ; e9 33 01
+    jmp near 04e3dh                           ; e9 33 01
     mov dx, 00372h                            ; ba 72 03
     mov ax, word [bp-00eh]                    ; 8b 46 f2
-    call 0166ch                               ; e8 fe c8
+    call 0166ch                               ; e8 59 c9
     mov di, ax                                ; 89 c7
     shr bx, 008h                              ; c1 eb 08
     mov byte [bp-006h], bl                    ; 88 5e fa
     cmp byte [bp-00ah], 001h                  ; 80 7e f6 01
-    jne short 04dd1h                          ; 75 55
+    jne short 04d76h                          ; 75 55
     xor si, si                                ; 31 f6
     mov ax, 0e200h                            ; b8 00 e2
     mov es, ax                                ; 8e c0
     cmp word [es:si], 0aa55h                  ; 26 81 3c 55 aa
-    jne short 04d45h                          ; 75 bb
+    jne short 04ceah                          ; 75 bb
     mov cx, ax                                ; 89 c1
     mov si, word [es:si+01ah]                 ; 26 8b 74 1a
     cmp word [es:si+002h], 0506eh             ; 26 81 7c 02 6e 50
-    jne short 04d45h                          ; 75 ad
+    jne short 04ceah                          ; 75 ad
     cmp word [es:si], 05024h                  ; 26 81 3c 24 50
-    jne short 04d45h                          ; 75 a6
+    jne short 04ceah                          ; 75 a6
     mov di, word [es:si+00eh]                 ; 26 8b 7c 0e
     mov dx, word [es:di]                      ; 26 8b 15
     mov ax, word [es:di+002h]                 ; 26 8b 45 02
     cmp ax, 06568h                            ; 3d 68 65
-    jne short 04dd3h                          ; 75 24
+    jne short 04d78h                          ; 75 24
     cmp dx, 07445h                            ; 81 fa 45 74
-    jne short 04dd3h                          ; 75 1e
+    jne short 04d78h                          ; 75 1e
     mov bl, byte [bp-006h]                    ; 8a 5e fa
     xor bh, bh                                ; 30 ff
@@ -6792,9 +6757,9 @@
     mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
-    call 04b26h                               ; e8 5f fd
+    call 04acbh                               ; e8 5f fd
     mov word [bp-012h], strict word 00006h    ; c7 46 ee 06 00
     mov word [bp-010h], cx                    ; 89 4e f0
-    jmp short 04df2h                          ; eb 21
-    jmp short 04df8h                          ; eb 25
+    jmp short 04d97h                          ; eb 21
+    jmp short 04d9dh                          ; eb 25
     mov bl, byte [bp-006h]                    ; 8a 5e fa
     xor bh, bh                                ; 30 ff
@@ -6803,5 +6768,5 @@
     mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
-    call 04b26h                               ; e8 41 fd
+    call 04acbh                               ; e8 41 fd
     sti                                       ; fb
     mov word [bp-010h], cx                    ; 89 4e f0
@@ -6810,9 +6775,9 @@
     mov word [bp-012h], ax                    ; 89 46 ee
     call far [bp-012h]                        ; ff 5e ee
-    jmp near 04d45h                           ; e9 4d ff
+    jmp near 04ceah                           ; e9 4d ff
     cmp byte [bp-008h], 000h                  ; 80 7e f8 00
-    jne short 04e25h                          ; 75 27
+    jne short 04dcah                          ; 75 27
     cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
-    jne short 04e25h                          ; 75 21
+    jne short 04dcah                          ; 75 21
     mov di, 007c0h                            ; bf c0 07
     mov es, di                                ; 8e c7
@@ -6827,30 +6792,30 @@
     sbb ax, strict byte 00000h                ; 83 d8 00
     test ax, ax                               ; 85 c0
-    je short 04e25h                           ; 74 03
-    jmp near 04d45h                           ; e9 20 ff
+    je short 04dcah                           ; 74 03
+    jmp near 04ceah                           ; e9 20 ff
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    je short 04e2fh                           ; 74 04
+    je short 04dd4h                           ; 74 04
     xor bl, bl                                ; 30 db
-    jmp short 04e31h                          ; eb 02
+    jmp short 04dd6h                          ; eb 02
     mov BL, strict byte 001h                  ; b3 01
     cmp byte [bp-008h], 000h                  ; 80 7e f8 00
-    je short 04e39h                           ; 74 02
+    je short 04ddeh                           ; 74 02
     mov BL, strict byte 001h                  ; b3 01
     xor dx, dx                                ; 31 d2
     mov ax, di                                ; 89 f8
-    call 0166ch                               ; e8 2c c8
+    call 0166ch                               ; e8 87 c8
     mov si, ax                                ; 89 c6
     mov dx, strict word 00002h                ; ba 02 00
     mov ax, di                                ; 89 f8
-    call 0166ch                               ; e8 22 c8
+    call 0166ch                               ; e8 7d c8
     cmp si, ax                                ; 39 c6
-    je short 04e5fh                           ; 74 11
+    je short 04e04h                           ; 74 11
     test bl, bl                               ; 84 db
-    jne short 04e77h                          ; 75 25
+    jne short 04e1ch                          ; 75 25
     mov dx, 001feh                            ; ba fe 01
     mov ax, di                                ; 89 f8
-    call 0166ch                               ; e8 12 c8
+    call 0166ch                               ; e8 6d c8
     cmp ax, 0aa55h                            ; 3d 55 aa
-    je short 04e77h                           ; 74 18
+    je short 04e1ch                           ; 74 18
     mov al, byte [bp-00ch]                    ; 8a 46 f4
     xor ah, ah                                ; 30 e4
@@ -6862,5 +6827,5 @@
     mov al, byte [bp-008h]                    ; 8a 46 f8
     xor cx, cx                                ; 31 c9
-    jmp near 04d5bh                           ; e9 e4 fe
+    jmp near 04d00h                           ; e9 e4 fe
     mov bl, byte [bp-006h]                    ; 8a 5e fa
     xor bh, bh                                ; 30 ff
@@ -6869,5 +6834,5 @@
     mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
-    call 04b26h                               ; e8 9d fc
+    call 04acbh                               ; e8 9d fc
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
@@ -6882,5 +6847,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-keyboard_panic_:                             ; 0xf4e9f LB 0x13
+keyboard_panic_:                             ; 0xf4e44 LB 0x13
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6888,10 +6853,10 @@
     push 00574h                               ; 68 74 05
     push strict byte 00007h                   ; 6a 07
-    call 01966h                               ; e8 bb ca
+    call 01966h                               ; e8 16 cb
     add sp, strict byte 00006h                ; 83 c4 06
     mov sp, bp                                ; 89 ec
     pop bp                                    ; 5d
     retn                                      ; c3
-_keyboard_init:                              ; 0xf4eb2 LB 0x26a
+_keyboard_init:                              ; 0xf4e57 LB 0x26a
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6905,16 +6870,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 002h                 ; a8 02
-    je short 04ed5h                           ; 74 0d
+    je short 04e7ah                           ; 74 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 04ed5h                          ; 76 08
+    jbe short 04e7ah                          ; 76 08
     xor al, al                                ; 30 c0
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 04ebeh                          ; eb e9
+    jmp short 04e63h                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 04edeh                          ; 75 05
+    jne short 04e83h                          ; 75 05
     xor ax, ax                                ; 31 c0
-    call 04e9fh                               ; e8 c1 ff
+    call 04e44h                               ; e8 c1 ff
     mov bx, strict word 0ffffh                ; bb ff ff
     mov dx, strict word 00064h                ; ba 64 00
@@ -6923,16 +6888,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 04ef8h                          ; 75 0d
+    jne short 04e9dh                          ; 75 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 04ef8h                          ; 76 08
+    jbe short 04e9dh                          ; 76 08
     mov AL, strict byte 001h                  ; b0 01
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 04ee1h                          ; eb e9
+    jmp short 04e86h                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 04f02h                          ; 75 06
+    jne short 04ea7h                          ; 75 06
     mov ax, strict word 00001h                ; b8 01 00
-    call 04e9fh                               ; e8 9d ff
+    call 04e44h                               ; e8 9d ff
     mov dx, strict word 00060h                ; ba 60 00
     in AL, DX                                 ; ec
@@ -6940,7 +6905,7 @@
     ; sub ah, ah                                ; 2a e4
     cmp ax, strict word 00055h                ; 3d 55 00
-    je short 04f13h                           ; 74 06
+    je short 04eb8h                           ; 74 06
     mov ax, 003dfh                            ; b8 df 03
-    call 04e9fh                               ; e8 8c ff
+    call 04e44h                               ; e8 8c ff
     mov AL, strict byte 0abh                  ; b0 ab
     mov dx, strict word 00064h                ; ba 64 00
@@ -6952,16 +6917,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 002h                 ; a8 02
-    je short 04f33h                           ; 74 0d
+    je short 04ed8h                           ; 74 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 04f33h                          ; 76 08
+    jbe short 04ed8h                          ; 76 08
     mov AL, strict byte 010h                  ; b0 10
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 04f1ch                          ; eb e9
+    jmp short 04ec1h                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 04f3dh                          ; 75 06
+    jne short 04ee2h                          ; 75 06
     mov ax, strict word 0000ah                ; b8 0a 00
-    call 04e9fh                               ; e8 62 ff
+    call 04e44h                               ; e8 62 ff
     mov bx, strict word 0ffffh                ; bb ff ff
     mov dx, strict word 00064h                ; ba 64 00
@@ -6970,16 +6935,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 04f57h                          ; 75 0d
+    jne short 04efch                          ; 75 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 04f57h                          ; 76 08
+    jbe short 04efch                          ; 76 08
     mov AL, strict byte 011h                  ; b0 11
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 04f40h                          ; eb e9
+    jmp short 04ee5h                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 04f61h                          ; 75 06
+    jne short 04f06h                          ; 75 06
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 04e9fh                               ; e8 3e ff
+    call 04e44h                               ; e8 3e ff
     mov dx, strict word 00060h                ; ba 60 00
     in AL, DX                                 ; ec
@@ -6987,7 +6952,7 @@
     ; sub ah, ah                                ; 2a e4
     test ax, ax                               ; 85 c0
-    je short 04f71h                           ; 74 06
+    je short 04f16h                           ; 74 06
     mov ax, 003e0h                            ; b8 e0 03
-    call 04e9fh                               ; e8 2e ff
+    call 04e44h                               ; e8 2e ff
     mov AL, strict byte 0ffh                  ; b0 ff
     mov dx, strict word 00060h                ; ba 60 00
@@ -6999,16 +6964,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 002h                 ; a8 02
-    je short 04f91h                           ; 74 0d
+    je short 04f36h                           ; 74 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 04f91h                          ; 76 08
+    jbe short 04f36h                          ; 76 08
     mov AL, strict byte 020h                  ; b0 20
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 04f7ah                          ; eb e9
+    jmp short 04f1fh                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 04f9bh                          ; 75 06
+    jne short 04f40h                          ; 75 06
     mov ax, strict word 00014h                ; b8 14 00
-    call 04e9fh                               ; e8 04 ff
+    call 04e44h                               ; e8 04 ff
     mov bx, strict word 0ffffh                ; bb ff ff
     mov dx, strict word 00064h                ; ba 64 00
@@ -7017,16 +6982,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 04fb5h                          ; 75 0d
+    jne short 04f5ah                          ; 75 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 04fb5h                          ; 76 08
+    jbe short 04f5ah                          ; 76 08
     mov AL, strict byte 021h                  ; b0 21
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 04f9eh                          ; eb e9
+    jmp short 04f43h                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 04fbfh                          ; 75 06
+    jne short 04f64h                          ; 75 06
     mov ax, strict word 00015h                ; b8 15 00
-    call 04e9fh                               ; e8 e0 fe
+    call 04e44h                               ; e8 e0 fe
     mov dx, strict word 00060h                ; ba 60 00
     in AL, DX                                 ; ec
@@ -7034,7 +6999,7 @@
     ; sub ah, ah                                ; 2a e4
     cmp ax, 000fah                            ; 3d fa 00
-    je short 04fd0h                           ; 74 06
+    je short 04f75h                           ; 74 06
     mov ax, 003e1h                            ; b8 e1 03
-    call 04e9fh                               ; e8 cf fe
+    call 04e44h                               ; e8 cf fe
     mov dx, strict word 00064h                ; ba 64 00
     in AL, DX                                 ; ec
@@ -7042,9 +7007,9 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 04fe2h                          ; 75 08
+    jne short 04f87h                          ; 75 08
     mov AL, strict byte 031h                  ; b0 31
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 04fd0h                          ; eb ee
+    jmp short 04f75h                          ; eb ee
     mov dx, strict word 00060h                ; ba 60 00
     in AL, DX                                 ; ec
@@ -7052,12 +7017,12 @@
     ; sub ah, ah                                ; 2a e4
     cmp ax, 000aah                            ; 3d aa 00
-    je short 04ffbh                           ; 74 0e
+    je short 04fa0h                           ; 74 0e
     in AL, DX                                 ; ec
     db  02ah, 0e4h
     ; sub ah, ah                                ; 2a e4
     cmp ax, 000aah                            ; 3d aa 00
-    je short 04ffbh                           ; 74 06
+    je short 04fa0h                           ; 74 06
     mov ax, 003e2h                            ; b8 e2 03
-    call 04e9fh                               ; e8 a4 fe
+    call 04e44h                               ; e8 a4 fe
     mov AL, strict byte 0f5h                  ; b0 f5
     mov dx, strict word 00060h                ; ba 60 00
@@ -7069,16 +7034,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 002h                 ; a8 02
-    je short 0501bh                           ; 74 0d
+    je short 04fc0h                           ; 74 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 0501bh                          ; 76 08
+    jbe short 04fc0h                          ; 76 08
     mov AL, strict byte 040h                  ; b0 40
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 05004h                          ; eb e9
+    jmp short 04fa9h                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 05025h                          ; 75 06
+    jne short 04fcah                          ; 75 06
     mov ax, strict word 00028h                ; b8 28 00
-    call 04e9fh                               ; e8 7a fe
+    call 04e44h                               ; e8 7a fe
     mov bx, strict word 0ffffh                ; bb ff ff
     mov dx, strict word 00064h                ; ba 64 00
@@ -7087,16 +7052,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 0503fh                          ; 75 0d
+    jne short 04fe4h                          ; 75 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 0503fh                          ; 76 08
+    jbe short 04fe4h                          ; 76 08
     mov AL, strict byte 041h                  ; b0 41
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 05028h                          ; eb e9
+    jmp short 04fcdh                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 05049h                          ; 75 06
+    jne short 04feeh                          ; 75 06
     mov ax, strict word 00029h                ; b8 29 00
-    call 04e9fh                               ; e8 56 fe
+    call 04e44h                               ; e8 56 fe
     mov dx, strict word 00060h                ; ba 60 00
     in AL, DX                                 ; ec
@@ -7104,7 +7069,7 @@
     ; sub ah, ah                                ; 2a e4
     cmp ax, 000fah                            ; 3d fa 00
-    je short 0505ah                           ; 74 06
+    je short 04fffh                           ; 74 06
     mov ax, 003e3h                            ; b8 e3 03
-    call 04e9fh                               ; e8 45 fe
+    call 04e44h                               ; e8 45 fe
     mov AL, strict byte 060h                  ; b0 60
     mov dx, strict word 00064h                ; ba 64 00
@@ -7116,16 +7081,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 002h                 ; a8 02
-    je short 0507ah                           ; 74 0d
+    je short 0501fh                           ; 74 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 0507ah                          ; 76 08
+    jbe short 0501fh                          ; 76 08
     mov AL, strict byte 050h                  ; b0 50
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 05063h                          ; eb e9
+    jmp short 05008h                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 05084h                          ; 75 06
+    jne short 05029h                          ; 75 06
     mov ax, strict word 00032h                ; b8 32 00
-    call 04e9fh                               ; e8 1b fe
+    call 04e44h                               ; e8 1b fe
     mov AL, strict byte 065h                  ; b0 65
     mov dx, strict word 00060h                ; ba 60 00
@@ -7137,16 +7102,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 002h                 ; a8 02
-    je short 050a4h                           ; 74 0d
+    je short 05049h                           ; 74 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 050a4h                          ; 76 08
+    jbe short 05049h                          ; 76 08
     mov AL, strict byte 060h                  ; b0 60
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 0508dh                          ; eb e9
+    jmp short 05032h                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 050aeh                          ; 75 06
+    jne short 05053h                          ; 75 06
     mov ax, strict word 0003ch                ; b8 3c 00
-    call 04e9fh                               ; e8 f1 fd
+    call 04e44h                               ; e8 f1 fd
     mov AL, strict byte 0f4h                  ; b0 f4
     mov dx, strict word 00060h                ; ba 60 00
@@ -7158,16 +7123,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 002h                 ; a8 02
-    je short 050ceh                           ; 74 0d
+    je short 05073h                           ; 74 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 050ceh                          ; 76 08
+    jbe short 05073h                          ; 76 08
     mov AL, strict byte 070h                  ; b0 70
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 050b7h                          ; eb e9
+    jmp short 0505ch                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 050d8h                          ; 75 06
+    jne short 0507dh                          ; 75 06
     mov ax, strict word 00046h                ; b8 46 00
-    call 04e9fh                               ; e8 c7 fd
+    call 04e44h                               ; e8 c7 fd
     mov bx, strict word 0ffffh                ; bb ff ff
     mov dx, strict word 00064h                ; ba 64 00
@@ -7176,16 +7141,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 050f2h                          ; 75 0d
+    jne short 05097h                          ; 75 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 050f2h                          ; 76 08
+    jbe short 05097h                          ; 76 08
     mov AL, strict byte 071h                  ; b0 71
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 050dbh                          ; eb e9
+    jmp short 05080h                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 050fch                          ; 75 06
+    jne short 050a1h                          ; 75 06
     mov ax, strict word 00046h                ; b8 46 00
-    call 04e9fh                               ; e8 a3 fd
+    call 04e44h                               ; e8 a3 fd
     mov dx, strict word 00060h                ; ba 60 00
     in AL, DX                                 ; ec
@@ -7193,16 +7158,16 @@
     ; sub ah, ah                                ; 2a e4
     cmp ax, 000fah                            ; 3d fa 00
-    je short 0510dh                           ; 74 06
+    je short 050b2h                           ; 74 06
     mov ax, 003e4h                            ; b8 e4 03
-    call 04e9fh                               ; e8 92 fd
+    call 04e44h                               ; e8 92 fd
     mov AL, strict byte 0a8h                  ; b0 a8
     mov dx, strict word 00064h                ; ba 64 00
     out DX, AL                                ; ee
     xor ax, ax                                ; 31 c0
-    call 0658ch                               ; e8 74 14
+    call 06513h                               ; e8 56 14
     mov sp, bp                                ; 89 ec
     pop bp                                    ; 5d
     retn                                      ; c3
-enqueue_key_:                                ; 0xf511c LB 0x9e
+enqueue_key_:                                ; 0xf50c1 LB 0x9e
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -7216,18 +7181,18 @@
     mov dx, strict word 0001ah                ; ba 1a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 3a c5
+    call 0166ch                               ; e8 95 c5
     mov di, ax                                ; 89 c7
     mov dx, strict word 0001ch                ; ba 1c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 2f c5
+    call 0166ch                               ; e8 8a c5
     mov si, ax                                ; 89 c6
     lea cx, [si+002h]                         ; 8d 4c 02
     cmp cx, strict byte 0003eh                ; 83 f9 3e
-    jc short 0514ah                           ; 72 03
+    jc short 050efh                           ; 72 03
     mov cx, strict word 0001eh                ; b9 1e 00
     cmp cx, di                                ; 39 f9
-    jne short 05152h                          ; 75 04
+    jne short 050f7h                          ; 75 04
     xor ax, ax                                ; 31 c0
-    jmp short 0517ch                          ; eb 2a
+    jmp short 05121h                          ; eb 2a
     mov al, bl                                ; 88 d8
     xor ah, ah                                ; 30 e4
@@ -7235,14 +7200,14 @@
     mov dx, si                                ; 89 f2
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 fe c4
+    call 0165eh                               ; e8 59 c5
     mov bl, byte [bp-00ah]                    ; 8a 5e f6
     xor bh, bh                                ; 30 ff
     lea dx, [si+001h]                         ; 8d 54 01
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 f0 c4
+    call 0165eh                               ; e8 4b c5
     mov bx, cx                                ; 89 cb
     mov dx, strict word 0001ch                ; ba 1c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0167ah                               ; e8 01 c5
+    call 0167ah                               ; e8 5c c5
     mov ax, strict word 00001h                ; b8 01 00
     lea sp, [bp-008h]                         ; 8d 66 f8
@@ -7263,30 +7228,28 @@
     cmp bh, byte [bx+si]                      ; 3a 38
     sub bl, byte [ss:di]                      ; 36 2a 1d
-    clc                                       ; f8
+    popfw                                     ; 9d
     push sp                                   ; 54
-    mov AL, strict byte 052h                  ; b0 52
+    push bp                                   ; 55
     push dx                                   ; 52
+    not word [bx+di-009h]                     ; f7 51 f7
+    push cx                                   ; 51
+    in AL, strict byte 052h                   ; e4 52
+    into                                      ; ce
+    push cx                                   ; 51
+    push 0dc53h                               ; 68 53 dc
+    push bx                                   ; 53
+    adc word [si+061h], strict byte 00054h    ; 83 54 61 54
+    pushfw                                    ; 9c
     push dx                                   ; 52
-    push dx                                   ; 52
-    push dx                                   ; 52
-    aas                                       ; 3f
-    push bx                                   ; 53
-    sub word [bp+si-03dh], dx                 ; 29 52 c3
-    push bx                                   ; 53
-    aaa                                       ; 37
+    not word [bx+di-009h]                     ; f7 51 f7
+    push cx                                   ; 51
+    db  026h, 053h
+    ; es push bx                                ; 26 53
+    in AL, DX                                 ; ec
+    push cx                                   ; 51
+    mov sp, 04153h                            ; bc 53 41
     push sp                                   ; 54
-    ficom word [si-044h]                      ; de 54 bc
-    push sp                                   ; 54
-    not word [bp+si+052h]                     ; f7 52 52
-    push dx                                   ; 52
-    push dx                                   ; 52
-    push dx                                   ; 52
-    adc word [bp+di+047h], 01752h             ; 81 53 47 52 17
-    push sp                                   ; 54
-    pushfw                                    ; 9c
-    push sp                                   ; 54
-    xlatb                                     ; d7
-    push sp                                   ; 54
-_int09_function:                             ; 0xf51ba LB 0x494
+    jl short 051b3h                           ; 7c 54
+_int09_function:                             ; 0xf515f LB 0x494
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -7296,27 +7259,27 @@
     mov byte [bp-00ah], al                    ; 88 46 f6
     test al, al                               ; 84 c0
-    jne short 051e4h                          ; 75 19
+    jne short 05189h                          ; 75 19
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 4d c7
+    call 01923h                               ; e8 a8 c7
     push 00587h                               ; 68 87 05
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 88 c7
+    call 01966h                               ; e8 e3 c7
     add sp, strict byte 00004h                ; 83 c4 04
-    jmp near 052aah                           ; e9 c6 00
+    jmp near 0524fh                           ; e9 c6 00
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 63 c4
+    call 01650h                               ; e8 be c4
     mov byte [bp-010h], al                    ; 88 46 f0
     mov byte [bp-008h], al                    ; 88 46 f8
     mov dx, 00096h                            ; ba 96 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 54 c4
+    call 01650h                               ; e8 af c4
     mov byte [bp-004h], al                    ; 88 46 fc
     mov byte [bp-00ch], al                    ; 88 46 f4
     mov dx, strict word 00017h                ; ba 17 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 45 c4
+    call 01650h                               ; e8 a0 c4
     mov byte [bp-006h], al                    ; 88 46 fa
     mov byte [bp-00eh], al                    ; 88 46 f2
@@ -7325,9 +7288,9 @@
     pop ES                                    ; 07
     mov cx, strict word 00012h                ; b9 12 00
-    mov di, 05185h                            ; bf 85 51
+    mov di, 0512ah                            ; bf 2a 51
     repne scasb                               ; f2 ae
     sal cx, 1                                 ; d1 e1
     mov di, cx                                ; 89 cf
-    mov ax, word [cs:di+05196h]               ; 2e 8b 85 96 51
+    mov ax, word [cs:di+0513bh]               ; 2e 8b 85 3b 51
     jmp ax                                    ; ff e0
     xor byte [bp-00eh], 040h                  ; 80 76 f2 40
@@ -7337,27 +7300,27 @@
     mov dx, strict word 00017h                ; ba 17 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 21 c4
+    call 0165eh                               ; e8 7c c4
     or byte [bp-008h], 040h                   ; 80 4e f8 40
     mov al, byte [bp-008h]                    ; 8a 46 f8
-    jmp near 054c8h                           ; e9 81 02
+    jmp near 0546dh                           ; e9 81 02
     mov al, byte [bp-010h]                    ; 8a 46 f0
     and AL, strict byte 0bfh                  ; 24 bf
     mov byte [bp-008h], al                    ; 88 46 f8
-    jmp near 054c8h                           ; e9 76 02
+    jmp near 0546dh                           ; e9 76 02
     test byte [bp-00ch], 002h                 ; f6 46 f4 02
-    jne short 0528bh                          ; 75 33
+    jne short 05230h                          ; 75 33
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     and AL, strict byte 07fh                  ; 24 7f
     cmp AL, strict byte 02ah                  ; 3c 2a
-    jne short 05266h                          ; 75 05
+    jne short 0520bh                          ; 75 05
     mov dx, strict word 00002h                ; ba 02 00
-    jmp short 05269h                          ; eb 03
+    jmp short 0520eh                          ; eb 03
     mov dx, strict word 00001h                ; ba 01 00
     test byte [bp-00ah], 080h                 ; f6 46 f6 80
-    je short 05278h                           ; 74 09
+    je short 0521dh                           ; 74 09
     mov al, dl                                ; 88 d0
     not al                                    ; f6 d0
     and byte [bp-00eh], al                    ; 20 46 f2
-    jmp short 0527bh                          ; eb 03
+    jmp short 05220h                          ; eb 03
     or byte [bp-00eh], dl                     ; 08 56 f2
     mov al, byte [bp-00eh]                    ; 8a 46 f2
@@ -7366,9 +7329,9 @@
     mov dx, strict word 00017h                ; ba 17 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 d3 c3
+    call 0165eh                               ; e8 2e c4
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     and AL, strict byte 07fh                  ; 24 7f
     cmp AL, strict byte 01dh                  ; 3c 1d
-    je short 05298h                           ; 74 04
+    je short 0523dh                           ; 74 04
     and byte [bp-00ch], 0feh                  ; 80 66 f4 fe
     and byte [bp-00ch], 0fdh                  ; 80 66 f4 fd
@@ -7377,5 +7340,5 @@
     mov dx, 00096h                            ; ba 96 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 b4 c3
+    call 0165eh                               ; e8 0f c4
     lea sp, [bp-002h]                         ; 8d 66 fe
     pop di                                    ; 5f
@@ -7383,5 +7346,5 @@
     retn                                      ; c3
     test byte [bp-004h], 001h                 ; f6 46 fc 01
-    jne short 0528bh                          ; 75 d5
+    jne short 05230h                          ; 75 d5
     mov al, byte [bp-006h]                    ; 8a 46 fa
     or AL, strict byte 004h                   ; 0c 04
@@ -7391,8 +7354,8 @@
     mov dx, strict word 00017h                ; ba 17 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 93 c3
+    call 0165eh                               ; e8 ee c3
     mov al, byte [bp-004h]                    ; 8a 46 fc
     test AL, strict byte 002h                 ; a8 02
-    je short 052e0h                           ; 74 0e
+    je short 05285h                           ; 74 0e
     or AL, strict byte 004h                   ; 0c 04
     mov byte [bp-00ch], al                    ; 88 46 f4
@@ -7400,5 +7363,5 @@
     mov bx, ax                                ; 89 c3
     mov dx, 00096h                            ; ba 96 00
-    jmp short 052efh                          ; eb 0f
+    jmp short 05294h                          ; eb 0f
     mov al, byte [bp-010h]                    ; 8a 46 f0
     or AL, strict byte 001h                   ; 0c 01
@@ -7408,8 +7371,8 @@
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 69 c3
-    jmp short 0528bh                          ; eb 94
+    call 0165eh                               ; e8 c4 c3
+    jmp short 05230h                          ; eb 94
     test byte [bp-004h], 001h                 ; f6 46 fc 01
-    jne short 0528bh                          ; 75 8e
+    jne short 05230h                          ; 75 8e
     mov al, byte [bp-006h]                    ; 8a 46 fa
     and AL, strict byte 0fbh                  ; 24 fb
@@ -7419,8 +7382,8 @@
     mov dx, strict word 00017h                ; ba 17 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 4c c3
+    call 0165eh                               ; e8 a7 c3
     mov al, byte [bp-004h]                    ; 8a 46 fc
     test AL, strict byte 002h                 ; a8 02
-    je short 05327h                           ; 74 0e
+    je short 052cch                           ; 74 0e
     and AL, strict byte 0fbh                  ; 24 fb
     mov byte [bp-00ch], al                    ; 88 46 f4
@@ -7428,5 +7391,5 @@
     mov bx, ax                                ; 89 c3
     mov dx, 00096h                            ; ba 96 00
-    jmp short 05336h                          ; eb 0f
+    jmp short 052dbh                          ; eb 0f
     mov al, byte [bp-010h]                    ; 8a 46 f0
     and AL, strict byte 0feh                  ; 24 fe
@@ -7436,6 +7399,6 @@
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 22 c3
-    jmp near 0528bh                           ; e9 4c ff
+    call 0165eh                               ; e8 7d c3
+    jmp near 05230h                           ; e9 4c ff
     mov al, byte [bp-006h]                    ; 8a 46 fa
     or AL, strict byte 008h                   ; 0c 08
@@ -7445,8 +7408,8 @@
     mov dx, strict word 00017h                ; ba 17 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 0a c3
+    call 0165eh                               ; e8 65 c3
     mov al, byte [bp-004h]                    ; 8a 46 fc
     test AL, strict byte 002h                 ; a8 02
-    je short 05369h                           ; 74 0e
+    je short 0530eh                           ; 74 0e
     or AL, strict byte 008h                   ; 0c 08
     mov byte [bp-00ch], al                    ; 88 46 f4
@@ -7454,5 +7417,5 @@
     mov bx, ax                                ; 89 c3
     mov dx, 00096h                            ; ba 96 00
-    jmp short 05378h                          ; eb 0f
+    jmp short 0531dh                          ; eb 0f
     mov al, byte [bp-010h]                    ; 8a 46 f0
     or AL, strict byte 002h                   ; 0c 02
@@ -7462,6 +7425,6 @@
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 e0 c2
-    jmp near 0528bh                           ; e9 0a ff
+    call 0165eh                               ; e8 3b c3
+    jmp near 05230h                           ; e9 0a ff
     mov al, byte [bp-006h]                    ; 8a 46 fa
     and AL, strict byte 0f7h                  ; 24 f7
@@ -7471,8 +7434,8 @@
     mov dx, strict word 00017h                ; ba 17 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 c8 c2
+    call 0165eh                               ; e8 23 c3
     mov al, byte [bp-004h]                    ; 8a 46 fc
     test AL, strict byte 002h                 ; a8 02
-    je short 053abh                           ; 74 0e
+    je short 05350h                           ; 74 0e
     and AL, strict byte 0f7h                  ; 24 f7
     mov byte [bp-00ch], al                    ; 88 46 f4
@@ -7480,5 +7443,5 @@
     mov bx, ax                                ; 89 c3
     mov dx, 00096h                            ; ba 96 00
-    jmp short 053bah                          ; eb 0f
+    jmp short 0535fh                          ; eb 0f
     mov al, byte [bp-010h]                    ; 8a 46 f0
     and AL, strict byte 0fdh                  ; 24 fd
@@ -7488,8 +7451,8 @@
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 9e c2
-    jmp near 0528bh                           ; e9 c8 fe
+    call 0165eh                               ; e8 f9 c2
+    jmp near 05230h                           ; e9 c8 fe
     test byte [bp-004h], 003h                 ; f6 46 fc 03
-    jne short 053e9h                          ; 75 20
+    jne short 0538eh                          ; 75 20
     mov al, byte [bp-010h]                    ; 8a 46 f0
     or AL, strict byte 020h                   ; 0c 20
@@ -7499,9 +7462,9 @@
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 80 c2
+    call 0165eh                               ; e8 db c2
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor AL, strict byte 020h                  ; 34 20
     mov byte [bp-00eh], al                    ; 88 46 f2
-    jmp near 0527eh                           ; e9 95 fe
+    jmp near 05223h                           ; e9 95 fe
     mov al, byte [bp-010h]                    ; 8a 46 f0
     or AL, strict byte 008h                   ; 0c 08
@@ -7511,18 +7474,18 @@
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 60 c2
+    call 0165eh                               ; e8 bb c2
     mov AL, strict byte 0aeh                  ; b0 ae
     mov dx, strict word 00064h                ; ba 64 00
     out DX, AL                                ; ee
-    call 0e034h                               ; e8 2d 8c
+    call 0e034h                               ; e8 88 8c
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 40 c2
+    call 01650h                               ; e8 9b c2
     test AL, strict byte 008h                 ; a8 08
-    jne short 05407h                          ; 75 f3
-    jmp near 0528bh                           ; e9 74 fe
+    jne short 053ach                          ; 75 f3
+    jmp near 05230h                           ; e9 74 fe
     test byte [bp-004h], 003h                 ; f6 46 fc 03
-    je short 05420h                           ; 74 03
-    jmp near 0528bh                           ; e9 6b fe
+    je short 053c5h                           ; 74 03
+    jmp near 05230h                           ; e9 6b fe
     mov al, byte [bp-010h]                    ; 8a 46 f0
     and AL, strict byte 0dfh                  ; 24 df
@@ -7532,19 +7495,19 @@
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 29 c2
-    jmp short 0541dh                          ; eb e6
+    call 0165eh                               ; e8 84 c2
+    jmp short 053c2h                          ; eb e6
     test byte [bp-004h], 002h                 ; f6 46 fc 02
-    je short 05470h                           ; 74 33
+    je short 05415h                           ; 74 33
     mov dx, strict word 0001ah                ; ba 1a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 26 c2
+    call 0166ch                               ; e8 81 c2
     mov bx, ax                                ; 89 c3
     mov dx, strict word 0001ch                ; ba 1c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0167ah                               ; e8 29 c2
+    call 0167ah                               ; e8 84 c2
     mov bx, 00080h                            ; bb 80 00
     mov dx, strict word 00071h                ; ba 71 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 01 c2
+    call 0165eh                               ; e8 5c c2
     mov AL, strict byte 0aeh                  ; b0 ae
     mov dx, strict word 00064h                ; ba 64 00
@@ -7555,6 +7518,6 @@
     xor dx, dx                                ; 31 d2
     xor ax, ax                                ; 31 c0
-    call 0511ch                               ; e8 ae fc
-    jmp short 0541dh                          ; eb ad
+    call 050c1h                               ; e8 ae fc
+    jmp short 053c2h                          ; eb ad
     mov al, byte [bp-010h]                    ; 8a 46 f0
     or AL, strict byte 010h                   ; 0c 10
@@ -7564,5 +7527,5 @@
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 d9 c1
+    call 0165eh                               ; e8 34 c2
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor AL, strict byte 010h                  ; 34 10
@@ -7572,9 +7535,9 @@
     mov dx, strict word 00017h                ; ba 17 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 c4 c1
-    jmp short 0541dh                          ; eb 81
+    call 0165eh                               ; e8 1f c2
+    jmp short 053c2h                          ; eb 81
     test byte [bp-004h], 002h                 ; f6 46 fc 02
-    je short 054a5h                           ; 74 03
-    jmp near 0528bh                           ; e9 e6 fd
+    je short 0544ah                           ; 74 03
+    jmp near 05230h                           ; e9 e6 fd
     mov al, byte [bp-010h]                    ; 8a 46 f0
     and AL, strict byte 0efh                  ; 24 ef
@@ -7584,9 +7547,9 @@
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 a4 c1
-    jmp short 054a2h                          ; eb e6
+    call 0165eh                               ; e8 ff c1
+    jmp short 05447h                          ; eb e6
     mov al, byte [bp-010h]                    ; 8a 46 f0
     test AL, strict byte 004h                 ; a8 04
-    jne short 054a2h                          ; 75 df
+    jne short 05447h                          ; 75 df
     or AL, strict byte 004h                   ; 0c 04
     mov byte [bp-008h], al                    ; 88 46 f8
@@ -7595,43 +7558,43 @@
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 89 c1
-    jmp short 054a2h                          ; eb cb
+    call 0165eh                               ; e8 e4 c1
+    jmp short 05447h                          ; eb cb
     mov al, byte [bp-010h]                    ; 8a 46 f0
     and AL, strict byte 0fbh                  ; 24 fb
-    jmp short 054aah                          ; eb cc
+    jmp short 0544fh                          ; eb cc
     mov al, byte [bp-006h]                    ; 8a 46 fa
     and AL, strict byte 00ch                  ; 24 0c
     cmp AL, strict byte 00ch                  ; 3c 0c
-    jne short 054f8h                          ; 75 11
+    jne short 0549dh                          ; 75 11
     mov bx, 01234h                            ; bb 34 12
     mov dx, strict word 00072h                ; ba 72 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0167ah                               ; e8 87 c1
+    call 0167ah                               ; e8 e2 c1
     jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
     test byte [bp-008h], 008h                 ; f6 46 f8 08
-    je short 0550dh                           ; 74 0f
+    je short 054b2h                           ; 74 0f
     and byte [bp-008h], 0f7h                  ; 80 66 f8 f7
     mov bl, byte [bp-008h]                    ; 8a 5e f8
     xor bh, bh                                ; 30 ff
     mov dx, strict word 00018h                ; ba 18 00
-    jmp near 052a4h                           ; e9 97 fd
+    jmp near 05249h                           ; e9 97 fd
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     test AL, strict byte 080h                 ; a8 80
-    je short 0554bh                           ; 74 37
+    je short 054f0h                           ; 74 37
     cmp AL, strict byte 0fah                  ; 3c fa
-    jne short 0552ah                          ; 75 12
+    jne short 054cfh                          ; 75 12
     mov dx, 00097h                            ; ba 97 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 2f c1
+    call 01650h                               ; e8 8a c1
     mov bl, al                                ; 88 c3
     or bl, 010h                               ; 80 cb 10
     xor bh, bh                                ; 30 ff
-    jmp short 05540h                          ; eb 16
+    jmp short 054e5h                          ; eb 16
     cmp AL, strict byte 0feh                  ; 3c fe
-    je short 05531h                           ; 74 03
-    jmp near 0528bh                           ; e9 5a fd
+    je short 054d6h                           ; 74 03
+    jmp near 05230h                           ; e9 5a fd
     mov dx, 00097h                            ; ba 97 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 16 c1
+    call 01650h                               ; e8 71 c1
     or AL, strict byte 020h                   ; 0c 20
     xor ah, ah                                ; 30 e4
@@ -7639,12 +7602,12 @@
     mov dx, 00097h                            ; ba 97 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 15 c1
-    jmp short 0552eh                          ; eb e3
+    call 0165eh                               ; e8 70 c1
+    jmp short 054d3h                          ; eb e3
     cmp byte [bp-00ah], 058h                  ; 80 7e f6 58
-    jbe short 05570h                          ; 76 1f
+    jbe short 05515h                          ; 76 1f
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 c7 c3
+    call 01923h                               ; e8 22 c4
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     xor ah, ah                                ; 30 e4
@@ -7652,10 +7615,10 @@
     push 005a1h                               ; 68 a1 05
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 fc c3
+    call 01966h                               ; e8 57 c4
     add sp, strict byte 00006h                ; 83 c4 06
-    jmp near 052aah                           ; e9 3a fd
+    jmp near 0524fh                           ; e9 3a fd
     mov al, byte [bp-00eh]                    ; 8a 46 f2
     test AL, strict byte 008h                 ; a8 08
-    je short 0558ah                           ; 74 13
+    je short 0552fh                           ; 74 13
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     xor ah, ah                                ; 30 e4
@@ -7663,7 +7626,7 @@
     mov dl, byte [bx+00df4h]                  ; 8a 97 f4 0d
     mov ax, word [bx+00df4h]                  ; 8b 87 f4 0d
-    jmp near 0561ah                           ; e9 90 00
+    jmp near 055bfh                           ; e9 90 00
     test AL, strict byte 004h                 ; a8 04
-    je short 055a1h                           ; 74 13
+    je short 05546h                           ; 74 13
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     xor ah, ah                                ; 30 e4
@@ -7671,20 +7634,20 @@
     mov dl, byte [bx+00df2h]                  ; 8a 97 f2 0d
     mov ax, word [bx+00df2h]                  ; 8b 87 f2 0d
-    jmp near 0561ah                           ; e9 79 00
+    jmp near 055bfh                           ; e9 79 00
     mov al, byte [bp-00ch]                    ; 8a 46 f4
     and AL, strict byte 002h                  ; 24 02
     test al, al                               ; 84 c0
-    jbe short 055beh                          ; 76 14
+    jbe short 05563h                          ; 76 14
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     cmp AL, strict byte 047h                  ; 3c 47
-    jc short 055beh                           ; 72 0d
+    jc short 05563h                           ; 72 0d
     cmp AL, strict byte 053h                  ; 3c 53
-    jnbe short 055beh                         ; 77 09
+    jnbe short 05563h                         ; 77 09
     mov DL, strict byte 0e0h                  ; b2 e0
     xor ah, ah                                ; 30 e4
     imul bx, ax, strict byte 0000ah           ; 6b d8 0a
-    jmp short 05616h                          ; eb 58
+    jmp short 055bbh                          ; eb 58
     test byte [bp-00eh], 003h                 ; f6 46 f2 03
-    je short 055f3h                           ; 74 2f
+    je short 05598h                           ; 74 2f
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     xor ah, ah                                ; 30 e4
@@ -7694,13 +7657,13 @@
     mov al, byte [bp-00eh]                    ; 8a 46 f2
     test ax, dx                               ; 85 d0
-    je short 055e3h                           ; 74 0a
+    je short 05588h                           ; 74 0a
     mov dl, byte [bx+00deeh]                  ; 8a 97 ee 0d
     mov ax, word [bx+00deeh]                  ; 8b 87 ee 0d
-    jmp short 055ebh                          ; eb 08
+    jmp short 05590h                          ; eb 08
     mov dl, byte [bx+00df0h]                  ; 8a 97 f0 0d
     mov ax, word [bx+00df0h]                  ; 8b 87 f0 0d
     shr ax, 008h                              ; c1 e8 08
     mov byte [bp-00ah], al                    ; 88 46 f6
-    jmp short 05620h                          ; eb 2d
+    jmp short 055c5h                          ; eb 2d
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     xor ah, ah                                ; 30 e4
@@ -7710,8 +7673,8 @@
     mov al, byte [bp-00eh]                    ; 8a 46 f2
     test ax, dx                               ; 85 d0
-    je short 05612h                           ; 74 0a
+    je short 055b7h                           ; 74 0a
     mov dl, byte [bx+00df0h]                  ; 8a 97 f0 0d
     mov ax, word [bx+00df0h]                  ; 8b 87 f0 0d
-    jmp short 0561ah                          ; eb 08
+    jmp short 055bfh                          ; eb 08
     mov dl, byte [bx+00deeh]                  ; 8a 97 ee 0d
     mov ax, word [bx+00deeh]                  ; 8b 87 ee 0d
@@ -7719,14 +7682,14 @@
     mov byte [bp-00ah], al                    ; 88 46 f6
     cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
-    jne short 05640h                          ; 75 1a
+    jne short 055e5h                          ; 75 1a
     test dl, dl                               ; 84 d2
-    jne short 05640h                          ; 75 16
+    jne short 055e5h                          ; 75 16
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 ee c2
+    call 01923h                               ; e8 49 c3
     push 005d8h                               ; 68 d8 05
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 29 c3
+    call 01966h                               ; e8 84 c3
     add sp, strict byte 00004h                ; 83 c4 04
     mov bl, dl                                ; 88 d3
@@ -7735,6 +7698,6 @@
     xor ah, ah                                ; 30 e4
     mov dx, bx                                ; 89 da
-    jmp near 0546bh                           ; e9 1d fe
-dequeue_key_:                                ; 0xf564e LB 0x94
+    jmp near 05410h                           ; e9 1d fe
+dequeue_key_:                                ; 0xf55f3 LB 0x94
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -7749,18 +7712,18 @@
     mov dx, strict word 0001ah                ; ba 1a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 04 c0
+    call 0166ch                               ; e8 5f c0
     mov bx, ax                                ; 89 c3
     mov dx, strict word 0001ch                ; ba 1c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 f9 bf
+    call 0166ch                               ; e8 54 c0
     cmp bx, ax                                ; 39 c3
-    je short 056b4h                           ; 74 3d
+    je short 05659h                           ; 74 3d
     mov dx, bx                                ; 89 da
     mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 d1 bf
+    call 01650h                               ; e8 2c c0
     mov cl, al                                ; 88 c1
     lea dx, [bx+001h]                         ; 8d 57 01
     mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 c6 bf
+    call 01650h                               ; e8 21 c0
     mov es, [bp-008h]                         ; 8e 46 f8
     mov byte [es:si], cl                      ; 26 88 0c
@@ -7768,15 +7731,15 @@
     mov byte [es:di], al                      ; 26 88 05
     cmp word [bp+004h], strict byte 00000h    ; 83 7e 04 00
-    je short 056afh                           ; 74 13
+    je short 05654h                           ; 74 13
     inc bx                                    ; 43
     inc bx                                    ; 43
     cmp bx, strict byte 0003eh                ; 83 fb 3e
-    jc short 056a6h                           ; 72 03
+    jc short 0564bh                           ; 72 03
     mov bx, strict word 0001eh                ; bb 1e 00
     mov dx, strict word 0001ah                ; ba 1a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0167ah                               ; e8 cb bf
+    call 0167ah                               ; e8 26 c0
     mov ax, strict word 00001h                ; b8 01 00
-    jmp short 056b6h                          ; eb 02
+    jmp short 0565bh                          ; eb 02
     xor ax, ax                                ; 31 c0
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -7789,21 +7752,21 @@
     or cl, byte [bx+di]                       ; 0a 09
     add ax, 00102h                            ; 05 02 01
-    add ah, ah                                ; 00 e4
+    add byte [bx+di+04057h], cl               ; 00 89 57 40
     push di                                   ; 57
-    wait                                      ; 9b
+    rcl byte [bx+01eh], CL                    ; d2 57 1e
+    pop ax                                    ; 58
+    das                                       ; 2f
+    pop ax                                    ; 58
+    pop ax                                    ; 58
+    pop ax                                    ; 58
+    popaw                                     ; 61
+    pop ax                                    ; 58
+    rcr byte [bx+si+004h], CL                 ; d2 58 04
+    pop cx                                    ; 59
+    xor bx, word [bx+di+06ch]                 ; 33 59 6c
+    pop cx                                    ; 59
+    int3                                      ; cc
     push di                                   ; 57
-    sub ax, 07958h                            ; 2d 58 79
-    pop ax                                    ; 58
-    mov bl, byte [bx+si-04dh]                 ; 8a 58 b3
-    pop ax                                    ; 58
-    mov sp, 02d58h                            ; bc 58 2d
-    pop cx                                    ; 59
-    pop di                                    ; 5f
-    pop cx                                    ; 59
-    mov ds, [bx+di-039h]                      ; 8e 59 c7
-    pop cx                                    ; 59
-    daa                                       ; 27
-    pop ax                                    ; 58
-_int16_function:                             ; 0xf56e2 LB 0x2f0
+_int16_function:                             ; 0xf5687 LB 0x2f0
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -7812,10 +7775,10 @@
     mov dx, strict word 00017h                ; ba 17 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 5e bf
+    call 01650h                               ; e8 b9 bf
     mov cl, al                                ; 88 c1
     mov bh, al                                ; 88 c7
     mov dx, 00097h                            ; ba 97 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 51 bf
+    call 01650h                               ; e8 ac bf
     mov bl, al                                ; 88 c3
     mov dl, cl                                ; 88 ca
@@ -7827,5 +7790,5 @@
     xor al, dl                                ; 30 d0
     test ax, ax                               ; 85 c0
-    je short 0577bh                           ; 74 66
+    je short 05720h                           ; 74 66
     cli                                       ; fa
     mov AL, strict byte 0edh                  ; b0 ed
@@ -7837,9 +7800,9 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 0572eh                          ; 75 08
+    jne short 056d3h                          ; 75 08
     mov AL, strict byte 021h                  ; b0 21
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 0571ch                          ; eb ee
+    jmp short 056c1h                          ; eb ee
     mov dx, strict word 00060h                ; ba 60 00
     in AL, DX                                 ; ec
@@ -7847,5 +7810,5 @@
     ; sub ah, ah                                ; 2a e4
     cmp ax, 000fah                            ; 3d fa 00
-    jne short 0577ah                          ; 75 41
+    jne short 0571fh                          ; 75 41
     mov dl, bl                                ; 88 da
     and dl, 0c8h                              ; 80 e2 c8
@@ -7867,9 +7830,9 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 05769h                          ; 75 08
+    jne short 0570eh                          ; 75 08
     mov AL, strict byte 021h                  ; b0 21
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 05757h                          ; eb ee
+    jmp short 056fch                          ; eb ee
     mov dx, strict word 00060h                ; ba 60 00
     in AL, DX                                 ; ec
@@ -7879,18 +7842,18 @@
     mov dx, 00097h                            ; ba 97 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 e4 be
+    call 0165eh                               ; e8 3f bf
     sti                                       ; fb
     mov ax, word [bp+012h]                    ; 8b 46 12
     shr ax, 008h                              ; c1 e8 08
     cmp ax, 000a2h                            ; 3d a2 00
-    jnbe short 057e4h                         ; 77 5e
+    jnbe short 05789h                         ; 77 5e
     push CS                                   ; 0e
     pop ES                                    ; 07
     mov cx, strict word 0000ch                ; b9 0c 00
-    mov di, 056bfh                            ; bf bf 56
+    mov di, 05664h                            ; bf 64 56
     repne scasb                               ; f2 ae
     sal cx, 1                                 ; d1 e1
     mov di, cx                                ; 89 cf
-    mov ax, word [cs:di+056cah]               ; 2e 8b 85 ca 56
+    mov ax, word [cs:di+0566fh]               ; 2e 8b 85 6f 56
     jmp ax                                    ; ff e0
     push strict byte 00001h                   ; 6a 01
@@ -7899,17 +7862,17 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-006h]                         ; 8d 46 fa
-    call 0564eh                               ; e8 a4 fe
+    call 055f3h                               ; e8 a4 fe
     test ax, ax                               ; 85 c0
-    jne short 057b9h                          ; 75 0b
+    jne short 0575eh                          ; 75 0b
     push 0060fh                               ; 68 0f 06
     push strict byte 00007h                   ; 6a 07
-    call 01966h                               ; e8 b0 c1
+    call 01966h                               ; e8 0b c2
     add sp, strict byte 00004h                ; 83 c4 04
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    je short 057c5h                           ; 74 06
+    je short 0576ah                           ; 74 06
     cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
-    je short 057cbh                           ; 74 06
+    je short 05770h                           ; 74 06
     cmp byte [bp-008h], 0e0h                  ; 80 7e f8 e0
-    jne short 057cfh                          ; 75 04
+    jne short 05774h                          ; 75 04
     mov byte [bp-008h], 000h                  ; c6 46 f8 00
     mov al, byte [bp-006h]                    ; 8a 46 fa
@@ -7920,9 +7883,9 @@
     or dx, ax                                 ; 09 c2
     mov word [bp+012h], dx                    ; 89 56 12
-    jmp near 05827h                           ; e9 43 00
+    jmp near 057cch                           ; e9 43 00
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 34 c1
+    call 01923h                               ; e8 8f c1
     mov ax, word [bp+012h]                    ; 8b 46 12
     shr ax, 008h                              ; c1 e8 08
@@ -7930,10 +7893,10 @@
     push 00633h                               ; 68 33 06
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 68 c1
+    call 01966h                               ; e8 c3 c1
     add sp, strict byte 00006h                ; 83 c4 06
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 17 c1
+    call 01923h                               ; e8 72 c1
     mov ax, word [bp+00eh]                    ; 8b 46 0e
     push ax                                   ; 50
@@ -7946,5 +7909,5 @@
     push 0065bh                               ; 68 5b 06
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 42 c1
+    call 01966h                               ; e8 9d c1
     add sp, strict byte 0000ch                ; 83 c4 0c
     lea sp, [bp-002h]                         ; 8d 66 fe
@@ -7958,15 +7921,15 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-006h]                         ; 8d 46 fa
-    call 0564eh                               ; e8 0d fe
+    call 055f3h                               ; e8 0d fe
     test ax, ax                               ; 85 c0
-    jne short 0584bh                          ; 75 06
+    jne short 057f0h                          ; 75 06
     or word [bp+01ch], strict byte 00040h     ; 83 4e 1c 40
-    jmp short 05827h                          ; eb dc
+    jmp short 057cch                          ; eb dc
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    je short 05857h                           ; 74 06
+    je short 057fch                           ; 74 06
     cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
-    je short 0585dh                           ; 74 06
+    je short 05802h                           ; 74 06
     cmp byte [bp-008h], 0e0h                  ; 80 7e f8 e0
-    jne short 05861h                          ; 75 04
+    jne short 05806h                          ; 75 04
     mov byte [bp-008h], 000h                  ; c6 46 f8 00
     mov al, byte [bp-006h]                    ; 8a 46 fa
@@ -7978,11 +7941,11 @@
     mov word [bp+012h], dx                    ; 89 56 12
     and word [bp+01ch], strict byte 0ffbfh    ; 83 66 1c bf
-    jmp short 05827h                          ; eb ae
+    jmp short 057cch                          ; eb ae
     mov dx, strict word 00017h                ; ba 17 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 ce bd
+    call 01650h                               ; e8 29 be
     mov dx, word [bp+012h]                    ; 8b 56 12
     mov dl, al                                ; 88 c2
-    jmp near 057deh                           ; e9 54 ff
+    jmp near 05783h                           ; e9 54 ff
     mov dl, byte [bp+010h]                    ; 8a 56 10
     xor dh, dh                                ; 30 f6
@@ -7990,18 +7953,18 @@
     shr ax, 008h                              ; c1 e8 08
     xor ah, ah                                ; 30 e4
-    call 0511ch                               ; e8 82 f8
+    call 050c1h                               ; e8 82 f8
     test ax, ax                               ; 85 c0
-    jne short 058abh                          ; 75 0d
+    jne short 05850h                          ; 75 0d
     mov ax, word [bp+012h]                    ; 8b 46 12
     xor al, al                                ; 30 c0
     or AL, strict byte 001h                   ; 0c 01
     mov word [bp+012h], ax                    ; 89 46 12
-    jmp near 05827h                           ; e9 7c ff
+    jmp near 057cch                           ; e9 7c ff
     and word [bp+012h], 0ff00h                ; 81 66 12 00 ff
-    jmp near 05827h                           ; e9 74 ff
+    jmp near 057cch                           ; e9 74 ff
     mov ax, word [bp+012h]                    ; 8b 46 12
     xor al, al                                ; 30 c0
     or AL, strict byte 030h                   ; 0c 30
-    jmp short 058a5h                          ; eb e9
+    jmp short 0584ah                          ; eb e9
     mov byte [bp-004h], 002h                  ; c6 46 fc 02
     xor cx, cx                                ; 31 c9
@@ -8016,15 +7979,15 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 058e3h                          ; 75 0d
+    jne short 05888h                          ; 75 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 058e3h                          ; 76 08
+    jbe short 05888h                          ; 76 08
     mov dx, 00080h                            ; ba 80 00
     in AL, DX                                 ; ec
     db  02ah, 0e4h
     ; sub ah, ah                                ; 2a e4
-    jmp short 058cch                          ; eb e9
+    jmp short 05871h                          ; eb e9
     test bx, bx                               ; 85 db
-    jbe short 05927h                          ; 76 40
+    jbe short 058cch                          ; 76 40
     mov dx, strict word 00060h                ; ba 60 00
     in AL, DX                                 ; ec
@@ -8032,5 +7995,5 @@
     ; sub ah, ah                                ; 2a e4
     cmp ax, 000fah                            ; 3d fa 00
-    jne short 05927h                          ; 75 35
+    jne short 058cch                          ; 75 35
     mov bx, strict word 0ffffh                ; bb ff ff
     mov dx, strict word 00064h                ; ba 64 00
@@ -8039,15 +8002,15 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 0590ch                          ; 75 0d
+    jne short 058b1h                          ; 75 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 0590ch                          ; 76 08
+    jbe short 058b1h                          ; 76 08
     mov dx, 00080h                            ; ba 80 00
     in AL, DX                                 ; ec
     db  02ah, 0e4h
     ; sub ah, ah                                ; 2a e4
-    jmp short 058f5h                          ; eb e9
+    jmp short 0589ah                          ; eb e9
     test bx, bx                               ; 85 db
-    jbe short 0591eh                          ; 76 0e
+    jbe short 058c3h                          ; 76 0e
     shr cx, 008h                              ; c1 e9 08
     mov dx, strict word 00060h                ; ba 60 00
@@ -8059,7 +8022,7 @@
     dec byte [bp-004h]                        ; fe 4e fc
     cmp byte [bp-004h], 000h                  ; 80 7e fc 00
-    jnbe short 058f2h                         ; 77 cb
+    jnbe short 05897h                         ; 77 cb
     mov word [bp+00ch], cx                    ; 89 4e 0c
-    jmp near 05827h                           ; e9 fa fe
+    jmp near 057cch                           ; e9 fa fe
     push strict byte 00001h                   ; 6a 01
     mov cx, ss                                ; 8c d1
@@ -8067,18 +8030,18 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-006h]                         ; 8d 46 fa
-    call 0564eh                               ; e8 12 fd
+    call 055f3h                               ; e8 12 fd
     test ax, ax                               ; 85 c0
-    jne short 0594bh                          ; 75 0b
+    jne short 058f0h                          ; 75 0b
     push 0060fh                               ; 68 0f 06
     push strict byte 00007h                   ; 6a 07
-    call 01966h                               ; e8 1e c0
+    call 01966h                               ; e8 79 c0
     add sp, strict byte 00004h                ; 83 c4 04
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    jne short 05954h                          ; 75 03
-    jmp near 057cfh                           ; e9 7b fe
+    jne short 058f9h                          ; 75 03
+    jmp near 05774h                           ; e9 7b fe
     cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
-    jne short 0595dh                          ; 75 03
-    jmp near 057cbh                           ; e9 6e fe
-    jmp short 05951h                          ; eb f2
+    jne short 05902h                          ; 75 03
+    jmp near 05770h                           ; e9 6e fe
+    jmp short 058f6h                          ; eb f2
     or word [bp+01ch], 00200h                 ; 81 4e 1c 00 02
     push strict byte 00000h                   ; 6a 00
@@ -8087,18 +8050,18 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-006h]                         ; 8d 46 fa
-    call 0564eh                               ; e8 db fc
+    call 055f3h                               ; e8 db fc
     test ax, ax                               ; 85 c0
-    jne short 0597ah                          ; 75 03
-    jmp near 05845h                           ; e9 cb fe
+    jne short 0591fh                          ; 75 03
+    jmp near 057eah                           ; e9 cb fe
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    jne short 05983h                          ; 75 03
-    jmp near 05861h                           ; e9 de fe
+    jne short 05928h                          ; 75 03
+    jmp near 05806h                           ; e9 de fe
     cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
-    jne short 0598ch                          ; 75 03
-    jmp near 0585dh                           ; e9 d1 fe
-    jmp short 05980h                          ; eb f2
+    jne short 05931h                          ; 75 03
+    jmp near 05802h                           ; e9 d1 fe
+    jmp short 05925h                          ; eb f2
     mov dx, strict word 00017h                ; ba 17 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 b9 bc
+    call 01650h                               ; e8 14 bd
     mov dx, word [bp+012h]                    ; 8b 56 12
     mov dl, al                                ; 88 c2
@@ -8106,10 +8069,10 @@
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 a8 bc
+    call 01650h                               ; e8 03 bd
     mov bh, al                                ; 88 c7
     and bh, 073h                              ; 80 e7 73
     mov dx, 00096h                            ; ba 96 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 9a bc
+    call 01650h                               ; e8 f5 bc
     and AL, strict byte 00ch                  ; 24 0c
     or al, bh                                 ; 08 f8
@@ -8118,10 +8081,10 @@
     xor ah, ah                                ; 30 e4
     sal ax, 008h                              ; c1 e0 08
-    jmp near 057dch                           ; e9 15 fe
+    jmp near 05781h                           ; e9 15 fe
     mov ax, word [bp+012h]                    ; 8b 46 12
     xor ah, ah                                ; 30 e4
     or ah, 080h                               ; 80 cc 80
-    jmp near 058a5h                           ; e9 d3 fe
-set_geom_lba_:                               ; 0xf59d2 LB 0xe7
+    jmp near 0584ah                           ; e9 d3 fe
+set_geom_lba_:                               ; 0xf5977 LB 0xe7
     push bx                                   ; 53
     push cx                                   ; 51
@@ -8139,30 +8102,30 @@
     mov dx, word [bp+00ch]                    ; 8b 56 0c
     mov si, strict word 00020h                ; be 20 00
-    call 0a02ah                               ; e8 2b 46
+    call 09faah                               ; e8 06 46
     test ax, ax                               ; 85 c0
-    jne short 05a0fh                          ; 75 0c
+    jne short 059b4h                          ; 75 0c
     test bx, bx                               ; 85 db
-    jne short 05a0fh                          ; 75 08
+    jne short 059b4h                          ; 75 08
     test cx, cx                               ; 85 c9
-    jne short 05a0fh                          ; 75 04
+    jne short 059b4h                          ; 75 04
     test dx, dx                               ; 85 d2
-    je short 05a16h                           ; 74 07
+    je short 059bbh                           ; 74 07
     mov bx, strict word 0ffffh                ; bb ff ff
     mov si, bx                                ; 89 de
-    jmp short 05a1ch                          ; eb 06
+    jmp short 059c1h                          ; eb 06
     mov bx, word [bp+00ch]                    ; 8b 5e 0c
     mov si, word [bp+00eh]                    ; 8b 76 0e
     mov word [bp-004h], bx                    ; 89 5e fc
     xor bx, bx                                ; 31 db
-    jmp short 05a28h                          ; eb 05
+    jmp short 059cdh                          ; eb 05
     cmp bx, strict byte 00004h                ; 83 fb 04
-    jnl short 05a4bh                          ; 7d 23
+    jnl short 059f0h                          ; 7d 23
     mov ax, word [bp-006h]                    ; 8b 46 fa
     cmp si, ax                                ; 39 c6
-    jc short 05a39h                           ; 72 0a
-    jne short 05a42h                          ; 75 11
+    jc short 059deh                           ; 72 0a
+    jne short 059e7h                          ; 75 11
     mov ax, word [bp-004h]                    ; 8b 46 fc
     cmp ax, word [bp-008h]                    ; 3b 46 f8
-    jnbe short 05a42h                         ; 77 09
+    jnbe short 059e7h                         ; 77 09
     mov ax, word [bp-002h]                    ; 8b 46 fe
     inc ax                                    ; 40
@@ -8172,18 +8135,18 @@
     rcr word [bp-008h], 1                     ; d1 5e f8
     inc bx                                    ; 43
-    jmp short 05a23h                          ; eb d8
+    jmp short 059c8h                          ; eb d8
     mov ax, word [bp-002h]                    ; 8b 46 fe
     xor dx, dx                                ; 31 d2
     mov bx, strict word 0003fh                ; bb 3f 00
     xor cx, cx                                ; 31 c9
-    call 09fe9h                               ; e8 91 45
+    call 09f69h                               ; e8 6c 45
     mov bx, ax                                ; 89 c3
     mov cx, dx                                ; 89 d1
     mov ax, word [bp-004h]                    ; 8b 46 fc
     mov dx, si                                ; 89 f2
-    call 09fb0h                               ; e8 4c 45
+    call 09f30h                               ; e8 27 45
     mov word [es:di+002h], ax                 ; 26 89 45 02
     cmp ax, 00400h                            ; 3d 00 04
-    jbe short 05a73h                          ; 76 06
+    jbe short 05a18h                          ; 76 06
     mov word [es:di+002h], 00400h             ; 26 c7 45 02 00 04
     mov ax, word [bp-002h]                    ; 8b 46 fe
@@ -8196,42 +8159,45 @@
     pop bx                                    ; 5b
     retn 00008h                               ; c2 08 00
-    inc cx                                    ; 41
+    out strict byte 05ah, AL                  ; e6 5a
+    neg word [bp+si+026h]                     ; f7 5a 26
     pop bx                                    ; 5b
-    push dx                                   ; 52
-    pop bx                                    ; 5b
-    sbb word [bp+di-07fh], 0815bh             ; 81 5b 81 5b 81
-    pop bx                                    ; 5b
-    jno short 05af0h                          ; 71 5d
-    stosb                                     ; aa
+    db  026h, 05bh
+    ; es pop bx                                 ; 26 5b
+    db  026h, 05bh
+    ; es pop bx                                 ; 26 5b
+    push SS                                   ; 16
+    pop bp                                    ; 5d
+    dec di                                    ; 4f
     pop si                                    ; 5e
-    stosb                                     ; aa
+    dec di                                    ; 4f
     pop si                                    ; 5e
-    sahf                                      ; 9e
+    inc bx                                    ; 43
     pop bp                                    ; 5d
-    xchg word [bp-056h], bx                   ; 87 5e aa
+    sub AL, strict byte 05eh                  ; 2c 5e
+    dec di                                    ; 4f
     pop si                                    ; 5e
-    stosb                                     ; aa
+    dec di                                    ; 4f
     pop si                                    ; 5e
-    xchg word [bp-079h], bx                   ; 87 5e 87
+    sub AL, strict byte 05eh                  ; 2c 5e
+    sub AL, strict byte 05eh                  ; 2c 5e
+    dec di                                    ; 4f
     pop si                                    ; 5e
-    stosb                                     ; aa
+    dec di                                    ; 4f
     pop si                                    ; 5e
-    stosb                                     ; aa
+    scasb                                     ; ae
+    pop bp                                    ; 5d
+    sub AL, strict byte 05eh                  ; 2c 5e
+    dec di                                    ; 4f
     pop si                                    ; 5e
-    or word [bp-079h], bx                     ; 09 5e 87
+    dec di                                    ; 4f
     pop si                                    ; 5e
-    stosb                                     ; aa
+    sub AL, strict byte 05eh                  ; 2c 5e
+    fistp word [di+04fh]                      ; df 5d 4f
     pop si                                    ; 5e
-    stosb                                     ; aa
+    dec di                                    ; 4f
     pop si                                    ; 5e
-    xchg word [bp+03ah], bx                   ; 87 5e 3a
+    dec di                                    ; 4f
     pop si                                    ; 5e
-    stosb                                     ; aa
-    pop si                                    ; 5e
-    stosb                                     ; aa
-    pop si                                    ; 5e
-    stosb                                     ; aa
-    pop si                                    ; 5e
-_int13_harddisk:                             ; 0xf5ab9 LB 0x44f
+_int13_harddisk:                             ; 0xf5a5e LB 0x44f
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -8239,5 +8205,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 a4 bb
+    call 0166ch                               ; e8 ff bb
     mov si, 00122h                            ; be 22 01
     mov word [bp-004h], ax                    ; 89 46 fc
@@ -8245,11 +8211,11 @@
     mov dx, 0008eh                            ; ba 8e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 85 bb
+    call 0165eh                               ; e8 e0 bb
     mov ax, word [bp+00eh]                    ; 8b 46 0e
     xor ah, ah                                ; 30 e4
     cmp ax, 00080h                            ; 3d 80 00
-    jc short 05ae8h                           ; 72 05
+    jc short 05a8dh                           ; 72 05
     cmp ax, 00090h                            ; 3d 90 00
-    jc short 05b06h                           ; 72 1e
+    jc short 05aabh                           ; 72 1e
     mov ax, word [bp+00eh]                    ; 8b 46 0e
     xor ah, ah                                ; 30 e4
@@ -8261,7 +8227,7 @@
     push 0068dh                               ; 68 8d 06
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 66 be
+    call 01966h                               ; e8 c1 be
     add sp, strict byte 0000ah                ; 83 c4 0a
-    jmp near 05ec5h                           ; e9 bf 03
+    jmp near 05e6ah                           ; e9 bf 03
     mov ax, word [bp+00eh]                    ; 8b 46 0e
     xor ah, ah                                ; 30 e4
@@ -8272,5 +8238,5 @@
     mov byte [bp-002h], dl                    ; 88 56 fe
     cmp dl, 010h                              ; 80 fa 10
-    jc short 05b2fh                           ; 72 10
+    jc short 05ad4h                           ; 72 10
     push ax                                   ; 50
     mov ax, word [bp+016h]                    ; 8b 46 16
@@ -8279,20 +8245,20 @@
     push 0067eh                               ; 68 7e 06
     push 006b8h                               ; 68 b8 06
-    jmp short 05afbh                          ; eb cc
+    jmp short 05aa0h                          ; eb cc
     mov bx, word [bp+016h]                    ; 8b 5e 16
     shr bx, 008h                              ; c1 eb 08
     cmp bx, strict byte 00018h                ; 83 fb 18
-    jnbe short 05b7eh                         ; 77 44
+    jnbe short 05b23h                         ; 77 44
     add bx, bx                                ; 01 db
-    jmp word [cs:bx+05a87h]                   ; 2e ff a7 87 5a
+    jmp word [cs:bx+05a2ch]                   ; 2e ff a7 2c 5a
     cmp byte [bp-002h], 008h                  ; 80 7e fe 08
-    jnc short 05b4fh                          ; 73 08
+    jnc short 05af4h                          ; 73 08
     mov al, byte [bp-002h]                    ; 8a 46 fe
     xor ah, ah                                ; 30 e4
-    call 01d85h                               ; e8 36 c2
-    jmp near 05d87h                           ; e9 35 02
+    call 01d85h                               ; e8 91 c2
+    jmp near 05d2ch                           ; e9 35 02
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 f5 ba
+    call 01650h                               ; e8 50 bb
     mov cl, al                                ; 88 c1
     mov dx, word [bp+016h]                    ; 8b 56 16
@@ -8305,9 +8271,9 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 e7 ba
+    call 0165eh                               ; e8 42 bb
     test cl, cl                               ; 84 c9
-    je short 05bdfh                           ; 74 64
-    jmp near 05ee1h                           ; e9 63 03
-    jmp near 05eaah                           ; e9 29 03
+    je short 05b84h                           ; 74 64
+    jmp near 05e86h                           ; e9 63 03
+    jmp near 05e4fh                           ; e9 29 03
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -8329,11 +8295,11 @@
     mov ax, word [bp-00eh]                    ; 8b 46 f2
     cmp ax, 00080h                            ; 3d 80 00
-    jnbe short 05bbch                         ; 77 04
+    jnbe short 05b61h                         ; 77 04
     test ax, ax                               ; 85 c0
-    jne short 05be2h                          ; 75 26
+    jne short 05b87h                          ; 75 26
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 5c bd
+    call 01923h                               ; e8 b7 bd
     mov ax, word [bp+016h]                    ; 8b 46 16
     shr ax, 008h                              ; c1 e8 08
@@ -8342,8 +8308,8 @@
     push 006eah                               ; 68 ea 06
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 8d bd
+    call 01966h                               ; e8 e8 bd
     add sp, strict byte 00008h                ; 83 c4 08
-    jmp near 05ec5h                           ; e9 e6 02
-    jmp near 05d8bh                           ; e9 a9 01
+    jmp near 05e6ah                           ; e9 e6 02
+    jmp near 05d30h                           ; e9 a9 01
     mov al, byte [bp-002h]                    ; 8a 46 fe
     xor ah, ah                                ; 30 e4
@@ -8357,14 +8323,14 @@
     mov word [bp-00ah], dx                    ; 89 56 f6
     cmp di, ax                                ; 39 c7
-    jnc short 05c10h                          ; 73 0c
+    jnc short 05bb5h                          ; 73 0c
     cmp cx, word [bp-008h]                    ; 3b 4e f8
-    jbe short 05c10h                          ; 76 07
+    jbe short 05bb5h                          ; 76 07
     mov ax, word [bp-006h]                    ; 8b 46 fa
     cmp ax, dx                                ; 39 d0
-    jbe short 05c40h                          ; 76 30
+    jbe short 05be5h                          ; 76 30
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 08 bd
+    call 01923h                               ; e8 63 bd
     push word [bp-006h]                       ; ff 76 fa
     push word [bp-008h]                       ; ff 76 f8
@@ -8379,11 +8345,11 @@
     push 00712h                               ; 68 12 07
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 2c bd
+    call 01966h                               ; e8 87 bd
     add sp, strict byte 00010h                ; 83 c4 10
-    jmp near 05ec5h                           ; e9 85 02
+    jmp near 05e6ah                           ; e9 85 02
     mov ax, word [bp+016h]                    ; 8b 46 16
     shr ax, 008h                              ; c1 e8 08
     cmp ax, strict word 00004h                ; 3d 04 00
-    je short 05c6bh                           ; 74 20
+    je short 05c10h                           ; 74 20
     mov al, byte [bp-002h]                    ; 8a 46 fe
     xor ah, ah                                ; 30 e4
@@ -8393,17 +8359,17 @@
     add bx, ax                                ; 01 c3
     cmp cx, word [es:bx+030h]                 ; 26 3b 4f 30
-    jne short 05c74h                          ; 75 14
+    jne short 05c19h                          ; 75 14
     mov ax, word [es:bx+034h]                 ; 26 8b 47 34
     cmp ax, word [bp-00ah]                    ; 3b 46 f6
-    je short 05c6eh                           ; 74 05
-    jmp short 05c74h                          ; eb 09
-    jmp near 05d87h                           ; e9 19 01
+    je short 05c13h                           ; 74 05
+    jmp short 05c19h                          ; eb 09
+    jmp near 05d2ch                           ; e9 19 01
     cmp byte [bp-002h], 008h                  ; 80 7e fe 08
-    jc short 05ca4h                           ; 72 30
+    jc short 05c49h                           ; 72 30
     mov ax, di                                ; 89 f8
     xor dx, dx                                ; 31 d2
     mov bx, cx                                ; 89 cb
     xor cx, cx                                ; 31 c9
-    call 09fe9h                               ; e8 6a 43
+    call 09f69h                               ; e8 45 43
     xor bx, bx                                ; 31 db
     add ax, word [bp-008h]                    ; 03 46 f8
@@ -8411,5 +8377,5 @@
     mov bx, word [bp-00ah]                    ; 8b 5e f6
     xor cx, cx                                ; 31 c9
-    call 09fe9h                               ; e8 5b 43
+    call 09f69h                               ; e8 36 43
     xor bx, bx                                ; 31 db
     add ax, word [bp-006h]                    ; 03 46 fa
@@ -8467,9 +8433,9 @@
     mov word [bp+016h], bx                    ; 89 5e 16
     test dl, dl                               ; 84 d2
-    je short 05d87h                           ; 74 46
+    je short 05d2ch                           ; 74 46
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 d7 bb
+    call 01923h                               ; e8 32 bc
     mov al, dl                                ; 88 d0
     xor ah, ah                                ; 30 e4
@@ -8481,17 +8447,17 @@
     push 00759h                               ; 68 59 07
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 03 bc
+    call 01966h                               ; e8 5e bc
     add sp, strict byte 0000ah                ; 83 c4 0a
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
     or ah, 00ch                               ; 80 cc 0c
-    jmp near 05ecdh                           ; e9 5c 01
+    jmp near 05e72h                           ; e9 5c 01
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 a7 bb
+    call 01923h                               ; e8 02 bc
     push 0077ah                               ; 68 7a 07
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 e2 bb
+    call 01966h                               ; e8 3d bc
     add sp, strict byte 00004h                ; 83 c4 04
     mov byte [bp+017h], 000h                  ; c6 46 17 00
@@ -8499,5 +8465,5 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 c8 b8
+    call 0165eh                               ; e8 23 b9
     and byte [bp+01ch], 0feh                  ; 80 66 1c fe
     mov sp, bp                                ; 89 ec
@@ -8542,5 +8508,5 @@
     mov dl, al                                ; 88 c2
     mov word [bp+012h], dx                    ; 89 56 12
-    jmp near 05d87h                           ; e9 7e ff
+    jmp near 05d2ch                           ; e9 7e ff
     mov al, byte [bp-002h]                    ; 8a 46 fe
     xor ah, ah                                ; 30 e4
@@ -8559,10 +8525,10 @@
     and AL, strict byte 0c0h                  ; 24 c0
     cmp AL, strict byte 040h                  ; 3c 40
-    jne short 05e2fh                          ; 75 03
-    jmp near 05d87h                           ; e9 58 ff
+    jne short 05dd4h                          ; 75 03
+    jmp near 05d2ch                           ; e9 58 ff
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
     or ah, 0aah                               ; 80 cc aa
-    jmp near 05ecdh                           ; e9 93 00
+    jmp near 05e72h                           ; e9 93 00
     mov al, byte [bp-002h]                    ; 8a 46 fe
     xor ah, ah                                ; 30 e4
@@ -8579,8 +8545,8 @@
     mov bx, word [bp-008h]                    ; 8b 5e f8
     xor cx, cx                                ; 31 c9
-    call 09fe9h                               ; e8 84 41
+    call 09f69h                               ; e8 5f 41
     mov bx, word [bp-006h]                    ; 8b 5e fa
     xor cx, cx                                ; 31 c9
-    call 09fe9h                               ; e8 7c 41
+    call 09f69h                               ; e8 57 41
     mov word [bp-010h], ax                    ; 89 46 f0
     mov word [bp-00ch], dx                    ; 89 56 f4
@@ -8591,9 +8557,9 @@
     or ah, 003h                               ; 80 cc 03
     mov word [bp+016h], ax                    ; 89 46 16
-    jmp near 05d8bh                           ; e9 04 ff
+    jmp near 05d30h                           ; e9 04 ff
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 91 ba
+    call 01923h                               ; e8 ec ba
     mov ax, word [bp+016h]                    ; 8b 46 16
     shr ax, 008h                              ; c1 e8 08
@@ -8602,11 +8568,11 @@
     push 00794h                               ; 68 94 07
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 c2 ba
+    call 01966h                               ; e8 1d bb
     add sp, strict byte 00008h                ; 83 c4 08
-    jmp near 05d87h                           ; e9 dd fe
+    jmp near 05d2ch                           ; e9 dd fe
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 6e ba
+    call 01923h                               ; e8 c9 ba
     mov ax, word [bp+016h]                    ; 8b 46 16
     shr ax, 008h                              ; c1 e8 08
@@ -8614,5 +8580,5 @@
     push 0067eh                               ; 68 7e 06
     push 007c7h                               ; 68 c7 07
-    jmp near 05bd4h                           ; e9 0f fd
+    jmp near 05b79h                           ; e9 0f fd
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -8624,39 +8590,40 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 7d b7
+    call 0165eh                               ; e8 d8 b7
     or byte [bp+01ch], 001h                   ; 80 4e 1c 01
-    jmp near 05d9ah                           ; e9 b2 fe
-    movsb                                     ; a4
+    jmp near 05d3fh                           ; e9 b2 fe
+    dec cx                                    ; 49
     pop di                                    ; 5f
-    xlatb                                     ; d7
+    jl short 05ef0h                           ; 7c 5f
+    jl short 05ef2h                           ; 7c 5f
+    jl short 05ef4h                           ; 7c 5f
+    insw                                      ; 6d
+    arpl di, dx                               ; 63 d7
+    pushaw                                    ; 60
+    jl short 05efah                           ; 7c 5f
+    loopne 05efdh                             ; e0 60
+    insw                                      ; 6d
+    arpl [bx+di+05fh], sp                     ; 63 61 5f
+    popaw                                     ; 61
     pop di                                    ; 5f
-    xlatb                                     ; d7
+    popaw                                     ; 61
     pop di                                    ; 5f
-    xlatb                                     ; d7
+    popaw                                     ; 61
     pop di                                    ; 5f
-    out strict byte 063h, AL                  ; e6 63
-    cmp word [bx+di-029h], sp                 ; 39 61 d7
+    test byte [bp+di+061h], ah                ; 84 63 61
     pop di                                    ; 5f
-    aas                                       ; 3f
     popaw                                     ; 61
-    out strict byte 063h, AL                  ; e6 63
-    mov sp, 0bc5fh                            ; bc 5f bc
     pop di                                    ; 5f
-    mov sp, 0bc5fh                            ; bc 5f bc
-    pop di                                    ; 5f
-    std                                       ; fd
-    arpl [si-043a1h], di                      ; 63 bc 5f bc
-    pop di                                    ; 5f
-_int13_harddisk_ext:                         ; 0xf5f08 LB 0x52d
+_int13_harddisk_ext:                         ; 0xf5ead LB 0x50f
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
-    sub sp, strict byte 0002ah                ; 83 ec 2a
+    sub sp, strict byte 00028h                ; 83 ec 28
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 55 b7
-    mov word [bp-014h], ax                    ; 89 46 ec
+    call 0166ch                               ; e8 b0 b7
+    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 49 b7
+    call 0166ch                               ; e8 a4 b7
     mov word [bp-008h], 00122h                ; c7 46 f8 22 01
     mov word [bp-006h], ax                    ; 89 46 fa
@@ -8664,11 +8631,11 @@
     mov dx, 0008eh                            ; ba 8e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 28 b7
+    call 0165eh                               ; e8 83 b7
     mov ax, word [bp+00eh]                    ; 8b 46 0e
     xor ah, ah                                ; 30 e4
     cmp ax, 00080h                            ; 3d 80 00
-    jc short 05f45h                           ; 72 05
+    jc short 05eeah                           ; 72 05
     cmp ax, 00090h                            ; 3d 90 00
-    jc short 05f63h                           ; 72 1e
+    jc short 05f08h                           ; 72 1e
     mov ax, word [bp+00eh]                    ; 8b 46 0e
     xor ah, ah                                ; 30 e4
@@ -8680,7 +8647,7 @@
     push 0068dh                               ; 68 8d 06
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 09 ba
+    call 01966h                               ; e8 64 ba
     add sp, strict byte 0000ah                ; 83 c4 0a
-    jmp near 06413h                           ; e9 b0 04
+    jmp near 0639ah                           ; e9 92 04
     mov ax, word [bp+00eh]                    ; 8b 46 0e
     xor ah, ah                                ; 30 e4
@@ -8690,5 +8657,5 @@
     mov byte [bp-004h], dl                    ; 88 56 fc
     cmp dl, 010h                              ; 80 fa 10
-    jc short 05f8ah                           ; 72 10
+    jc short 05f2fh                           ; 72 10
     push ax                                   ; 50
     mov ax, word [bp+016h]                    ; 8b 46 16
@@ -8697,14 +8664,14 @@
     push 007f5h                               ; 68 f5 07
     push 006b8h                               ; 68 b8 06
-    jmp short 05f58h                          ; eb ce
+    jmp short 05efdh                          ; eb ce
     mov bx, word [bp+016h]                    ; 8b 5e 16
     shr bx, 008h                              ; c1 eb 08
     sub bx, strict byte 00041h                ; 83 eb 41
     cmp bx, strict byte 0000fh                ; 83 fb 0f
-    jnbe short 05fbch                         ; 77 24
+    jnbe short 05f61h                         ; 77 24
     add bx, bx                                ; 01 db
-    mov ax, word [bp+016h]                    ; 8b 46 16
-    xor ah, ah                                ; 30 e4
-    jmp word [cs:bx+05ee8h]                   ; 2e ff a7 e8 5e
+    mov dx, word [bp+016h]                    ; 8b 56 16
+    xor dh, dh                                ; 30 f6
+    jmp word [cs:bx+05e8dh]                   ; 2e ff a7 8d 5e
     mov word [bp+010h], 0aa55h                ; c7 46 10 55 aa
     mov ax, word [bp+016h]                    ; 8b 46 16
@@ -8713,9 +8680,9 @@
     mov word [bp+016h], ax                    ; 89 46 16
     mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
-    jmp near 063eah                           ; e9 2e 04
+    jmp near 06371h                           ; 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 5c b9
+    call 01923h                               ; e8 b7 b9
     mov ax, word [bp+016h]                    ; 8b 46 16
     shr ax, 008h                              ; c1 e8 08
@@ -8723,15 +8690,15 @@
     push 007f5h                               ; 68 f5 07
     push 007c7h                               ; 68 c7 07
-    jmp near 06071h                           ; e9 9a 00
+    jmp near 06011h                           ; e9 95 00
     mov di, word [bp+00ah]                    ; 8b 7e 0a
     mov es, [bp+004h]                         ; 8e 46 04
-    mov word [bp-01eh], di                    ; 89 7e e2
-    mov [bp-01ah], es                         ; 8c 46 e6
+    mov word [bp-01ah], di                    ; 89 7e e6
+    mov [bp-018h], es                         ; 8c 46 e8
     mov ax, word [es:di+002h]                 ; 26 8b 45 02
-    mov word [bp-012h], ax                    ; 89 46 ee
+    mov word [bp-010h], ax                    ; 89 46 f0
     mov ax, word [es:di+006h]                 ; 26 8b 45 06
-    mov word [bp-018h], ax                    ; 89 46 e8
+    mov word [bp-016h], ax                    ; 89 46 ea
     mov ax, word [es:di+004h]                 ; 26 8b 45 04
-    mov word [bp-016h], ax                    ; 89 46 ea
+    mov word [bp-014h], ax                    ; 89 46 ec
     mov dx, word [es:di+00ch]                 ; 26 8b 55 0c
     mov cx, word [es:di+00eh]                 ; 26 8b 4d 0e
@@ -8739,35 +8706,35 @@
     xor bx, bx                                ; 31 db
     mov si, strict word 00020h                ; be 20 00
-    call 0a01ah                               ; e8 10 40
-    mov word [bp-00eh], bx                    ; 89 5e f2
-    mov bx, word [es:di+008h]                 ; 26 8b 5d 08
-    mov di, word [es:di+00ah]                 ; 26 8b 7d 0a
-    or dx, bx                                 ; 09 da
-    or cx, di                                 ; 09 f9
-    mov bl, byte [bp-004h]                    ; 8a 5e fc
-    mov byte [bp-022h], bl                    ; 88 5e de
-    mov byte [bp-021h], 000h                  ; c6 46 df 00
-    imul di, word [bp-022h], strict byte 0001ch ; 6b 7e de 1c
-    mov es, [bp-006h]                         ; 8e 46 fa
-    add di, word [bp-008h]                    ; 03 7e f8
-    mov bl, byte [es:di+022h]                 ; 26 8a 5d 22
-    cmp ax, word [es:di+03ch]                 ; 26 3b 45 3c
-    jnbe short 06059h                         ; 77 22
-    jne short 0607ch                          ; 75 43
-    mov si, word [bp-00eh]                    ; 8b 76 f2
-    cmp si, word [es:di+03ah]                 ; 26 3b 75 3a
-    jnbe short 06059h                         ; 77 17
-    mov si, word [bp-00eh]                    ; 8b 76 f2
-    cmp si, word [es:di+03ah]                 ; 26 3b 75 3a
-    jne short 0607ch                          ; 75 31
-    cmp cx, word [es:di+038h]                 ; 26 3b 4d 38
-    jnbe short 06059h                         ; 77 08
-    jne short 0607ch                          ; 75 29
-    cmp dx, word [es:di+036h]                 ; 26 3b 55 36
-    jc short 0607ch                           ; 72 23
+    call 09f9ah                               ; e8 eb 3f
+    mov si, ax                                ; 89 c6
+    mov word [bp-00ch], bx                    ; 89 5e f4
+    mov ax, word [es:di+008h]                 ; 26 8b 45 08
+    mov bx, word [es:di+00ah]                 ; 26 8b 5d 0a
+    or dx, ax                                 ; 09 c2
+    or cx, bx                                 ; 09 d9
+    mov al, byte [bp-004h]                    ; 8a 46 fc
+    xor ah, ah                                ; 30 e4
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    les bx, [bp-008h]                         ; c4 5e f8
+    add bx, ax                                ; 01 c3
+    mov al, byte [es:bx+022h]                 ; 26 8a 47 22
+    cmp si, word [es:bx+03ch]                 ; 26 3b 77 3c
+    jnbe short 05ff9h                         ; 77 22
+    jne short 0601ch                          ; 75 43
+    mov di, word [bp-00ch]                    ; 8b 7e f4
+    cmp di, word [es:bx+03ah]                 ; 26 3b 7f 3a
+    jnbe short 05ff9h                         ; 77 17
+    mov di, word [bp-00ch]                    ; 8b 7e f4
+    cmp di, word [es:bx+03ah]                 ; 26 3b 7f 3a
+    jne short 0601ch                          ; 75 31
+    cmp cx, word [es:bx+038h]                 ; 26 3b 4f 38
+    jnbe short 05ff9h                         ; 77 08
+    jne short 0601ch                          ; 75 29
+    cmp dx, word [es:bx+036h]                 ; 26 3b 57 36
+    jc short 0601ch                           ; 72 23
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 bf b8
+    call 01923h                               ; e8 1f b9
     mov ax, word [bp+016h]                    ; 8b 46 16
     shr ax, 008h                              ; c1 e8 08
@@ -8776,40 +8743,40 @@
     push 00808h                               ; 68 08 08
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 f0 b8
+    call 01966h                               ; e8 50 b9
     add sp, strict byte 00008h                ; 83 c4 08
-    jmp near 06413h                           ; e9 97 03
+    jmp near 0639ah                           ; 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 0608ch                           ; 74 05
+    je short 0602ch                           ; 74 05
     cmp di, strict byte 00047h                ; 83 ff 47
-    jne short 0608fh                          ; 75 03
-    jmp near 063e6h                           ; e9 57 03
-    les si, [bp-008h]                         ; c4 76 f8
-    mov word [es:si+018h], strict word 00000h ; 26 c7 44 18 00 00
-    mov word [es:si+01ah], strict word 00000h ; 26 c7 44 1a 00 00
-    mov word [es:si+01ch], strict word 00000h ; 26 c7 44 1c 00 00
-    mov word [es:si+006h], ax                 ; 26 89 44 06
-    mov ax, word [bp-00eh]                    ; 8b 46 f2
-    mov word [es:si+004h], ax                 ; 26 89 44 04
-    mov word [es:si+002h], cx                 ; 26 89 4c 02
-    mov word [es:si], dx                      ; 26 89 14
-    mov ax, word [bp-016h]                    ; 8b 46 ea
-    mov word [es:si+008h], ax                 ; 26 89 44 08
-    mov ax, word [bp-018h]                    ; 8b 46 e8
-    mov word [es:si+00ah], ax                 ; 26 89 44 0a
-    mov ax, word [bp-012h]                    ; 8b 46 ee
-    mov word [es:si+00eh], ax                 ; 26 89 44 0e
-    mov word [es:si+010h], 00200h             ; 26 c7 44 10 00 02
-    mov word [es:si+016h], strict word 00000h ; 26 c7 44 16 00 00
-    mov al, byte [bp-004h]                    ; 8a 46 fc
-    mov byte [es:si+00ch], al                 ; 26 88 44 0c
-    mov dx, di                                ; 89 fa
-    add dx, di                                ; 01 fa
-    mov al, bl                                ; 88 d8
-    xor ah, ah                                ; 30 e4
-    mov bx, ax                                ; 89 c3
-    sal bx, 002h                              ; c1 e3 02
-    add bx, dx                                ; 01 d3
+    jne short 0602fh                          ; 75 03
+    jmp near 0636dh                           ; e9 3e 03
+    les bx, [bp-008h]                         ; c4 5e f8
+    mov word [es:bx+018h], strict word 00000h ; 26 c7 47 18 00 00
+    mov word [es:bx+01ah], strict word 00000h ; 26 c7 47 1a 00 00
+    mov word [es:bx+01ch], strict word 00000h ; 26 c7 47 1c 00 00
+    mov word [es:bx+006h], si                 ; 26 89 77 06
+    mov bx, word [bp-00ch]                    ; 8b 5e f4
+    mov si, word [bp-008h]                    ; 8b 76 f8
+    mov word [es:si+004h], bx                 ; 26 89 5c 04
+    mov bx, si                                ; 89 f3
+    mov word [es:bx+002h], cx                 ; 26 89 4f 02
+    mov word [es:bx], dx                      ; 26 89 17
+    mov dx, word [bp-014h]                    ; 8b 56 ec
+    mov word [es:bx+008h], dx                 ; 26 89 57 08
+    mov dx, word [bp-016h]                    ; 8b 56 ea
+    mov word [es:bx+00ah], dx                 ; 26 89 57 0a
+    mov dx, word [bp-010h]                    ; 8b 56 f0
+    mov word [es:bx+00eh], dx                 ; 26 89 57 0e
+    mov word [es:bx+010h], 00200h             ; 26 c7 47 10 00 02
+    mov word [es:bx+016h], strict word 00000h ; 26 c7 47 16 00 00
+    mov ah, byte [bp-004h]                    ; 8a 66 fc
+    mov byte [es:bx+00ch], ah                 ; 26 88 67 0c
+    mov bx, di                                ; 89 fb
+    add bx, di                                ; 01 fb
+    xor ah, ah                                ; 30 e4
+    sal ax, 002h                              ; c1 e0 02
+    add bx, ax                                ; 01 c3
     push ES                                   ; 06
     push si                                   ; 56
@@ -8819,14 +8786,13 @@
     mov bx, si                                ; 89 f3
     mov ax, word [es:bx+018h]                 ; 26 8b 47 18
-    mov word [bp-012h], ax                    ; 89 46 ee
-    mov es, [bp-01ah]                         ; 8e 46 e6
-    mov bx, word [bp-01eh]                    ; 8b 5e e2
+    mov word [bp-010h], ax                    ; 89 46 f0
+    les bx, [bp-01ah]                         ; c4 5e e6
     mov word [es:bx+002h], ax                 ; 26 89 47 02
     test dl, dl                               ; 84 d2
-    je short 0615dh                           ; 74 4e
+    je short 060feh                           ; 74 51
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 09 b8
+    call 01923h                               ; e8 6b b8
     mov al, dl                                ; 88 d0
     xor ah, ah                                ; 30 e4
@@ -8836,26 +8802,27 @@
     push 00759h                               ; 68 59 07
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 3b b8
+    call 01966h                               ; e8 9d b8
     add sp, strict byte 0000ah                ; 83 c4 0a
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
     or ah, 00ch                               ; 80 cc 0c
-    jmp near 0641bh                           ; e9 e2 02
-    or ah, 0b2h                               ; 80 cc b2
-    jmp near 0641bh                           ; e9 dc 02
+    jmp near 063a2h                           ; e9 cb 02
+    or dh, 0b2h                               ; 80 ce b2
+    mov word [bp+016h], dx                    ; 89 56 16
+    jmp near 063a5h                           ; e9 c5 02
     mov bx, word [bp+00ah]                    ; 8b 5e 0a
     mov ax, word [bp+004h]                    ; 8b 46 04
-    mov word [bp-00ch], ax                    ; 89 46 f4
+    mov word [bp-024h], ax                    ; 89 46 dc
     mov di, bx                                ; 89 df
     mov word [bp-00ah], ax                    ; 89 46 f6
     mov es, ax                                ; 8e c0
     mov ax, word [es:bx]                      ; 26 8b 07
-    mov word [bp-010h], ax                    ; 89 46 f0
+    mov word [bp-00eh], ax                    ; 89 46 f2
     cmp ax, strict word 0001ah                ; 3d 1a 00
-    jnc short 06160h                          ; 73 06
-    jmp near 06413h                           ; e9 b6 02
-    jmp near 063e6h                           ; e9 86 02
-    jnc short 06165h                          ; 73 03
-    jmp near 06204h                           ; e9 9f 00
+    jnc short 06101h                          ; 73 06
+    jmp near 0639ah                           ; e9 9c 02
+    jmp near 0636dh                           ; e9 6c 02
+    jnc short 06106h                          ; 73 03
+    jmp near 0619dh                           ; e9 97 00
     mov al, byte [bp-004h]                    ; 8a 46 fc
     xor ah, ah                                ; 30 e4
@@ -8864,49 +8831,45 @@
     add bx, ax                                ; 01 c3
     mov ax, word [es:bx+032h]                 ; 26 8b 47 32
-    mov word [bp-02ah], ax                    ; 89 46 d6
+    mov word [bp-028h], ax                    ; 89 46 d8
     mov ax, word [es:bx+030h]                 ; 26 8b 47 30
-    mov word [bp-028h], ax                    ; 89 46 d8
+    mov word [bp-026h], ax                    ; 89 46 da
     mov ax, word [es:bx+034h]                 ; 26 8b 47 34
-    mov word [bp-024h], ax                    ; 89 46 dc
-    mov ax, word [es:bx+03ch]                 ; 26 8b 47 3c
-    mov dx, word [es:bx+03ah]                 ; 26 8b 57 3a
-    mov word [bp-00eh], dx                    ; 89 56 f2
+    mov word [bp-020h], ax                    ; 89 46 e0
+    mov si, word [es:bx+03ch]                 ; 26 8b 77 3c
+    mov ax, word [es:bx+03ah]                 ; 26 8b 47 3a
+    mov word [bp-00ch], ax                    ; 89 46 f4
     mov cx, word [es:bx+038h]                 ; 26 8b 4f 38
     mov dx, word [es:bx+036h]                 ; 26 8b 57 36
-    mov bx, word [es:bx+028h]                 ; 26 8b 5f 28
-    mov word [bp-026h], bx                    ; 89 5e da
-    mov es, [bp-00ch]                         ; 8e 46 f4
+    mov ax, word [es:bx+028h]                 ; 26 8b 47 28
+    mov word [bp-022h], ax                    ; 89 46 de
+    mov es, [bp-024h]                         ; 8e 46 dc
     mov bx, di                                ; 89 fb
     mov word [es:bx], strict word 0001ah      ; 26 c7 07 1a 00
     mov word [es:bx+002h], strict word 00002h ; 26 c7 47 02 02 00
-    mov bx, word [bp-02ah]                    ; 8b 5e d6
-    mov si, di                                ; 89 fe
-    mov word [es:si+004h], bx                 ; 26 89 5c 04
-    mov bx, si                                ; 89 f3
+    mov ax, word [bp-028h]                    ; 8b 46 d8
+    mov word [es:bx+004h], ax                 ; 26 89 47 04
     mov word [es:bx+006h], strict word 00000h ; 26 c7 47 06 00 00
-    mov bx, word [bp-028h]                    ; 8b 5e d8
-    mov word [es:si+008h], bx                 ; 26 89 5c 08
-    mov bx, si                                ; 89 f3
+    mov ax, word [bp-026h]                    ; 8b 46 da
+    mov word [es:bx+008h], ax                 ; 26 89 47 08
     mov word [es:bx+00ah], strict word 00000h ; 26 c7 47 0a 00 00
-    mov bx, word [bp-024h]                    ; 8b 5e dc
-    mov word [es:si+00ch], bx                 ; 26 89 5c 0c
-    mov bx, si                                ; 89 f3
+    mov ax, word [bp-020h]                    ; 8b 46 e0
+    mov word [es:bx+00ch], ax                 ; 26 89 47 0c
     mov word [es:bx+00eh], strict word 00000h ; 26 c7 47 0e 00 00
-    mov bx, word [bp-026h]                    ; 8b 5e da
-    mov word [es:si+018h], bx                 ; 26 89 5c 18
-    mov bx, si                                ; 89 f3
+    mov ax, word [bp-022h]                    ; 8b 46 de
+    mov word [es:bx+018h], ax                 ; 26 89 47 18
     mov word [es:bx+010h], dx                 ; 26 89 57 10
     mov word [es:bx+012h], cx                 ; 26 89 4f 12
-    mov bx, word [bp-00eh]                    ; 8b 5e f2
+    mov ax, si                                ; 89 f0
+    mov bx, word [bp-00ch]                    ; 8b 5e f4
     mov si, strict word 00020h                ; be 20 00
-    call 0a02ah                               ; e8 30 3e
+    call 09faah                               ; e8 17 3e
     mov bx, di                                ; 89 fb
     mov word [es:bx+014h], dx                 ; 26 89 57 14
     mov word [es:bx+016h], cx                 ; 26 89 4f 16
-    cmp word [bp-010h], strict byte 0001eh    ; 83 7e f0 1e
-    jc short 06273h                           ; 72 69
+    cmp word [bp-00eh], strict byte 0001eh    ; 83 7e f2 1e
+    jc short 06208h                           ; 72 65
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov word [es:di], strict word 0001eh      ; 26 c7 05 1e 00
-    mov ax, word [bp-014h]                    ; 8b 46 ec
+    mov ax, word [bp-012h]                    ; 8b 46 ee
     mov word [es:di+01ch], ax                 ; 26 89 45 1c
     mov word [es:di+01ah], 00356h             ; 26 c7 45 1a 56 03
@@ -8925,34 +8888,27 @@
     mov word [bp-01ch], ax                    ; 89 46 e4
     mov ax, word [es:bx+00208h]               ; 26 8b 87 08 02
-    mov word [bp-020h], ax                    ; 89 46 e0
+    mov word [bp-01eh], ax                    ; 89 46 e2
     mov al, byte [es:bx+00205h]               ; 26 8a 87 05 02
     mov byte [bp-002h], al                    ; 88 46 fe
     imul bx, cx, strict byte 0001ch           ; 6b d9 1c
     add bx, word [bp-008h]                    ; 03 5e f8
-    mov ah, byte [es:bx+026h]                 ; 26 8a 67 26
-    mov al, byte [es:bx+027h]                 ; 26 8a 47 27
-    test al, al                               ; 84 c0
-    jne short 06263h                          ; 75 04
+    mov dl, byte [es:bx+027h]                 ; 26 8a 57 27
+    test dl, dl                               ; 84 d2
+    jne short 061f8h                          ; 75 04
     xor bx, bx                                ; 31 db
-    jmp short 06266h                          ; eb 03
+    jmp short 061fbh                          ; eb 03
     mov bx, strict word 00008h                ; bb 08 00
     or bl, 010h                               ; 80 cb 10
-    cmp ah, 001h                              ; 80 fc 01
-    jne short 06276h                          ; 75 08
-    mov dx, strict word 00001h                ; ba 01 00
-    jmp short 06278h                          ; eb 05
-    jmp near 06317h                           ; e9 a1 00
-    xor dx, dx                                ; 31 d2
-    or bx, dx                                 ; 09 d3
-    cmp AL, strict byte 001h                  ; 3c 01
-    jne short 06283h                          ; 75 05
-    mov dx, strict word 00001h                ; ba 01 00
-    jmp short 06285h                          ; eb 02
-    xor dx, dx                                ; 31 d2
-    or bx, dx                                 ; 09 d3
-    cmp AL, strict byte 003h                  ; 3c 03
-    jne short 06290h                          ; 75 05
+    cmp dl, 001h                              ; 80 fa 01
+    jne short 0620bh                          ; 75 08
+    mov ax, strict word 00001h                ; b8 01 00
+    jmp short 0620dh                          ; eb 05
+    jmp near 0629eh                           ; e9 93 00
+    xor ax, ax                                ; 31 c0
+    or bx, ax                                 ; 09 c3
+    cmp dl, 003h                              ; 80 fa 03
+    jne short 06219h                          ; 75 05
     mov ax, strict word 00003h                ; b8 03 00
-    jmp short 06292h                          ; eb 02
+    jmp short 0621bh                          ; eb 02
     xor ax, ax                                ; 31 c0
     or bx, ax                                 ; 09 c3
@@ -8960,5 +8916,5 @@
     les si, [bp-008h]                         ; c4 76 f8
     mov word [es:si+00234h], ax               ; 26 89 84 34 02
-    mov ax, word [bp-020h]                    ; 8b 46 e0
+    mov ax, word [bp-01eh]                    ; 8b 46 e2
     mov word [es:si+00236h], ax               ; 26 89 84 36 02
     mov al, byte [bp-004h]                    ; 8a 46 fc
@@ -8981,23 +8937,22 @@
     xor bl, bl                                ; 30 db
     xor bh, bh                                ; 30 ff
-    jmp short 062f7h                          ; eb 05
+    jmp short 06280h                          ; eb 05
     cmp bh, 00fh                              ; 80 ff 0f
-    jnc short 0630dh                          ; 73 16
-    mov al, bh                                ; 88 f8
-    xor ah, ah                                ; 30 e4
-    mov dx, ax                                ; 89 c2
+    jnc short 06294h                          ; 73 14
+    mov dl, bh                                ; 88 fa
+    xor dh, dh                                ; 30 f6
     add dx, 00356h                            ; 81 c2 56 03
-    mov ax, word [bp-014h]                    ; 8b 46 ec
-    call 01650h                               ; e8 49 b3
+    mov ax, word [bp-012h]                    ; 8b 46 ee
+    call 01650h                               ; e8 c2 b3
     add bl, al                                ; 00 c3
     db  0feh, 0c7h
     ; inc bh                                    ; fe c7
-    jmp short 062f2h                          ; eb e5
+    jmp short 0627bh                          ; 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-010h], strict byte 00042h    ; 83 7e f0 42
-    jnc short 06320h                          ; 73 03
-    jmp near 063e6h                           ; e9 c6 00
+    cmp word [bp-00eh], strict byte 00042h    ; 83 7e f2 42
+    jnc short 062a7h                          ; 73 03
+    jmp near 0636dh                           ; e9 c6 00
     mov al, byte [bp-004h]                    ; 8a 46 fc
     xor ah, ah                                ; 30 e4
@@ -9018,5 +8973,5 @@
     mov word [es:di+022h], strict word 00000h ; 26 c7 45 22 00 00
     test al, al                               ; 84 c0
-    jne short 06368h                          ; 75 0c
+    jne short 062efh                          ; 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
@@ -9027,5 +8982,5 @@
     mov word [es:di+02eh], 02020h             ; 26 c7 45 2e 20 20
     test al, al                               ; 84 c0
-    jne short 0639dh                          ; 75 16
+    jne short 06324h                          ; 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
@@ -9042,7 +8997,7 @@
     xor bl, bl                                ; 30 db
     mov BH, strict byte 01eh                  ; b7 1e
-    jmp short 063c8h                          ; eb 05
+    jmp short 0634fh                          ; eb 05
     cmp bh, 040h                              ; 80 ff 40
-    jnc short 063ddh                          ; 73 15
+    jnc short 06364h                          ; 73 15
     mov al, bh                                ; 88 f8
     xor ah, ah                                ; 30 e4
@@ -9050,9 +9005,9 @@
     add dx, ax                                ; 01 c2
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 01650h                               ; e8 79 b2
+    call 01650h                               ; e8 f2 b2
     add bl, al                                ; 00 c3
     db  0feh, 0c7h
     ; inc bh                                    ; fe c7
-    jmp short 063c3h                          ; eb e6
+    jmp short 0634ah                          ; eb e6
     neg bl                                    ; f6 db
     mov es, [bp-00ah]                         ; 8e 46 f6
@@ -9062,18 +9017,18 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 69 b2
+    call 0165eh                               ; e8 e2 b2
     and byte [bp+01ch], 0feh                  ; 80 66 1c fe
     mov sp, bp                                ; 89 ec
     pop bp                                    ; 5d
     retn                                      ; c3
-    cmp ax, strict word 00006h                ; 3d 06 00
-    je short 063e6h                           ; 74 e4
-    cmp ax, strict word 00001h                ; 3d 01 00
-    jc short 06413h                           ; 72 0c
-    jbe short 063e6h                          ; 76 dd
-    cmp ax, strict word 00003h                ; 3d 03 00
-    jc short 06413h                           ; 72 05
-    cmp ax, strict word 00004h                ; 3d 04 00
-    jbe short 063e6h                          ; 76 d3
+    cmp dx, strict byte 00006h                ; 83 fa 06
+    je short 0636dh                           ; 74 e4
+    cmp dx, strict byte 00001h                ; 83 fa 01
+    jc short 0639ah                           ; 72 0c
+    jbe short 0636dh                          ; 76 dd
+    cmp dx, strict byte 00003h                ; 83 fa 03
+    jc short 0639ah                           ; 72 05
+    cmp dx, strict byte 00004h                ; 83 fa 04
+    jbe short 0636dh                          ; 76 d3
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -9085,8 +9040,8 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 2f b2
+    call 0165eh                               ; e8 a8 b2
     or byte [bp+01ch], 001h                   ; 80 4e 1c 01
-    jmp short 063f9h                          ; eb c4
-_int14_function:                             ; 0xf6435 LB 0x157
+    jmp short 06380h                          ; eb c4
+_int14_function:                             ; 0xf63bc LB 0x157
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -9096,5 +9051,5 @@
     add dx, dx                                ; 01 d2
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 27 b2
+    call 0166ch                               ; e8 a0 b2
     mov si, ax                                ; 89 c6
     mov bx, ax                                ; 89 c3
@@ -9102,22 +9057,22 @@
     add dx, strict byte 0007ch                ; 83 c2 7c
     mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 fb b1
+    call 01650h                               ; e8 74 b2
     mov cl, al                                ; 88 c1
     cmp word [bp+00eh], strict byte 00004h    ; 83 7e 0e 04
-    jnc short 06461h                          ; 73 04
+    jnc short 063e8h                          ; 73 04
     test si, si                               ; 85 f6
-    jnbe short 06464h                         ; 77 03
-    jmp near 06582h                           ; e9 1e 01
+    jnbe short 063ebh                         ; 77 03
+    jmp near 06509h                           ; e9 1e 01
     mov al, byte [bp+013h]                    ; 8a 46 13
     cmp AL, strict byte 001h                  ; 3c 01
-    jc short 06478h                           ; 72 0d
-    jbe short 064d3h                          ; 76 66
+    jc short 063ffh                           ; 72 0d
+    jbe short 0645ah                          ; 76 66
     cmp AL, strict byte 003h                  ; 3c 03
-    je short 064cbh                           ; 74 5a
+    je short 06452h                           ; 74 5a
     cmp AL, strict byte 002h                  ; 3c 02
-    je short 064ceh                           ; 74 59
-    jmp near 0657ch                           ; e9 04 01
+    je short 06455h                           ; 74 59
+    jmp near 06503h                           ; e9 04 01
     test al, al                               ; 84 c0
-    jne short 064d0h                          ; 75 54
+    jne short 06457h                          ; 75 54
     lea dx, [bx+003h]                         ; 8d 57 03
     in AL, DX                                 ; ec
@@ -9152,5 +9107,5 @@
     ; sub ah, ah                                ; 2a e4
     mov byte [bp+012h], al                    ; 88 46 12
-    jmp near 0655dh                           ; e9 9f 00
+    jmp near 064e4h                           ; e9 9f 00
     mov AL, strict byte 017h                  ; b0 17
     mov dx, bx                                ; 89 da
@@ -9159,11 +9114,11 @@
     mov AL, strict byte 004h                  ; b0 04
     out DX, AL                                ; ee
-    jmp short 064a0h                          ; eb d5
-    jmp near 0656bh                           ; e9 9d 00
-    jmp short 06521h                          ; eb 51
-    jmp near 0657ch                           ; e9 a9 00
+    jmp short 06427h                          ; eb d5
+    jmp near 064f2h                           ; e9 9d 00
+    jmp short 064a8h                          ; eb 51
+    jmp near 06503h                           ; e9 a9 00
     mov dx, strict word 0006ch                ; ba 6c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 90 b1
+    call 0166ch                               ; e8 09 b2
     mov si, ax                                ; 89 c6
     lea dx, [bx+005h]                         ; 8d 57 05
@@ -9173,18 +9128,18 @@
     and ax, strict word 00060h                ; 25 60 00
     cmp ax, strict word 00060h                ; 3d 60 00
-    je short 06503h                           ; 74 17
+    je short 0648ah                           ; 74 17
     test cl, cl                               ; 84 c9
-    je short 06503h                           ; 74 13
+    je short 0648ah                           ; 74 13
     mov dx, strict word 0006ch                ; ba 6c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 73 b1
+    call 0166ch                               ; e8 ec b1
     cmp ax, si                                ; 39 f0
-    je short 064deh                           ; 74 e1
+    je short 06465h                           ; 74 e1
     mov si, ax                                ; 89 c6
     db  0feh, 0c9h
     ; dec cl                                    ; fe c9
-    jmp short 064deh                          ; eb db
+    jmp short 06465h                          ; eb db
     test cl, cl                               ; 84 c9
-    je short 0650dh                           ; 74 06
+    je short 06494h                           ; 74 06
     mov al, byte [bp+012h]                    ; 8a 46 12
     mov dx, bx                                ; 89 da
@@ -9196,11 +9151,11 @@
     mov byte [bp+013h], al                    ; 88 46 13
     test cl, cl                               ; 84 c9
-    jne short 0655dh                          ; 75 43
+    jne short 064e4h                          ; 75 43
     or AL, strict byte 080h                   ; 0c 80
     mov byte [bp+013h], al                    ; 88 46 13
-    jmp short 0655dh                          ; eb 3c
+    jmp short 064e4h                          ; eb 3c
     mov dx, strict word 0006ch                ; ba 6c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 42 b1
+    call 0166ch                               ; e8 bb b1
     mov si, ax                                ; 89 c6
     lea dx, [bx+005h]                         ; 8d 57 05
@@ -9209,18 +9164,18 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 0654dh                          ; 75 17
+    jne short 064d4h                          ; 75 17
     test cl, cl                               ; 84 c9
-    je short 0654dh                           ; 74 13
+    je short 064d4h                           ; 74 13
     mov dx, strict word 0006ch                ; ba 6c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 29 b1
+    call 0166ch                               ; e8 a2 b1
     cmp ax, si                                ; 39 f0
-    je short 0652ch                           ; 74 e5
+    je short 064b3h                           ; 74 e5
     mov si, ax                                ; 89 c6
     db  0feh, 0c9h
     ; dec cl                                    ; fe c9
-    jmp short 0652ch                          ; eb df
+    jmp short 064b3h                          ; eb df
     test cl, cl                               ; 84 c9
-    je short 06563h                           ; 74 12
+    je short 064eah                           ; 74 12
     mov byte [bp+013h], 000h                  ; c6 46 13 00
     mov dx, bx                                ; 89 da
@@ -9230,10 +9185,10 @@
     mov byte [bp+012h], al                    ; 88 46 12
     and byte [bp+01ch], 0feh                  ; 80 66 1c fe
-    jmp short 06586h                          ; eb 23
+    jmp short 0650dh                          ; eb 23
     lea dx, [bx+005h]                         ; 8d 57 05
     in AL, DX                                 ; ec
     db  02ah, 0e4h
     ; sub ah, ah                                ; 2a e4
-    jmp short 0651ch                          ; eb b1
+    jmp short 064a3h                          ; eb b1
     lea dx, [si+005h]                         ; 8d 54 05
     in AL, DX                                 ; ec
@@ -9245,7 +9200,7 @@
     db  02ah, 0e4h
     ; sub ah, ah                                ; 2a e4
-    jmp short 0655ah                          ; eb de
+    jmp short 064e1h                          ; eb de
     or byte [bp+01ch], 001h                   ; 80 4e 1c 01
-    jmp short 06586h                          ; eb 04
+    jmp short 0650dh                          ; eb 04
     or byte [bp+01ch], 001h                   ; 80 4e 1c 01
     lea sp, [bp-002h]                         ; 8d 66 fe
@@ -9253,5 +9208,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-set_enable_a20_:                             ; 0xf658c LB 0x30
+set_enable_a20_:                             ; 0xf6513 LB 0x30
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -9266,14 +9221,14 @@
     mov cl, al                                ; 88 c1
     test bx, bx                               ; 85 db
-    je short 065a5h                           ; 74 05
+    je short 0652ch                           ; 74 05
     or AL, strict byte 002h                   ; 0c 02
     out DX, AL                                ; ee
-    jmp short 065a8h                          ; eb 03
+    jmp short 0652fh                          ; eb 03
     and AL, strict byte 0fdh                  ; 24 fd
     out DX, AL                                ; ee
     test cl, 002h                             ; f6 c1 02
-    je short 065b2h                           ; 74 05
+    je short 06539h                           ; 74 05
     mov ax, strict word 00001h                ; b8 01 00
-    jmp short 065b4h                          ; eb 02
+    jmp short 0653bh                          ; eb 02
     xor ax, ax                                ; 31 c0
     lea sp, [bp-006h]                         ; 8d 66 fa
@@ -9283,5 +9238,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-set_e820_range_:                             ; 0xf65bc LB 0x8b
+set_e820_range_:                             ; 0xf6543 LB 0x8b
     push si                                   ; 56
     push bp                                   ; 55
@@ -9313,8 +9268,8 @@
     retn 0000ah                               ; c2 0a 00
     db  0ech, 0e9h, 0d8h, 0c1h, 0c0h, 0bfh, 091h, 090h, 089h, 088h, 087h, 083h, 052h, 04fh, 041h, 024h
-    db  000h, 0edh, 06ah, 084h, 066h, 098h, 066h, 02dh, 067h, 033h, 067h, 038h, 067h, 03dh, 067h, 0e5h
-    db  067h, 084h, 069h, 0aah, 069h, 026h, 067h, 026h, 067h, 077h, 06ah, 09fh, 06ah, 0b2h, 06ah, 0c1h
-    db  06ah, 02dh, 067h, 0c8h, 06ah
-_int15_function:                             ; 0xf6647 LB 0x4d8
+    db  000h, 074h, 06ah, 00bh, 066h, 01fh, 066h, 0b4h, 066h, 0bah, 066h, 0bfh, 066h, 0c4h, 066h, 06ch
+    db  067h, 00bh, 069h, 031h, 069h, 0adh, 066h, 0adh, 066h, 0feh, 069h, 026h, 06ah, 039h, 06ah, 048h
+    db  06ah, 0b4h, 066h, 04fh, 06ah
+_int15_function:                             ; 0xf65ce LB 0x4d8
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -9326,13 +9281,13 @@
     shr ax, 008h                              ; c1 e8 08
     cmp ax, 000ech                            ; 3d ec 00
-    jnbe short 0668eh                         ; 77 35
+    jnbe short 06615h                         ; 77 35
     push CS                                   ; 0e
     pop ES                                    ; 07
     mov cx, strict word 00012h                ; b9 12 00
-    mov di, 06612h                            ; bf 12 66
+    mov di, 06599h                            ; bf 99 65
     repne scasb                               ; f2 ae
     sal cx, 1                                 ; d1 e1
     mov di, cx                                ; 89 cf
-    mov si, word [cs:di+06623h]               ; 2e 8b b5 23 66
+    mov si, word [cs:di+065aah]               ; 2e 8b b5 aa 65
     mov ax, word [bp+012h]                    ; 8b 46 12
     xor ah, ah                                ; 30 e4
@@ -9347,29 +9302,29 @@
     xor ah, ah                                ; 30 e4
     cmp ax, 000c0h                            ; 3d c0 00
-    je short 06691h                           ; 74 03
-    jmp near 06aedh                           ; e9 5c 04
+    je short 06618h                           ; 74 03
+    jmp near 06a74h                           ; e9 5c 04
     or byte [bp+018h], 001h                   ; 80 4e 18 01
-    jmp near 06a96h                           ; e9 fe 03
+    jmp near 06a1dh                           ; e9 fe 03
     mov dx, ax                                ; 89 c2
     cmp ax, strict word 00001h                ; 3d 01 00
-    jc short 066adh                           ; 72 0e
-    jbe short 066c1h                          ; 76 20
+    jc short 06634h                           ; 72 0e
+    jbe short 06648h                          ; 76 20
     cmp ax, strict word 00003h                ; 3d 03 00
-    je short 066eeh                           ; 74 48
+    je short 06675h                           ; 74 48
     cmp ax, strict word 00002h                ; 3d 02 00
-    je short 066d1h                           ; 74 26
-    jmp short 066fbh                          ; eb 4e
+    je short 06658h                           ; 74 26
+    jmp short 06682h                          ; eb 4e
     test ax, ax                               ; 85 c0
-    jne short 066fbh                          ; 75 4a
+    jne short 06682h                          ; 75 4a
     xor ax, ax                                ; 31 c0
-    call 0658ch                               ; e8 d6 fe
+    call 06513h                               ; e8 d6 fe
     and byte [bp+018h], 0feh                  ; 80 66 18 fe
     mov byte [bp+013h], 000h                  ; c6 46 13 00
-    jmp near 06726h                           ; e9 65 00
+    jmp near 066adh                           ; e9 65 00
     mov ax, strict word 00001h                ; b8 01 00
-    call 0658ch                               ; e8 c5 fe
+    call 06513h                               ; e8 c5 fe
     and byte [bp+018h], 0feh                  ; 80 66 18 fe
     mov byte [bp+013h], dh                    ; 88 76 13
-    jmp near 06726h                           ; e9 55 00
+    jmp near 066adh                           ; e9 55 00
     mov dx, 00092h                            ; ba 92 00
     in AL, DX                                 ; ec
@@ -9383,13 +9338,13 @@
     and byte [bp+018h], 0feh                  ; 80 66 18 fe
     mov byte [bp+013h], ah                    ; 88 66 13
-    jmp near 06726h                           ; e9 38 00
+    jmp near 066adh                           ; e9 38 00
     and byte [bp+018h], 0feh                  ; 80 66 18 fe
     mov byte [bp+013h], ah                    ; 88 66 13
     mov word [bp+00ch], ax                    ; 89 46 0c
-    jmp near 06726h                           ; e9 2b 00
+    jmp near 066adh                           ; e9 2b 00
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 1d b2
+    call 01923h                               ; e8 96 b2
     mov ax, word [bp+012h]                    ; 8b 46 12
     xor ah, ah                                ; 30 e4
@@ -9397,5 +9352,5 @@
     push 0082eh                               ; 68 2e 08
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 52 b2
+    call 01966h                               ; e8 cb b2
     add sp, strict byte 00006h                ; 83 c4 06
     or byte [bp+018h], 001h                   ; 80 4e 18 01
@@ -9410,36 +9365,36 @@
     retn                                      ; c3
     mov word [bp+018h], dx                    ; 89 56 18
-    jmp near 067dfh                           ; e9 ac 00
+    jmp near 06766h                           ; e9 ac 00
     mov word [bp+018h], dx                    ; 89 56 18
-    jmp short 06726h                          ; eb ee
+    jmp short 066adh                          ; eb ee
     mov word [bp+018h], cx                    ; 89 4e 18
-    jmp short 06723h                          ; eb e6
+    jmp short 066aah                          ; eb e6
     test byte [bp+012h], 0ffh                 ; f6 46 12 ff
-    jne short 067b2h                          ; 75 6f
+    jne short 06739h                          ; 75 6f
     mov dx, 000a0h                            ; ba a0 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 04 af
+    call 01650h                               ; e8 7d af
     test AL, strict byte 001h                 ; a8 01
-    jne short 067afh                          ; 75 5f
+    jne short 06736h                          ; 75 5f
     mov bx, strict word 00001h                ; bb 01 00
     mov dx, 000a0h                            ; ba a0 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 02 af
+    call 0165eh                               ; e8 7b af
     mov bx, word [bp+014h]                    ; 8b 5e 14
     mov dx, 00098h                            ; ba 98 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0167ah                               ; e8 12 af
+    call 0167ah                               ; e8 8b af
     mov bx, word [bp+00ch]                    ; 8b 5e 0c
     mov dx, 0009ah                            ; ba 9a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0167ah                               ; e8 06 af
+    call 0167ah                               ; e8 7f af
     mov bx, word [bp+00eh]                    ; 8b 5e 0e
     mov dx, 0009ch                            ; ba 9c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0167ah                               ; e8 fa ae
+    call 0167ah                               ; e8 73 af
     mov bx, word [bp+010h]                    ; 8b 5e 10
     mov dx, 0009eh                            ; ba 9e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0167ah                               ; e8 ee ae
+    call 0167ah                               ; e8 67 af
     and byte [bp+018h], 0feh                  ; 80 66 18 fe
     mov dx, 000a1h                            ; ba a1 00
@@ -9450,24 +9405,24 @@
     out DX, AL                                ; ee
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 016ach                               ; e8 0d af
+    call 016ach                               ; e8 86 af
     mov dl, al                                ; 88 c2
     or dl, 040h                               ; 80 ca 40
     xor dh, dh                                ; 30 f6
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 016c7h                               ; e8 1b af
-    jmp near 06726h                           ; e9 77 ff
-    jmp near 06a8dh                           ; e9 db 02
+    call 016c7h                               ; e8 94 af
+    jmp near 066adh                           ; e9 77 ff
+    jmp near 06a14h                           ; e9 db 02
     cmp ax, strict word 00001h                ; 3d 01 00
-    jne short 067d3h                          ; 75 1c
+    jne short 0675ah                          ; 75 1c
     xor bx, bx                                ; 31 db
     mov dx, 000a0h                            ; ba a0 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 9c ae
+    call 0165eh                               ; e8 15 af
     and byte [bp+018h], 0feh                  ; 80 66 18 fe
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 016ach                               ; e8 e0 ae
+    call 016ach                               ; e8 59 af
     mov dl, al                                ; 88 c2
     and dl, 0bfh                              ; 80 e2 bf
-    jmp short 067a4h                          ; eb d1
+    jmp short 0672bh                          ; eb d1
     mov word [bp+018h], dx                    ; 89 56 18
     mov ax, bx                                ; 89 d8
@@ -9477,8 +9432,8 @@
     or bx, ax                                 ; 09 c3
     mov word [bp+012h], bx                    ; 89 5e 12
-    jmp near 06726h                           ; e9 41 ff
+    jmp near 066adh                           ; e9 41 ff
     cli                                       ; fa
     mov ax, strict word 00001h                ; b8 01 00
-    call 0658ch                               ; e8 a0 fd
+    call 06513h                               ; e8 a0 fd
     mov di, ax                                ; 89 c7
     mov ax, word [bp+014h]                    ; 8b 46 14
@@ -9490,5 +9445,5 @@
     mov byte [bp-006h], dl                    ; 88 56 fa
     cmp cx, ax                                ; 39 c1
-    jnc short 0680bh                          ; 73 05
+    jnc short 06792h                          ; 73 05
     db  0feh, 0c2h
     ; inc dl                                    ; fe c2
@@ -9498,10 +9453,10 @@
     mov ax, word [bp+014h]                    ; 8b 46 14
     mov bx, strict word 0002fh                ; bb 2f 00
-    call 0167ah                               ; e8 60 ae
+    call 0167ah                               ; e8 d9 ae
     mov dx, word [bp+006h]                    ; 8b 56 06
     add dx, strict byte 0000ah                ; 83 c2 0a
     mov ax, word [bp+014h]                    ; 8b 46 14
     mov bx, cx                                ; 89 cb
-    call 0167ah                               ; e8 52 ae
+    call 0167ah                               ; e8 cb ae
     mov bl, byte [bp-006h]                    ; 8a 5e fa
     xor bh, bh                                ; 30 ff
@@ -9509,40 +9464,40 @@
     add dx, strict byte 0000ch                ; 83 c2 0c
     mov ax, word [bp+014h]                    ; 8b 46 14
-    call 0165eh                               ; e8 25 ae
+    call 0165eh                               ; e8 9e ae
     mov dx, word [bp+006h]                    ; 8b 56 06
     add dx, strict byte 0000dh                ; 83 c2 0d
     mov ax, word [bp+014h]                    ; 8b 46 14
     mov bx, 00093h                            ; bb 93 00
-    call 0165eh                               ; e8 16 ae
+    call 0165eh                               ; e8 8f ae
     mov dx, word [bp+006h]                    ; 8b 56 06
     add dx, strict byte 0000eh                ; 83 c2 0e
     mov ax, word [bp+014h]                    ; 8b 46 14
     xor bx, bx                                ; 31 db
-    call 0167ah                               ; e8 24 ae
+    call 0167ah                               ; e8 9d ae
     mov dx, word [bp+006h]                    ; 8b 56 06
     add dx, strict byte 00020h                ; 83 c2 20
     mov ax, word [bp+014h]                    ; 8b 46 14
     mov bx, strict word 0ffffh                ; bb ff ff
-    call 0167ah                               ; e8 15 ae
+    call 0167ah                               ; e8 8e ae
     mov dx, word [bp+006h]                    ; 8b 56 06
     add dx, strict byte 00022h                ; 83 c2 22
     mov ax, word [bp+014h]                    ; 8b 46 14
     xor bx, bx                                ; 31 db
-    call 0167ah                               ; e8 07 ae
+    call 0167ah                               ; e8 80 ae
     mov dx, word [bp+006h]                    ; 8b 56 06
     add dx, strict byte 00024h                ; 83 c2 24
     mov ax, word [bp+014h]                    ; 8b 46 14
     mov bx, strict word 0000fh                ; bb 0f 00
-    call 0165eh                               ; e8 dc ad
+    call 0165eh                               ; e8 55 ae
     mov dx, word [bp+006h]                    ; 8b 56 06
     add dx, strict byte 00025h                ; 83 c2 25
     mov ax, word [bp+014h]                    ; 8b 46 14
     mov bx, 0009bh                            ; bb 9b 00
-    call 0165eh                               ; e8 cd ad
+    call 0165eh                               ; e8 46 ae
     mov dx, word [bp+006h]                    ; 8b 56 06
     add dx, strict byte 00026h                ; 83 c2 26
     mov ax, word [bp+014h]                    ; 8b 46 14
     xor bx, bx                                ; 31 db
-    call 0167ah                               ; e8 db ad
+    call 0167ah                               ; e8 54 ae
     mov ax, ss                                ; 8c d0
     mov cx, ax                                ; 89 c1
@@ -9554,10 +9509,10 @@
     mov ax, word [bp+014h]                    ; 8b 46 14
     mov bx, strict word 0ffffh                ; bb ff ff
-    call 0167ah                               ; e8 bf ad
+    call 0167ah                               ; e8 38 ae
     mov dx, word [bp+006h]                    ; 8b 56 06
     add dx, strict byte 0002ah                ; 83 c2 2a
     mov ax, word [bp+014h]                    ; 8b 46 14
     mov bx, cx                                ; 89 cb
-    call 0167ah                               ; e8 b1 ad
+    call 0167ah                               ; e8 2a ae
     mov bl, byte [bp-008h]                    ; 8a 5e f8
     xor bh, bh                                ; 30 ff
@@ -9565,15 +9520,15 @@
     add dx, strict byte 0002ch                ; 83 c2 2c
     mov ax, word [bp+014h]                    ; 8b 46 14
-    call 0165eh                               ; e8 84 ad
+    call 0165eh                               ; e8 fd ad
     mov dx, word [bp+006h]                    ; 8b 56 06
     add dx, strict byte 0002dh                ; 83 c2 2d
     mov ax, word [bp+014h]                    ; 8b 46 14
     mov bx, 00093h                            ; bb 93 00
-    call 0165eh                               ; e8 75 ad
+    call 0165eh                               ; e8 ee ad
     mov dx, word [bp+006h]                    ; 8b 56 06
     add dx, strict byte 0002eh                ; 83 c2 2e
     mov ax, word [bp+014h]                    ; 8b 46 14
     xor bx, bx                                ; 31 db
-    call 0167ah                               ; e8 83 ad
+    call 0167ah                               ; e8 fc ad
     mov si, word [bp+006h]                    ; 8b 76 06
     mov es, [bp+014h]                         ; 8e 46 14
@@ -9586,5 +9541,5 @@
     mov word [00467h], sp                     ; 89 26 67 04
     mov [00469h], ss                          ; 8c 16 69 04
-    call 06913h                               ; e8 00 00
+    call 0689ah                               ; e8 00 00
     pop di                                    ; 5f
     add di, strict byte 0001bh                ; 83 c7 1b
@@ -9609,5 +9564,5 @@
     cld                                       ; fc
     rep movsw                                 ; f3 a5
-    call 06947h                               ; e8 00 00
+    call 068ceh                               ; e8 00 00
     pop ax                                    ; 58
     push 0f000h                               ; 68 00 f0
@@ -9630,51 +9585,51 @@
     pop DS                                    ; 1f
     mov ax, di                                ; 89 f8
-    call 0658ch                               ; e8 14 fc
+    call 06513h                               ; e8 14 fc
     sti                                       ; fb
     mov byte [bp+013h], 000h                  ; c6 46 13 00
     and byte [bp+018h], 0feh                  ; 80 66 18 fe
-    jmp near 06726h                           ; e9 a2 fd
+    jmp near 066adh                           ; e9 a2 fd
     mov ax, strict word 00031h                ; b8 31 00
-    call 016ach                               ; e8 22 ad
+    call 016ach                               ; e8 9b ad
     xor ah, ah                                ; 30 e4
     mov dx, ax                                ; 89 c2
     sal dx, 008h                              ; c1 e2 08
     mov ax, strict word 00030h                ; b8 30 00
-    call 016ach                               ; e8 15 ad
+    call 016ach                               ; e8 8e ad
     xor ah, ah                                ; 30 e4
     or dx, ax                                 ; 09 c2
     mov word [bp+012h], dx                    ; 89 56 12
     cmp dx, strict byte 0ffc0h                ; 83 fa c0
-    jbe short 0697dh                          ; 76 da
+    jbe short 06904h                          ; 76 da
     mov word [bp+012h], strict word 0ffc0h    ; c7 46 12 c0 ff
-    jmp short 0697dh                          ; eb d3
+    jmp short 06904h                          ; eb d3
     cli                                       ; fa
     mov ax, strict word 00001h                ; b8 01 00
-    call 0658ch                               ; e8 db fb
+    call 06513h                               ; e8 db fb
     mov dx, word [bp+006h]                    ; 8b 56 06
     add dx, strict byte 00038h                ; 83 c2 38
     mov ax, word [bp+014h]                    ; 8b 46 14
     mov bx, strict word 0ffffh                ; bb ff ff
-    call 0167ah                               ; e8 ba ac
+    call 0167ah                               ; e8 33 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 ac ac
+    call 0167ah                               ; e8 25 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 81 ac
+    call 0165eh                               ; e8 fa ac
     mov dx, word [bp+006h]                    ; 8b 56 06
     add dx, strict byte 0003dh                ; 83 c2 3d
     mov ax, word [bp+014h]                    ; 8b 46 14
     mov bx, 0009bh                            ; bb 9b 00
-    call 0165eh                               ; e8 72 ac
+    call 0165eh                               ; e8 eb ac
     mov dx, word [bp+006h]                    ; 8b 56 06
     add dx, strict byte 0003eh                ; 83 c2 3e
     mov ax, word [bp+014h]                    ; 8b 46 14
     xor bx, bx                                ; 31 db
-    call 0167ah                               ; e8 80 ac
+    call 0167ah                               ; e8 f9 ac
     mov AL, strict byte 011h                  ; b0 11
     mov dx, strict word 00020h                ; ba 20 00
@@ -9706,5 +9661,5 @@
     out DX, AL                                ; ee
     mov si, word [bp+006h]                    ; 8b 76 06
-    call 06a3bh                               ; e8 00 00
+    call 069c2h                               ; e8 00 00
     pop di                                    ; 5f
     add di, strict byte 00018h                ; 83 c7 18
@@ -9734,12 +9689,12 @@
     push cx                                   ; 51
     retf                                      ; cb
-    jmp near 06726h                           ; e9 af fc
+    jmp near 066adh                           ; e9 af fc
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 a1 ae
+    call 01923h                               ; e8 1a af
     push 0086eh                               ; 68 6e 08
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 dc ae
+    call 01966h                               ; e8 55 af
     add sp, strict byte 00004h                ; 83 c4 04
     or byte [bp+018h], 001h                   ; 80 4e 18 01
@@ -9748,55 +9703,58 @@
     or ah, 086h                               ; 80 cc 86
     mov word [bp+012h], ax                    ; 89 46 12
-    jmp near 06726h                           ; e9 87 fc
+    jmp near 066adh                           ; e9 87 fc
     mov word [bp+018h], cx                    ; 89 4e 18
     mov word [bp+012h], ax                    ; 89 46 12
     mov word [bp+00ch], 0e6f5h                ; c7 46 0c f5 e6
     mov word [bp+014h], 0f000h                ; c7 46 14 00 f0
-    jmp near 06726h                           ; e9 74 fc
+    jmp near 066adh                           ; e9 74 fc
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 b1 ab
+    call 0166ch                               ; e8 2a ac
     mov word [bp+014h], ax                    ; 89 46 14
-    jmp near 0697dh                           ; e9 bc fe
+    jmp near 06904h                           ; e9 bc fe
     push 0089dh                               ; 68 9d 08
     push strict byte 00008h                   ; 6a 08
-    jmp short 06a87h                          ; eb bf
+    jmp short 06a0eh                          ; eb bf
     test byte [bp+012h], 0ffh                 ; f6 46 12 ff
-    jne short 06aedh                          ; 75 1f
+    jne short 06a74h                          ; 75 1f
     mov word [bp+012h], ax                    ; 89 46 12
     mov ax, word [bp+00ch]                    ; 8b 46 0c
     xor ah, ah                                ; 30 e4
     cmp ax, strict word 00001h                ; 3d 01 00
-    jc short 06ae6h                           ; 72 0b
+    jc short 06a6dh                           ; 72 0b
     cmp ax, strict word 00003h                ; 3d 03 00
-    jnbe short 06ae6h                         ; 77 06
+    jnbe short 06a6dh                         ; 77 06
     mov word [bp+018h], cx                    ; 89 4e 18
-    jmp near 06726h                           ; e9 40 fc
+    jmp near 066adh                           ; e9 40 fc
     or byte [bp+018h], 001h                   ; 80 4e 18 01
-    jmp near 06726h                           ; e9 39 fc
+    jmp near 066adh                           ; e9 39 fc
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 2b ae
+    call 01923h                               ; e8 a4 ae
     push word [bp+00ch]                       ; ff 76 0c
     push word [bp+012h]                       ; ff 76 12
     push 008b4h                               ; 68 b4 08
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 60 ae
+    call 01966h                               ; e8 d9 ae
     add sp, strict byte 00008h                ; 83 c4 08
-    jmp short 06a8dh                          ; eb 82
-    mov bx, 0e06ch                            ; bb 6c e0
+    jmp short 06a14h                          ; eb 82
+    inc dx                                    ; 42
     insb                                      ; 6c
-    add byte [di+04fh], ch                    ; 00 6d 4f
+    a32 insb                                  ; 67 6c
+    xchg word [si-02ah], bp                   ; 87 6c d6
+    insb                                      ; 6c
+    hlt                                       ; f4
+    insb                                      ; 6c
+    adc word [di+033h], bp                    ; 11 6d 33
     insw                                      ; 6d
+    push bp                                   ; 55
     insw                                      ; 6d
+    xchg dx, ax                               ; 92
     insw                                      ; 6d
-    mov ch, byte [di-054h]                    ; 8a 6d ac
+    db  0c6h
     insw                                      ; 6d
-    into                                      ; ce
-    insw                                      ; 6d
-    or bp, word [bp+03fh]                     ; 0b 6e 3f
-    outsb                                     ; 6e
-_int15_function32:                           ; 0xf6b1f LB 0x3bc
+_int15_function32:                           ; 0xf6aa6 LB 0x3bc
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -9810,9 +9768,9 @@
     xor ah, ah                                ; 30 e4
     cmp dx, 000e8h                            ; 81 fa e8 00
-    je short 06b8ah                           ; 74 4d
+    je short 06b11h                           ; 74 4d
     cmp dx, 000d0h                            ; 81 fa d0 00
-    je short 06b83h                           ; 74 40
+    je short 06b0ah                           ; 74 40
     cmp dx, 00086h                            ; 81 fa 86 00
-    jne short 06ba8h                          ; 75 5f
+    jne short 06b2fh                          ; 75 5f
     sti                                       ; fb
     mov ax, word [bp+01ch]                    ; 8b 46 1c
@@ -9833,34 +9791,34 @@
     db  066h, 00bh, 0c9h
     ; or ecx, ecx                               ; 66 0b c9
-    je near 06b80h                            ; 0f 84 0e 00
+    je near 06b07h                            ; 0f 84 0e 00
     in AL, strict byte 061h                   ; e4 61
     and AL, strict byte 010h                  ; 24 10
     db  03ah, 0c4h
     ; cmp al, ah                                ; 3a c4
-    je short 06b72h                           ; 74 f8
+    je short 06af9h                           ; 74 f8
     db  08ah, 0e0h
     ; mov ah, al                                ; 8a e0
     dec ecx                                   ; 66 49
-    jne short 06b72h                          ; 75 f2
-    jmp near 06d49h                           ; e9 c6 01
+    jne short 06af9h                          ; 75 f2
+    jmp near 06cd0h                           ; e9 c6 01
     cmp ax, strict word 0004fh                ; 3d 4f 00
-    je short 06b8ch                           ; 74 04
-    jmp short 06ba8h                          ; eb 1e
-    jmp short 06be2h                          ; eb 56
+    je short 06b13h                           ; 74 04
+    jmp short 06b2fh                          ; eb 1e
+    jmp short 06b69h                          ; eb 56
     cmp word [bp+016h], 05052h                ; 81 7e 16 52 50
-    jne short 06bech                          ; 75 59
+    jne short 06b73h                          ; 75 59
     cmp word [bp+014h], 04f43h                ; 81 7e 14 43 4f
-    jne short 06bech                          ; 75 52
+    jne short 06b73h                          ; 75 52
     cmp word [bp+01eh], 04d4fh                ; 81 7e 1e 4f 4d
-    jne short 06bech                          ; 75 4b
+    jne short 06b73h                          ; 75 4b
     cmp word [bp+01ch], 04445h                ; 81 7e 1c 45 44
-    je short 06baah                           ; 74 02
-    jmp short 06bech                          ; eb 42
+    je short 06b31h                           ; 74 02
+    jmp short 06b73h                          ; eb 42
     mov ax, word [bp+00ah]                    ; 8b 46 0a
     or ax, word [bp+008h]                     ; 0b 46 08
-    jne short 06bech                          ; 75 3a
+    jne short 06b73h                          ; 75 3a
     mov ax, word [bp+006h]                    ; 8b 46 06
     or ax, word [bp+004h]                     ; 0b 46 04
-    jne short 06bech                          ; 75 32
+    jne short 06b73h                          ; 75 32
     mov word [bp+028h], bx                    ; 89 5e 28
     mov ax, word [bp+014h]                    ; 8b 46 14
@@ -9874,17 +9832,17 @@
     mov word [bp+020h], 03332h                ; c7 46 20 32 33
     mov word [bp+022h], 04941h                ; c7 46 22 41 49
-    jmp near 06d49h                           ; e9 67 01
+    jmp near 06cd0h                           ; e9 67 01
     cmp ax, strict word 00020h                ; 3d 20 00
-    je short 06bf2h                           ; 74 0b
+    je short 06b79h                           ; 74 0b
     cmp ax, strict word 00001h                ; 3d 01 00
-    je short 06befh                           ; 74 03
-    jmp near 06d1fh                           ; e9 30 01
-    jmp near 06e8dh                           ; e9 9b 02
+    je short 06b76h                           ; 74 03
+    jmp near 06ca6h                           ; e9 30 01
+    jmp near 06e14h                           ; e9 9b 02
     cmp word [bp+01ah], 0534dh                ; 81 7e 1a 4d 53
-    jne short 06bech                          ; 75 f3
+    jne short 06b73h                          ; 75 f3
     cmp word [bp+018h], 04150h                ; 81 7e 18 50 41
-    jne short 06bech                          ; 75 ec
+    jne short 06b73h                          ; 75 ec
     mov ax, strict word 00035h                ; b8 35 00
-    call 016ach                               ; e8 a6 aa
+    call 016ach                               ; e8 1f ab
     mov bl, al                                ; 88 c3
     xor bh, bh                                ; 30 ff
@@ -9893,7 +9851,7 @@
     sal bx, 1                                 ; d1 e3
     rcl dx, 1                                 ; d1 d2
-    loop 06c0fh                               ; e2 fa
+    loop 06b96h                               ; e2 fa
     mov ax, strict word 00034h                ; b8 34 00
-    call 016ach                               ; e8 91 aa
+    call 016ach                               ; e8 0a ab
     xor ah, ah                                ; 30 e4
     mov dx, bx                                ; 89 da
@@ -9903,10 +9861,10 @@
     adc dx, 00100h                            ; 81 d2 00 01
     cmp dx, 00100h                            ; 81 fa 00 01
-    jc short 06c35h                           ; 72 06
-    jne short 06c63h                          ; 75 32
+    jc short 06bbch                           ; 72 06
+    jne short 06beah                          ; 75 32
     test bx, bx                               ; 85 db
-    jnbe short 06c63h                         ; 77 2e
+    jnbe short 06beah                         ; 77 2e
     mov ax, strict word 00031h                ; b8 31 00
-    call 016ach                               ; e8 71 aa
+    call 016ach                               ; e8 ea aa
     mov bl, al                                ; 88 c3
     xor bh, bh                                ; 30 ff
@@ -9915,7 +9873,7 @@
     sal bx, 1                                 ; d1 e3
     rcl dx, 1                                 ; d1 d2
-    loop 06c44h                               ; e2 fa
+    loop 06bcbh                               ; e2 fa
     mov ax, strict word 00030h                ; b8 30 00
-    call 016ach                               ; e8 5c aa
+    call 016ach                               ; e8 d5 aa
     xor ah, ah                                ; 30 e4
     or bx, ax                                 ; 09 c3
@@ -9923,9 +9881,9 @@
     sal bx, 1                                 ; d1 e3
     rcl dx, 1                                 ; d1 d2
-    loop 06c57h                               ; e2 fa
+    loop 06bdeh                               ; e2 fa
     add bx, strict byte 00000h                ; 83 c3 00
     adc dx, strict byte 00010h                ; 83 d2 10
     mov ax, strict word 00062h                ; b8 62 00
-    call 016ach                               ; e8 43 aa
+    call 016ach                               ; e8 bc aa
     xor ah, ah                                ; 30 e4
     mov word [bp-00ah], ax                    ; 89 46 f6
@@ -9935,7 +9893,7 @@
     sal word [bp-00ah], 1                     ; d1 66 f6
     rcl word [bp-008h], 1                     ; d1 56 f8
-    loop 06c76h                               ; e2 f8
+    loop 06bfdh                               ; e2 f8
     mov ax, strict word 00061h                ; b8 61 00
-    call 016ach                               ; e8 28 aa
+    call 016ach                               ; e8 a1 aa
     xor ah, ah                                ; 30 e4
     or word [bp-00ah], ax                     ; 09 46 f6
@@ -9944,10 +9902,10 @@
     mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
     mov ax, strict word 00063h                ; b8 63 00
-    call 016ach                               ; e8 12 aa
+    call 016ach                               ; e8 8b aa
     mov byte [bp-006h], al                    ; 88 46 fa
     mov byte [bp-004h], al                    ; 88 46 fc
     mov ax, word [bp+014h]                    ; 8b 46 14
     cmp ax, strict word 00009h                ; 3d 09 00
-    jnbe short 06d1fh                         ; 77 77
+    jnbe short 06ca6h                         ; 77 77
     mov si, ax                                ; 89 c6
     add si, ax                                ; 01 c6
@@ -9956,5 +9914,5 @@
     mov cx, dx                                ; 89 d1
     adc cx, strict byte 0ffffh                ; 83 d1 ff
-    jmp word [cs:si+06b0bh]                   ; 2e ff a4 0b 6b
+    jmp word [cs:si+06a92h]                   ; 2e ff a4 92 6a
     push strict byte 00001h                   ; 6a 01
     push strict byte 00000h                   ; 6a 00
@@ -9966,8 +9924,8 @@
     xor bx, bx                                ; 31 db
     xor cx, cx                                ; 31 c9
-    call 065bch                               ; e8 e9 f8
+    call 06543h                               ; e8 e9 f8
     mov word [bp+014h], strict word 00001h    ; c7 46 14 01 00
     mov word [bp+016h], strict word 00000h    ; c7 46 16 00 00
-    jmp near 06e72h                           ; e9 92 01
+    jmp near 06df9h                           ; e9 92 01
     push strict byte 00002h                   ; 6a 02
     push strict byte 00000h                   ; 6a 00
@@ -9979,7 +9937,7 @@
     mov bx, 0fc00h                            ; bb 00 fc
     mov cx, strict word 00009h                ; b9 09 00
-    call 065bch                               ; e8 c3 f8
+    call 06543h                               ; e8 c3 f8
     mov word [bp+014h], strict word 00002h    ; c7 46 14 02 00
-    jmp short 06cd8h                          ; eb d8
+    jmp short 06c5fh                          ; eb d8
     push strict byte 00002h                   ; 6a 02
     push strict byte 00000h                   ; 6a 00
@@ -9991,16 +9949,16 @@
     xor bx, bx                                ; 31 db
     mov cx, strict word 0000fh                ; b9 0f 00
-    call 065bch                               ; e8 a4 f8
+    call 06543h                               ; e8 a4 f8
     mov word [bp+014h], strict word 00003h    ; c7 46 14 03 00
-    jmp short 06cd8h                          ; eb b9
+    jmp short 06c5fh                          ; eb b9
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 f9 ab
+    call 01923h                               ; e8 72 ac
     push word [bp+014h]                       ; ff 76 14
     push word [bp+020h]                       ; ff 76 20
     push 008b4h                               ; 68 b4 08
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 2e ac
+    call 01966h                               ; e8 a7 ac
     add sp, strict byte 00008h                ; 83 c4 08
     or byte [bp+028h], 001h                   ; 80 4e 28 01
@@ -10022,7 +9980,7 @@
     xor bx, bx                                ; 31 db
     mov cx, strict word 00010h                ; b9 10 00
-    call 065bch                               ; e8 57 f8
+    call 06543h                               ; e8 57 f8
     mov word [bp+014h], strict word 00004h    ; c7 46 14 04 00
-    jmp near 06cd8h                           ; e9 6b ff
+    jmp near 06c5fh                           ; e9 6b ff
     push strict byte 00003h                   ; 6a 03
     push strict byte 00000h                   ; 6a 00
@@ -10034,7 +9992,7 @@
     mov bx, ax                                ; 89 c3
     mov ax, si                                ; 89 f0
-    call 065bch                               ; e8 3a f8
+    call 06543h                               ; e8 3a f8
     mov word [bp+014h], strict word 00005h    ; c7 46 14 05 00
-    jmp near 06cd8h                           ; e9 4e ff
+    jmp near 06c5fh                           ; e9 4e ff
     push strict byte 00002h                   ; 6a 02
     push strict byte 00000h                   ; 6a 00
@@ -10046,7 +10004,7 @@
     xor bx, bx                                ; 31 db
     mov cx, 0fec0h                            ; b9 c0 fe
-    call 065bch                               ; e8 18 f8
+    call 06543h                               ; e8 18 f8
     mov word [bp+014h], strict word 00006h    ; c7 46 14 06 00
-    jmp near 06cd8h                           ; e9 2c ff
+    jmp near 06c5fh                           ; e9 2c ff
     push strict byte 00002h                   ; 6a 02
     push strict byte 00000h                   ; 6a 00
@@ -10058,7 +10016,7 @@
     xor bx, bx                                ; 31 db
     mov cx, 0fee0h                            ; b9 e0 fe
-    call 065bch                               ; e8 f6 f7
+    call 06543h                               ; e8 f6 f7
     mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
-    jmp near 06cd8h                           ; e9 0a ff
+    jmp near 06c5fh                           ; e9 0a ff
     push strict byte 00002h                   ; 6a 02
     push strict byte 00000h                   ; 6a 00
@@ -10070,17 +10028,17 @@
     xor bx, bx                                ; 31 db
     mov cx, strict word 0fffch                ; b9 fc ff
-    call 065bch                               ; e8 d6 f7
+    call 06543h                               ; e8 d6 f7
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    jne short 06df3h                          ; 75 07
+    jne short 06d7ah                          ; 75 07
     mov ax, word [bp-008h]                    ; 8b 46 f8
     test ax, ax                               ; 85 c0
-    je short 06e03h                           ; 74 10
+    je short 06d8ah                           ; 74 10
     mov word [bp+014h], strict word 00009h    ; c7 46 14 09 00
-    jmp near 06cd8h                           ; e9 dd fe
+    jmp near 06c5fh                           ; e9 dd fe
     mov word [bp+014h], strict word 00008h    ; c7 46 14 08 00
-    jmp near 06cd8h                           ; e9 d5 fe
+    jmp near 06c5fh                           ; e9 d5 fe
     mov word [bp+014h], ax                    ; 89 46 14
     mov word [bp+016h], ax                    ; 89 46 16
-    jmp short 06e72h                          ; eb 67
+    jmp short 06df9h                          ; eb 67
     push strict byte 00002h                   ; 6a 02
     push strict byte 00000h                   ; 6a 00
@@ -10092,19 +10050,19 @@
     xor bx, bx                                ; 31 db
     xor cx, cx                                ; 31 c9
-    call 065bch                               ; e8 9a f7
+    call 06543h                               ; e8 9a f7
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    jne short 06e2fh                          ; 75 07
+    jne short 06db6h                          ; 75 07
     mov ax, word [bp-008h]                    ; 8b 46 f8
     test ax, ax                               ; 85 c0
-    je short 06e37h                           ; 74 08
+    je short 06dbeh                           ; 74 08
     mov word [bp+014h], strict word 00009h    ; c7 46 14 09 00
-    jmp near 06cd8h                           ; e9 a1 fe
+    jmp near 06c5fh                           ; e9 a1 fe
     mov word [bp+014h], ax                    ; 89 46 14
     mov word [bp+016h], ax                    ; 89 46 16
-    jmp short 06e72h                          ; eb 33
+    jmp short 06df9h                          ; eb 33
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    jne short 06e4bh                          ; 75 06
+    jne short 06dd2h                          ; 75 06
     cmp word [bp-008h], strict byte 00000h    ; 83 7e f8 00
-    je short 06e72h                           ; 74 27
+    je short 06df9h                           ; 74 27
     push strict byte 00001h                   ; 6a 01
     mov al, byte [bp-004h]                    ; 8a 46 fc
@@ -10120,5 +10078,5 @@
     xor bx, bx                                ; 31 db
     xor cx, cx                                ; 31 c9
-    call 065bch                               ; e8 52 f7
+    call 06543h                               ; e8 52 f7
     xor ax, ax                                ; 31 c0
     mov word [bp+014h], ax                    ; 89 46 14
@@ -10129,26 +10087,26 @@
     mov word [bp+01eh], strict word 00000h    ; c7 46 1e 00 00
     and byte [bp+028h], 0feh                  ; 80 66 28 fe
-    jmp near 06d49h                           ; e9 bc fe
+    jmp near 06cd0h                           ; e9 bc fe
     mov word [bp+028h], bx                    ; 89 5e 28
     mov ax, strict word 00031h                ; b8 31 00
-    call 016ach                               ; e8 16 a8
+    call 016ach                               ; e8 8f a8
     xor ah, ah                                ; 30 e4
     mov dx, ax                                ; 89 c2
     sal dx, 008h                              ; c1 e2 08
     mov ax, strict word 00030h                ; b8 30 00
-    call 016ach                               ; e8 09 a8
+    call 016ach                               ; e8 82 a8
     xor ah, ah                                ; 30 e4
     or dx, ax                                 ; 09 c2
     mov word [bp+01ch], dx                    ; 89 56 1c
     cmp dx, 03c00h                            ; 81 fa 00 3c
-    jbe short 06eb5h                          ; 76 05
+    jbe short 06e3ch                          ; 76 05
     mov word [bp+01ch], 03c00h                ; c7 46 1c 00 3c
     mov ax, strict word 00035h                ; b8 35 00
-    call 016ach                               ; e8 f1 a7
+    call 016ach                               ; e8 6a a8
     xor ah, ah                                ; 30 e4
     mov dx, ax                                ; 89 c2
     sal dx, 008h                              ; c1 e2 08
     mov ax, strict word 00034h                ; b8 34 00
-    call 016ach                               ; e8 e4 a7
+    call 016ach                               ; e8 5d a8
     xor ah, ah                                ; 30 e4
     or dx, ax                                 ; 09 c2
@@ -10157,6 +10115,6 @@
     mov word [bp+020h], ax                    ; 89 46 20
     mov word [bp+014h], dx                    ; 89 56 14
-    jmp near 06d49h                           ; e9 6e fe
-_inv_op_handler:                             ; 0xf6edb LB 0x19b
+    jmp near 06cd0h                           ; e9 6e fe
+_inv_op_handler:                             ; 0xf6e62 LB 0x19b
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -10167,10 +10125,10 @@
     les bx, [bp+018h]                         ; c4 5e 18
     cmp byte [es:bx], 0f0h                    ; 26 80 3f f0
-    jne short 06ef1h                          ; 75 06
+    jne short 06e78h                          ; 75 06
     inc word [bp+018h]                        ; ff 46 18
-    jmp near 0706fh                           ; e9 7e 01
+    jmp near 06ff6h                           ; e9 7e 01
     cmp word [es:bx], 0050fh                  ; 26 81 3f 0f 05
-    je short 06efbh                           ; 74 03
-    jmp near 0706bh                           ; e9 70 01
+    je short 06e82h                           ; 74 03
+    jmp near 06ff2h                           ; e9 70 01
     mov si, 00800h                            ; be 00 08
     xor ax, ax                                ; 31 c0
@@ -10201,9 +10159,9 @@
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 06f4ch                               ; e2 fa
+    loop 06ed3h                               ; e2 fa
     cmp bx, dx                                ; 39 d3
-    jne short 06f5ah                          ; 75 04
+    jne short 06ee1h                          ; 75 04
     cmp di, ax                                ; 39 c7
-    je short 06f5fh                           ; 74 05
+    je short 06ee6h                           ; 74 05
     mov word [bp-008h], strict word 00001h    ; c7 46 f8 01 00
     mov es, [bp-006h]                         ; 8e 46 fa
@@ -10216,9 +10174,9 @@
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 06f75h                               ; e2 fa
+    loop 06efch                               ; e2 fa
     cmp bx, dx                                ; 39 d3
-    jne short 06f83h                          ; 75 04
+    jne short 06f0ah                          ; 75 04
     cmp di, ax                                ; 39 c7
-    je short 06f87h                           ; 74 04
+    je short 06f0eh                           ; 74 04
     or byte [bp-008h], 002h                   ; 80 4e f8 02
     push strict byte 00000h                   ; 6a 00
@@ -10274,8 +10232,8 @@
     mov ax, strict word 00008h                ; b8 08 00
     test cx, strict word 00001h               ; f7 c1 01 00
-    je near 07028h                            ; 0f 84 02 00
+    je near 06fafh                            ; 0f 84 02 00
     mov es, ax                                ; 8e c0
     test cx, strict word 00002h               ; f7 c1 02 00
-    je near 07050h                            ; 0f 84 20 00
+    je near 06fd7h                            ; 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
@@ -10294,8 +10252,8 @@
     mov ss, [word ss:00020h]                  ; 36 8e 16 20 00
     iret                                      ; cf
-    jmp short 0706fh                          ; eb 04
+    jmp short 06ff6h                          ; eb 04
     sti                                       ; fb
     hlt                                       ; f4
-    jmp short 0706ch                          ; eb fd
+    jmp short 06ff3h                          ; eb fd
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop di                                    ; 5f
@@ -10303,5 +10261,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-init_rtc_:                                   ; 0xf7076 LB 0x28
+init_rtc_:                                   ; 0xf6ffd LB 0x28
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -10309,17 +10267,17 @@
     mov dx, strict word 00026h                ; ba 26 00
     mov ax, strict word 0000ah                ; b8 0a 00
-    call 016c7h                               ; e8 44 a6
+    call 016c7h                               ; e8 bd a6
     mov dx, strict word 00002h                ; ba 02 00
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 016c7h                               ; e8 3b a6
+    call 016c7h                               ; e8 b4 a6
     mov ax, strict word 0000ch                ; b8 0c 00
-    call 016ach                               ; e8 1a a6
+    call 016ach                               ; e8 93 a6
     mov ax, strict word 0000dh                ; b8 0d 00
-    call 016ach                               ; e8 14 a6
+    call 016ach                               ; e8 8d a6
     lea sp, [bp-002h]                         ; 8d 66 fe
     pop dx                                    ; 5a
     pop bp                                    ; 5d
     retn                                      ; c3
-rtc_updating_:                               ; 0xf709e LB 0x21
+rtc_updating_:                               ; 0xf7025 LB 0x21
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -10327,11 +10285,11 @@
     mov dx, 061a8h                            ; ba a8 61
     dec dx                                    ; 4a
-    je short 070b6h                           ; 74 0e
+    je short 0703dh                           ; 74 0e
     mov ax, strict word 0000ah                ; b8 0a 00
-    call 016ach                               ; e8 fe a5
+    call 016ach                               ; e8 77 a6
     test AL, strict byte 080h                 ; a8 80
-    jne short 070a5h                          ; 75 f3
+    jne short 0702ch                          ; 75 f3
     xor ax, ax                                ; 31 c0
-    jmp short 070b9h                          ; eb 03
+    jmp short 07040h                          ; eb 03
     mov ax, strict word 00001h                ; b8 01 00
     lea sp, [bp-002h]                         ; 8d 66 fe
@@ -10339,5 +10297,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-_int70_function:                             ; 0xf70bf LB 0xbf
+_int70_function:                             ; 0xf7046 LB 0xbf
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -10345,52 +10303,52 @@
     push ax                                   ; 50
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 016ach                               ; e8 e2 a5
+    call 016ach                               ; e8 5b a6
     mov bl, al                                ; 88 c3
     mov byte [bp-004h], al                    ; 88 46 fc
     mov ax, strict word 0000ch                ; b8 0c 00
-    call 016ach                               ; e8 d7 a5
+    call 016ach                               ; e8 50 a6
     mov dl, al                                ; 88 c2
     test bl, 060h                             ; f6 c3 60
-    jne short 070dfh                          ; 75 03
-    jmp near 07165h                           ; e9 86 00
+    jne short 07066h                          ; 75 03
+    jmp near 070ech                           ; e9 86 00
     test AL, strict byte 020h                 ; a8 20
-    je short 070e7h                           ; 74 04
+    je short 0706eh                           ; 74 04
     sti                                       ; fb
     int 04ah                                  ; cd 4a
     cli                                       ; fa
     test dl, 040h                             ; f6 c2 40
-    je short 0714fh                           ; 74 63
+    je short 070d6h                           ; 74 63
     mov dx, 000a0h                            ; ba a0 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 5b a5
+    call 01650h                               ; e8 d4 a5
     test al, al                               ; 84 c0
-    je short 07165h                           ; 74 6c
+    je short 070ech                           ; 74 6c
     mov dx, 0009ch                            ; ba 9c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01688h                               ; e8 86 a5
+    call 01688h                               ; e8 ff a5
     test dx, dx                               ; 85 d2
-    jne short 07151h                          ; 75 4b
+    jne short 070d8h                          ; 75 4b
     cmp ax, 003d1h                            ; 3d d1 03
-    jnc short 07151h                          ; 73 46
+    jnc short 070d8h                          ; 73 46
     mov dx, 00098h                            ; ba 98 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 58 a5
+    call 0166ch                               ; e8 d1 a5
     mov si, ax                                ; 89 c6
     mov dx, 0009ah                            ; ba 9a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 4d a5
+    call 0166ch                               ; e8 c6 a5
     mov cx, ax                                ; 89 c1
     xor bx, bx                                ; 31 db
     mov dx, 000a0h                            ; ba a0 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 32 a5
+    call 0165eh                               ; e8 ab a5
     mov dl, byte [bp-004h]                    ; 8a 56 fc
     and dl, 037h                              ; 80 e2 37
     xor dh, dh                                ; 30 f6
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 016c7h                               ; e8 8d a5
+    call 016c7h                               ; e8 06 a6
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 01650h                               ; e8 0f a5
+    call 01650h                               ; e8 88 a5
     mov bl, al                                ; 88 c3
     or bl, 080h                               ; 80 cb 80
@@ -10398,6 +10356,6 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 0165eh                               ; e8 0f a5
-    jmp short 07165h                          ; eb 14
+    call 0165eh                               ; e8 88 a5
+    jmp short 070ech                          ; eb 14
     mov bx, ax                                ; 89 c3
     add bx, 0fc2fh                            ; 81 c3 2f fc
@@ -10406,20 +10364,19 @@
     mov dx, 0009ch                            ; ba 9c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0169ah                               ; e8 35 a5
-    call 0e030h                               ; e8 c8 6e
+    call 0169ah                               ; e8 ae a5
+    call 0e030h                               ; e8 41 6f
     lea sp, [bp-002h]                         ; 8d 66 fe
     pop si                                    ; 5e
     pop bp                                    ; 5d
     retn                                      ; c3
-    xchg sp, ax                               ; 94
-    jno short 0712ch                          ; 71 bb
-    jno short 07153h                          ; 71 e0
-    jno short 07191h                          ; 71 1c
-    jc short 071e5h                           ; 72 6e
-    jc short 0711eh                           ; 72 a5
-    jc short 07167h                           ; 72 ec
-    jc short 071c4h                           ; 72 47
-    db  073h
-_int1a_function:                             ; 0xf717e LB 0x1d9
+    sbb si, word [bx+di+042h]                 ; 1b 71 42
+    jno short 07161h                          ; 71 67
+    jno short 0709fh                          ; 71 a3
+    jno short 070f3h                          ; 71 f5
+    jno short 0712ch                          ; 71 2c
+    jc short 07175h                           ; 72 73
+    jc short 070d2h                           ; 72 ce
+    db  072h
+_int1a_function:                             ; 0xf7105 LB 0x1d9
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -10427,9 +10384,9 @@
     mov al, byte [bp+013h]                    ; 8a 46 13
     cmp AL, strict byte 007h                  ; 3c 07
-    jnbe short 071e7h                         ; 77 5e
+    jnbe short 0716eh                         ; 77 5e
     mov bl, al                                ; 88 c3
     xor bh, bh                                ; 30 ff
     add bx, bx                                ; 01 db
-    jmp word [cs:bx+0716eh]                   ; 2e ff a7 6e 71
+    jmp word [cs:bx+070f5h]                   ; 2e ff a7 f5 70
     cli                                       ; fa
     mov bx, 0046eh                            ; bb 6e 04
@@ -10446,5 +10403,5 @@
     mov byte [es:bx], 000h                    ; 26 c6 07 00
     sti                                       ; fb
-    jmp short 071e7h                          ; eb 2c
+    jmp short 0716eh                          ; eb 2c
     cli                                       ; fa
     mov bx, 0046eh                            ; bb 6e 04
@@ -10460,21 +10417,21 @@
     sti                                       ; fb
     mov byte [bp+013h], 000h                  ; c6 46 13 00
-    jmp short 071e7h                          ; eb 07
-    call 0709eh                               ; e8 bb fe
+    jmp short 0716eh                          ; eb 07
+    call 07025h                               ; e8 bb fe
     test ax, ax                               ; 85 c0
-    je short 071eah                           ; 74 03
-    jmp near 07218h                           ; e9 2e 00
+    je short 07171h                           ; 74 03
+    jmp near 0719fh                           ; e9 2e 00
     xor ax, ax                                ; 31 c0
-    call 016ach                               ; e8 bd a4
+    call 016ach                               ; e8 36 a5
     mov byte [bp+00fh], al                    ; 88 46 0f
     mov ax, strict word 00002h                ; b8 02 00
-    call 016ach                               ; e8 b4 a4
+    call 016ach                               ; e8 2d a5
     mov byte [bp+010h], al                    ; 88 46 10
     mov ax, strict word 00004h                ; b8 04 00
-    call 016ach                               ; e8 ab a4
+    call 016ach                               ; e8 24 a5
     mov dl, al                                ; 88 c2
     mov byte [bp+011h], al                    ; 88 46 11
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 016ach                               ; e8 a0 a4
+    call 016ach                               ; e8 19 a5
     and AL, strict byte 001h                  ; 24 01
     mov byte [bp+00eh], al                    ; 88 46 0e
@@ -10484,22 +10441,22 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-    call 0709eh                               ; e8 7f fe
+    call 07025h                               ; e8 7f fe
     test ax, ax                               ; 85 c0
-    je short 07226h                           ; 74 03
-    call 07076h                               ; e8 50 fe
+    je short 071adh                           ; 74 03
+    call 06ffdh                               ; e8 50 fe
     mov dl, byte [bp+00fh]                    ; 8a 56 0f
     xor dh, dh                                ; 30 f6
     xor ax, ax                                ; 31 c0
-    call 016c7h                               ; e8 97 a4
+    call 016c7h                               ; e8 10 a5
     mov dl, byte [bp+010h]                    ; 8a 56 10
     xor dh, dh                                ; 30 f6
     mov ax, strict word 00002h                ; b8 02 00
-    call 016c7h                               ; e8 8c a4
+    call 016c7h                               ; e8 05 a5
     mov dl, byte [bp+011h]                    ; 8a 56 11
     xor dh, dh                                ; 30 f6
     mov ax, strict word 00004h                ; b8 04 00
-    call 016c7h                               ; e8 81 a4
+    call 016c7h                               ; e8 fa a4
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 016ach                               ; e8 60 a4
+    call 016ach                               ; e8 d9 a4
     mov bl, al                                ; 88 c3
     and bl, 060h                              ; 80 e3 60
@@ -10511,76 +10468,76 @@
     xor dh, dh                                ; 30 f6
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 016c7h                               ; e8 62 a4
+    call 016c7h                               ; e8 db a4
     mov byte [bp+013h], 000h                  ; c6 46 13 00
     mov byte [bp+012h], bl                    ; 88 5e 12
-    jmp short 07218h                          ; eb aa
+    jmp short 0719fh                          ; eb aa
     mov byte [bp+013h], 000h                  ; c6 46 13 00
-    call 0709eh                               ; e8 29 fe
+    call 07025h                               ; e8 29 fe
     test ax, ax                               ; 85 c0
-    je short 0727bh                           ; 74 02
-    jmp short 07218h                          ; eb 9d
+    je short 07202h                           ; 74 02
+    jmp short 0719fh                          ; eb 9d
     mov ax, strict word 00009h                ; b8 09 00
-    call 016ach                               ; e8 2b a4
+    call 016ach                               ; e8 a4 a4
     mov byte [bp+010h], al                    ; 88 46 10
     mov ax, strict word 00008h                ; b8 08 00
-    call 016ach                               ; e8 22 a4
+    call 016ach                               ; e8 9b a4
     mov byte [bp+00fh], al                    ; 88 46 0f
     mov ax, strict word 00007h                ; b8 07 00
-    call 016ach                               ; e8 19 a4
+    call 016ach                               ; e8 92 a4
     mov byte [bp+00eh], al                    ; 88 46 0e
     mov ax, strict word 00032h                ; b8 32 00
-    call 016ach                               ; e8 10 a4
+    call 016ach                               ; e8 89 a4
     mov byte [bp+011h], al                    ; 88 46 11
     mov byte [bp+012h], al                    ; 88 46 12
-    jmp near 07218h                           ; e9 73 ff
-    call 0709eh                               ; e8 f6 fd
+    jmp near 0719fh                           ; e9 73 ff
+    call 07025h                               ; e8 f6 fd
     test ax, ax                               ; 85 c0
-    je short 072b2h                           ; 74 06
-    call 07076h                               ; e8 c7 fd
-    jmp near 07218h                           ; e9 66 ff
+    je short 07239h                           ; 74 06
+    call 06ffdh                               ; e8 c7 fd
+    jmp near 0719fh                           ; e9 66 ff
     mov dl, byte [bp+010h]                    ; 8a 56 10
     xor dh, dh                                ; 30 f6
     mov ax, strict word 00009h                ; b8 09 00
-    call 016c7h                               ; e8 0a a4
+    call 016c7h                               ; e8 83 a4
     mov dl, byte [bp+00fh]                    ; 8a 56 0f
     xor dh, dh                                ; 30 f6
     mov ax, strict word 00008h                ; b8 08 00
-    call 016c7h                               ; e8 ff a3
+    call 016c7h                               ; e8 78 a4
     mov dl, byte [bp+00eh]                    ; 8a 56 0e
     xor dh, dh                                ; 30 f6
     mov ax, strict word 00007h                ; b8 07 00
-    call 016c7h                               ; e8 f4 a3
+    call 016c7h                               ; e8 6d a4
     mov dl, byte [bp+011h]                    ; 8a 56 11
     xor dh, dh                                ; 30 f6
     mov ax, strict word 00032h                ; b8 32 00
-    call 016c7h                               ; e8 e9 a3
+    call 016c7h                               ; e8 62 a4
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 016ach                               ; e8 c8 a3
+    call 016ach                               ; e8 41 a4
     mov bl, al                                ; 88 c3
     and bl, 07fh                              ; 80 e3 7f
-    jmp near 0725bh                           ; e9 6f ff
+    jmp near 071e2h                           ; e9 6f ff
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 016ach                               ; e8 ba a3
+    call 016ach                               ; e8 33 a4
     mov bl, al                                ; 88 c3
     mov word [bp+012h], strict word 00000h    ; c7 46 12 00 00
     test AL, strict byte 020h                 ; a8 20
-    je short 07300h                           ; 74 03
-    jmp near 07218h                           ; e9 18 ff
-    call 0709eh                               ; e8 9b fd
+    je short 07287h                           ; 74 03
+    jmp near 0719fh                           ; e9 18 ff
+    call 07025h                               ; e8 9b fd
     test ax, ax                               ; 85 c0
-    je short 0730ah                           ; 74 03
-    call 07076h                               ; e8 6c fd
+    je short 07291h                           ; 74 03
+    call 06ffdh                               ; e8 6c fd
     mov dl, byte [bp+00fh]                    ; 8a 56 0f
     xor dh, dh                                ; 30 f6
     mov ax, strict word 00001h                ; b8 01 00
-    call 016c7h                               ; e8 b2 a3
+    call 016c7h                               ; e8 2b a4
     mov dl, byte [bp+010h]                    ; 8a 56 10
     xor dh, dh                                ; 30 f6
     mov ax, strict word 00003h                ; b8 03 00
-    call 016c7h                               ; e8 a7 a3
+    call 016c7h                               ; e8 20 a4
     mov dl, byte [bp+011h]                    ; 8a 56 11
     xor dh, dh                                ; 30 f6
     mov ax, strict word 00005h                ; b8 05 00
-    call 016c7h                               ; e8 9c a3
+    call 016c7h                               ; e8 15 a4
     mov dx, 000a1h                            ; ba a1 00
     in AL, DX                                 ; ec
@@ -10594,13 +10551,13 @@
     xor dh, dh                                ; 30 f6
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 016c7h                               ; e8 83 a3
-    jmp near 07218h                           ; e9 d1 fe
+    call 016c7h                               ; e8 fc a3
+    jmp near 0719fh                           ; e9 d1 fe
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 016ach                               ; e8 5f a3
+    call 016ach                               ; e8 d8 a3
     mov bl, al                                ; 88 c3
     mov dl, al                                ; 88 c2
     and dl, 057h                              ; 80 e2 57
-    jmp near 0725dh                           ; e9 06 ff
-send_to_mouse_ctrl_:                         ; 0xf7357 LB 0x34
+    jmp near 071e4h                           ; e9 06 ff
+send_to_mouse_ctrl_:                         ; 0xf72de LB 0x34
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -10613,9 +10570,9 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 002h                 ; a8 02
-    je short 07376h                           ; 74 0e
+    je short 072fdh                           ; 74 0e
     push 008eeh                               ; 68 ee 08
     push 01168h                               ; 68 68 11
     push strict byte 00007h                   ; 6a 07
-    call 01966h                               ; e8 f3 a5
+    call 01966h                               ; e8 6c a6
     add sp, strict byte 00006h                ; 83 c4 06
     mov AL, strict byte 0d4h                  ; b0 d4
@@ -10631,5 +10588,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-get_mouse_data_:                             ; 0xf738b LB 0x5d
+get_mouse_data_:                             ; 0xf7312 LB 0x5d
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -10646,7 +10603,7 @@
     and ax, strict word 00021h                ; 25 21 00
     cmp ax, strict word 00021h                ; 3d 21 00
-    je short 073ceh                           ; 74 28
+    je short 07355h                           ; 74 28
     test cx, cx                               ; 85 c9
-    je short 073ceh                           ; 74 24
+    je short 07355h                           ; 74 24
     mov dx, strict word 00061h                ; ba 61 00
     in AL, DX                                 ; ec
@@ -10665,11 +10622,11 @@
     xor ah, ah                                ; 30 e4
     cmp dx, ax                                ; 39 c2
-    je short 073b5h                           ; 74 ea
+    je short 0733ch                           ; 74 ea
     dec cx                                    ; 49
-    jmp short 07398h                          ; eb ca
+    jmp short 0731fh                          ; eb ca
     test cx, cx                               ; 85 c9
-    jne short 073d6h                          ; 75 04
+    jne short 0735dh                          ; 75 04
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 073e1h                          ; eb 0b
+    jmp short 07368h                          ; eb 0b
     mov dx, strict word 00060h                ; ba 60 00
     in AL, DX                                 ; ec
@@ -10683,5 +10640,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-set_kbd_command_byte_:                       ; 0xf73e8 LB 0x32
+set_kbd_command_byte_:                       ; 0xf736f LB 0x32
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -10694,9 +10651,9 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 002h                 ; a8 02
-    je short 07407h                           ; 74 0e
+    je short 0738eh                           ; 74 0e
     push 008f8h                               ; 68 f8 08
     push 01168h                               ; 68 68 11
     push strict byte 00007h                   ; 6a 07
-    call 01966h                               ; e8 62 a5
+    call 01966h                               ; e8 db a5
     add sp, strict byte 00006h                ; 83 c4 06
     mov AL, strict byte 060h                  ; b0 60
@@ -10711,5 +10668,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-_int74_function:                             ; 0xf741a LB 0xd2
+_int74_function:                             ; 0xf73a1 LB 0xd2
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -10717,5 +10674,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 43 a2
+    call 0166ch                               ; e8 bc a2
     mov cx, ax                                ; 89 c1
     mov word [bp+004h], strict word 00000h    ; c7 46 04 00 00
@@ -10726,5 +10683,5 @@
     and AL, strict byte 021h                  ; 24 21
     cmp AL, strict byte 021h                  ; 3c 21
-    jne short 0745eh                          ; 75 22
+    jne short 073e5h                          ; 75 22
     mov dx, strict word 00060h                ; ba 60 00
     in AL, DX                                 ; ec
@@ -10734,13 +10691,13 @@
     mov dx, strict word 00026h                ; ba 26 00
     mov ax, cx                                ; 89 c8
-    call 01650h                               ; e8 04 a2
+    call 01650h                               ; e8 7d a2
     mov byte [bp-002h], al                    ; 88 46 fe
     mov dx, strict word 00027h                ; ba 27 00
     mov ax, cx                                ; 89 c8
-    call 01650h                               ; e8 f9 a1
+    call 01650h                               ; e8 72 a2
     mov byte [bp-006h], al                    ; 88 46 fa
     test AL, strict byte 080h                 ; a8 80
-    jne short 07461h                          ; 75 03
-    jmp near 074d8h                           ; e9 77 00
+    jne short 073e8h                          ; 75 03
+    jmp near 0745fh                           ; e9 77 00
     mov al, byte [bp-006h]                    ; 8a 46 fa
     and AL, strict byte 007h                  ; 24 07
@@ -10756,21 +10713,21 @@
     add dx, strict byte 00028h                ; 83 c2 28
     mov ax, cx                                ; 89 c8
-    call 0165eh                               ; e8 da a1
+    call 0165eh                               ; e8 53 a2
     mov al, byte [bp-008h]                    ; 8a 46 f8
     cmp al, byte [bp-004h]                    ; 3a 46 fc
-    jc short 074c8h                           ; 72 3c
+    jc short 0744fh                           ; 72 3c
     mov dx, strict word 00028h                ; ba 28 00
     mov ax, cx                                ; 89 c8
-    call 01650h                               ; e8 bc a1
+    call 01650h                               ; e8 35 a2
     xor ah, ah                                ; 30 e4
     mov word [bp+00ch], ax                    ; 89 46 0c
     mov dx, strict word 00029h                ; ba 29 00
     mov ax, cx                                ; 89 c8
-    call 01650h                               ; e8 af a1
+    call 01650h                               ; e8 28 a2
     xor ah, ah                                ; 30 e4
     mov word [bp+00ah], ax                    ; 89 46 0a
     mov dx, strict word 0002ah                ; ba 2a 00
     mov ax, cx                                ; 89 c8
-    call 01650h                               ; e8 a2 a1
+    call 01650h                               ; e8 1b a2
     xor ah, ah                                ; 30 e4
     mov word [bp+008h], ax                    ; 89 46 08
@@ -10779,7 +10736,7 @@
     mov byte [bp-002h], ah                    ; 88 66 fe
     test byte [bp-006h], 080h                 ; f6 46 fa 80
-    je short 074cbh                           ; 74 0a
+    je short 07452h                           ; 74 0a
     mov word [bp+004h], strict word 00001h    ; c7 46 04 01 00
-    jmp short 074cbh                          ; eb 03
+    jmp short 07452h                          ; eb 03
     inc byte [bp-002h]                        ; fe 46 fe
     mov bl, byte [bp-002h]                    ; 8a 5e fe
@@ -10787,18 +10744,17 @@
     mov dx, strict word 00026h                ; ba 26 00
     mov ax, cx                                ; 89 c8
-    call 0165eh                               ; e8 86 a1
+    call 0165eh                               ; e8 ff a1
     mov sp, bp                                ; 89 ec
     pop bp                                    ; 5d
     retn                                      ; c3
-    das                                       ; 2f
-    jne short 0748ah                          ; 75 ab
-    jne short 07509h                          ; 75 28
-    jbe short 074a0h                          ; 76 bd
-    jbe short 0750eh                          ; 76 29
-    jnbe short 0755dh                         ; 77 76
-    jne short 0753ah                          ; 75 51
-    jnbe short 07501h                         ; 77 16
-    db  078h
-_int15_function_mouse:                       ; 0xf74ec LB 0x38d
+    mov DH, strict byte 074h                  ; b6 74
+    xor dh, byte [di-051h]                    ; 32 75 af
+    jne short 074aeh                          ; 75 44
+    jbe short 0741ch                          ; 76 b0
+    jbe short 0746bh                          ; 76 fd
+    je short 07448h                           ; 74 d8
+    jbe short 0740fh                          ; 76 9d
+    db  077h
+_int15_function_mouse:                       ; 0xf7473 LB 0x38d
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -10807,61 +10763,61 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 70 a1
+    call 0166ch                               ; e8 e9 a1
     mov cx, ax                                ; 89 c1
     cmp byte [bp+012h], 007h                  ; 80 7e 12 07
-    jbe short 0750fh                          ; 76 0b
+    jbe short 07496h                          ; 76 0b
     or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     mov byte [bp+013h], 001h                  ; c6 46 13 01
-    jmp near 07873h                           ; e9 64 03
+    jmp near 077fah                           ; e9 64 03
     mov ax, strict word 00065h                ; b8 65 00
-    call 073e8h                               ; e8 d3 fe
+    call 0736fh                               ; e8 d3 fe
     and word [bp+018h], strict byte 0fffeh    ; 83 66 18 fe
     mov byte [bp+013h], 000h                  ; c6 46 13 00
     mov al, byte [bp+012h]                    ; 8a 46 12
     cmp AL, strict byte 007h                  ; 3c 07
-    jnbe short 07584h                         ; 77 60
+    jnbe short 0750bh                         ; 77 60
     xor ah, ah                                ; 30 e4
     mov si, ax                                ; 89 c6
     add si, ax                                ; 01 c6
-    jmp word [cs:si+074dch]                   ; 2e ff a4 dc 74
+    jmp word [cs:si+07463h]                   ; 2e ff a4 63 74
     cmp byte [bp+00dh], 001h                  ; 80 7e 0d 01
-    jnbe short 07587h                         ; 77 52
+    jnbe short 0750eh                         ; 77 52
     mov dx, strict word 00027h                ; ba 27 00
     mov ax, cx                                ; 89 c8
-    call 01650h                               ; e8 13 a1
+    call 01650h                               ; e8 8c a1
     test AL, strict byte 080h                 ; a8 80
-    jne short 0754ch                          ; 75 0b
+    jne short 074d3h                          ; 75 0b
     or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     mov byte [bp+013h], 005h                  ; c6 46 13 05
-    jmp near 0786dh                           ; e9 21 03
+    jmp near 077f4h                           ; e9 21 03
     cmp byte [bp+00dh], 000h                  ; 80 7e 0d 00
-    jne short 07556h                          ; 75 04
+    jne short 074ddh                          ; 75 04
     mov AL, strict byte 0f5h                  ; b0 f5
-    jmp short 07558h                          ; eb 02
+    jmp short 074dfh                          ; eb 02
     mov AL, strict byte 0f4h                  ; b0 f4
     xor ah, ah                                ; 30 e4
-    call 07357h                               ; e8 fa fd
+    call 072deh                               ; e8 fa fd
     test al, al                               ; 84 c0
-    jne short 0758ah                          ; 75 29
+    jne short 07511h                          ; 75 29
     mov dx, ss                                ; 8c d2
     lea ax, [bp-008h]                         ; 8d 46 f8
-    call 0738bh                               ; e8 22 fe
+    call 07312h                               ; e8 22 fe
     test al, al                               ; 84 c0
-    je short 07573h                           ; 74 06
+    je short 074fah                           ; 74 06
     cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
-    jne short 0758ah                          ; 75 17
-    jmp near 0786dh                           ; e9 f7 02
+    jne short 07511h                          ; 75 17
+    jmp near 077f4h                           ; e9 f7 02
     mov al, byte [bp+00dh]                    ; 8a 46 0d
     cmp AL, strict byte 001h                  ; 3c 01
-    jc short 07581h                           ; 72 04
+    jc short 07508h                           ; 72 04
     cmp AL, strict byte 008h                  ; 3c 08
-    jbe short 0758dh                          ; 76 0c
-    jmp near 0771fh                           ; e9 9b 01
-    jmp near 0785ah                           ; e9 d3 02
-    jmp near 07865h                           ; e9 db 02
-    jmp near 077f1h                           ; e9 64 02
+    jbe short 07514h                          ; 76 0c
+    jmp near 076a6h                           ; e9 9b 01
+    jmp near 077e1h                           ; e9 d3 02
+    jmp near 077ech                           ; e9 db 02
+    jmp near 07778h                           ; e9 64 02
     mov dx, strict word 00027h                ; ba 27 00
     mov ax, cx                                ; 89 c8
-    call 01650h                               ; e8 bb a0
+    call 01650h                               ; e8 34 a1
     mov ah, byte [bp+00dh]                    ; 8a 66 0d
     db  0feh, 0cch
@@ -10873,8 +10829,8 @@
     mov dx, strict word 00027h                ; ba 27 00
     mov ax, cx                                ; 89 c8
-    call 0165eh                               ; e8 b3 a0
+    call 0165eh                               ; e8 2c a1
     mov dx, strict word 00026h                ; ba 26 00
     mov ax, cx                                ; 89 c8
-    call 01650h                               ; e8 9d a0
+    call 01650h                               ; e8 16 a1
     mov bl, al                                ; 88 c3
     and bl, 0f8h                              ; 80 e3 f8
@@ -10882,20 +10838,20 @@
     mov dx, strict word 00026h                ; ba 26 00
     mov ax, cx                                ; 89 c8
-    call 0165eh                               ; e8 9c a0
+    call 0165eh                               ; e8 15 a1
     mov ax, 000ffh                            ; b8 ff 00
-    call 07357h                               ; e8 8f fd
+    call 072deh                               ; e8 8f fd
     test al, al                               ; 84 c0
-    jne short 0758ah                          ; 75 be
+    jne short 07511h                          ; 75 be
     mov dx, ss                                ; 8c d2
     lea ax, [bp-004h]                         ; 8d 46 fc
-    call 0738bh                               ; e8 b7 fd
+    call 07312h                               ; e8 b7 fd
     mov cl, al                                ; 88 c1
     cmp byte [bp-004h], 0feh                  ; 80 7e fc fe
-    jne short 075e6h                          ; 75 0a
+    jne short 0756dh                          ; 75 0a
     or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     mov byte [bp+013h], 004h                  ; c6 46 13 04
-    jmp short 07573h                          ; eb 8d
+    jmp short 074fah                          ; eb 8d
     cmp byte [bp-004h], 0fah                  ; 80 7e fc fa
-    je short 075fdh                           ; 74 11
+    je short 07584h                           ; 74 11
     mov al, byte [bp-004h]                    ; 8a 46 fc
     xor ah, ah                                ; 30 e4
@@ -10903,89 +10859,89 @@
     push 00903h                               ; 68 03 09
     push strict byte 00007h                   ; 6a 07
-    call 01966h                               ; e8 6c a3
+    call 01966h                               ; e8 e5 a3
     add sp, strict byte 00006h                ; 83 c4 06
     test cl, cl                               ; 84 c9
-    jne short 0758ah                          ; 75 89
+    jne short 07511h                          ; 75 89
     mov dx, ss                                ; 8c d2
     lea ax, [bp-008h]                         ; 8d 46 f8
-    call 0738bh                               ; e8 82 fd
+    call 07312h                               ; e8 82 fd
     test al, al                               ; 84 c0
-    jne short 07663h                          ; 75 56
+    jne short 075eah                          ; 75 56
     mov dx, ss                                ; 8c d2
     lea ax, [bp-006h]                         ; 8d 46 fa
-    call 0738bh                               ; e8 76 fd
+    call 07312h                               ; e8 76 fd
     test al, al                               ; 84 c0
-    jne short 07663h                          ; 75 4a
+    jne short 075eah                          ; 75 4a
     mov al, byte [bp-008h]                    ; 8a 46 f8
     mov byte [bp+00ch], al                    ; 88 46 0c
     mov al, byte [bp-006h]                    ; 8a 46 fa
     mov byte [bp+00dh], al                    ; 88 46 0d
-    jmp near 0786dh                           ; e9 45 02
+    jmp near 077f4h                           ; e9 45 02
     mov al, byte [bp+00dh]                    ; 8a 46 0d
     cmp AL, strict byte 003h                  ; 3c 03
-    jc short 0763fh                           ; 72 10
-    jbe short 0765dh                          ; 76 2c
+    jc short 075c6h                           ; 72 10
+    jbe short 075e4h                          ; 76 2c
     cmp AL, strict byte 006h                  ; 3c 06
-    je short 07672h                           ; 74 3d
+    je short 075f9h                           ; 74 3d
     cmp AL, strict byte 005h                  ; 3c 05
-    je short 0766ch                           ; 74 33
+    je short 075f3h                           ; 74 33
     cmp AL, strict byte 004h                  ; 3c 04
-    je short 07666h                           ; 74 29
-    jmp short 07678h                          ; eb 39
+    je short 075edh                           ; 74 29
+    jmp short 075ffh                          ; eb 39
     cmp AL, strict byte 002h                  ; 3c 02
-    je short 07657h                           ; 74 14
+    je short 075deh                           ; 74 14
     cmp AL, strict byte 001h                  ; 3c 01
-    je short 07651h                           ; 74 0a
+    je short 075d8h                           ; 74 0a
     test al, al                               ; 84 c0
-    jne short 07678h                          ; 75 2d
+    jne short 075ffh                          ; 75 2d
     mov byte [bp-008h], 00ah                  ; c6 46 f8 0a
-    jmp short 0767ch                          ; eb 2b
+    jmp short 07603h                          ; eb 2b
     mov byte [bp-008h], 014h                  ; c6 46 f8 14
-    jmp short 0767ch                          ; eb 25
+    jmp short 07603h                          ; eb 25
     mov byte [bp-008h], 028h                  ; c6 46 f8 28
-    jmp short 0767ch                          ; eb 1f
+    jmp short 07603h                          ; eb 1f
     mov byte [bp-008h], 03ch                  ; c6 46 f8 3c
-    jmp short 0767ch                          ; eb 19
-    jmp near 077f1h                           ; e9 8b 01
+    jmp short 07603h                          ; eb 19
+    jmp near 07778h                           ; e9 8b 01
     mov byte [bp-008h], 050h                  ; c6 46 f8 50
-    jmp short 0767ch                          ; eb 10
+    jmp short 07603h                          ; eb 10
     mov byte [bp-008h], 064h                  ; c6 46 f8 64
-    jmp short 0767ch                          ; eb 0a
+    jmp short 07603h                          ; eb 0a
     mov byte [bp-008h], 0c8h                  ; c6 46 f8 c8
-    jmp short 0767ch                          ; eb 04
+    jmp short 07603h                          ; eb 04
     mov byte [bp-008h], 000h                  ; c6 46 f8 00
     cmp byte [bp-008h], 000h                  ; 80 7e f8 00
-    jbe short 076b2h                          ; 76 30
+    jbe short 07639h                          ; 76 30
     mov ax, 000f3h                            ; b8 f3 00
-    call 07357h                               ; e8 cf fc
+    call 072deh                               ; e8 cf fc
     test al, al                               ; 84 c0
-    jne short 076a7h                          ; 75 1b
+    jne short 0762eh                          ; 75 1b
     mov dx, ss                                ; 8c d2
     lea ax, [bp-006h]                         ; 8d 46 fa
-    call 0738bh                               ; e8 f7 fc
+    call 07312h                               ; e8 f7 fc
     mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
-    call 07357h                               ; e8 bb fc
+    call 072deh                               ; e8 bb fc
     mov dx, ss                                ; 8c d2
     lea ax, [bp-006h]                         ; 8d 46 fa
-    call 0738bh                               ; e8 e7 fc
-    jmp near 0786dh                           ; e9 c6 01
+    call 07312h                               ; e8 e7 fc
+    jmp near 077f4h                           ; e9 c6 01
     or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     mov byte [bp+013h], 003h                  ; c6 46 13 03
-    jmp near 0786dh                           ; e9 bb 01
+    jmp near 077f4h                           ; e9 bb 01
     or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     mov byte [bp+013h], 002h                  ; c6 46 13 02
-    jmp near 0786dh                           ; e9 b0 01
+    jmp near 077f4h                           ; e9 b0 01
     cmp byte [bp+00dh], 004h                  ; 80 7e 0d 04
-    jnc short 0771fh                          ; 73 5c
+    jnc short 076a6h                          ; 73 5c
     mov ax, 000e8h                            ; b8 e8 00
-    call 07357h                               ; e8 8e fc
+    call 072deh                               ; e8 8e fc
     test al, al                               ; 84 c0
-    jne short 07715h                          ; 75 48
+    jne short 0769ch                          ; 75 48
     mov dx, ss                                ; 8c d2
     lea ax, [bp-008h]                         ; 8d 46 f8
-    call 0738bh                               ; e8 b6 fc
+    call 07312h                               ; e8 b6 fc
     cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
-    je short 076ech                           ; 74 11
+    je short 07673h                           ; 74 11
     mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
@@ -10993,14 +10949,14 @@
     push 0092eh                               ; 68 2e 09
     push strict byte 00007h                   ; 6a 07
-    call 01966h                               ; e8 7d a2
+    call 01966h                               ; e8 f6 a2
     add sp, strict byte 00006h                ; 83 c4 06
     mov al, byte [bp+00dh]                    ; 8a 46 0d
     xor ah, ah                                ; 30 e4
-    call 07357h                               ; e8 63 fc
+    call 072deh                               ; e8 63 fc
     mov dx, ss                                ; 8c d2
     lea ax, [bp-008h]                         ; 8d 46 f8
-    call 0738bh                               ; e8 8f fc
+    call 07312h                               ; e8 8f fc
     cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
-    je short 0774eh                           ; 74 4c
+    je short 076d5h                           ; 74 4c
     mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
@@ -11008,43 +10964,43 @@
     push 0092eh                               ; 68 2e 09
     push strict byte 00007h                   ; 6a 07
-    call 01966h                               ; e8 56 a2
+    call 01966h                               ; e8 cf a2
     add sp, strict byte 00006h                ; 83 c4 06
-    jmp short 0774eh                          ; eb 39
+    jmp short 076d5h                          ; eb 39
     or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     mov byte [bp+013h], 003h                  ; c6 46 13 03
-    jmp short 0774eh                          ; eb 2f
+    jmp short 076d5h                          ; eb 2f
     or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     mov byte [bp+013h], 002h                  ; c6 46 13 02
-    jmp short 0774eh                          ; eb 25
+    jmp short 076d5h                          ; eb 25
     mov ax, 000f2h                            ; b8 f2 00
-    call 07357h                               ; e8 28 fc
+    call 072deh                               ; e8 28 fc
     test al, al                               ; 84 c0
-    jne short 07746h                          ; 75 13
+    jne short 076cdh                          ; 75 13
     mov dx, ss                                ; 8c d2
     lea ax, [bp-008h]                         ; 8d 46 f8
-    call 0738bh                               ; e8 50 fc
+    call 07312h                               ; e8 50 fc
     mov dx, ss                                ; 8c d2
     lea ax, [bp-006h]                         ; 8d 46 fa
-    call 0738bh                               ; e8 48 fc
-    jmp near 0761fh                           ; e9 d9 fe
+    call 07312h                               ; e8 48 fc
+    jmp near 075a6h                           ; e9 d9 fe
     or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     mov byte [bp+013h], 003h                  ; c6 46 13 03
-    jmp near 0786dh                           ; e9 1c 01
+    jmp near 077f4h                           ; e9 1c 01
     mov al, byte [bp+00dh]                    ; 8a 46 0d
     test al, al                               ; 84 c0
-    jbe short 0775fh                          ; 76 07
+    jbe short 076e6h                          ; 76 07
     cmp AL, strict byte 002h                  ; 3c 02
-    jbe short 077c6h                          ; 76 6a
-    jmp near 077fbh                           ; e9 9c 00
+    jbe short 0774dh                          ; 76 6a
+    jmp near 07782h                           ; e9 9c 00
     mov ax, 000e9h                            ; b8 e9 00
-    call 07357h                               ; e8 f2 fb
+    call 072deh                               ; e8 f2 fb
     test al, al                               ; 84 c0
-    jne short 077cfh                          ; 75 66
+    jne short 07756h                          ; 75 66
     mov dx, ss                                ; 8c d2
     lea ax, [bp-008h]                         ; 8d 46 f8
-    call 0738bh                               ; e8 1a fc
+    call 07312h                               ; e8 1a fc
     mov cl, al                                ; 88 c1
     cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
-    je short 0778ah                           ; 74 11
+    je short 07711h                           ; 74 11
     mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
@@ -11052,23 +11008,23 @@
     push 0092eh                               ; 68 2e 09
     push strict byte 00007h                   ; 6a 07
-    call 01966h                               ; e8 df a1
+    call 01966h                               ; e8 58 a2
     add sp, strict byte 00006h                ; 83 c4 06
     test cl, cl                               ; 84 c9
-    jne short 077f1h                          ; 75 63
+    jne short 07778h                          ; 75 63
     mov dx, ss                                ; 8c d2
     lea ax, [bp-008h]                         ; 8d 46 f8
-    call 0738bh                               ; e8 f5 fb
+    call 07312h                               ; e8 f5 fb
     test al, al                               ; 84 c0
-    jne short 077f1h                          ; 75 57
+    jne short 07778h                          ; 75 57
     mov dx, ss                                ; 8c d2
     lea ax, [bp-006h]                         ; 8d 46 fa
-    call 0738bh                               ; e8 e9 fb
+    call 07312h                               ; e8 e9 fb
     test al, al                               ; 84 c0
-    jne short 077f1h                          ; 75 4b
+    jne short 07778h                          ; 75 4b
     mov dx, ss                                ; 8c d2
     lea ax, [bp-004h]                         ; 8d 46 fc
-    call 0738bh                               ; e8 dd fb
+    call 07312h                               ; e8 dd fb
     test al, al                               ; 84 c0
-    jne short 077f1h                          ; 75 3f
+    jne short 07778h                          ; 75 3f
     mov al, byte [bp-008h]                    ; 8a 46 f8
     mov byte [bp+00ch], al                    ; 88 46 0c
@@ -11077,26 +11033,26 @@
     mov al, byte [bp-004h]                    ; 8a 46 fc
     mov byte [bp+00eh], al                    ; 88 46 0e
-    jmp short 0774eh                          ; eb 88
+    jmp short 076d5h                          ; eb 88
     cmp AL, strict byte 001h                  ; 3c 01
-    jne short 077d1h                          ; 75 07
+    jne short 07758h                          ; 75 07
     mov ax, 000e6h                            ; b8 e6 00
-    jmp short 077d4h                          ; eb 05
-    jmp short 077f1h                          ; eb 20
+    jmp short 0775bh                          ; eb 05
+    jmp short 07778h                          ; eb 20
     mov ax, 000e7h                            ; b8 e7 00
-    call 07357h                               ; e8 80 fb
+    call 072deh                               ; e8 80 fb
     mov cl, al                                ; 88 c1
     test cl, cl                               ; 84 c9
-    jne short 077edh                          ; 75 10
+    jne short 07774h                          ; 75 10
     mov dx, ss                                ; 8c d2
     lea ax, [bp-008h]                         ; 8d 46 f8
-    call 0738bh                               ; e8 a6 fb
+    call 07312h                               ; e8 a6 fb
     cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
-    je short 077edh                           ; 74 02
+    je short 07774h                           ; 74 02
     mov CL, strict byte 001h                  ; b1 01
     test cl, cl                               ; 84 c9
-    je short 07858h                           ; 74 67
+    je short 077dfh                           ; 74 67
     or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     mov byte [bp+013h], 003h                  ; c6 46 13 03
-    jmp short 07858h                          ; eb 5d
+    jmp short 077dfh                          ; eb 5d
     mov al, byte [bp+00dh]                    ; 8a 46 0d
     xor ah, ah                                ; 30 e4
@@ -11104,30 +11060,30 @@
     push 0095ah                               ; 68 5a 09
     push strict byte 00007h                   ; 6a 07
-    call 01966h                               ; e8 5d a1
+    call 01966h                               ; e8 d6 a1
     add sp, strict byte 00006h                ; 83 c4 06
     or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     mov byte [bp+013h], 001h                  ; c6 46 13 01
-    jmp short 0786dh                          ; eb 57
+    jmp short 077f4h                          ; eb 57
     mov si, word [bp+00ch]                    ; 8b 76 0c
     mov bx, si                                ; 89 f3
     mov dx, strict word 00022h                ; ba 22 00
     mov ax, cx                                ; 89 c8
-    call 0167ah                               ; e8 57 9e
+    call 0167ah                               ; e8 d0 9e
     mov bx, word [bp+014h]                    ; 8b 5e 14
     mov dx, strict word 00024h                ; ba 24 00
     mov ax, cx                                ; 89 c8
-    call 0167ah                               ; e8 4c 9e
+    call 0167ah                               ; e8 c5 9e
     mov dx, strict word 00027h                ; ba 27 00
     mov ax, cx                                ; 89 c8
-    call 01650h                               ; e8 1a 9e
+    call 01650h                               ; e8 93 9e
     mov ah, al                                ; 88 c4
     test si, si                               ; 85 f6
-    jne short 0784ah                          ; 75 0e
+    jne short 077d1h                          ; 75 0e
     cmp word [bp+014h], strict byte 00000h    ; 83 7e 14 00
-    jne short 0784ah                          ; 75 08
+    jne short 077d1h                          ; 75 08
     test AL, strict byte 080h                 ; a8 80
-    je short 0784ch                           ; 74 06
+    je short 077d3h                           ; 74 06
     and AL, strict byte 07fh                  ; 24 7f
-    jmp short 0784ch                          ; eb 02
+    jmp short 077d3h                          ; eb 02
     or AL, strict byte 080h                   ; 0c 80
     mov bl, al                                ; 88 c3
@@ -11135,19 +11091,19 @@
     mov dx, strict word 00027h                ; ba 27 00
     mov ax, cx                                ; 89 c8
-    call 0165eh                               ; e8 06 9e
-    jmp short 0786dh                          ; eb 13
+    call 0165eh                               ; e8 7f 9e
+    jmp short 077f4h                          ; eb 13
     push 00974h                               ; 68 74 09
     push strict byte 00007h                   ; 6a 07
-    call 01966h                               ; e8 04 a1
+    call 01966h                               ; e8 7d a1
     add sp, strict byte 00004h                ; 83 c4 04
     or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     mov byte [bp+013h], 001h                  ; c6 46 13 01
     mov ax, strict word 00047h                ; b8 47 00
-    call 073e8h                               ; e8 75 fb
+    call 0736fh                               ; e8 75 fb
     lea sp, [bp-002h]                         ; 8d 66 fe
     pop si                                    ; 5e
     pop bp                                    ; 5d
     retn                                      ; c3
-_int17_function:                             ; 0xf7879 LB 0xaf
+_int17_function:                             ; 0xf7800 LB 0xaf
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -11159,24 +11115,24 @@
     add dx, strict byte 00008h                ; 83 c2 08
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 df 9d
+    call 0166ch                               ; e8 58 9e
     mov bx, ax                                ; 89 c3
     mov si, ax                                ; 89 c6
     cmp byte [bp+013h], 003h                  ; 80 7e 13 03
-    jnc short 078a3h                          ; 73 0c
+    jnc short 0782ah                          ; 73 0c
     mov ax, word [bp+00eh]                    ; 8b 46 0e
     cmp ax, strict word 00003h                ; 3d 03 00
-    jnc short 078a3h                          ; 73 04
+    jnc short 0782ah                          ; 73 04
     test bx, bx                               ; 85 db
-    jnbe short 078a6h                         ; 77 03
-    jmp near 0791eh                           ; e9 78 00
+    jnbe short 0782dh                         ; 77 03
+    jmp near 078a5h                           ; e9 78 00
     mov dx, ax                                ; 89 c2
     add dx, strict byte 00078h                ; 83 c2 78
     mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 9f 9d
+    call 01650h                               ; e8 18 9e
     xor ah, ah                                ; 30 e4
     mov cx, ax                                ; 89 c1
     sal cx, 008h                              ; c1 e1 08
     cmp byte [bp+013h], 000h                  ; 80 7e 13 00
-    jne short 078eah                          ; 75 2c
+    jne short 07871h                          ; 75 2c
     mov al, byte [bp+012h]                    ; 8a 46 12
     mov dx, bx                                ; 89 da
@@ -11198,11 +11154,11 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 040h                 ; a8 40
-    je short 078eah                           ; 74 07
+    je short 07871h                           ; 74 07
     test cx, cx                               ; 85 c9
-    je short 078eah                           ; 74 03
+    je short 07871h                           ; 74 03
     dec cx                                    ; 49
-    jmp short 078d9h                          ; eb ef
+    jmp short 07860h                          ; eb ef
     cmp byte [bp+013h], 001h                  ; 80 7e 13 01
-    jne short 07905h                          ; 75 15
+    jne short 0788ch                          ; 75 15
     lea dx, [si+002h]                         ; 8d 54 02
     in AL, DX                                 ; ec
@@ -11223,8 +11179,8 @@
     mov byte [bp+013h], al                    ; 88 46 13
     test cx, cx                               ; 85 c9
-    jne short 07918h                          ; 75 04
+    jne short 0789fh                          ; 75 04
     or byte [bp+013h], 001h                   ; 80 4e 13 01
     and byte [bp+01ch], 0feh                  ; 80 66 1c fe
-    jmp short 07922h                          ; eb 04
+    jmp short 078a9h                          ; eb 04
     or byte [bp+01ch], 001h                   ; 80 4e 1c 01
     lea sp, [bp-002h]                         ; 8d 66 fe
@@ -11232,5 +11188,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-wait_:                                       ; 0xf7928 LB 0xaf
+wait_:                                       ; 0xf78af LB 0xaf
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -11250,5 +11206,5 @@
     mov dx, 0046ch                            ; ba 6c 04
     xor ax, ax                                ; 31 c0
-    call 01688h                               ; e8 3d 9d
+    call 01688h                               ; e8 b6 9d
     mov word [bp-010h], ax                    ; 89 46 f0
     mov bx, dx                                ; 89 d3
@@ -11256,20 +11212,20 @@
     mov dx, 0046ch                            ; ba 6c 04
     xor ax, ax                                ; 31 c0
-    call 01688h                               ; e8 2f 9d
+    call 01688h                               ; e8 a8 9d
     mov word [bp-012h], ax                    ; 89 46 ee
     mov di, dx                                ; 89 d7
     cmp dx, bx                                ; 39 da
-    jnbe short 07969h                         ; 77 07
-    jne short 07970h                          ; 75 0c
+    jnbe short 078f0h                         ; 77 07
+    jne short 078f7h                          ; 75 0c
     cmp ax, word [bp-010h]                    ; 3b 46 f0
-    jbe short 07970h                          ; 76 07
+    jbe short 078f7h                          ; 76 07
     sub ax, word [bp-010h]                    ; 2b 46 f0
     sbb dx, bx                                ; 19 da
-    jmp short 0797bh                          ; eb 0b
+    jmp short 07902h                          ; eb 0b
     cmp dx, bx                                ; 39 da
-    jc short 0797bh                           ; 72 07
-    jne short 0797fh                          ; 75 09
+    jc short 07902h                           ; 72 07
+    jne short 07906h                          ; 75 09
     cmp ax, word [bp-010h]                    ; 3b 46 f0
-    jnc short 0797fh                          ; 73 04
+    jnc short 07906h                          ; 73 04
     sub si, ax                                ; 29 c6
     sbb cx, dx                                ; 19 d1
@@ -11279,11 +11235,11 @@
     mov ax, 00100h                            ; b8 00 01
     int 016h                                  ; cd 16
-    je short 07993h                           ; 74 05
+    je short 0791ah                           ; 74 05
     mov AL, strict byte 001h                  ; b0 01
-    jmp near 07995h                           ; e9 02 00
+    jmp near 0791ch                           ; e9 02 00
     db  032h, 0c0h
     ; xor al, al                                ; 32 c0
     test al, al                               ; 84 c0
-    je short 079bch                           ; 74 23
+    je short 07943h                           ; 74 23
     db  033h, 0c0h
     ; xor ax, ax                                ; 33 c0
@@ -11296,15 +11252,15 @@
     push 00996h                               ; 68 96 09
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 b7 9f
+    call 01966h                               ; e8 30 a0
     add sp, strict byte 00006h                ; 83 c4 06
     cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
-    je short 079bch                           ; 74 04
+    je short 07943h                           ; 74 04
     mov al, dl                                ; 88 d0
-    jmp short 079ceh                          ; eb 12
+    jmp short 07955h                          ; eb 12
     test cx, cx                               ; 85 c9
-    jnle short 07950h                         ; 7f 90
-    jne short 079c6h                          ; 75 04
+    jnle short 078d7h                         ; 7f 90
+    jne short 0794dh                          ; 75 04
     test si, si                               ; 85 f6
-    jnbe short 07950h                         ; 77 8a
+    jnbe short 078d7h                         ; 77 8a
     mov ax, word [bp-00eh]                    ; 8b 46 f2
     push ax                                   ; 50
@@ -11318,5 +11274,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-read_logo_byte_:                             ; 0xf79d7 LB 0x16
+read_logo_byte_:                             ; 0xf795e LB 0x16
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -11333,5 +11289,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-read_logo_word_:                             ; 0xf79ed LB 0x14
+read_logo_word_:                             ; 0xf7974 LB 0x14
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -11346,5 +11302,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-print_detected_harddisks_:                   ; 0xf7a01 LB 0x13a
+print_detected_harddisks_:                   ; 0xf7988 LB 0x13a
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -11358,5 +11314,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 58 9c
+    call 0166ch                               ; e8 d1 9c
     mov si, ax                                ; 89 c6
     mov byte [bp-00eh], 000h                  ; c6 46 f2 00
@@ -11364,9 +11320,9 @@
     xor ch, ch                                ; 30 ed
     mov dx, 00304h                            ; ba 04 03
-    call 01650h                               ; e8 2c 9c
+    call 01650h                               ; e8 a5 9c
     mov byte [bp-00ch], al                    ; 88 46 f4
     xor bl, bl                                ; 30 db
     cmp bl, byte [bp-00ch]                    ; 3a 5e f4
-    jnc short 07a8bh                          ; 73 5d
+    jnc short 07a12h                          ; 73 5d
     mov al, bl                                ; 88 d8
     xor ah, ah                                ; 30 e4
@@ -11374,13 +11330,13 @@
     add dx, 00305h                            ; 81 c2 05 03
     mov ax, si                                ; 89 f0
-    call 01650h                               ; e8 13 9c
+    call 01650h                               ; e8 8c 9c
     mov bh, al                                ; 88 c7
     cmp AL, strict byte 00ch                  ; 3c 0c
-    jc short 07a68h                           ; 72 25
+    jc short 079efh                           ; 72 25
     test cl, cl                               ; 84 c9
-    jne short 07a54h                          ; 75 0d
+    jne short 079dbh                          ; 75 0d
     push 009a7h                               ; 68 a7 09
     push strict byte 00002h                   ; 6a 02
-    call 01966h                               ; e8 17 9f
+    call 01966h                               ; e8 90 9f
     add sp, strict byte 00004h                ; 83 c4 04
     mov CL, strict byte 001h                  ; b1 01
@@ -11391,36 +11347,36 @@
     push 009bch                               ; 68 bc 09
     push strict byte 00002h                   ; 6a 02
-    call 01966h                               ; e8 04 9f
+    call 01966h                               ; e8 7d 9f
     add sp, strict byte 00006h                ; 83 c4 06
-    jmp near 07b08h                           ; e9 a0 00
+    jmp near 07a8fh                           ; e9 a0 00
     cmp AL, strict byte 008h                  ; 3c 08
-    jc short 07a7fh                           ; 72 13
+    jc short 07a06h                           ; 72 13
     test ch, ch                               ; 84 ed
-    jne short 07a7dh                          ; 75 0d
+    jne short 07a04h                          ; 75 0d
     push 009cfh                               ; 68 cf 09
     push strict byte 00002h                   ; 6a 02
-    call 01966h                               ; e8 ee 9e
+    call 01966h                               ; e8 67 9f
     add sp, strict byte 00004h                ; 83 c4 04
     mov CH, strict byte 001h                  ; b5 01
-    jmp short 07a54h                          ; eb d5
+    jmp short 079dbh                          ; eb d5
     cmp AL, strict byte 004h                  ; 3c 04
-    jnc short 07a9fh                          ; 73 1c
+    jnc short 07a26h                          ; 73 1c
     cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
-    je short 07a8eh                           ; 74 05
-    jmp short 07a9fh                          ; eb 14
-    jmp near 07b0dh                           ; e9 7f 00
+    je short 07a15h                           ; 74 05
+    jmp short 07a26h                          ; eb 14
+    jmp near 07a94h                           ; e9 7f 00
     push 009e4h                               ; 68 e4 09
     push strict byte 00002h                   ; 6a 02
-    call 01966h                               ; e8 d0 9e
+    call 01966h                               ; e8 49 9f
     add sp, strict byte 00004h                ; 83 c4 04
     mov byte [bp-00eh], 001h                  ; c6 46 f2 01
-    jmp short 07ab5h                          ; eb 16
+    jmp short 07a3ch                          ; eb 16
     cmp bh, 004h                              ; 80 ff 04
-    jc short 07ab5h                           ; 72 11
+    jc short 07a3ch                           ; 72 11
     test cl, cl                               ; 84 c9
-    jne short 07ab5h                          ; 75 0d
+    jne short 07a3ch                          ; 75 0d
     push 009f6h                               ; 68 f6 09
     push strict byte 00002h                   ; 6a 02
-    call 01966h                               ; e8 b6 9e
+    call 01966h                               ; e8 2f 9f
     add sp, strict byte 00004h                ; 83 c4 04
     mov CL, strict byte 001h                  ; b1 01
@@ -11431,8 +11387,8 @@
     push 00a0ah                               ; 68 0a 0a
     push strict byte 00002h                   ; 6a 02
-    call 01966h                               ; e8 a3 9e
+    call 01966h                               ; e8 1c 9f
     add sp, strict byte 00006h                ; 83 c4 06
     cmp bh, 004h                              ; 80 ff 04
-    jc short 07aceh                           ; 72 03
+    jc short 07a55h                           ; 72 03
     sub bh, 004h                              ; 80 ef 04
     mov al, bh                                ; 88 f8
@@ -11443,10 +11399,10 @@
     sar ax, 1                                 ; d1 f8
     test ax, ax                               ; 85 c0
-    je short 07ae0h                           ; 74 05
+    je short 07a67h                           ; 74 05
     push 00a14h                               ; 68 14 0a
-    jmp short 07ae3h                          ; eb 03
+    jmp short 07a6ah                          ; eb 03
     push 00a1fh                               ; 68 1f 0a
     push strict byte 00002h                   ; 6a 02
-    call 01966h                               ; e8 7e 9e
+    call 01966h                               ; e8 f7 9e
     add sp, strict byte 00004h                ; 83 c4 04
     mov al, bh                                ; 88 f8
@@ -11456,27 +11412,27 @@
     idiv di                                   ; f7 ff
     test dx, dx                               ; 85 d2
-    je short 07afeh                           ; 74 05
+    je short 07a85h                           ; 74 05
     push 00a28h                               ; 68 28 0a
-    jmp short 07b01h                          ; eb 03
+    jmp short 07a88h                          ; eb 03
     push 00a2eh                               ; 68 2e 0a
     push di                                   ; 57
-    call 01966h                               ; e8 61 9e
+    call 01966h                               ; e8 da 9e
     add sp, strict byte 00004h                ; 83 c4 04
     db  0feh, 0c3h
     ; inc bl                                    ; fe c3
-    jmp near 07a29h                           ; e9 1c ff
+    jmp near 079b0h                           ; e9 1c ff
     cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
-    jne short 07b26h                          ; 75 13
+    jne short 07aadh                          ; 75 13
     test cl, cl                               ; 84 c9
-    jne short 07b26h                          ; 75 0f
+    jne short 07aadh                          ; 75 0f
     test ch, ch                               ; 84 ed
-    jne short 07b26h                          ; 75 0b
+    jne short 07aadh                          ; 75 0b
     push 00a35h                               ; 68 35 0a
     push strict byte 00002h                   ; 6a 02
-    call 01966h                               ; e8 43 9e
+    call 01966h                               ; e8 bc 9e
     add sp, strict byte 00004h                ; 83 c4 04
     push 00a49h                               ; 68 49 0a
     push strict byte 00002h                   ; 6a 02
-    call 01966h                               ; e8 38 9e
+    call 01966h                               ; e8 b1 9e
     add sp, strict byte 00004h                ; 83 c4 04
     lea sp, [bp-00ah]                         ; 8d 66 f6
@@ -11488,5 +11444,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-get_boot_drive_:                             ; 0xf7b3b LB 0x28
+get_boot_drive_:                             ; 0xf7ac2 LB 0x28
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -11496,10 +11452,10 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 21 9b
+    call 0166ch                               ; e8 9a 9b
     mov dx, 00304h                            ; ba 04 03
-    call 01650h                               ; e8 ff 9a
+    call 01650h                               ; e8 78 9b
     sub bl, 002h                              ; 80 eb 02
     cmp bl, al                                ; 38 c3
-    jc short 07b5ah                           ; 72 02
+    jc short 07ae1h                           ; 72 02
     mov BL, strict byte 0ffh                  ; b3 ff
     mov al, bl                                ; 88 d8
@@ -11509,5 +11465,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-show_logo_:                                  ; 0xf7b63 LB 0x228
+show_logo_:                                  ; 0xf7aea LB 0x226
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -11520,5 +11476,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 f5 9a
+    call 0166ch                               ; e8 6e 9b
     mov si, ax                                ; 89 c6
     xor cl, cl                                ; 30 c9
@@ -11532,7 +11488,7 @@
     mov al, dl                                ; 88 d0
     xor ah, ah                                ; 30 e4
-    call 079edh                               ; e8 5d fe
+    call 07974h                               ; e8 5d fe
     cmp ax, 066bbh                            ; 3d bb 66
-    jne short 07ba7h                          ; 75 12
+    jne short 07b2eh                          ; 75 12
     push SS                                   ; 16
     pop ES                                    ; 07
@@ -11542,10 +11498,10 @@
     mov word [es:di], bx                      ; 26 89 1d
     cmp ax, strict word 0004fh                ; 3d 4f 00
-    je short 07baah                           ; 74 03
-    jmp near 07c67h                           ; e9 bd 00
+    je short 07b31h                           ; 74 03
+    jmp near 07beeh                           ; e9 bd 00
     mov al, dl                                ; 88 d0
     add AL, strict byte 004h                  ; 04 04
     xor ah, ah                                ; 30 e4
-    call 079d7h                               ; e8 24 fe
+    call 0795eh                               ; e8 24 fe
     mov ch, al                                ; 88 c5
     mov byte [bp-012h], al                    ; 88 46 ee
@@ -11553,5 +11509,5 @@
     add AL, strict byte 005h                  ; 04 05
     xor ah, ah                                ; 30 e4
-    call 079d7h                               ; e8 16 fe
+    call 0795eh                               ; e8 16 fe
     mov dh, al                                ; 88 c6
     mov byte [bp-010h], al                    ; 88 46 f0
@@ -11559,5 +11515,5 @@
     add AL, strict byte 002h                  ; 04 02
     xor ah, ah                                ; 30 e4
-    call 079edh                               ; e8 1e fe
+    call 07974h                               ; e8 1e fe
     mov bx, ax                                ; 89 c3
     mov word [bp-014h], ax                    ; 89 46 ec
@@ -11565,22 +11521,22 @@
     add AL, strict byte 006h                  ; 04 06
     xor ah, ah                                ; 30 e4
-    call 079d7h                               ; e8 fa fd
+    call 0795eh                               ; e8 fa fd
     mov byte [bp-00eh], al                    ; 88 46 f2
     test ch, ch                               ; 84 ed
-    jne short 07bech                          ; 75 08
+    jne short 07b73h                          ; 75 08
     test dh, dh                               ; 84 f6
-    jne short 07bech                          ; 75 04
+    jne short 07b73h                          ; 75 04
     test bx, bx                               ; 85 db
-    je short 07c44h                           ; 74 58
+    je short 07bcbh                           ; 74 58
     mov bx, 00142h                            ; bb 42 01
     mov ax, 04f02h                            ; b8 02 4f
     int 010h                                  ; cd 10
     cmp byte [bp-012h], 000h                  ; 80 7e ee 00
-    je short 07c1dh                           ; 74 23
+    je short 07ba4h                           ; 74 23
     xor bx, bx                                ; 31 db
-    jmp short 07c04h                          ; eb 06
+    jmp short 07b8bh                          ; eb 06
     inc bx                                    ; 43
     cmp bx, strict byte 00010h                ; 83 fb 10
-    jnbe short 07c24h                         ; 77 20
+    jnbe short 07babh                         ; 77 20
     mov ax, bx                                ; 89 d8
     or ah, 002h                               ; 80 cc 02
@@ -11589,31 +11545,31 @@
     xor dx, dx                                ; 31 d2
     mov ax, strict word 00001h                ; b8 01 00
-    call 07928h                               ; e8 13 fd
+    call 078afh                               ; e8 13 fd
     cmp AL, strict byte 086h                  ; 3c 86
-    jne short 07bfeh                          ; 75 e5
+    jne short 07b85h                          ; 75 e5
     mov CL, strict byte 001h                  ; b1 01
-    jmp short 07c24h                          ; eb 07
+    jmp short 07babh                          ; eb 07
     mov ax, 00210h                            ; b8 10 02
     mov dx, 003b8h                            ; ba b8 03
     out DX, ax                                ; ef
     test cl, cl                               ; 84 c9
-    jne short 07c3ah                          ; 75 12
+    jne short 07bc1h                          ; 75 12
     mov ax, word [bp-014h]                    ; 8b 46 ec
     shr ax, 004h                              ; c1 e8 04
     mov dx, strict word 00001h                ; ba 01 00
-    call 07928h                               ; e8 f4 fc
+    call 078afh                               ; e8 f4 fc
     cmp AL, strict byte 086h                  ; 3c 86
-    jne short 07c3ah                          ; 75 02
+    jne short 07bc1h                          ; 75 02
     mov CL, strict byte 001h                  ; b1 01
     cmp byte [bp-010h], 000h                  ; 80 7e f0 00
-    je short 07c67h                           ; 74 27
+    je short 07beeh                           ; 74 27
     test cl, cl                               ; 84 c9
-    je short 07c46h                           ; 74 02
-    jmp short 07c67h                          ; eb 21
+    je short 07bcdh                           ; 74 02
+    jmp short 07beeh                          ; eb 21
     mov bx, strict word 00010h                ; bb 10 00
-    jmp short 07c50h                          ; eb 05
+    jmp short 07bd7h                          ; eb 05
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 07c67h                          ; 76 17
+    jbe short 07beeh                          ; 76 17
     mov ax, bx                                ; 89 d8
     or ah, 002h                               ; 80 cc 02
@@ -11622,41 +11578,41 @@
     xor dx, dx                                ; 31 d2
     mov ax, strict word 00001h                ; b8 01 00
-    call 07928h                               ; e8 c7 fc
+    call 078afh                               ; e8 c7 fc
     cmp AL, strict byte 086h                  ; 3c 86
-    jne short 07c4bh                          ; 75 e6
+    jne short 07bd2h                          ; 75 e6
     mov CL, strict byte 001h                  ; b1 01
     xor bx, bx                                ; 31 db
     mov dx, 0037dh                            ; ba 7d 03
     mov ax, si                                ; 89 f0
-    call 0165eh                               ; e8 ed 99
+    call 0165eh                               ; e8 66 9a
     mov AL, strict byte 003h                  ; b0 03
     mov AH, strict byte 000h                  ; b4 00
     int 010h                                  ; cd 10
     cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
-    je short 07c91h                           ; 74 14
+    je short 07c18h                           ; 74 14
     cmp byte [bp-012h], 000h                  ; 80 7e ee 00
-    jne short 07cb8h                          ; 75 35
+    jne short 07c3fh                          ; 75 35
     cmp byte [bp-010h], 000h                  ; 80 7e f0 00
-    jne short 07cb8h                          ; 75 2f
+    jne short 07c3fh                          ; 75 2f
     cmp word [bp-014h], strict byte 00000h    ; 83 7e ec 00
-    je short 07c94h                           ; 74 05
-    jmp short 07cb8h                          ; eb 27
-    jmp near 07d6ch                           ; e9 d8 00
+    je short 07c1bh                           ; 74 05
+    jmp short 07c3fh                          ; eb 27
+    jmp near 07cf3h                           ; e9 d8 00
     cmp byte [bp-00eh], 002h                  ; 80 7e f2 02
-    jne short 07ca5h                          ; 75 0b
+    jne short 07c2ch                          ; 75 0b
     push 00a4bh                               ; 68 4b 0a
     push strict byte 00002h                   ; 6a 02
-    call 01966h                               ; e8 c4 9c
+    call 01966h                               ; e8 3d 9d
     add sp, strict byte 00004h                ; 83 c4 04
     test cl, cl                               ; 84 c9
-    jne short 07cb8h                          ; 75 0f
+    jne short 07c3fh                          ; 75 0f
     mov dx, strict word 00001h                ; ba 01 00
     mov ax, 000c0h                            ; b8 c0 00
-    call 07928h                               ; e8 76 fc
+    call 078afh                               ; e8 76 fc
     cmp AL, strict byte 086h                  ; 3c 86
-    jne short 07cb8h                          ; 75 02
+    jne short 07c3fh                          ; 75 02
     mov CL, strict byte 001h                  ; b1 01
     test cl, cl                               ; 84 c9
-    je short 07c91h                           ; 74 d5
+    je short 07c18h                           ; 74 d5
     mov byte [bp-00ch], 000h                  ; c6 46 f4 00
     mov ax, 00100h                            ; b8 00 01
@@ -11677,55 +11633,55 @@
     push 00a6dh                               ; 68 6d 0a
     push strict byte 00002h                   ; 6a 02
-    call 01966h                               ; e8 81 9c
+    call 01966h                               ; e8 fa 9c
     add sp, strict byte 00004h                ; 83 c4 04
-    call 07a01h                               ; e8 16 fd
+    call 07988h                               ; e8 16 fd
     push 00ab1h                               ; 68 b1 0a
     push strict byte 00002h                   ; 6a 02
-    call 01966h                               ; e8 73 9c
+    call 01966h                               ; e8 ec 9c
     add sp, strict byte 00004h                ; 83 c4 04
     mov dx, strict word 00001h                ; ba 01 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 07928h                               ; e8 29 fc
+    call 078afh                               ; e8 29 fc
     mov bl, al                                ; 88 c3
     test al, al                               ; 84 c0
-    je short 07cf6h                           ; 74 f1
+    je short 07c7dh                           ; 74 f1
     cmp AL, strict byte 030h                  ; 3c 30
-    je short 07d59h                           ; 74 50
+    je short 07ce0h                           ; 74 50
     cmp bl, 002h                              ; 80 fb 02
-    jc short 07d32h                           ; 72 24
+    jc short 07cb9h                           ; 72 24
     cmp bl, 009h                              ; 80 fb 09
-    jnbe short 07d32h                         ; 77 1f
+    jnbe short 07cb9h                         ; 77 1f
     mov al, bl                                ; 88 d8
     xor ah, ah                                ; 30 e4
-    call 07b3bh                               ; e8 21 fe
+    call 07ac2h                               ; e8 21 fe
     cmp AL, strict byte 0ffh                  ; 3c ff
-    jne short 07d20h                          ; 75 02
-    jmp short 07cf6h                          ; eb d6
+    jne short 07ca7h                          ; 75 02
+    jmp short 07c7dh                          ; eb d6
     mov bl, al                                ; 88 c3
     xor bh, bh                                ; 30 ff
     mov dx, 0037ch                            ; ba 7c 03
     mov ax, si                                ; 89 f0
-    call 0165eh                               ; e8 32 99
+    call 0165eh                               ; e8 ab 99
     mov byte [bp-00ch], 002h                  ; c6 46 f4 02
-    jmp short 07d59h                          ; eb 27
+    jmp short 07ce0h                          ; eb 27
     cmp bl, 02eh                              ; 80 fb 2e
-    je short 07d47h                           ; 74 10
+    je short 07cceh                           ; 74 10
     cmp bl, 026h                              ; 80 fb 26
-    je short 07d4dh                           ; 74 11
+    je short 07cd4h                           ; 74 11
     cmp bl, 021h                              ; 80 fb 21
-    jne short 07d53h                          ; 75 12
+    jne short 07cdah                          ; 75 12
     mov byte [bp-00ch], 001h                  ; c6 46 f4 01
-    jmp short 07d59h                          ; eb 12
+    jmp short 07ce0h                          ; eb 12
     mov byte [bp-00ch], 003h                  ; c6 46 f4 03
-    jmp short 07d59h                          ; eb 0c
+    jmp short 07ce0h                          ; eb 0c
     mov byte [bp-00ch], 004h                  ; c6 46 f4 04
-    jmp short 07d59h                          ; eb 06
+    jmp short 07ce0h                          ; eb 06
     cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
-    je short 07cf6h                           ; 74 9d
+    je short 07c7dh                           ; 74 9d
     mov bl, byte [bp-00ch]                    ; 8a 5e f4
     xor bh, bh                                ; 30 ff
     mov dx, 0037dh                            ; ba 7d 03
     mov ax, si                                ; 89 f0
-    call 0165eh                               ; e8 f8 98
+    call 0165eh                               ; e8 71 99
     mov AL, strict byte 003h                  ; b0 03
     mov AH, strict byte 000h                  ; b4 00
@@ -11737,10 +11693,10 @@
     out strict byte 040h, AL                  ; e6 40
     out strict byte 040h, AL                  ; e6 40
-    pushad                                    ; 66 60
+    push bp                                   ; 55
     push DS                                   ; 1e
     mov ds, ax                                ; 8e d8
-    call 0edbfh                               ; e8 41 70
+    call 0edbfh                               ; e8 bb 70
     pop DS                                    ; 1f
-    popad                                     ; 66 61
+    pop bp                                    ; 5d
     lea sp, [bp-00ah]                         ; 8d 66 f6
     pop di                                    ; 5f
@@ -11751,12 +11707,15 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-delay_boot_:                                 ; 0xf7d8b LB 0x67
+delay_boot_:                                 ; 0xf7d10 LB 0x6b
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     push bx                                   ; 53
+    push cx                                   ; 51
     push dx                                   ; 52
+    push si                                   ; 56
+    push di                                   ; 57
     mov dx, ax                                ; 89 c2
     test ax, ax                               ; 85 c0
-    je short 07debh                           ; 74 55
+    je short 07d71h                           ; 74 53
     mov AL, strict byte 034h                  ; b0 34
     out strict byte 043h, AL                  ; e6 43
@@ -11768,22 +11727,22 @@
     push 00afbh                               ; 68 fb 0a
     push strict byte 00002h                   ; 6a 02
-    call 01966h                               ; e8 bb 9b
+    call 01966h                               ; e8 33 9c
     add sp, strict byte 00006h                ; 83 c4 06
     mov bx, dx                                ; 89 d3
     test bx, bx                               ; 85 db
-    jbe short 07dcbh                          ; 76 17
+    jbe short 07d53h                          ; 76 17
     push bx                                   ; 53
     push 00b19h                               ; 68 19 0b
     push strict byte 00002h                   ; 6a 02
-    call 01966h                               ; e8 a9 9b
+    call 01966h                               ; e8 21 9c
     add sp, strict byte 00006h                ; 83 c4 06
     xor dx, dx                                ; 31 d2
     mov ax, strict word 00040h                ; b8 40 00
-    call 07928h                               ; e8 60 fb
+    call 078afh                               ; e8 5f fb
     dec bx                                    ; 4b
-    jmp short 07db0h                          ; eb e5
+    jmp short 07d38h                          ; eb e5
     push 00a49h                               ; 68 49 0a
     push strict byte 00002h                   ; 6a 02
-    call 01966h                               ; e8 93 9b
+    call 01966h                               ; e8 0b 9c
     add sp, strict byte 00004h                ; 83 c4 04
     mov AL, strict byte 034h                  ; b0 34
@@ -11793,16 +11752,19 @@
     out strict byte 040h, AL                  ; e6 40
     out strict byte 040h, AL                  ; e6 40
-    pushad                                    ; 66 60
+    push bp                                   ; 55
     push DS                                   ; 1e
     mov ds, ax                                ; 8e d8
-    call 0edbfh                               ; e8 d7 6f
+    call 0edbfh                               ; e8 50 70
     pop DS                                    ; 1f
-    popad                                     ; 66 61
-    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop bp                                    ; 5d
+    lea sp, [bp-00ah]                         ; 8d 66 f6
+    pop di                                    ; 5f
+    pop si                                    ; 5e
     pop dx                                    ; 5a
+    pop cx                                    ; 59
     pop bx                                    ; 5b
     pop bp                                    ; 5d
     retn                                      ; c3
-scsi_cmd_data_in_:                           ; 0xf7df2 LB 0xd5
+scsi_cmd_data_in_:                           ; 0xf7d7b LB 0xd5
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -11820,10 +11782,10 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 07e08h                          ; 75 f7
+    jne short 07d91h                          ; 75 f7
     mov al, byte [bp+004h]                    ; 8a 46 04
     cmp AL, strict byte 010h                  ; 3c 10
-    jne short 07e1ch                          ; 75 04
+    jne short 07da5h                          ; 75 04
     xor ax, ax                                ; 31 c0
-    jmp short 07e1eh                          ; eb 02
+    jmp short 07da7h                          ; eb 02
     xor ah, ah                                ; 30 e4
     mov di, ax                                ; 89 c7
@@ -11833,5 +11795,5 @@
     shr dx, 1                                 ; d1 ea
     rcr ax, 1                                 ; d1 d8
-    loop 07e28h                               ; e2 fa
+    loop 07db1h                               ; e2 fa
     mov cx, ax                                ; 89 c1
     and cx, 000f0h                            ; 81 e1 f0 00
@@ -11851,5 +11813,5 @@
     shr dx, 1                                 ; d1 ea
     rcr ax, 1                                 ; d1 d8
-    loop 07e4dh                               ; e2 fa
+    loop 07dd6h                               ; e2 fa
     mov dx, si                                ; 89 f2
     out DX, AL                                ; ee
@@ -11858,5 +11820,5 @@
     xor ah, ah                                ; 30 e4
     cmp cx, ax                                ; 39 c1
-    jnc short 07e6fh                          ; 73 0e
+    jnc short 07df8h                          ; 73 0e
     les di, [bp-00ah]                         ; c4 7e f6
     add di, cx                                ; 01 cf
@@ -11865,5 +11827,5 @@
     out DX, AL                                ; ee
     inc cx                                    ; 41
-    jmp short 07e58h                          ; eb e9
+    jmp short 07de1h                          ; eb e9
     mov dx, si                                ; 89 f2
     in AL, DX                                 ; ec
@@ -11871,7 +11833,7 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 07e6fh                          ; 75 f7
+    jne short 07df8h                          ; 75 f7
     test AL, strict byte 002h                 ; a8 02
-    je short 07e8ah                           ; 74 0e
+    je short 07e13h                           ; 74 0e
     lea dx, [si+003h]                         ; 8d 54 03
     xor al, al                                ; 30 c0
@@ -11881,10 +11843,10 @@
     ; sub ah, ah                                ; 2a e4
     mov di, strict word 00004h                ; bf 04 00
-    jmp short 07ebch                          ; eb 32
+    jmp short 07e45h                          ; eb 32
     lea dx, [si+001h]                         ; 8d 54 01
     cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
-    jne short 07e99h                          ; 75 06
+    jne short 07e22h                          ; 75 06
     cmp bx, 08000h                            ; 81 fb 00 80
-    jbe short 07eb3h                          ; 76 1a
+    jbe short 07e3ch                          ; 76 1a
     mov cx, 08000h                            ; b9 00 80
     les di, [bp+006h]                         ; c4 7e 06
@@ -11895,5 +11857,5 @@
     add ax, 00800h                            ; 05 00 08
     mov word [bp+008h], ax                    ; 89 46 08
-    jmp short 07e8ah                          ; eb d7
+    jmp short 07e13h                          ; eb d7
     mov cx, bx                                ; 89 d9
     les di, [bp+006h]                         ; c4 7e 06
@@ -11906,5 +11868,5 @@
     pop bp                                    ; 5d
     retn 0000ah                               ; c2 0a 00
-scsi_cmd_data_out_:                          ; 0xf7ec7 LB 0xd5
+scsi_cmd_data_out_:                          ; 0xf7e50 LB 0xd5
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -11922,10 +11884,10 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 07eddh                          ; 75 f7
+    jne short 07e66h                          ; 75 f7
     mov al, byte [bp+004h]                    ; 8a 46 04
     cmp AL, strict byte 010h                  ; 3c 10
-    jne short 07ef1h                          ; 75 04
+    jne short 07e7ah                          ; 75 04
     xor ax, ax                                ; 31 c0
-    jmp short 07ef3h                          ; eb 02
+    jmp short 07e7ch                          ; eb 02
     xor ah, ah                                ; 30 e4
     mov si, ax                                ; 89 c6
@@ -11935,5 +11897,5 @@
     shr dx, 1                                 ; d1 ea
     rcr ax, 1                                 ; d1 d8
-    loop 07efdh                               ; e2 fa
+    loop 07e86h                               ; e2 fa
     mov cx, ax                                ; 89 c1
     and cx, 000f0h                            ; 81 e1 f0 00
@@ -11953,5 +11915,5 @@
     shr dx, 1                                 ; d1 ea
     rcr ax, 1                                 ; d1 d8
-    loop 07f22h                               ; e2 fa
+    loop 07eabh                               ; e2 fa
     mov dx, di                                ; 89 fa
     out DX, AL                                ; ee
@@ -11960,5 +11922,5 @@
     xor ah, ah                                ; 30 e4
     cmp cx, ax                                ; 39 c1
-    jnc short 07f44h                          ; 73 0e
+    jnc short 07ecdh                          ; 73 0e
     les si, [bp-00ah]                         ; c4 76 f6
     add si, cx                                ; 01 ce
@@ -11967,10 +11929,10 @@
     out DX, AL                                ; ee
     inc cx                                    ; 41
-    jmp short 07f2dh                          ; eb e9
+    jmp short 07eb6h                          ; eb e9
     lea dx, [di+001h]                         ; 8d 55 01
     cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
-    jne short 07f53h                          ; 75 06
+    jne short 07edch                          ; 75 06
     cmp bx, 08000h                            ; 81 fb 00 80
-    jbe short 07f6eh                          ; 76 1b
+    jbe short 07ef7h                          ; 76 1b
     mov cx, 08000h                            ; b9 00 80
     les si, [bp+006h]                         ; c4 76 06
@@ -11982,5 +11944,5 @@
     add ax, 00800h                            ; 05 00 08
     mov word [bp+008h], ax                    ; 89 46 08
-    jmp short 07f44h                          ; eb d6
+    jmp short 07ecdh                          ; eb d6
     mov cx, bx                                ; 89 d9
     les si, [bp+006h]                         ; c4 76 06
@@ -11992,7 +11954,7 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 07f76h                          ; 75 f7
+    jne short 07effh                          ; 75 f7
     test AL, strict byte 002h                 ; a8 02
-    je short 07f91h                           ; 74 0e
+    je short 07f1ah                           ; 74 0e
     lea dx, [di+003h]                         ; 8d 55 03
     xor al, al                                ; 30 c0
@@ -12002,5 +11964,5 @@
     ; sub ah, ah                                ; 2a e4
     mov ax, strict word 00004h                ; b8 04 00
-    jmp short 07f93h                          ; eb 02
+    jmp short 07f1ch                          ; eb 02
     xor ax, ax                                ; 31 c0
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -12009,5 +11971,5 @@
     pop bp                                    ; 5d
     retn 0000ah                               ; c2 0a 00
-@scsi_read_sectors:                          ; 0xf7f9c LB 0xe0
+@scsi_read_sectors:                          ; 0xf7f25 LB 0xe0
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -12021,5 +11983,5 @@
     mov byte [bp-006h], al                    ; 88 46 fa
     cmp AL, strict byte 004h                  ; 3c 04
-    jbe short 07fc8h                          ; 76 11
+    jbe short 07f51h                          ; 76 11
     xor ah, ah                                ; 30 e4
     push ax                                   ; 50
@@ -12027,5 +11989,5 @@
     push 00b30h                               ; 68 30 0b
     push strict byte 00007h                   ; 6a 07
-    call 01966h                               ; e8 a1 99
+    call 01966h                               ; e8 18 9a
     add sp, strict byte 00008h                ; 83 c4 08
     mov es, [bp+006h]                         ; 8e 46 06
@@ -12067,5 +12029,5 @@
     sal word [bp-00ah], 1                     ; d1 66 f6
     rcl word [bp-008h], 1                     ; d1 56 f8
-    loop 08032h                               ; e2 f8
+    loop 07fbbh                               ; e2 f8
     push word [bp-008h]                       ; ff 76 f8
     push word [bp-00ah]                       ; ff 76 f6
@@ -12076,8 +12038,8 @@
     mov cx, ss                                ; 8c d1
     lea bx, [bp-01ah]                         ; 8d 5e e6
-    call 07df2h                               ; e8 9e fd
+    call 07d7bh                               ; e8 9e fd
     mov ah, al                                ; 88 c4
     test al, al                               ; 84 c0
-    jne short 0806fh                          ; 75 15
+    jne short 07ff8h                          ; 75 15
     mov es, [bp+006h]                         ; 8e 46 06
     mov word [es:si+018h], di                 ; 26 89 7c 18
@@ -12093,5 +12055,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-@scsi_write_sectors:                         ; 0xf807c LB 0xe0
+@scsi_write_sectors:                         ; 0xf8005 LB 0xe0
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -12105,5 +12067,5 @@
     mov byte [bp-006h], al                    ; 88 46 fa
     cmp AL, strict byte 004h                  ; 3c 04
-    jbe short 080a8h                          ; 76 11
+    jbe short 08031h                          ; 76 11
     xor ah, ah                                ; 30 e4
     push ax                                   ; 50
@@ -12111,5 +12073,5 @@
     push 00b30h                               ; 68 30 0b
     push strict byte 00007h                   ; 6a 07
-    call 01966h                               ; e8 c1 98
+    call 01966h                               ; e8 38 99
     add sp, strict byte 00008h                ; 83 c4 08
     mov es, [bp+006h]                         ; 8e 46 06
@@ -12151,5 +12113,5 @@
     sal word [bp-00ah], 1                     ; d1 66 f6
     rcl word [bp-008h], 1                     ; d1 56 f8
-    loop 08112h                               ; e2 f8
+    loop 0809bh                               ; e2 f8
     push word [bp-008h]                       ; ff 76 f8
     push word [bp-00ah]                       ; ff 76 f6
@@ -12160,8 +12122,8 @@
     mov cx, ss                                ; 8c d1
     lea bx, [bp-01ah]                         ; 8d 5e e6
-    call 07ec7h                               ; e8 93 fd
+    call 07e50h                               ; e8 93 fd
     mov ah, al                                ; 88 c4
     test al, al                               ; 84 c0
-    jne short 0814fh                          ; 75 15
+    jne short 080d8h                          ; 75 15
     mov es, [bp+006h]                         ; 8e 46 06
     mov word [es:si+018h], di                 ; 26 89 7c 18
@@ -12177,5 +12139,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-scsi_cmd_packet_:                            ; 0xf815c LB 0x168
+scsi_cmd_packet_:                            ; 0xf80e5 LB 0x168
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -12189,20 +12151,20 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 f4 94
+    call 0166ch                               ; e8 6b 95
     mov si, 00122h                            ; be 22 01
     mov word [bp-00ah], ax                    ; 89 46 f6
     cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
-    jne short 081a3h                          ; 75 1f
+    jne short 0812ch                          ; 75 1f
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 94 97
+    call 01923h                               ; e8 0b 98
     push 00b62h                               ; 68 62 0b
     push 00b72h                               ; 68 72 0b
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 cc 97
+    call 01966h                               ; e8 43 98
     add sp, strict byte 00006h                ; 83 c4 06
     mov dx, strict word 00001h                ; ba 01 00
-    jmp near 082b9h                           ; e9 16 01
+    jmp near 08242h                           ; e9 16 01
     sub di, strict byte 00008h                ; 83 ef 08
     sal di, 002h                              ; c1 e7 02
@@ -12218,5 +12180,5 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 081bfh                          ; 75 f7
+    jne short 08148h                          ; 75 f7
     xor ax, ax                                ; 31 c0
     mov dx, word [bp+006h]                    ; 8b 56 06
@@ -12234,5 +12196,5 @@
     shr dx, 1                                 ; d1 ea
     rcr ax, 1                                 ; d1 d8
-    loop 081eah                               ; e2 fa
+    loop 08173h                               ; e2 fa
     and ax, 000f0h                            ; 25 f0 00
     mov cl, byte [bp-006h]                    ; 8a 4e fa
@@ -12253,5 +12215,5 @@
     shr dx, 1                                 ; d1 ea
     rcr ax, 1                                 ; d1 d8
-    loop 08212h                               ; e2 fa
+    loop 0819bh                               ; e2 fa
     mov dx, bx                                ; 89 da
     out DX, AL                                ; ee
@@ -12260,5 +12222,5 @@
     xor ah, ah                                ; 30 e4
     cmp cx, ax                                ; 39 c1
-    jnc short 08234h                          ; 73 0e
+    jnc short 081bdh                          ; 73 0e
     les di, [bp-00eh]                         ; c4 7e f2
     add di, cx                                ; 01 cf
@@ -12267,5 +12229,5 @@
     out DX, AL                                ; ee
     inc cx                                    ; 41
-    jmp short 0821dh                          ; eb e9
+    jmp short 081a6h                          ; eb e9
     mov dx, bx                                ; 89 da
     in AL, DX                                 ; ec
@@ -12273,7 +12235,7 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 08234h                          ; 75 f7
+    jne short 081bdh                          ; 75 f7
     test AL, strict byte 002h                 ; a8 02
-    je short 0824fh                           ; 74 0e
+    je short 081d8h                           ; 74 0e
     lea dx, [bx+003h]                         ; 8d 57 03
     xor al, al                                ; 30 c0
@@ -12283,12 +12245,12 @@
     ; sub ah, ah                                ; 2a e4
     mov dx, strict word 00003h                ; ba 03 00
-    jmp short 082b9h                          ; eb 6a
+    jmp short 08242h                          ; eb 6a
     mov ax, word [bp+004h]                    ; 8b 46 04
     test ax, ax                               ; 85 c0
-    je short 0825eh                           ; 74 08
+    je short 081e7h                           ; 74 08
     lea dx, [bx+001h]                         ; 8d 57 01
     mov cx, ax                                ; 89 c1
     in AL, DX                                 ; ec
-    loop 0825bh                               ; e2 fd
+    loop 081e4h                               ; e2 fd
     mov ax, word [bp+006h]                    ; 8b 46 06
     mov es, [bp-00ah]                         ; 8e 46 f6
@@ -12298,7 +12260,7 @@
     lea ax, [bx+001h]                         ; 8d 47 01
     cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
-    jne short 0827fh                          ; 75 07
+    jne short 08208h                          ; 75 07
     cmp word [bp+006h], 08000h                ; 81 7e 06 00 80
-    jbe short 0829ch                          ; 76 1d
+    jbe short 08225h                          ; 76 1d
     mov dx, ax                                ; 89 c2
     mov cx, 08000h                            ; b9 00 80
@@ -12310,5 +12272,5 @@
     add ax, 00800h                            ; 05 00 08
     mov word [bp+00eh], ax                    ; 89 46 0e
-    jmp short 0826fh                          ; eb d3
+    jmp short 081f8h                          ; eb d3
     mov dx, ax                                ; 89 c2
     mov cx, word [bp+006h]                    ; 8b 4e 06
@@ -12317,8 +12279,8 @@
     mov es, [bp-00ah]                         ; 8e 46 f6
     cmp word [es:si+020h], strict byte 00000h ; 26 83 7c 20 00
-    je short 082b7h                           ; 74 07
+    je short 08240h                           ; 74 07
     mov cx, word [es:si+020h]                 ; 26 8b 4c 20
     in AL, DX                                 ; ec
-    loop 082b4h                               ; e2 fd
+    loop 0823dh                               ; e2 fd
     xor dx, dx                                ; 31 d2
     mov ax, dx                                ; 89 d0
@@ -12328,5 +12290,5 @@
     pop bp                                    ; 5d
     retn 0000ch                               ; c2 0c 00
-scsi_enumerate_attached_devices_:            ; 0xf82c4 LB 0x4a6
+scsi_enumerate_attached_devices_:            ; 0xf824d LB 0x4a6
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -12340,17 +12302,17 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 92 93
+    call 0166ch                               ; e8 09 94
     mov di, 00122h                            ; bf 22 01
     mov word [bp-020h], ax                    ; 89 46 e0
     mov word [bp-022h], strict word 00000h    ; c7 46 de 00 00
-    jmp near 086e8h                           ; e9 00 04
+    jmp near 08671h                           ; e9 00 04
     cmp AL, strict byte 004h                  ; 3c 04
-    jc short 082efh                           ; 72 03
-    jmp near 08760h                           ; e9 71 04
+    jc short 08278h                           ; 72 03
+    jmp near 086e9h                           ; e9 71 04
     mov cx, strict word 00010h                ; b9 10 00
     xor bx, bx                                ; 31 db
     mov dx, ss                                ; 8c d2
     lea ax, [bp-046h]                         ; 8d 46 ba
-    call 0a03ah                               ; e8 3e 1d
+    call 09fbah                               ; e8 35 1d
     mov byte [bp-046h], 09eh                  ; c6 46 ba 9e
     mov byte [bp-045h], 010h                  ; c6 46 bb 10
@@ -12367,11 +12329,11 @@
     lea bx, [bp-046h]                         ; 8d 5e ba
     mov ax, word [bp-00248h]                  ; 8b 86 b8 fd
-    call 07df2h                               ; e8 cd fa
+    call 07d7bh                               ; e8 cd fa
     test al, al                               ; 84 c0
-    je short 08337h                           ; 74 0e
+    je short 082c0h                           ; 74 0e
     push 00b92h                               ; 68 92 0b
     push 00bcbh                               ; 68 cb 0b
     push strict byte 00007h                   ; 6a 07
-    call 01966h                               ; e8 32 96
+    call 01966h                               ; e8 a9 96
     add sp, strict byte 00006h                ; 83 c4 06
     mov ax, word [bp-00240h]                  ; 8b 86 c0 fd
@@ -12405,5 +12367,5 @@
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 08386h                               ; e2 fa
+    loop 0830fh                               ; e2 fa
     or bx, ax                                 ; 09 c3
     or dx, si                                 ; 09 f2
@@ -12413,11 +12375,11 @@
     mov word [bp-028h], bx                    ; 89 5e d8
     test dx, dx                               ; 85 d2
-    jne short 083a5h                          ; 75 06
+    jne short 0832eh                          ; 75 06
     cmp bx, 00200h                            ; 81 fb 00 02
-    je short 083c5h                           ; 74 20
+    je short 0834eh                           ; 74 20
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 73 95
+    call 01923h                               ; e8 ea 95
     push dx                                   ; 52
     push word [bp-028h]                       ; ff 76 d8
@@ -12425,24 +12387,24 @@
     push 00beah                               ; 68 ea 0b
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 a7 95
+    call 01966h                               ; e8 1e 96
     add sp, strict byte 0000ah                ; 83 c4 0a
-    jmp near 086dch                           ; e9 17 03
+    jmp near 08665h                           ; e9 17 03
     mov al, byte [bp-00ch]                    ; 8a 46 f4
     cmp AL, strict byte 001h                  ; 3c 01
-    jc short 083d8h                           ; 72 0c
-    jbe short 083e0h                          ; 76 12
+    jc short 08361h                           ; 72 0c
+    jbe short 08369h                          ; 76 12
     cmp AL, strict byte 003h                  ; 3c 03
-    je short 083e8h                           ; 74 16
+    je short 08371h                           ; 74 16
     cmp AL, strict byte 002h                  ; 3c 02
-    je short 083e4h                           ; 74 0e
-    jmp short 08431h                          ; eb 59
+    je short 0836dh                           ; 74 0e
+    jmp short 083bah                          ; eb 59
     test al, al                               ; 84 c0
-    jne short 08431h                          ; 75 55
+    jne short 083bah                          ; 75 55
     mov BL, strict byte 090h                  ; b3 90
-    jmp short 083eah                          ; eb 0a
+    jmp short 08373h                          ; eb 0a
     mov BL, strict byte 098h                  ; b3 98
-    jmp short 083eah                          ; eb 06
+    jmp short 08373h                          ; eb 06
     mov BL, strict byte 0a0h                  ; b3 a0
-    jmp short 083eah                          ; eb 02
+    jmp short 08373h                          ; eb 02
     mov BL, strict byte 0a8h                  ; b3 a8
     mov cl, bl                                ; 88 d9
@@ -12450,17 +12412,17 @@
     xor ch, ch                                ; 30 ed
     mov ax, cx                                ; 89 c8
-    call 016ach                               ; e8 b6 92
+    call 016ach                               ; e8 2d 93
     test al, al                               ; 84 c0
-    je short 08431h                           ; 74 37
+    je short 083bah                           ; 74 37
     mov al, bl                                ; 88 d8
     db  0feh, 0c0h
     ; inc al                                    ; fe c0
     xor ah, ah                                ; 30 e4
-    call 016ach                               ; e8 a9 92
+    call 016ach                               ; e8 20 93
     xor ah, ah                                ; 30 e4
     mov dx, ax                                ; 89 c2
     sal dx, 008h                              ; c1 e2 08
     mov al, bl                                ; 88 d8
-    call 016ach                               ; e8 9d 92
+    call 016ach                               ; e8 14 93
     xor ah, ah                                ; 30 e4
     add ax, dx                                ; 01 d0
@@ -12470,12 +12432,12 @@
     add AL, strict byte 002h                  ; 04 02
     xor ah, ah                                ; 30 e4
-    call 016ach                               ; e8 8d 92
+    call 016ach                               ; e8 04 93
     xor ah, ah                                ; 30 e4
     mov word [bp-018h], ax                    ; 89 46 e8
     mov ax, cx                                ; 89 c8
-    call 016ach                               ; e8 83 92
+    call 016ach                               ; e8 fa 92
     xor ah, ah                                ; 30 e4
     mov word [bp-026h], ax                    ; 89 46 da
-    jmp near 0851fh                           ; e9 ee 00
+    jmp near 084a8h                           ; e9 ee 00
     mov ax, word [bp-012h]                    ; 8b 46 ee
     mov bx, word [bp-010h]                    ; 8b 5e f0
@@ -12483,5 +12445,5 @@
     mov dx, word [bp-014h]                    ; 8b 56 ec
     mov si, strict word 0000ch                ; be 0c 00
-    call 0a02ah                               ; e8 e7 1b
+    call 09faah                               ; e8 de 1b
     mov word [bp-02ah], ax                    ; 89 46 d6
     mov word [bp-016h], bx                    ; 89 5e ea
@@ -12490,13 +12452,13 @@
     mov ax, word [bp-012h]                    ; 8b 46 ee
     test ax, ax                               ; 85 c0
-    jnbe short 0846bh                         ; 77 15
-    je short 0845bh                           ; 74 03
-    jmp near 084e0h                           ; e9 85 00
+    jnbe short 083f4h                         ; 77 15
+    je short 083e4h                           ; 74 03
+    jmp near 08469h                           ; e9 85 00
     cmp word [bp-010h], strict byte 00000h    ; 83 7e f0 00
-    jnbe short 0846bh                         ; 77 0a
-    jne short 08458h                          ; 75 f5
+    jnbe short 083f4h                         ; 77 0a
+    jne short 083e1h                          ; 75 f5
     cmp word [bp-01ch], strict byte 00040h    ; 83 7e e4 40
-    jnbe short 0846bh                         ; 77 02
-    jne short 084e0h                          ; 75 75
+    jnbe short 083f4h                         ; 77 02
+    jne short 08469h                          ; 75 75
     mov word [bp-018h], 000ffh                ; c7 46 e8 ff 00
     mov word [bp-026h], strict word 0003fh    ; c7 46 da 3f 00
@@ -12505,5 +12467,5 @@
     mov dx, word [bp-014h]                    ; 8b 56 ec
     mov si, strict word 00006h                ; be 06 00
-    call 0a02ah                               ; e8 a6 1b
+    call 09faah                               ; e8 9d 1b
     mov si, word [bp-01eh]                    ; 8b 76 e2
     add si, dx                                ; 01 d6
@@ -12523,5 +12485,5 @@
     mov dx, si                                ; 89 f2
     mov si, strict word 00008h                ; be 08 00
-    call 0a02ah                               ; e8 76 1b
+    call 09faah                               ; e8 6d 1b
     mov word [bp-02eh], bx                    ; 89 5e d2
     mov word [bp-030h], cx                    ; 89 4e d0
@@ -12532,5 +12494,5 @@
     mov dx, word [bp-036h]                    ; 8b 56 ca
     mov si, strict word 00010h                ; be 10 00
-    call 0a02ah                               ; e8 5b 1b
+    call 09faah                               ; e8 52 1b
     mov si, word [bp-032h]                    ; 8b 76 ce
     add si, dx                                ; 01 d6
@@ -12539,17 +12501,17 @@
     mov ax, word [bp-02eh]                    ; 8b 46 d2
     adc ax, bx                                ; 11 d8
-    jmp short 0851fh                          ; eb 3f
+    jmp short 084a8h                          ; eb 3f
     test ax, ax                               ; 85 c0
-    jnbe short 084f6h                         ; 77 12
-    jne short 08502h                          ; 75 1c
+    jnbe short 0847fh                         ; 77 12
+    jne short 0848bh                          ; 75 1c
     cmp word [bp-010h], strict byte 00000h    ; 83 7e f0 00
-    jnbe short 084f6h                         ; 77 0a
-    jne short 08502h                          ; 75 14
+    jnbe short 0847fh                         ; 77 0a
+    jne short 0848bh                          ; 75 14
     cmp word [bp-01ch], strict byte 00020h    ; 83 7e e4 20
-    jnbe short 084f6h                         ; 77 02
-    jne short 08502h                          ; 75 0c
+    jnbe short 0847fh                         ; 77 02
+    jne short 0848bh                          ; 75 0c
     mov word [bp-018h], 00080h                ; c7 46 e8 80 00
     mov word [bp-026h], strict word 00020h    ; c7 46 da 20 00
-    jmp short 0851bh                          ; eb 19
+    jmp short 084a4h                          ; 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
@@ -12558,5 +12520,5 @@
     mov dx, word [bp-014h]                    ; 8b 56 ec
     mov si, strict word 0000bh                ; be 0b 00
-    call 0a02ah                               ; e8 0f 1b
+    call 09faah                               ; e8 06 1b
     mov si, dx                                ; 89 d6
     mov dx, cx                                ; 89 ca
@@ -12593,10 +12555,10 @@
     mov word [es:bx+034h], ax                 ; 26 89 47 34
     test dx, dx                               ; 85 d2
-    jne short 08591h                          ; 75 06
+    jne short 0851ah                          ; 75 06
     cmp si, 00400h                            ; 81 fe 00 04
-    jbe short 0859fh                          ; 76 0e
+    jbe short 08528h                          ; 76 0e
     mov word [es:bx+02ch], 00400h             ; 26 c7 47 2c 00 04
     mov word [es:bx+032h], 00400h             ; 26 c7 47 32 00 04
-    jmp short 085a7h                          ; eb 08
+    jmp short 08530h                          ; eb 08
     mov word [es:bx+02ch], si                 ; 26 89 77 2c
     mov word [es:bx+032h], si                 ; 26 89 77 32
@@ -12604,5 +12566,5 @@
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 71 93
+    call 01923h                               ; e8 e8 93
     push word [bp-012h]                       ; ff 76 ee
     push word [bp-010h]                       ; ff 76 f0
@@ -12619,5 +12581,5 @@
     push 00c18h                               ; 68 18 0c
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 8f 93
+    call 01966h                               ; e8 06 94
     add sp, strict byte 00018h                ; 83 c4 18
     mov al, byte [bp-00eh]                    ; 8a 46 f2
@@ -12647,5 +12609,5 @@
     mov dx, strict word 00075h                ; ba 75 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 25 90
+    call 01650h                               ; e8 9c 90
     mov bl, al                                ; 88 c3
     db  0feh, 0c3h
@@ -12654,11 +12616,11 @@
     mov dx, strict word 00075h                ; ba 75 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 24 90
+    call 0165eh                               ; e8 9b 90
     inc byte [bp-00ch]                        ; fe 46 f4
-    jmp near 086d1h                           ; e9 91 00
+    jmp near 0865ah                           ; e9 91 00
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 d8 92
+    call 01923h                               ; e8 4f 93
     push word [bp-022h]                       ; ff 76 de
     mov al, byte [bp-00ch]                    ; 8a 46 f4
@@ -12667,5 +12629,5 @@
     push 00c46h                               ; 68 46 0c
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 0a 93
+    call 01966h                               ; e8 81 93
     add sp, strict byte 00008h                ; 83 c4 08
     mov al, byte [bp-00ch]                    ; 8a 46 f4
@@ -12673,7 +12635,7 @@
     mov byte [bp-00eh], al                    ; 88 46 f2
     test byte [bp-00245h], 080h               ; f6 86 bb fd 80
-    je short 08673h                           ; 74 05
+    je short 085fch                           ; 74 05
     mov dx, strict word 00001h                ; ba 01 00
-    jmp short 08675h                          ; eb 02
+    jmp short 085feh                          ; eb 02
     xor dx, dx                                ; 31 d2
     mov al, byte [bp-00ch]                    ; 8a 46 f4
@@ -12711,6 +12673,6 @@
     inc word [bp-022h]                        ; ff 46 de
     cmp word [bp-022h], strict byte 00010h    ; 83 7e de 10
-    jl short 086e8h                           ; 7c 03
-    jmp near 08760h                           ; e9 78 00
+    jl short 08671h                           ; 7c 03
+    jmp near 086e9h                           ; e9 78 00
     mov byte [bp-046h], 012h                  ; c6 46 ba 12
     xor al, al                                ; 30 c0
@@ -12731,11 +12693,11 @@
     lea bx, [bp-046h]                         ; 8d 5e ba
     mov ax, word [bp-00248h]                  ; 8b 86 b8 fd
-    call 07df2h                               ; e8 d7 f6
+    call 07d7bh                               ; e8 d7 f6
     test al, al                               ; 84 c0
-    je short 0872dh                           ; 74 0e
+    je short 086b6h                           ; 74 0e
     push 00b92h                               ; 68 92 0b
     push 00bb2h                               ; 68 b2 0b
     push strict byte 00007h                   ; 6a 07
-    call 01966h                               ; e8 3c 92
+    call 01966h                               ; e8 b3 92
     add sp, strict byte 00006h                ; 83 c4 06
     mov es, [bp-020h]                         ; 8e 46 e0
@@ -12743,16 +12705,16 @@
     mov byte [bp-00ch], al                    ; 88 46 f4
     test byte [bp-00246h], 0e0h               ; f6 86 ba fd e0
-    jne short 08749h                          ; 75 0a
+    jne short 086d2h                          ; 75 0a
     test byte [bp-00246h], 01fh               ; f6 86 ba fd 1f
-    jne short 08749h                          ; 75 03
-    jmp near 082e8h                           ; e9 9f fb
+    jne short 086d2h                          ; 75 03
+    jmp near 08271h                           ; e9 9f fb
     test byte [bp-00246h], 0e0h               ; f6 86 ba fd e0
-    jne short 086d1h                          ; 75 81
+    jne short 0865ah                          ; 75 81
     mov al, byte [bp-00246h]                  ; 8a 86 ba fd
     and AL, strict byte 01fh                  ; 24 1f
     cmp AL, strict byte 005h                  ; 3c 05
-    jne short 0875dh                          ; 75 03
-    jmp near 08640h                           ; e9 e3 fe
-    jmp near 086d1h                           ; e9 71 ff
+    jne short 086e6h                          ; 75 03
+    jmp near 085c9h                           ; e9 e3 fe
+    jmp near 0865ah                           ; e9 71 ff
     lea sp, [bp-00ah]                         ; 8d 66 f6
     pop di                                    ; 5f
@@ -12763,10 +12725,10 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-_scsi_init:                                  ; 0xf876a LB 0x66
+_scsi_init:                                  ; 0xf86f3 LB 0x66
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 f6 8e
+    call 0166ch                               ; e8 6d 8f
     mov bx, 00122h                            ; bb 22 01
     mov es, ax                                ; 8e c0
@@ -12779,10 +12741,10 @@
     ; sub ah, ah                                ; 2a e4
     cmp AL, strict byte 055h                  ; 3c 55
-    jne short 0879ah                          ; 75 0c
+    jne short 08723h                          ; 75 0c
     xor al, al                                ; 30 c0
     mov dx, 00433h                            ; ba 33 04
     out DX, AL                                ; ee
     mov ax, 00430h                            ; b8 30 04
-    call 082c4h                               ; e8 2a fb
+    call 0824dh                               ; e8 2a fb
     mov AL, strict byte 055h                  ; b0 55
     mov dx, 00436h                            ; ba 36 04
@@ -12792,10 +12754,10 @@
     ; sub ah, ah                                ; 2a e4
     cmp AL, strict byte 055h                  ; 3c 55
-    jne short 087b3h                          ; 75 0c
+    jne short 0873ch                          ; 75 0c
     xor al, al                                ; 30 c0
     mov dx, 00437h                            ; ba 37 04
     out DX, AL                                ; ee
     mov ax, 00434h                            ; b8 34 04
-    call 082c4h                               ; e8 11 fb
+    call 0824dh                               ; e8 11 fb
     mov AL, strict byte 055h                  ; b0 55
     mov dx, 0043ah                            ; ba 3a 04
@@ -12805,14 +12767,14 @@
     ; sub ah, ah                                ; 2a e4
     cmp AL, strict byte 055h                  ; 3c 55
-    jne short 087cch                          ; 75 0c
+    jne short 08755h                          ; 75 0c
     xor al, al                                ; 30 c0
     mov dx, 0043bh                            ; ba 3b 04
     out DX, AL                                ; ee
     mov ax, 00438h                            ; b8 38 04
-    call 082c4h                               ; e8 f8 fa
+    call 0824dh                               ; e8 f8 fa
     mov sp, bp                                ; 89 ec
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_ctrl_extract_bits_:                     ; 0xf87d0 LB 0x1c
+ahci_ctrl_extract_bits_:                     ; 0xf8759 LB 0x1c
     push si                                   ; 56
     push bp                                   ; 55
@@ -12823,12 +12785,12 @@
     mov cl, byte [bp+006h]                    ; 8a 4e 06
     xor ch, ch                                ; 30 ed
-    jcxz 087e7h                               ; e3 06
+    jcxz 08770h                               ; e3 06
     shr dx, 1                                 ; d1 ea
     rcr ax, 1                                 ; d1 d8
-    loop 087e1h                               ; e2 fa
+    loop 0876ah                               ; e2 fa
     pop bp                                    ; 5d
     pop si                                    ; 5e
     retn 00002h                               ; c2 02 00
-ahci_addr_to_phys_:                          ; 0xf87ec LB 0x1e
+ahci_addr_to_phys_:                          ; 0xf8775 LB 0x1e
     push bx                                   ; 53
     push cx                                   ; 51
@@ -12841,5 +12803,5 @@
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 087fah                               ; e2 fa
+    loop 08783h                               ; e2 fa
     xor cx, cx                                ; 31 c9
     add ax, bx                                ; 01 d8
@@ -12849,5 +12811,5 @@
     pop bx                                    ; 5b
     retn                                      ; c3
-ahci_port_cmd_sync_:                         ; 0xf880a LB 0x156
+ahci_port_cmd_sync_:                         ; 0xf8793 LB 0x156
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -12864,6 +12826,6 @@
     mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
     cmp AL, strict byte 0ffh                  ; 3c ff
-    jne short 0882dh                          ; 75 03
-    jmp near 08958h                           ; e9 2b 01
+    jne short 087b6h                          ; 75 03
+    jmp near 088e1h                           ; e9 2b 01
     mov al, byte [es:si+00263h]               ; 26 8a 84 63 02
     xor ah, ah                                ; 30 e4
@@ -12878,5 +12840,5 @@
     lea ax, [si+00080h]                       ; 8d 84 80 00
     mov dx, cx                                ; 89 ca
-    call 087ech                               ; e8 92 ff
+    call 08775h                               ; e8 92 ff
     mov es, cx                                ; 8e c1
     mov word [es:si+008h], ax                 ; 26 89 44 08
@@ -12944,12 +12906,12 @@
     xchg dx, ax                               ; 92
     test dh, 040h                             ; f6 c6 40
-    jne short 088ebh                          ; 75 04
+    jne short 08874h                          ; 75 04
     test AL, strict byte 001h                 ; a8 01
-    je short 088efh                           ; 74 04
+    je short 08878h                           ; 74 04
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 088f1h                          ; eb 02
+    jmp short 0887ah                          ; eb 02
     xor al, al                                ; 30 c0
     test al, al                               ; 84 c0
-    je short 088beh                           ; 74 c9
+    je short 08847h                           ; 74 c9
     mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
@@ -13007,5 +12969,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_cmd_data_:                              ; 0xf8960 LB 0x267
+ahci_cmd_data_:                              ; 0xf88e9 LB 0x267
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13032,5 +12994,5 @@
     mov ax, 00080h                            ; b8 80 00
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 0a03ah                               ; e8 9c 16
+    call 09fbah                               ; e8 93 16
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov word [es:di+00080h], 08027h           ; 26 c7 85 80 00 27 80
@@ -13050,5 +13012,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00008h                ; be 08 00
-    call 0a02ah                               ; e8 48 16
+    call 09faah                               ; e8 3f 16
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov byte [es:di+00085h], dl               ; 26 88 95 85 00
@@ -13061,5 +13023,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00010h                ; be 10 00
-    call 0a02ah                               ; e8 22 16
+    call 09faah                               ; e8 19 16
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov byte [es:di+00086h], dl               ; 26 88 95 86 00
@@ -13073,5 +13035,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00018h                ; be 18 00
-    call 0a02ah                               ; e8 f6 15
+    call 09faah                               ; e8 ed 15
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov byte [es:di+00088h], dl               ; 26 88 95 88 00
@@ -13084,5 +13046,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00020h                ; be 20 00
-    call 0a02ah                               ; e8 d0 15
+    call 09faah                               ; e8 c7 15
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov byte [es:di+00089h], dl               ; 26 88 95 89 00
@@ -13095,5 +13057,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00028h                ; be 28 00
-    call 0a02ah                               ; e8 aa 15
+    call 09faah                               ; e8 a1 15
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov byte [es:di+0008ah], dl               ; 26 88 95 8a 00
@@ -13109,5 +13071,5 @@
     mov bx, word [bp-010h]                    ; 8b 5e f0
     xor cx, cx                                ; 31 c9
-    call 09fe9h                               ; e8 34 15
+    call 09f69h                               ; e8 2b 15
     push dx                                   ; 52
     push ax                                   ; 50
@@ -13119,5 +13081,5 @@
     mov ax, 0026ah                            ; b8 6a 02
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 09f01h                               ; e8 30 14
+    call 09e85h                               ; e8 2b 14
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov dx, word [es:di+0027eh]               ; 26 8b 95 7e 02
@@ -13142,5 +13104,5 @@
     mov ax, word [es:bx+020h]                 ; 26 8b 47 20
     test ax, ax                               ; 85 c0
-    je short 08b63h                           ; 74 3b
+    je short 08aech                           ; 74 3b
     dec ax                                    ; 48
     mov es, [bp-00ah]                         ; 8e 46 f6
@@ -13160,13 +13122,13 @@
     mov al, byte [bp-008h]                    ; 8a 46 f8
     cmp AL, strict byte 035h                  ; 3c 35
-    jne short 08b70h                          ; 75 06
+    jne short 08af9h                          ; 75 06
     mov byte [bp-008h], 040h                  ; c6 46 f8 40
-    jmp short 08b87h                          ; eb 17
+    jmp short 08b10h                          ; eb 17
     cmp AL, strict byte 0a0h                  ; 3c a0
-    jne short 08b83h                          ; 75 0f
+    jne short 08b0ch                          ; 75 0f
     or byte [bp-008h], 020h                   ; 80 4e f8 20
     les bx, [bp-00eh]                         ; c4 5e f2
     or byte [es:bx+00083h], 001h              ; 26 80 8f 83 00 01
-    jmp short 08b87h                          ; eb 04
+    jmp short 08b10h                          ; eb 04
     mov byte [bp-008h], 000h                  ; c6 46 f8 00
     or byte [bp-008h], 005h                   ; 80 4e f8 05
@@ -13175,5 +13137,5 @@
     mov ax, word [bp-00eh]                    ; 8b 46 f2
     mov dx, word [bp-00ch]                    ; 8b 56 f4
-    call 0880ah                               ; e8 71 fc
+    call 08793h                               ; e8 71 fc
     mov cx, word [bp-00ch]                    ; 8b 4e f4
     mov bx, word [bp-00eh]                    ; 8b 5e f2
@@ -13182,11 +13144,11 @@
     add ax, 0026ah                            ; 05 6a 02
     mov dx, cx                                ; 89 ca
-    call 09f78h                               ; e8 ca 13
+    call 09efch                               ; e8 c5 13
     mov es, cx                                ; 8e c1
     mov al, byte [es:bx+003h]                 ; 26 8a 47 03
     test al, al                               ; 84 c0
-    je short 08bbdh                           ; 74 05
+    je short 08b46h                           ; 74 05
     mov ax, strict word 00004h                ; b8 04 00
-    jmp short 08bbfh                          ; eb 02
+    jmp short 08b48h                          ; eb 02
     xor ah, ah                                ; 30 e4
     lea sp, [bp-006h]                         ; 8d 66 fa
@@ -13196,5 +13158,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_port_deinit_current_:                   ; 0xf8bc7 LB 0x180
+ahci_port_deinit_current_:                   ; 0xf8b50 LB 0x180
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13211,5 +13173,5 @@
     mov byte [bp-00ah], al                    ; 88 46 f6
     cmp AL, strict byte 0ffh                  ; 3c ff
-    je short 08c48h                           ; 74 5f
+    je short 08bd1h                           ; 74 5f
     xor ah, ah                                ; 30 e4
     sal ax, 007h                              ; c1 e0 07
@@ -13255,26 +13217,26 @@
     xchg dx, ax                               ; 92
     test ax, 0c011h                           ; a9 11 c0
-    je short 08c4bh                           ; 74 07
+    je short 08bd4h                           ; 74 07
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 08c4dh                          ; eb 05
-    jmp near 08d3eh                           ; e9 f3 00
+    jmp short 08bd6h                          ; eb 05
+    jmp near 08cc7h                           ; e9 f3 00
     xor al, al                                ; 30 c0
     cmp AL, strict byte 001h                  ; 3c 01
-    je short 08c1bh                           ; 74 ca
+    je short 08ba4h                           ; 74 ca
     mov cx, strict word 00020h                ; b9 20 00
     xor bx, bx                                ; 31 db
     mov ax, di                                ; 89 f8
     mov dx, word [bp-00eh]                    ; 8b 56 f2
-    call 0a03ah                               ; e8 dc 13
+    call 09fbah                               ; e8 d3 13
     lea ax, [di+00080h]                       ; 8d 85 80 00
     mov cx, strict word 00040h                ; b9 40 00
     xor bx, bx                                ; 31 db
     mov dx, word [bp-00eh]                    ; 8b 56 f2
-    call 0a03ah                               ; e8 cd 13
+    call 09fbah                               ; e8 c4 13
     lea ax, [di+00200h]                       ; 8d 85 00 02
     mov cx, strict word 00060h                ; b9 60 00
     xor bx, bx                                ; 31 db
     mov dx, word [bp-00eh]                    ; 8b 56 f2
-    call 0a03ah                               ; e8 be 13
+    call 09fbah                               ; e8 b5 13
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     xor ah, ah                                ; 30 e4
@@ -13381,5 +13343,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_port_init_:                             ; 0xf8d47 LB 0x24d
+ahci_port_init_:                             ; 0xf8cd0 LB 0x24d
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13391,5 +13353,5 @@
     mov word [bp-00ah], dx                    ; 89 56 f6
     mov byte [bp-008h], bl                    ; 88 5e f8
-    call 08bc7h                               ; e8 6c fe
+    call 08b50h                               ; e8 6c fe
     mov al, bl                                ; 88 d8
     xor ah, ah                                ; 30 e4
@@ -13440,20 +13402,20 @@
     xchg dx, ax                               ; 92
     test ax, 0c011h                           ; a9 11 c0
-    je short 08dcch                           ; 74 04
+    je short 08d55h                           ; 74 04
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 08dceh                          ; eb 02
+    jmp short 08d57h                          ; eb 02
     xor al, al                                ; 30 c0
     cmp AL, strict byte 001h                  ; 3c 01
-    je short 08d97h                           ; 74 c5
+    je short 08d20h                           ; 74 c5
     mov cx, strict word 00020h                ; b9 20 00
     xor bx, bx                                ; 31 db
     mov ax, si                                ; 89 f0
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 0a03ah                               ; e8 5b 12
+    call 09fbah                               ; e8 52 12
     lea ax, [si+00080h]                       ; 8d 84 80 00
     mov cx, strict word 00040h                ; b9 40 00
     xor bx, bx                                ; 31 db
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 0a03ah                               ; e8 4c 12
+    call 09fbah                               ; e8 43 12
     lea di, [si+00200h]                       ; 8d bc 00 02
     mov cx, strict word 00060h                ; b9 60 00
@@ -13461,5 +13423,5 @@
     mov ax, di                                ; 89 f8
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 0a03ah                               ; e8 3b 12
+    call 09fbah                               ; e8 32 12
     mov bl, byte [bp-008h]                    ; 8a 5e f8
     xor bh, bh                                ; 30 ff
@@ -13479,5 +13441,5 @@
     mov ax, di                                ; 89 f8
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 087ech                               ; e8 bf f9
+    call 08775h                               ; e8 bf f9
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov di, word [es:si+00260h]               ; 26 8b bc 60 02
@@ -13524,5 +13486,5 @@
     mov ax, si                                ; 89 f0
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 087ech                               ; e8 53 f9
+    call 08775h                               ; e8 53 f9
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov di, word [es:si+00260h]               ; 26 8b bc 60 02
@@ -13629,5 +13591,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-@ahci_read_sectors:                          ; 0xf8f94 LB 0xa8
+@ahci_read_sectors:                          ; 0xf8f1d LB 0xa8
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13640,10 +13602,10 @@
     sub bx, strict byte 0000ch                ; 83 eb 0c
     cmp bx, strict byte 00004h                ; 83 fb 04
-    jbe short 08fbah                          ; 76 0f
+    jbe short 08f43h                          ; 76 0f
     push bx                                   ; 53
     push 00c62h                               ; 68 62 0c
     push 00c74h                               ; 68 74 0c
     push strict byte 00007h                   ; 6a 07
-    call 01966h                               ; e8 af 89
+    call 01966h                               ; e8 26 8a
     add sp, strict byte 00008h                ; 83 c4 08
     xor di, di                                ; 31 ff
@@ -13660,9 +13622,9 @@
     mov dx, word [es:di+00232h]               ; 26 8b 95 32 02
     xor ax, ax                                ; 31 c0
-    call 08d47h                               ; e8 60 fd
+    call 08cd0h                               ; e8 60 fd
     mov bx, strict word 00025h                ; bb 25 00
     mov ax, si                                ; 89 f0
     mov dx, word [bp+006h]                    ; 8b 56 06
-    call 08960h                               ; e8 6e f9
+    call 088e9h                               ; e8 6e f9
     mov word [bp-006h], ax                    ; 89 46 fa
     mov es, [bp+006h]                         ; 8e 46 06
@@ -13693,5 +13655,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-@ahci_write_sectors:                         ; 0xf903c LB 0x86
+@ahci_write_sectors:                         ; 0xf8fc5 LB 0x86
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13705,10 +13667,10 @@
     sub dx, strict byte 0000ch                ; 83 ea 0c
     cmp dx, strict byte 00004h                ; 83 fa 04
-    jbe short 09066h                          ; 76 0f
+    jbe short 08fefh                          ; 76 0f
     push dx                                   ; 52
     push 00c93h                               ; 68 93 0c
     push 00c74h                               ; 68 74 0c
     push strict byte 00007h                   ; 6a 07
-    call 01966h                               ; e8 03 89
+    call 01966h                               ; e8 7a 89
     add sp, strict byte 00008h                ; 83 c4 08
     xor bx, bx                                ; 31 db
@@ -13725,9 +13687,9 @@
     mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
     xor ax, ax                                ; 31 c0
-    call 08d47h                               ; e8 b6 fc
+    call 08cd0h                               ; e8 b6 fc
     mov bx, strict word 00035h                ; bb 35 00
     mov ax, si                                ; 89 f0
     mov dx, cx                                ; 89 ca
-    call 08960h                               ; e8 c5 f8
+    call 088e9h                               ; e8 c5 f8
     mov dx, ax                                ; 89 c2
     mov es, cx                                ; 8e c1
@@ -13744,5 +13706,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-ahci_cmd_packet_:                            ; 0xf90c2 LB 0x18a
+ahci_cmd_packet_:                            ; 0xf904b LB 0x18a
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13756,22 +13718,22 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 8f 85
+    call 0166ch                               ; e8 06 86
     mov si, 00122h                            ; be 22 01
     mov word [bp-008h], ax                    ; 89 46 f8
     cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
-    jne short 09108h                          ; 75 1f
+    jne short 09091h                          ; 75 1f
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 2f 88
+    call 01923h                               ; e8 a6 88
     push 00ca6h                               ; 68 a6 0c
     push 00cb6h                               ; 68 b6 0c
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 67 88
+    call 01966h                               ; e8 de 88
     add sp, strict byte 00006h                ; 83 c4 06
     mov ax, strict word 00001h                ; b8 01 00
-    jmp near 09243h                           ; e9 3b 01
+    jmp near 091cch                           ; e9 3b 01
     test byte [bp+004h], 001h                 ; f6 46 04 01
-    jne short 09102h                          ; 75 f4
+    jne short 0908bh                          ; 75 f4
     mov ax, word [bp+006h]                    ; 8b 46 06
     mov dx, word [bp+008h]                    ; 8b 56 08
@@ -13779,5 +13741,5 @@
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 09117h                               ; e2 fa
+    loop 090a0h                               ; e2 fa
     mov es, [bp-008h]                         ; 8e 46 f8
     mov word [es:si], ax                      ; 26 89 04
@@ -13793,5 +13755,5 @@
     mov dx, word [bp+008h]                    ; 8b 56 08
     xor cx, cx                                ; 31 c9
-    call 09fb0h                               ; e8 60 0e
+    call 09f30h                               ; e8 57 0e
     mov word [es:si+00eh], ax                 ; 26 89 44 0e
     xor di, di                                ; 31 ff
@@ -13812,5 +13774,5 @@
     mov bx, ax                                ; 89 c3
     xor al, al                                ; 30 c0
-    call 08d47h                               ; e8 b8 fb
+    call 08cd0h                               ; e8 b8 fb
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
@@ -13820,5 +13782,5 @@
     mov ax, 000c0h                            ; b8 c0 00
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 0a047h                               ; e8 a3 0e
+    call 09fc7h                               ; e8 9a 0e
     mov es, [bp-008h]                         ; 8e 46 f8
     mov word [es:si+018h], di                 ; 26 89 7c 18
@@ -13827,5 +13789,5 @@
     mov ax, word [es:si+01eh]                 ; 26 8b 44 1e
     test ax, ax                               ; 85 c0
-    je short 091e2h                           ; 74 27
+    je short 0916bh                           ; 74 27
     dec ax                                    ; 48
     mov es, [bp-00ah]                         ; 8e 46 f6
@@ -13840,5 +13802,5 @@
     mov ax, si                                ; 89 f0
     mov dx, word [bp-008h]                    ; 8b 56 f8
-    call 08960h                               ; e8 73 f7
+    call 088e9h                               ; e8 73 f7
     les bx, [bp-00eh]                         ; c4 5e f2
     mov dx, word [es:bx+004h]                 ; 26 8b 57 04
@@ -13867,7 +13829,7 @@
     mov ax, word [es:bx+006h]                 ; 26 8b 47 06
     or ax, word [es:bx+004h]                  ; 26 0b 47 04
-    jne short 09241h                          ; 75 05
+    jne short 091cah                          ; 75 05
     mov ax, strict word 00004h                ; b8 04 00
-    jmp short 09243h                          ; eb 02
+    jmp short 091cch                          ; eb 02
     xor ax, ax                                ; 31 c0
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -13876,5 +13838,5 @@
     pop bp                                    ; 5d
     retn 0000ch                               ; c2 0c 00
-ahci_port_detect_device_:                    ; 0xf924c LB 0x4e3
+ahci_port_detect_device_:                    ; 0xf91d5 LB 0x4e3
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13889,8 +13851,8 @@
     xor ch, ch                                ; 30 ed
     mov bx, cx                                ; 89 cb
-    call 08d47h                               ; e8 e0 fa
+    call 08cd0h                               ; e8 e0 fa
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 fc 83
+    call 0166ch                               ; e8 73 84
     mov word [bp-00eh], 00122h                ; c7 46 f2 22 01
     mov word [bp-016h], ax                    ; 89 46 ea
@@ -13962,8 +13924,8 @@
     mov bx, strict word 0000fh                ; bb 0f 00
     xor cx, cx                                ; 31 c9
-    call 087d0h                               ; e8 b5 f4
+    call 08759h                               ; e8 b5 f4
     test ax, ax                               ; 85 c0
-    jne short 09322h                          ; 75 03
-    jmp near 09727h                           ; e9 05 04
+    jne short 092abh                          ; 75 03
+    jmp near 096b0h                           ; e9 05 04
     mov al, byte [bp-00ch]                    ; 8a 46 f4
     xor ah, ah                                ; 30 e4
@@ -13994,7 +13956,7 @@
     mov bx, strict word 0000fh                ; bb 0f 00
     xor cx, cx                                ; 31 c9
-    call 087d0h                               ; e8 67 f4
+    call 08759h                               ; e8 67 f4
     cmp ax, strict word 00001h                ; 3d 01 00
-    je short 09322h                           ; 74 b4
+    je short 092abh                           ; 74 b4
     push strict byte 00000h                   ; 6a 00
     mov bx, strict word 0000fh                ; bb 0f 00
@@ -14002,7 +13964,7 @@
     mov ax, word [bp-01ah]                    ; 8b 46 e6
     mov dx, di                                ; 89 fa
-    call 087d0h                               ; e8 53 f4
+    call 08759h                               ; e8 53 f4
     cmp ax, strict word 00003h                ; 3d 03 00
-    jne short 0931fh                          ; 75 9d
+    jne short 092a8h                          ; 75 9d
     mov ax, word [bp-01ch]                    ; 8b 46 e4
     add ax, 00130h                            ; 05 30 01
@@ -14032,6 +13994,6 @@
     mov byte [bp-008h], al                    ; 88 46 f8
     cmp AL, strict byte 004h                  ; 3c 04
-    jc short 093cch                           ; 72 03
-    jmp near 09727h                           ; e9 5b 03
+    jc short 09355h                           ; 72 03
+    jmp near 096b0h                           ; e9 5b 03
     mov ax, word [bp-01ch]                    ; 8b 46 e4
     add ax, 00118h                            ; 05 18 01
@@ -14083,7 +14045,7 @@
     add cl, 00ch                              ; 80 c1 0c
     test dx, dx                               ; 85 d2
-    jne short 09492h                          ; 75 54
+    jne short 0941bh                          ; 75 54
     cmp ax, 00101h                            ; 3d 01 01
-    jne short 09492h                          ; 75 4f
+    jne short 0941bh                          ; 75 4f
     mov es, [bp-016h]                         ; 8e 46 ea
     mov bx, word [bp-00eh]                    ; 8b 5e f2
@@ -14100,11 +14062,11 @@
     mov ax, word [bp-00eh]                    ; 8b 46 f2
     mov dx, es                                ; 8c c2
-    call 08960h                               ; e8 dd f4
+    call 088e9h                               ; e8 dd f4
     mov byte [bp-00ah], cl                    ; 88 4e f6
     test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
-    je short 09495h                           ; 74 08
+    je short 0941eh                           ; 74 08
     mov ax, strict word 00001h                ; b8 01 00
-    jmp short 09497h                          ; eb 05
-    jmp near 09665h                           ; e9 d0 01
+    jmp short 09420h                          ; eb 05
+    jmp near 095eeh                           ; e9 d0 01
     xor ax, ax                                ; 31 c0
     mov dl, al                                ; 88 c2
@@ -14122,7 +14084,7 @@
     mov word [bp-01eh], ax                    ; 89 46 e2
     cmp word [bp-014h], 00fffh                ; 81 7e ec ff 0f
-    jne short 094e6h                          ; 75 1e
+    jne short 0946fh                          ; 75 1e
     cmp di, strict byte 0ffffh                ; 83 ff ff
-    jne short 094e6h                          ; 75 19
+    jne short 0946fh                          ; 75 19
     mov ax, word [bp-0015ch]                  ; 8b 86 a4 fe
     mov word [bp-01eh], ax                    ; 89 46 e2
@@ -14163,19 +14125,19 @@
     mov al, byte [bp-008h]                    ; 8a 46 f8
     cmp AL, strict byte 001h                  ; 3c 01
-    jc short 09561h                           ; 72 0c
-    jbe short 09569h                          ; 76 12
+    jc short 094eah                           ; 72 0c
+    jbe short 094f2h                          ; 76 12
     cmp AL, strict byte 003h                  ; 3c 03
-    je short 09571h                           ; 74 16
+    je short 094fah                           ; 74 16
     cmp AL, strict byte 002h                  ; 3c 02
-    je short 0956dh                           ; 74 0e
-    jmp short 095b9h                          ; eb 58
+    je short 094f6h                           ; 74 0e
+    jmp short 09542h                          ; eb 58
     test al, al                               ; 84 c0
-    jne short 095b9h                          ; 75 54
+    jne short 09542h                          ; 75 54
     mov DL, strict byte 040h                  ; b2 40
-    jmp short 09573h                          ; eb 0a
+    jmp short 094fch                          ; eb 0a
     mov DL, strict byte 048h                  ; b2 48
-    jmp short 09573h                          ; eb 06
+    jmp short 094fch                          ; eb 06
     mov DL, strict byte 050h                  ; b2 50
-    jmp short 09573h                          ; eb 02
+    jmp short 094fch                          ; eb 02
     mov DL, strict byte 058h                  ; b2 58
     mov bl, dl                                ; 88 d3
@@ -14183,17 +14145,17 @@
     xor bh, bh                                ; 30 ff
     mov ax, bx                                ; 89 d8
-    call 016ach                               ; e8 2d 81
+    call 016ach                               ; e8 a4 81
     test al, al                               ; 84 c0
-    je short 095b9h                           ; 74 36
+    je short 09542h                           ; 74 36
     mov al, dl                                ; 88 d0
     db  0feh, 0c0h
     ; inc al                                    ; fe c0
     xor ah, ah                                ; 30 e4
-    call 016ach                               ; e8 20 81
+    call 016ach                               ; e8 97 81
     xor ah, ah                                ; 30 e4
     mov cx, ax                                ; 89 c1
     sal cx, 008h                              ; c1 e1 08
     mov al, dl                                ; 88 d0
-    call 016ach                               ; e8 14 81
+    call 016ach                               ; e8 8b 81
     xor ah, ah                                ; 30 e4
     add ax, cx                                ; 01 c8
@@ -14202,12 +14164,12 @@
     add AL, strict byte 002h                  ; 04 02
     xor ah, ah                                ; 30 e4
-    call 016ach                               ; e8 04 81
+    call 016ach                               ; e8 7b 81
     xor ah, ah                                ; 30 e4
     mov word [bp-02ah], ax                    ; 89 46 d6
     mov ax, bx                                ; 89 d8
-    call 016ach                               ; e8 fa 80
+    call 016ach                               ; e8 71 81
     xor ah, ah                                ; 30 e4
     mov word [bp-026h], ax                    ; 89 46 da
-    jmp short 095cbh                          ; eb 12
+    jmp short 09554h                          ; eb 12
     push word [bp-01eh]                       ; ff 76 e2
     push word [bp-012h]                       ; ff 76 ee
@@ -14216,9 +14178,9 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-02ah]                         ; 8d 46 d6
-    call 059d2h                               ; e8 07 c4
+    call 05977h                               ; e8 23 c4
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 4d 83
+    call 01923h                               ; e8 c4 83
     push word [bp-01eh]                       ; ff 76 e2
     push word [bp-012h]                       ; ff 76 ee
@@ -14241,5 +14203,5 @@
     push 00cd6h                               ; 68 d6 0c
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 5f 83
+    call 01966h                               ; e8 d6 83
     add sp, strict byte 0001ch                ; 83 c4 1c
     mov al, byte [bp-00ah]                    ; 8a 46 f6
@@ -14272,5 +14234,5 @@
     mov dx, strict word 00075h                ; ba 75 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 fd 7f
+    call 01650h                               ; e8 74 80
     mov bl, al                                ; 88 c3
     db  0feh, 0c3h
@@ -14279,10 +14241,10 @@
     mov dx, strict word 00075h                ; ba 75 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 fc 7f
-    jmp near 09716h                           ; e9 b1 00
+    call 0165eh                               ; e8 73 80
+    jmp near 0969fh                           ; e9 b1 00
     cmp dx, 0eb14h                            ; 81 fa 14 eb
-    jne short 096bfh                          ; 75 54
+    jne short 09648h                          ; 75 54
     cmp ax, 00101h                            ; 3d 01 01
-    jne short 096bfh                          ; 75 4f
+    jne short 09648h                          ; 75 4f
     mov es, [bp-016h]                         ; 8e 46 ea
     mov bx, word [bp-00eh]                    ; 8b 5e f2
@@ -14299,11 +14261,11 @@
     mov ax, word [bp-00eh]                    ; 8b 46 f2
     mov dx, es                                ; 8c c2
-    call 08960h                               ; e8 b0 f2
+    call 088e9h                               ; e8 b0 f2
     mov byte [bp-00ah], cl                    ; 88 4e f6
     test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
-    je short 096c1h                           ; 74 07
+    je short 0964ah                           ; 74 07
     mov dx, strict word 00001h                ; ba 01 00
-    jmp short 096c3h                          ; eb 04
-    jmp short 09716h                          ; eb 55
+    jmp short 0964ch                          ; eb 04
+    jmp short 0969fh                          ; eb 55
     xor dx, dx                                ; 31 d2
     mov bl, byte [bp-008h]                    ; 8a 5e f8
@@ -14344,5 +14306,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_mem_alloc_:                             ; 0xf972f LB 0x43
+ahci_mem_alloc_:                             ; 0xf96b8 LB 0x43
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14354,7 +14316,7 @@
     mov dx, 00413h                            ; ba 13 04
     xor ax, ax                                ; 31 c0
-    call 0166ch                               ; e8 2d 7f
+    call 0166ch                               ; e8 a4 7f
     test ax, ax                               ; 85 c0
-    je short 09768h                           ; 74 25
+    je short 096f1h                           ; 74 25
     dec ax                                    ; 48
     mov bx, ax                                ; 89 c3
@@ -14363,5 +14325,5 @@
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 0974bh                               ; e2 fa
+    loop 096d4h                               ; e2 fa
     mov si, ax                                ; 89 c6
     mov di, dx                                ; 89 d7
@@ -14369,8 +14331,8 @@
     shr di, 1                                 ; d1 ef
     rcr si, 1                                 ; d1 de
-    loop 09758h                               ; e2 fa
+    loop 096e1h                               ; e2 fa
     mov dx, 00413h                            ; ba 13 04
     xor ax, ax                                ; 31 c0
-    call 0167ah                               ; e8 14 7f
+    call 0167ah                               ; e8 8b 7f
     mov ax, si                                ; 89 f0
     lea sp, [bp-00ah]                         ; 8d 66 f6
@@ -14382,5 +14344,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_hba_init_:                              ; 0xf9772 LB 0x16d
+ahci_hba_init_:                              ; 0xf96fb LB 0x16d
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14394,5 +14356,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 e4 7e
+    call 0166ch                               ; e8 5b 7f
     mov bx, 00122h                            ; bb 22 01
     mov di, ax                                ; 89 c7
@@ -14411,9 +14373,9 @@
     shr eax, 010h                             ; 66 c1 e8 10
     xchg dx, ax                               ; 92
-    call 0972fh                               ; e8 83 ff
+    call 096b8h                               ; e8 83 ff
     mov word [bp-010h], ax                    ; 89 46 f0
     test ax, ax                               ; 85 c0
-    jne short 097b6h                          ; 75 03
-    jmp near 098beh                           ; e9 08 01
+    jne short 0973fh                          ; 75 03
+    jmp near 09847h                           ; e9 08 01
     mov ax, word [bp-010h]                    ; 8b 46 f0
     mov es, di                                ; 8e c7
@@ -14465,5 +14427,5 @@
     xchg dx, ax                               ; 92
     test AL, strict byte 001h                 ; a8 01
-    jne short 09810h                          ; 75 de
+    jne short 09799h                          ; 75 de
     xor ax, ax                                ; 31 c0
     xor cx, cx                                ; 31 c9
@@ -14483,31 +14445,31 @@
     mov bx, strict word 0001fh                ; bb 1f 00
     xor cx, cx                                ; 31 c9
-    call 087d0h                               ; e8 7a ef
+    call 08759h                               ; e8 7a ef
     db  0feh, 0c0h
     ; inc al                                    ; fe c0
     mov byte [bp-00ch], al                    ; 88 46 f4
     mov byte [bp-00eh], 000h                  ; c6 46 f2 00
-    jmp short 09882h                          ; eb 21
+    jmp short 0980bh                          ; eb 21
     xor al, al                                ; 30 c0
     test al, al                               ; 84 c0
-    je short 09879h                           ; 74 12
+    je short 09802h                           ; 74 12
     mov bl, byte [bp-00eh]                    ; 8a 5e f2
     xor bh, bh                                ; 30 ff
     xor ax, ax                                ; 31 c0
     mov dx, word [bp-010h]                    ; 8b 56 f0
-    call 0924ch                               ; e8 d8 f9
+    call 091d5h                               ; e8 d8 f9
     dec byte [bp-00ch]                        ; fe 4e f4
-    je short 098bch                           ; 74 43
+    je short 09845h                           ; 74 43
     inc byte [bp-00eh]                        ; fe 46 f2
     cmp byte [bp-00eh], 020h                  ; 80 7e f2 20
-    jnc short 098bch                          ; 73 3a
+    jnc short 09845h                          ; 73 3a
     mov cl, byte [bp-00eh]                    ; 8a 4e f2
     xor ch, ch                                ; 30 ed
     mov bx, strict word 00001h                ; bb 01 00
     xor di, di                                ; 31 ff
-    jcxz 09894h                               ; e3 06
+    jcxz 0981dh                               ; e3 06
     sal bx, 1                                 ; d1 e3
     rcl di, 1                                 ; d1 d7
-    loop 0988eh                               ; e2 fa
+    loop 09817h                               ; e2 fa
     mov ax, strict word 0000ch                ; b8 0c 00
     xor cx, cx                                ; 31 c9
@@ -14525,9 +14487,9 @@
     xchg dx, ax                               ; 92
     test dx, di                               ; 85 fa
-    jne short 098b8h                          ; 75 04
+    jne short 09841h                          ; 75 04
     test ax, bx                               ; 85 d8
-    je short 09861h                           ; 74 a9
+    je short 097eah                           ; 74 a9
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 09863h                          ; eb a7
+    jmp short 097ech                          ; eb a7
     xor ax, ax                                ; 31 c0
     lea sp, [bp-00ah]                         ; 8d 66 f6
@@ -14539,7 +14501,7 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0c7h, 099h, 0a5h, 099h, 0abh, 099h, 0b1h, 099h, 0b7h
-    db  099h, 0bdh, 099h, 0c3h, 099h, 0c7h, 099h
-_ahci_init:                                  ; 0xf98df LB 0x119
+    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 050h, 099h, 02eh, 099h, 034h, 099h, 03ah, 099h, 040h
+    db  099h, 046h, 099h, 04ch, 099h, 050h, 099h
+_ahci_init:                                  ; 0xf9868 LB 0x119
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14548,8 +14510,8 @@
     mov ax, 00601h                            ; b8 01 06
     mov dx, strict word 00001h                ; ba 01 00
-    call 09e13h                               ; e8 24 05
+    call 09d9ch                               ; e8 24 05
     mov dx, ax                                ; 89 c2
     cmp ax, strict word 0ffffh                ; 3d ff ff
-    je short 09942h                           ; 74 4c
+    je short 098cbh                           ; 74 4c
     xor al, al                                ; 30 c0
     shr ax, 008h                              ; c1 e8 08
@@ -14559,8 +14521,8 @@
     xor ah, ah                                ; 30 e4
     mov bx, strict word 00034h                ; bb 34 00
-    call 09e3eh                               ; e8 33 05
+    call 09da4h                               ; e8 10 05
     mov cl, al                                ; 88 c1
     test cl, cl                               ; 84 c9
-    je short 09945h                           ; 74 34
+    je short 098ceh                           ; 74 34
     mov bl, cl                                ; 88 cb
     xor bh, bh                                ; 30 ff
@@ -14573,7 +14535,7 @@
     mov dx, word [bp-010h]                    ; 8b 56 f0
     mov ax, word [bp-00ch]                    ; 8b 46 f4
-    call 09e3eh                               ; e8 0e 05
+    call 09da4h                               ; e8 eb 04
     cmp AL, strict byte 012h                  ; 3c 12
-    je short 09945h                           ; 74 11
+    je short 098ceh                           ; 74 11
     mov bl, cl                                ; 88 cb
     db  0feh, 0c3h
@@ -14582,8 +14544,8 @@
     mov dx, word [bp-010h]                    ; 8b 56 f0
     mov ax, word [bp-00ch]                    ; 8b 46 f4
-    jmp short 09908h                          ; eb c6
-    jmp near 099f2h                           ; e9 ad 00
+    jmp short 09891h                          ; eb c6
+    jmp near 0997bh                           ; e9 ad 00
     test cl, cl                               ; 84 c9
-    je short 09942h                           ; 74 f9
+    je short 098cbh                           ; 74 f9
     add cl, 002h                              ; 80 c1 02
     mov bl, cl                                ; 88 cb
@@ -14597,7 +14559,7 @@
     mov dx, word [bp-00eh]                    ; 8b 56 f2
     mov ax, word [bp-00ah]                    ; 8b 46 f6
-    call 09e3eh                               ; e8 d3 04
+    call 09da4h                               ; e8 b0 04
     cmp AL, strict byte 010h                  ; 3c 10
-    jne short 09942h                          ; 75 d3
+    jne short 098cbh                          ; 75 d3
     mov byte [bp-004h], 000h                  ; c6 46 fc 00
     mov bl, cl                                ; 88 cb
@@ -14606,29 +14568,29 @@
     mov dx, word [bp-00eh]                    ; 8b 56 f2
     mov ax, word [bp-00ah]                    ; 8b 46 f6
-    call 09e6ch                               ; e8 e9 04
+    call 09dd2h                               ; e8 c6 04
     mov dx, ax                                ; 89 c2
     and ax, strict word 0000fh                ; 25 0f 00
     sub ax, strict word 00004h                ; 2d 04 00
     cmp ax, strict word 0000bh                ; 3d 0b 00
-    jnbe short 099c7h                         ; 77 37
+    jnbe short 09950h                         ; 77 37
     push CS                                   ; 0e
     pop ES                                    ; 07
     mov cx, strict word 00008h                ; b9 08 00
-    mov di, 098c8h                            ; bf c8 98
+    mov di, 09851h                            ; bf 51 98
     repne scasb                               ; f2 ae
     sal cx, 1                                 ; d1 e1
     mov di, cx                                ; 89 cf
-    mov ax, word [cs:di-06731h]               ; 2e 8b 85 cf 98
+    mov ax, word [cs:di-067a8h]               ; 2e 8b 85 58 98
     jmp ax                                    ; ff e0
     mov byte [bp-004h], 010h                  ; c6 46 fc 10
-    jmp short 099c7h                          ; eb 1c
+    jmp short 09950h                          ; eb 1c
     mov byte [bp-004h], 014h                  ; c6 46 fc 14
-    jmp short 099c7h                          ; eb 16
+    jmp short 09950h                          ; eb 16
     mov byte [bp-004h], 018h                  ; c6 46 fc 18
-    jmp short 099c7h                          ; eb 10
+    jmp short 09950h                          ; eb 10
     mov byte [bp-004h], 01ch                  ; c6 46 fc 1c
-    jmp short 099c7h                          ; eb 0a
+    jmp short 09950h                          ; eb 0a
     mov byte [bp-004h], 020h                  ; c6 46 fc 20
-    jmp short 099c7h                          ; eb 04
+    jmp short 09950h                          ; eb 04
     mov byte [bp-004h], 024h                  ; c6 46 fc 24
     mov cx, dx                                ; 89 d1
@@ -14637,5 +14599,5 @@
     mov al, byte [bp-004h]                    ; 8a 46 fc
     test al, al                               ; 84 c0
-    je short 099f2h                           ; 74 1c
+    je short 0997bh                           ; 74 1c
     mov bl, al                                ; 88 c3
     xor bh, bh                                ; 30 ff
@@ -14644,15 +14606,15 @@
     mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
-    call 09e96h                               ; e8 af 04
+    call 09dfch                               ; e8 8c 04
     test AL, strict byte 001h                 ; a8 01
-    je short 099f2h                           ; 74 07
+    je short 0997bh                           ; 74 07
     and AL, strict byte 0f0h                  ; 24 f0
     add ax, cx                                ; 01 c8
-    call 09772h                               ; e8 80 fd
+    call 096fbh                               ; e8 80 fd
     lea sp, [bp-002h]                         ; 8d 66 fe
     pop di                                    ; 5f
     pop bp                                    ; 5d
     retn                                      ; c3
-apm_out_str_:                                ; 0xf99f8 LB 0x39
+apm_out_str_:                                ; 0xf9981 LB 0x39
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14660,5 +14622,5 @@
     mov bx, ax                                ; 89 c3
     cmp byte [bx], 000h                       ; 80 3f 00
-    je short 09a0dh                           ; 74 0a
+    je short 09996h                           ; 74 0a
     mov al, byte [bx]                         ; 8a 07
     out DX, AL                                ; ee
@@ -14667,21 +14629,20 @@
     db  00ah, 0c0h
     ; or al, al                                 ; 0a c0
-    jne short 09a05h                          ; 75 f8
+    jne short 0998eh                          ; 75 f8
     lea sp, [bp-002h]                         ; 8d 66 fe
     pop bx                                    ; 5b
     pop bp                                    ; 5d
     retn                                      ; c3
-    push dx                                   ; 52
-    call far 09a64h:09adah                    ; 9a da 9a 64 9a
-    jnle short 099b5h                         ; 7f 9a
-    ficomp dword [bp+si-06556h]               ; da 9a aa 9a
-    ficomp dword [bp+si-06520h]               ; da 9a e0 9a
-    scasw                                     ; af
-    call far 09aafh:09aafh                    ; 9a af 9a af 9a
-    pop DS                                    ; 1f
-    wait                                      ; 9b
-    scasw                                     ; af
-    call far 09b18h:09aafh                    ; 9a af 9a 18 9b
-_apm_function:                               ; 0xf9a31 LB 0xf3
+    fistp dword [bx+di-0659dh]                ; db 99 63 9a
+    in ax, DX                                 ; ed
+    cwd                                       ; 99
+    or byte [bp+si-0659dh], bl                ; 08 9a 63 9a
+    xor bx, word [bp+si-0659dh]               ; 33 9a 63 9a
+    imul bx, word [bp+si-065c8h], 09a38h      ; 69 9a 38 9a 38 9a
+    cmp byte [bp+si-06558h], bl               ; 38 9a a8 9a
+    cmp byte [bp+si-065c8h], bl               ; 38 9a 38 9a
+    db  0a1h
+    db  09ah
+_apm_function:                               ; 0xf99ba LB 0xf3
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14691,21 +14652,21 @@
     xor ah, ah                                ; 30 e4
     cmp ax, strict word 0000eh                ; 3d 0e 00
-    jnbe short 09aafh                         ; 77 6c
+    jnbe short 09a38h                         ; 77 6c
     mov bx, ax                                ; 89 c3
     add bx, ax                                ; 01 c3
     mov dx, word [bp+018h]                    ; 8b 56 18
     or dl, 001h                               ; 80 ca 01
-    jmp word [cs:bx-065edh]                   ; 2e ff a7 13 9a
+    jmp word [cs:bx-06664h]                   ; 2e ff a7 9c 99
     mov word [bp+012h], 00102h                ; c7 46 12 02 01
     mov word [bp+00ch], 0504dh                ; c7 46 0c 4d 50
     mov word [bp+010h], strict word 00003h    ; c7 46 10 03 00
-    jmp near 09adah                           ; e9 76 00
+    jmp near 09a63h                           ; e9 76 00
     mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
-    mov word [bp+00ch], 0a0b4h                ; c7 46 0c b4 a0
+    mov word [bp+00ch], 0a034h                ; c7 46 0c 34 a0
     mov word [bp+010h], 0f000h                ; c7 46 10 00 f0
     mov ax, strict word 0fff0h                ; b8 f0 ff
     mov word [bp+006h], ax                    ; 89 46 06
     mov word [bp+004h], ax                    ; 89 46 04
-    jmp near 09adah                           ; e9 5b 00
+    jmp near 09a63h                           ; e9 5b 00
     mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
     mov word [bp+00ch], 0da40h                ; c7 46 0c 40 da
@@ -14720,17 +14681,17 @@
     mov si, ax                                ; 89 c6
     sal esi, 010h                             ; 66 c1 e6 10
-    jmp near 09adah                           ; e9 30 00
+    jmp near 09a63h                           ; e9 30 00
     sti                                       ; fb
     hlt                                       ; f4
-    jmp near 09adah                           ; e9 2b 00
+    jmp near 09a63h                           ; e9 2b 00
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 69 7e
+    call 01923h                               ; e8 e0 7e
     push word [bp+00ch]                       ; ff 76 0c
     push word [bp+012h]                       ; ff 76 12
     push 00d29h                               ; 68 29 0d
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 9e 7e
+    call 01966h                               ; e8 15 7f
     add sp, strict byte 00008h                ; 83 c4 08
     mov ax, word [bp+012h]                    ; 8b 46 12
@@ -14744,28 +14705,28 @@
     retn                                      ; c3
     cmp word [bp+010h], strict byte 00003h    ; 83 7e 10 03
-    je short 09b05h                           ; 74 1f
+    je short 09a8eh                           ; 74 1f
     cmp word [bp+010h], strict byte 00002h    ; 83 7e 10 02
-    je short 09afdh                           ; 74 11
+    je short 09a86h                           ; 74 11
     cmp word [bp+010h], strict byte 00001h    ; 83 7e 10 01
-    jne short 09b0dh                          ; 75 1b
+    jne short 09a96h                          ; 75 1b
     mov dx, 08900h                            ; ba 00 89
     mov ax, 00d10h                            ; b8 10 0d
-    call 099f8h                               ; e8 fd fe
-    jmp short 09adah                          ; eb dd
+    call 09981h                               ; e8 fd fe
+    jmp short 09a63h                          ; eb dd
     mov dx, 08900h                            ; ba 00 89
     mov ax, 00d18h                            ; b8 18 0d
-    jmp short 09af8h                          ; eb f3
+    jmp short 09a81h                          ; eb f3
     mov dx, 08900h                            ; ba 00 89
     mov ax, 00d20h                            ; b8 20 0d
-    jmp short 09af8h                          ; eb eb
+    jmp short 09a81h                          ; eb eb
     or ah, 00ah                               ; 80 cc 0a
     mov word [bp+012h], ax                    ; 89 46 12
     mov word [bp+018h], dx                    ; 89 56 18
-    jmp short 09adah                          ; eb c2
+    jmp short 09a63h                          ; eb c2
     mov word [bp+012h], 00102h                ; c7 46 12 02 01
-    jmp short 09adah                          ; eb bb
+    jmp short 09a63h                          ; eb bb
     or ah, 080h                               ; 80 cc 80
-    jmp short 09b10h                          ; eb ec
-pci16_select_reg_:                           ; 0xf9b24 LB 0x24
+    jmp short 09a99h                          ; eb ec
+pci16_select_reg_:                           ; 0xf9aad LB 0x24
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14784,5 +14745,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci16_find_device_:                          ; 0xf9b48 LB 0xf9
+pci16_find_device_:                          ; 0xf9ad1 LB 0xf9
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14798,8 +14759,8 @@
     mov byte [bp-008h], 000h                  ; c6 46 f8 00
     test bl, 007h                             ; f6 c3 07
-    jne short 09b90h                          ; 75 2d
+    jne short 09b19h                          ; 75 2d
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, bx                                ; 89 d8
-    call 09b24h                               ; e8 b9 ff
+    call 09aadh                               ; e8 b9 ff
     mov dx, 00cfeh                            ; ba fe 0c
     in AL, DX                                 ; ec
@@ -14808,23 +14769,23 @@
     mov byte [bp-006h], al                    ; 88 46 fa
     cmp AL, strict byte 0ffh                  ; 3c ff
-    jne short 09b7eh                          ; 75 06
+    jne short 09b07h                          ; 75 06
     add bx, strict byte 00008h                ; 83 c3 08
-    jmp near 09c11h                           ; e9 93 00
+    jmp near 09b9ah                           ; e9 93 00
     test byte [bp-006h], 080h                 ; f6 46 fa 80
-    je short 09b8bh                           ; 74 07
+    je short 09b14h                           ; 74 07
     mov word [bp-010h], strict word 00001h    ; c7 46 f0 01 00
-    jmp short 09b90h                          ; eb 05
+    jmp short 09b19h                          ; eb 05
     mov word [bp-010h], strict word 00008h    ; c7 46 f0 08 00
     mov al, byte [bp-006h]                    ; 8a 46 fa
     and AL, strict byte 007h                  ; 24 07
     cmp AL, strict byte 001h                  ; 3c 01
-    jne short 09bb8h                          ; 75 1f
+    jne short 09b41h                          ; 75 1f
     mov ax, bx                                ; 89 d8
     shr ax, 008h                              ; c1 e8 08
     test ax, ax                               ; 85 c0
-    jne short 09bb8h                          ; 75 16
+    jne short 09b41h                          ; 75 16
     mov dx, strict word 0001ah                ; ba 1a 00
     mov ax, bx                                ; 89 d8
-    call 09b24h                               ; e8 7a ff
+    call 09aadh                               ; e8 7a ff
     mov dx, 00cfeh                            ; ba fe 0c
     in AL, DX                                 ; ec
@@ -14832,13 +14793,13 @@
     ; sub ah, ah                                ; 2a e4
     cmp al, byte [bp-008h]                    ; 3a 46 f8
-    jbe short 09bb8h                          ; 76 03
+    jbe short 09b41h                          ; 76 03
     mov byte [bp-008h], al                    ; 88 46 f8
     test di, di                               ; 85 ff
-    je short 09bc1h                           ; 74 05
+    je short 09b4ah                           ; 74 05
     mov dx, strict word 00008h                ; ba 08 00
-    jmp short 09bc3h                          ; eb 02
+    jmp short 09b4ch                          ; eb 02
     xor dx, dx                                ; 31 d2
     mov ax, bx                                ; 89 d8
-    call 09b24h                               ; e8 5c ff
+    call 09aadh                               ; e8 5c ff
     mov dx, 00cfch                            ; ba fc 0c
     in eax, DX                                ; 66 ed
@@ -14851,22 +14812,22 @@
     mov word [bp-00eh], strict word 00000h    ; c7 46 f2 00 00
     test di, di                               ; 85 ff
-    je short 09bf2h                           ; 74 0f
+    je short 09b7bh                           ; 74 0f
     mov cx, strict word 00008h                ; b9 08 00
     shr dx, 1                                 ; d1 ea
     rcr ax, 1                                 ; d1 d8
-    loop 09be6h                               ; e2 fa
+    loop 09b6fh                               ; e2 fa
     mov word [bp-00ah], ax                    ; 89 46 f6
     mov word [bp-00ch], dx                    ; 89 56 f4
     mov ax, word [bp-00ch]                    ; 8b 46 f4
     cmp ax, word [bp-014h]                    ; 3b 46 ec
-    jne short 09c02h                          ; 75 08
+    jne short 09b8bh                          ; 75 08
     mov ax, word [bp-00ah]                    ; 8b 46 f6
     cmp ax, word [bp-012h]                    ; 3b 46 ee
-    je short 09c08h                           ; 74 06
+    je short 09b91h                           ; 74 06
     cmp word [bp-00eh], strict byte 00000h    ; 83 7e f2 00
-    je short 09c0eh                           ; 74 06
+    je short 09b97h                           ; 74 06
     dec si                                    ; 4e
     cmp si, strict byte 0ffffh                ; 83 fe ff
-    je short 09c22h                           ; 74 14
+    je short 09babh                           ; 74 14
     add bx, word [bp-010h]                    ; 03 5e f0
     mov dx, bx                                ; 89 da
@@ -14875,10 +14836,10 @@
     xor ah, ah                                ; 30 e4
     cmp dx, ax                                ; 39 c2
-    jnbe short 09c22h                         ; 77 03
-    jmp near 09b5eh                           ; e9 3c ff
+    jnbe short 09babh                         ; 77 03
+    jmp near 09ae7h                           ; e9 3c ff
     cmp si, strict byte 0ffffh                ; 83 fe ff
-    jne short 09c2bh                          ; 75 04
+    jne short 09bb4h                          ; 75 04
     mov ax, bx                                ; 89 d8
-    jmp short 09c2eh                          ; eb 03
+    jmp short 09bb7h                          ; eb 03
     mov ax, strict word 0ffffh                ; b8 ff ff
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -14887,13 +14848,10 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-    and bl, byte [di-062c5h]                  ; 22 9d 3b 9d
-    dec bp                                    ; 4d
+    stosw                                     ; ab
+    pushfw                                    ; 9c
+    les bx, [si-0632ah]                       ; c4 9c d6 9c
+    jmp far 00f9ch:0fc9ch                     ; ea 9c fc 9c 0f
     popfw                                     ; 9d
-    popaw                                     ; 61
-    popfw                                     ; 9d
-    jnc short 09bdch                          ; 73 9d
-    db  086h
-    popfw                                     ; 9d
-_pci16_function:                             ; 0xf9c41 LB 0x1d2
+_pci16_function:                             ; 0xf9bca LB 0x1d2
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14909,18 +14867,18 @@
     xor ah, ah                                ; 30 e4
     cmp bx, strict byte 00003h                ; 83 fb 03
-    jc short 09c73h                           ; 72 13
-    jbe short 09cc6h                          ; 76 64
+    jc short 09bfch                           ; 72 13
+    jbe short 09c4fh                          ; 76 64
     cmp bx, strict byte 0000eh                ; 83 fb 0e
-    je short 09cceh                           ; 74 67
+    je short 09c57h                           ; 74 67
     cmp bx, strict byte 00008h                ; 83 fb 08
-    jc short 09c7dh                           ; 72 11
+    jc short 09c06h                           ; 72 11
     cmp bx, strict byte 0000dh                ; 83 fb 0d
-    jbe short 09cd1h                          ; 76 60
-    jmp short 09c7dh                          ; eb 0a
+    jbe short 09c5ah                          ; 76 60
+    jmp short 09c06h                          ; eb 0a
     cmp bx, strict byte 00002h                ; 83 fb 02
-    je short 09c9ch                           ; 74 24
+    je short 09c25h                           ; 74 24
     cmp bx, strict byte 00001h                ; 83 fb 01
-    je short 09c80h                           ; 74 03
-    jmp near 09ddfh                           ; e9 5f 01
+    je short 09c09h                           ; 74 03
+    jmp near 09d68h                           ; 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
@@ -14928,52 +14886,52 @@
     mov word [bp+018h], 04350h                ; c7 46 18 50 43
     mov word [bp+01ah], 02049h                ; c7 46 1a 49 20
-    jmp near 09e0ch                           ; e9 70 01
+    jmp near 09d95h                           ; e9 70 01
     cmp word [bp+018h], strict byte 0ffffh    ; 83 7e 18 ff
-    jne short 09ca8h                          ; 75 06
+    jne short 09c31h                          ; 75 06
     or ah, 083h                               ; 80 cc 83
-    jmp near 09e05h                           ; e9 5d 01
+    jmp near 09d8eh                           ; e9 5d 01
     mov bx, word [bp+008h]                    ; 8b 5e 08
     mov dx, word [bp+01ch]                    ; 8b 56 1c
     mov ax, word [bp+018h]                    ; 8b 46 18
     xor cx, cx                                ; 31 c9
-    call 09b48h                               ; e8 92 fe
+    call 09ad1h                               ; e8 92 fe
     cmp ax, strict word 0ffffh                ; 3d ff ff
-    jne short 09cc8h                          ; 75 0d
+    jne short 09c51h                          ; 75 0d
     mov ax, word [bp+020h]                    ; 8b 46 20
     xor ah, ah                                ; 30 e4
     or ah, 086h                               ; 80 cc 86
-    jmp near 09e05h                           ; e9 3f 01
-    jmp short 09cd3h                          ; eb 0b
+    jmp near 09d8eh                           ; e9 3f 01
+    jmp short 09c5ch                          ; eb 0b
     mov word [bp+014h], ax                    ; 89 46 14
-    jmp near 09e0ch                           ; e9 3e 01
-    jmp near 09d9ah                           ; e9 c9 00
-    jmp short 09cf8h                          ; eb 25
+    jmp near 09d95h                           ; e9 3e 01
+    jmp near 09d23h                           ; e9 c9 00
+    jmp short 09c81h                          ; eb 25
     mov bx, word [bp+008h]                    ; 8b 5e 08
     mov ax, word [bp+01ch]                    ; 8b 46 1c
     mov dx, word [bp+01eh]                    ; 8b 56 1e
     mov cx, strict word 00001h                ; b9 01 00
-    call 09b48h                               ; e8 66 fe
+    call 09ad1h                               ; e8 66 fe
     cmp ax, strict word 0ffffh                ; 3d ff ff
-    jne short 09cf2h                          ; 75 0b
+    jne short 09c7bh                          ; 75 0b
     mov ax, word [bp+020h]                    ; 8b 46 20
     xor ah, ah                                ; 30 e4
     or ah, 086h                               ; 80 cc 86
-    jmp near 09e05h                           ; e9 13 01
+    jmp near 09d8eh                           ; e9 13 01
     mov word [bp+014h], ax                    ; 89 46 14
-    jmp near 09e0ch                           ; e9 14 01
+    jmp near 09d95h                           ; e9 14 01
     cmp word [bp+004h], 00100h                ; 81 7e 04 00 01
-    jc short 09d05h                           ; 72 06
+    jc short 09c8eh                           ; 72 06
     or ah, 087h                               ; 80 cc 87
-    jmp near 09e05h                           ; e9 00 01
+    jmp near 09d8eh                           ; e9 00 01
     mov dx, word [bp+004h]                    ; 8b 56 04
     mov ax, word [bp+014h]                    ; 8b 46 14
-    call 09b24h                               ; e8 16 fe
+    call 09aadh                               ; e8 16 fe
     mov bx, word [bp+020h]                    ; 8b 5e 20
     xor bh, bh                                ; 30 ff
     sub bx, strict byte 00008h                ; 83 eb 08
     cmp bx, strict byte 00005h                ; 83 fb 05
-    jnbe short 09d83h                         ; 77 68
+    jnbe short 09d0ch                         ; 77 68
     add bx, bx                                ; 01 db
-    jmp word [cs:bx-063cbh]                   ; 2e ff a7 35 9c
+    jmp word [cs:bx-06442h]                   ; 2e ff a7 be 9b
     mov bx, word [bp+01ch]                    ; 8b 5e 1c
     xor bl, bl                                ; 30 db
@@ -14986,5 +14944,5 @@
     or bx, ax                                 ; 09 c3
     mov word [bp+01ch], bx                    ; 89 5e 1c
-    jmp short 09d83h                          ; eb 48
+    jmp short 09d0ch                          ; eb 48
     mov dx, word [bp+004h]                    ; 8b 56 04
     xor dh, dh                                ; 30 f6
@@ -14993,5 +14951,5 @@
     in ax, DX                                 ; ed
     mov word [bp+01ch], ax                    ; 89 46 1c
-    jmp short 09d83h                          ; eb 36
+    jmp short 09d0ch                          ; eb 36
     mov dx, 00cfch                            ; ba fc 0c
     in eax, DX                                ; 66 ed
@@ -15002,5 +14960,5 @@
     mov word [bp+01ch], ax                    ; 89 46 1c
     mov word [bp+01eh], dx                    ; 89 56 1e
-    jmp short 09d83h                          ; eb 22
+    jmp short 09d0ch                          ; eb 22
     mov ax, word [bp+01ch]                    ; 8b 46 1c
     mov dx, word [bp+004h]                    ; 8b 56 04
@@ -15009,5 +14967,5 @@
     add dx, 00cfch                            ; 81 c2 fc 0c
     out DX, AL                                ; ee
-    jmp short 09d83h                          ; eb 10
+    jmp short 09d0ch                          ; eb 10
     mov ax, word [bp+01ch]                    ; 8b 46 1c
     mov dx, word [bp+004h]                    ; 8b 56 04
@@ -15016,5 +14974,5 @@
     add dx, 00cfch                            ; 81 c2 fc 0c
     out DX, ax                                ; ef
-    jmp near 09e0ch                           ; e9 86 00
+    jmp near 09d95h                           ; e9 86 00
     mov ax, word [bp+01ch]                    ; 8b 46 1c
     mov cx, word [bp+01eh]                    ; 8b 4e 1e
@@ -15025,5 +14983,5 @@
     ; mov ax, cx                                ; 8b c1
     out DX, eax                               ; 66 ef
-    jmp short 09e0ch                          ; eb 72
+    jmp short 09d95h                          ; eb 72
     mov bx, word [bp+004h]                    ; 8b 5e 04
     mov es, [bp+026h]                         ; 8e 46 26
@@ -15032,5 +14990,5 @@
     mov cx, word [0f4a0h]                     ; 8b 0e a0 f4
     cmp cx, word [es:bx]                      ; 26 3b 0f
-    jbe short 09dc0h                          ; 76 11
+    jbe short 09d49h                          ; 76 11
     mov ax, word [bp+020h]                    ; 8b 46 20
     xor ah, ah                                ; 30 e4
@@ -15038,5 +14996,5 @@
     mov word [bp+020h], ax                    ; 89 46 20
     or word [bp+02ch], strict byte 00001h     ; 83 4e 2c 01
-    jmp short 09dd4h                          ; eb 14
+    jmp short 09d5dh                          ; eb 14
     les di, [es:bx+002h]                      ; 26 c4 7f 02
     mov si, 0f2c0h                            ; be c0 f2
@@ -15050,9 +15008,9 @@
     les bx, [bp-008h]                         ; c4 5e f8
     mov word [es:bx], ax                      ; 26 89 07
-    jmp short 09e0ch                          ; eb 2d
+    jmp short 09d95h                          ; eb 2d
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 39 7b
+    call 01923h                               ; e8 b0 7b
     mov ax, word [bp+014h]                    ; 8b 46 14
     push ax                                   ; 50
@@ -15061,5 +15019,5 @@
     push 00d5ch                               ; 68 5c 0d
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 6c 7b
+    call 01966h                               ; e8 e3 7b
     add sp, strict byte 00008h                ; 83 c4 08
     mov ax, word [bp+020h]                    ; 8b 46 20
@@ -15073,29 +15031,11 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_find_classcode_:                         ; 0xf9e13 LB 0x2b
+pci_find_classcode_:                         ; 0xf9d9c LB 0x8
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    push cx                                   ; 51
-    push si                                   ; 56
-    mov cx, dx                                ; 89 d1
-    xor si, si                                ; 31 f6
-    mov dx, ax                                ; 89 c2
-    mov ax, 0b103h                            ; b8 03 b1
-    sal ecx, 010h                             ; 66 c1 e1 10
-    db  08bh, 0cah
-    ; mov cx, dx                                ; 8b ca
-    int 01ah                                  ; cd 1a
-    cmp ah, 000h                              ; 80 fc 00
-    je near 09e34h                            ; 0f 84 03 00
-    mov bx, strict word 0ffffh                ; bb ff ff
-    mov ax, bx                                ; 89 d8
-    lea sp, [bp-006h]                         ; 8d 66 fa
-    pop si                                    ; 5e
-    pop cx                                    ; 59
-    pop bx                                    ; 5b
+    mov ax, strict word 0ffffh                ; b8 ff ff
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_read_config_byte_:                       ; 0xf9e3e LB 0x2e
+pci_read_config_byte_:                       ; 0xf9da4 LB 0x2e
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15123,5 +15063,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_read_config_word_:                       ; 0xf9e6c LB 0x2a
+pci_read_config_word_:                       ; 0xf9dd2 LB 0x2a
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15147,26 +15087,41 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_read_config_dword_:                      ; 0xf9e96 LB 0x30
+pci_read_config_dword_:                      ; 0xf9dfc LB 0x4e
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     push cx                                   ; 51
     push di                                   ; 57
+    push ax                                   ; 50
     mov dh, al                                ; 88 c6
-    mov bh, dl                                ; 88 d7
+    mov cl, dl                                ; 88 d1
+    mov byte [bp-006h], bl                    ; 88 5e fa
     mov al, bl                                ; 88 d8
     xor ah, ah                                ; 30 e4
     mov dl, dh                                ; 88 f2
     xor dh, dh                                ; 30 f6
-    sal dx, 008h                              ; c1 e2 08
-    mov bl, bh                                ; 88 fb
-    xor bh, bh                                ; 30 ff
-    or bx, dx                                 ; 09 d3
+    mov di, dx                                ; 89 d7
+    sal di, 008h                              ; c1 e7 08
+    mov dl, cl                                ; 88 ca
+    or dx, di                                 ; 09 fa
     mov di, ax                                ; 89 c7
-    mov ax, 0b10ah                            ; b8 0a b1
+    mov bx, dx                                ; 89 d3
+    mov ax, 0b109h                            ; b8 09 b1
     int 01ah                                  ; cd 1a
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    shr ecx, 010h                             ; 66 c1 e9 10
-    mov dx, cx                                ; 89 ca
+    test cx, cx                               ; 85 c9
+    jne short 09e3bh                          ; 75 14
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    mov di, ax                                ; 89 c7
+    inc di                                    ; 47
+    inc di                                    ; 47
+    mov bx, dx                                ; 89 d3
+    mov ax, 0b109h                            ; b8 09 b1
+    int 01ah                                  ; cd 1a
+    test cx, cx                               ; 85 c9
+    je short 09e40h                           ; 74 05
+    mov ax, strict word 00001h                ; b8 01 00
+    jmp short 09e42h                          ; eb 02
+    xor ax, ax                                ; 31 c0
+    cwd                                       ; 99
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop di                                    ; 5f
@@ -15174,5 +15129,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-vds_is_present_:                             ; 0xf9ec6 LB 0x1d
+vds_is_present_:                             ; 0xf9e4a LB 0x1d
     push bx                                   ; 53
     push bp                                   ; 55
@@ -15182,5 +15137,5 @@
     mov es, ax                                ; 8e c0
     test byte [es:bx], 020h                   ; 26 f6 07 20
-    je short 09edeh                           ; 74 06
+    je short 09e62h                           ; 74 06
     mov ax, strict word 00001h                ; b8 01 00
     pop bp                                    ; 5d
@@ -15191,5 +15146,5 @@
     pop bx                                    ; 5b
     retn                                      ; c3
-vds_real_to_lin_:                            ; 0xf9ee3 LB 0x1e
+vds_real_to_lin_:                            ; 0xf9e67 LB 0x1e
     push bx                                   ; 53
     push cx                                   ; 51
@@ -15202,5 +15157,5 @@
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 09ef1h                               ; e2 fa
+    loop 09e75h                               ; e2 fa
     xor cx, cx                                ; 31 c9
     add ax, bx                                ; 01 d8
@@ -15210,5 +15165,5 @@
     pop bx                                    ; 5b
     retn                                      ; c3
-vds_build_sg_list_:                          ; 0xf9f01 LB 0x77
+vds_build_sg_list_:                          ; 0xf9e85 LB 0x77
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15224,21 +15179,21 @@
     mov bx, word [bp+006h]                    ; 8b 5e 06
     mov word [es:di+002h], bx                 ; 26 89 5d 02
-    call 09ee3h                               ; e8 c3 ff
+    call 09e67h                               ; e8 c3 ff
     mov es, si                                ; 8e c6
     mov word [es:di+004h], ax                 ; 26 89 45 04
     mov word [es:di+006h], dx                 ; 26 89 55 06
     mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00
-    call 09ec6h                               ; e8 93 ff
+    call 09e4ah                               ; e8 93 ff
     test ax, ax                               ; 85 c0
-    je short 09f48h                           ; 74 11
+    je short 09ecch                           ; 74 11
     mov es, si                                ; 8e c6
     mov ax, 08105h                            ; b8 05 81
     mov dx, strict word 00000h                ; ba 00 00
     int 04bh                                  ; cd 4b
-    jc short 09f45h                           ; 72 02
+    jc short 09ec9h                           ; 72 02
     db  032h, 0c0h
     ; xor al, al                                ; 32 c0
     cbw                                       ; 98
-    jmp short 09f6fh                          ; eb 27
+    jmp short 09ef3h                          ; eb 27
     mov es, si                                ; 8e c6
     mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00
@@ -15257,5 +15212,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-vds_free_sg_list_:                           ; 0xf9f78 LB 0x38
+vds_free_sg_list_:                           ; 0xf9efc LB 0x34
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15263,7 +15218,7 @@
     push di                                   ; 57
     mov bx, ax                                ; 89 c3
-    call 09ec6h                               ; e8 44 ff
+    call 09e4ah                               ; e8 44 ff
     test ax, ax                               ; 85 c0
-    je short 09f97h                           ; 74 11
+    je short 09f1bh                           ; 74 11
     mov di, bx                                ; 89 df
     mov es, dx                                ; 8e c2
@@ -15271,5 +15226,5 @@
     mov dx, strict word 00000h                ; ba 00 00
     int 04bh                                  ; cd 4b
-    jc short 09f96h                           ; 72 02
+    jc short 09f1ah                           ; 72 02
     db  032h, 0c0h
     ; xor al, al                                ; 32 c0
@@ -15282,6 +15237,6 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-    times 0xa db 0
-__U4D:                                       ; 0xf9fb0 LB 0x39
+    times 0x6 db 0
+__U4D:                                       ; 0xf9f30 LB 0x39
     pushfw                                    ; 9c
     push eax                                  ; 66 50
@@ -15313,5 +15268,5 @@
     popfw                                     ; 9d
     retn                                      ; c3
-__U4M:                                       ; 0xf9fe9 LB 0x31
+__U4M:                                       ; 0xf9f69 LB 0x31
     pushfw                                    ; 9c
     push eax                                  ; 66 50
@@ -15338,7 +15293,7 @@
     popfw                                     ; 9d
     retn                                      ; c3
-__U8LS:                                      ; 0xfa01a LB 0x10
+__U8LS:                                      ; 0xf9f9a LB 0x10
     test si, si                               ; 85 f6
-    je short 0a029h                           ; 74 0b
+    je short 09fa9h                           ; 74 0b
     sal dx, 1                                 ; d1 e2
     rcl cx, 1                                 ; d1 d1
@@ -15346,9 +15301,9 @@
     rcl ax, 1                                 ; d1 d0
     dec si                                    ; 4e
-    jne short 0a01eh                          ; 75 f5
+    jne short 09f9eh                          ; 75 f5
     retn                                      ; c3
-__U8RS:                                      ; 0xfa02a LB 0x10
+__U8RS:                                      ; 0xf9faa LB 0x10
     test si, si                               ; 85 f6
-    je short 0a039h                           ; 74 0b
+    je short 09fb9h                           ; 74 0b
     shr ax, 1                                 ; d1 e8
     rcr bx, 1                                 ; d1 db
@@ -15356,7 +15311,7 @@
     rcr dx, 1                                 ; d1 da
     dec si                                    ; 4e
-    jne short 0a02eh                          ; 75 f5
+    jne short 09faeh                          ; 75 f5
     retn                                      ; c3
-_fmemset_:                                   ; 0xfa03a LB 0xd
+_fmemset_:                                   ; 0xf9fba LB 0xd
     push di                                   ; 57
     mov es, dx                                ; 8e c2
@@ -15368,5 +15323,5 @@
     pop di                                    ; 5f
     retn                                      ; c3
-_fmemcpy_:                                   ; 0xfa047 LB 0x33
+_fmemcpy_:                                   ; 0xf9fc7 LB 0x33
     push bp                                   ; 55
     db  08bh, 0ech
@@ -15388,15 +15343,17 @@
     leave                                     ; c9
     retn                                      ; c3
-    add byte [bx+si-06d60h], dl               ; 00 90 a0 92
-    mov AL, byte [0a096h]                     ; a0 96 a0
-    xchg si, ax                               ; 96
-    mov AL, byte [0a096h]                     ; a0 96 a0
-    cbw                                       ; 98
-    mov AL, byte [0a098h]                     ; a0 98 a0
-    call far 09ea0h:09ea0h                    ; 9a a0 9e a0 9e
-    mov AL, byte [0a0a0h]                     ; a0 a0 a0
-    movsw                                     ; a5
-    mov AL, byte [0a0a7h]                     ; a0 a7 a0
-apm_worker:                                  ; 0xfa07a LB 0x3a
+    add byte [bx+si], dl                      ; 00 10
+    mov AL, byte [0a012h]                     ; a0 12 a0
+    push SS                                   ; 16
+    mov AL, byte [0a016h]                     ; a0 16 a0
+    push SS                                   ; 16
+    mov AL, byte [0a018h]                     ; a0 18 a0
+    sbb byte [bx+si-05fe6h], ah               ; 18 a0 1a a0
+    push DS                                   ; 1e
+    mov AL, byte [0a01eh]                     ; a0 1e a0
+    and byte [bx+si-05fdbh], ah               ; 20 a0 25 a0
+    daa                                       ; 27
+    db  0a0h
+apm_worker:                                  ; 0xf9ffa LB 0x3a
     sti                                       ; fb
     push ax                                   ; 50
@@ -15410,21 +15367,21 @@
     pop ax                                    ; 58
     mov AH, strict byte 053h                  ; b4 53
-    jnc short 0a0b0h                          ; 73 25
-    jmp word [cs:bp-05fa0h]                   ; 2e ff a6 60 a0
-    jmp short 0a0aeh                          ; eb 1c
+    jnc short 0a030h                          ; 73 25
+    jmp word [cs:bp-06020h]                   ; 2e ff a6 e0 9f
+    jmp short 0a02eh                          ; eb 1c
     sti                                       ; fb
     hlt                                       ; f4
-    jmp short 0a0aeh                          ; eb 18
-    jmp short 0a0aeh                          ; eb 16
-    jmp short 0a0b0h                          ; eb 16
+    jmp short 0a02eh                          ; eb 18
+    jmp short 0a02eh                          ; eb 16
+    jmp short 0a030h                          ; eb 16
     mov AH, strict byte 080h                  ; b4 80
-    jmp short 0a0b2h                          ; eb 14
-    jmp short 0a0b0h                          ; eb 10
+    jmp short 0a032h                          ; eb 14
+    jmp short 0a030h                          ; eb 10
     mov ax, 00102h                            ; b8 02 01
-    jmp short 0a0aeh                          ; eb 09
-    jmp short 0a0aeh                          ; eb 07
+    jmp short 0a02eh                          ; eb 09
+    jmp short 0a02eh                          ; eb 07
     mov BL, strict byte 000h                  ; b3 00
     mov cx, strict word 00000h                ; b9 00 00
-    jmp short 0a0aeh                          ; eb 00
+    jmp short 0a02eh                          ; eb 00
     clc                                       ; f8
     retn                                      ; c3
@@ -15432,5 +15389,5 @@
     stc                                       ; f9
     retn                                      ; c3
-apm_pm16_entry:                              ; 0xfa0b4 LB 0x11
+apm_pm16_entry:                              ; 0xfa034 LB 0x11
     mov AH, strict byte 002h                  ; b4 02
     push DS                                   ; 1e
@@ -15440,11 +15397,11 @@
     add bp, strict byte 00008h                ; 83 c5 08
     mov ds, bp                                ; 8e dd
-    call 0a07ah                               ; e8 b8 ff
+    call 09ffah                               ; e8 b8 ff
     pop bp                                    ; 5d
     pop DS                                    ; 1f
     retf                                      ; cb
 
-  ; Padding 0x393b bytes at 0xfa0c5
-  times 14651 db 0
+  ; Padding 0x39bb bytes at 0xfa045
+  times 14779 db 0
 
 section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO
@@ -15493,5 +15450,5 @@
     add bp, strict byte 00008h                ; 83 c5 08
     push ebp                                  ; 66 55
-    mov bp, 0a0b6h                            ; bd b6 a0
+    mov bp, 0a036h                            ; bd 36 a0
     add byte [bx+si], al                      ; 00 00
     push ebp                                  ; 66 55
@@ -15881,7 +15838,7 @@
 
 section BIOSSEG progbits vstart=0xe000 align=1 ; size=0x2000 class=CODE group=AUTO
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 058h, 04dh
+biosorg_check_before_or_at_0E02Eh:           ; 0xfe000 LB 0x30
+    times 0x2e db 0
+    db  'XM'
 eoi_both_pics:                               ; 0xfe030 LB 0x4
     mov AL, strict byte 020h                  ; b0 20
@@ -15897,13 +15854,18 @@
     loop 0e039h                               ; e2 f6
     retn                                      ; c3
-eoi_jmp_post:                                ; 0xfe044 LB 0x17
+eoi_jmp_post:                                ; 0xfe044 LB 0x3
     call 0e030h                               ; e8 e9 ff
+no_eoi_jmp_post:                             ; 0xfe047 LB 0x8
     db  033h, 0c0h
     ; xor ax, ax                                ; 33 c0
     mov ds, ax                                ; 8e d8
     jmp far [00467h]                          ; ff 2e 67 04
-    times 0xa db 0
+seg_40_value:                                ; 0xfe04f LB 0x2
+    inc ax                                    ; 40
+    times 0x1 db 0
+biosorg_check_before_or_at_0E059h:           ; 0xfe051 LB 0xa
+    times 0x8 db 0
     db  'XM'
-post:                                        ; 0xfe05b LB 0x69
+post:                                        ; 0xfe05b LB 0x6b
     cli                                       ; fa
     smsw ax                                   ; 0f 01 e0
@@ -15919,14 +15881,13 @@
     in AL, strict byte 064h                   ; e4 64
     test AL, strict byte 004h                 ; a8 04
-    je short 0e089h                           ; 74 11
+    je short 0e08bh                           ; 74 13
     db  08ah, 0c4h
     ; mov al, ah                                ; 8a c4
     db  00ah, 0c0h
     ; or al, al                                 ; 0a c0
-    jne short 0e089h                          ; 75 0b
-    push strict byte 00040h                   ; 6a 40
-    pop DS                                    ; 1f
+    jne short 0e08bh                          ; 75 0d
+    mov ds, [cs:0e04fh]                       ; 2e 8e 1e 4f e0
     cmp word [word 00072h], 01234h            ; 81 3e 72 00 34 12
-    jne short 0e064h                          ; 75 db
+    jne short 0e064h                          ; 75 d9
     mov AL, strict byte 00fh                  ; b0 0f
     out strict byte 070h, AL                  ; e6 70
@@ -15936,7 +15897,7 @@
     ; mov al, ah                                ; 8a c4
     cmp AL, strict byte 009h                  ; 3c 09
-    je short 0e0a9h                           ; 74 12
+    je short 0e0abh                           ; 74 12
     cmp AL, strict byte 00ah                  ; 3c 0a
-    je short 0e0a9h                           ; 74 0e
+    je short 0e0abh                           ; 74 0e
     db  032h, 0c0h
     ; xor al, al                                ; 32 c0
@@ -15950,16 +15911,16 @@
     ; mov al, ah                                ; 8a c4
     cmp AL, strict byte 000h                  ; 3c 00
-    je short 0e0c4h                           ; 74 15
+    je short 0e0c6h                           ; 74 15
     cmp AL, strict byte 00dh                  ; 3c 0d
-    jnc short 0e0c4h                          ; 73 11
+    jnc short 0e0c6h                          ; 73 11
     cmp AL, strict byte 009h                  ; 3c 09
-    jne short 0e0bah                          ; 75 03
-    jmp near 0e366h                           ; e9 ac 02
+    jne short 0e0bch                          ; 75 03
+    jmp near 0e366h                           ; e9 aa 02
     cmp AL, strict byte 005h                  ; 3c 05
-    je short 0e044h                           ; 74 86
+    je short 0e044h                           ; 74 84
     cmp AL, strict byte 00ah                  ; 3c 0a
-    je short 0e047h                           ; 74 85
-    jmp short 0e0c4h                          ; eb 00
-normal_post:                                 ; 0xfe0c4 LB 0x1ff
+    je short 0e047h                           ; 74 83
+    jmp short 0e0c6h                          ; eb 00
+normal_post:                                 ; 0xfe0c6 LB 0x1ed
     mov ax, 07800h                            ; b8 00 78
     db  08bh, 0e0h
@@ -15983,5 +15944,5 @@
     add bx, 01000h                            ; 81 c3 00 10
     cmp bx, 09000h                            ; 81 fb 00 90
-    jnc short 0e0f7h                          ; 73 0b
+    jnc short 0e0f9h                          ; 73 0b
     mov es, bx                                ; 8e c3
     db  033h, 0ffh
@@ -15989,5 +15950,5 @@
     mov cx, 08000h                            ; b9 00 80
     rep stosw                                 ; f3 ab
-    jmp short 0e0e2h                          ; eb eb
+    jmp short 0e0e4h                          ; eb eb
     mov es, bx                                ; 8e c3
     db  033h, 0ffh
@@ -16000,5 +15961,5 @@
     pop DS                                    ; 1f
     cld                                       ; fc
-    call 0176dh                               ; e8 65 36
+    call 0176dh                               ; e8 63 36
     db  033h, 0dbh
     ; xor bx, bx                                ; 33 db
@@ -16007,8 +15968,8 @@
     mov ax, 0ff53h                            ; b8 53 ff
     mov dx, 0f000h                            ; ba 00 f0
-    call 0e039h                               ; e8 21 ff
+    call 0e039h                               ; e8 1f ff
     mov bx, 001a0h                            ; bb a0 01
     mov cx, strict word 00010h                ; b9 10 00
-    call 0e039h                               ; e8 18 ff
+    call 0e039h                               ; e8 16 ff
     mov ax, 0027fh                            ; b8 7f 02
     mov word [00413h], ax                     ; a3 13 04
@@ -16045,5 +16006,5 @@
     mov ax, 0f000h                            ; b8 00 f0
     mov word [00072h], ax                     ; a3 72 00
-    call 0e778h                               ; e8 ee 05
+    call 0e778h                               ; e8 ec 05
     mov ax, 0fe6eh                            ; b8 6e fe
     mov word [00068h], ax                     ; a3 68 00
@@ -16097,6 +16058,6 @@
     mov ax, 0c000h                            ; b8 00 c0
     mov dx, 0c800h                            ; ba 00 c8
-    call 01600h                               ; e8 ec 33
-    call 04eb2h                               ; e8 9b 6c
+    call 01600h                               ; e8 ea 33
+    call 04e57h                               ; e8 3e 6c
     pop DS                                    ; 1f
     mov ax, 0ff53h                            ; b8 53 ff
@@ -16111,7 +16072,7 @@
     mov CL, strict byte 014h                  ; b1 14
     mov dx, 00378h                            ; ba 78 03
-    call 0ecedh                               ; e8 bb 0a
+    call 0ecedh                               ; e8 b9 0a
     mov dx, 00278h                            ; ba 78 02
-    call 0ecedh                               ; e8 b5 0a
+    call 0ecedh                               ; e8 b3 0a
     sal bx, 00eh                              ; c1 e3 0e
     mov ax, word [00410h]                     ; a1 10 04
@@ -16136,11 +16097,11 @@
     mov CL, strict byte 00ah                  ; b1 0a
     mov dx, 003f8h                            ; ba f8 03
-    call 0ed0bh                               ; e8 97 0a
+    call 0ed0bh                               ; e8 95 0a
     mov dx, 002f8h                            ; ba f8 02
-    call 0ed0bh                               ; e8 91 0a
+    call 0ed0bh                               ; e8 8f 0a
     mov dx, 003e8h                            ; ba e8 03
-    call 0ed0bh                               ; e8 8b 0a
+    call 0ed0bh                               ; e8 89 0a
     mov dx, 002e8h                            ; ba e8 02
-    call 0ed0bh                               ; e8 85 0a
+    call 0ed0bh                               ; e8 83 0a
     sal bx, 009h                              ; c1 e3 09
     mov ax, word [00410h]                     ; a1 10 04
@@ -16153,11 +16114,12 @@
     mov ax, 0f000h                            ; b8 00 f0
     mov word [0012ah], ax                     ; a3 2a 01
-    mov ax, 0fe7bh                            ; b8 7b fe
+    mov ax, 0f8e4h                            ; b8 e4 f8
     mov word [001c0h], ax                     ; a3 c0 01
     mov ax, 0f000h                            ; b8 00 f0
     mov word [001c2h], ax                     ; a3 c2 01
-    call 0edbfh                               ; e8 10 0b
-    jmp short 0e31bh                          ; eb 6a
-    times 0x10 db 0
+    call 0edbfh                               ; e8 0e 0b
+    jmp short 0e31bh                          ; eb 68
+biosorg_check_before_or_at_0E2C1h:           ; 0xfe2b3 LB 0x10
+    times 0xe db 0
     db  'XM'
 nmi:                                         ; 0xfe2c3 LB 0x7
@@ -16172,5 +16134,5 @@
     int 002h                                  ; cd 02
     iret                                      ; cf
-hard_drive_post:                             ; 0xfe2d2 LB 0x12c
+hard_drive_post:                             ; 0xfe2d2 LB 0xbd
     db  033h, 0c0h
     ; xor ax, ax                                ; 33 c0
@@ -16187,5 +16149,5 @@
     mov ax, 0f000h                            ; b8 00 f0
     mov word [0004eh], ax                     ; a3 4e 00
-    mov ax, 0f8d5h                            ; b8 d5 f8
+    mov ax, 0f8d2h                            ; b8 d2 f8
     mov word [001d8h], ax                     ; a3 d8 01
     mov ax, 0f000h                            ; b8 00 f0
@@ -16214,6 +16176,6 @@
     call 01c9fh                               ; e8 63 39
     call 02118h                               ; e8 d9 3d
-    call 098dfh                               ; e8 9d b5
-    call 0876ah                               ; e8 25 a4
+    call 09868h                               ; e8 26 b5
+    call 086f3h                               ; e8 ae a3
     call 0ed2fh                               ; e8 e7 09
     call 0e2d2h                               ; e8 87 ff
@@ -16225,5 +16187,5 @@
     call 01600h                               ; e8 a9 32
     call 0178dh                               ; e8 33 34
-    call 03b0fh                               ; e8 b2 57
+    call 03acfh                               ; e8 72 57
     sti                                       ; fb
     int 019h                                  ; cd 19
@@ -16252,4 +16214,5 @@
     sti                                       ; fb
     retf 00002h                               ; ca 02 00
+biosorg_check_before_or_at_0E3FCh:           ; 0xfe38f LB 0x6f
     times 0x6d db 0
     db  'XM'
@@ -16307,15 +16270,17 @@
 int19_handler:                               ; 0xfe6f2 LB 0x3
     jmp near 0f0ach                           ; e9 b7 09
-biosorg_check_0E6F5h:                        ; 0xfe6f5 LB 0x34
+biosorg_check_at_0E6F5h:                     ; 0xfe6f5 LB 0xa
     or word [bx+si], ax                       ; 09 00
     cld                                       ; fc
     add byte [bx+di], al                      ; 00 01
     je short 0e73ch                           ; 74 40
-    times 0x2b db 0
+    times 0x3 db 0
+biosorg_check_before_or_at_0E727h:           ; 0xfe6ff LB 0x2a
+    times 0x28 db 0
     db  'XM'
-biosorg_check_0E729h:                        ; 0xfe729 LB 0x10
+biosorg_check_at_0E729h:                     ; 0xfe729 LB 0x10
     times 0xe db 0
     db  'XM'
-biosorg_check_0E739h:                        ; 0xfe739 LB 0x1a
+biosorg_check_at_0E739h:                     ; 0xfe739 LB 0x1a
     push DS                                   ; 1e
     push ES                                   ; 06
@@ -16324,5 +16289,5 @@
     pop DS                                    ; 1f
     cld                                       ; fc
-    call 06435h                               ; e8 f3 7c
+    call 063bch                               ; e8 7a 7c
     popaw                                     ; 61
     pop ES                                    ; 07
@@ -16360,5 +16325,5 @@
     out strict byte 0a1h, AL                  ; e6 a1
     retn                                      ; c3
-ebda_post:                                   ; 0xfe778 LB 0xb6
+ebda_post:                                   ; 0xfe778 LB 0x45
     mov ax, 0e746h                            ; b8 46 e7
     mov word [00034h], ax                     ; a3 34 00
@@ -16385,7 +16350,8 @@
     mov word [0040eh], 09fc0h                 ; c7 06 0e 04 c0 9f
     retn                                      ; c3
+biosorg_check_before_or_at_0E82Ch:           ; 0xfe7bd LB 0x71
     times 0x6f db 0
     db  'XM'
-biosorg_check_0E82Eh:                        ; 0xfe82e LB 0x159
+biosorg_check_at_0E82Eh:                     ; 0xfe82e LB 0x36
     sti                                       ; fb
     push ES                                   ; 06
@@ -16399,5 +16365,5 @@
     pop DS                                    ; 1f
     cld                                       ; fc
-    call 056e2h                               ; e8 a0 6e
+    call 05687h                               ; e8 45 6e
     popaw                                     ; 61
     pop DS                                    ; 1f
@@ -16416,12 +16382,13 @@
     pop DS                                    ; 1f
     cld                                       ; fc
-    call 056e2h                               ; e8 82 6e
+    call 05687h                               ; e8 27 6e
     popaw                                     ; 61
     pop DS                                    ; 1f
     pop ES                                    ; 07
     iret                                      ; cf
+biosorg_check_before_or_at_0E985h:           ; 0xfe864 LB 0x123
     times 0x121 db 0
     db  'XM'
-biosorg_check_0E987h:                        ; 0xfe987 LB 0x2d2
+biosorg_check_at_0E987h:                     ; 0xfe987 LB 0x5c
     cli                                       ; fa
     push ax                                   ; 50
@@ -16460,5 +16427,5 @@
     pop DS                                    ; 1f
     cld                                       ; fc
-    call 051bah                               ; e8 f1 67
+    call 0515fh                               ; e8 96 67
     pop ES                                    ; 07
     popaw                                     ; 61
@@ -16476,12 +16443,13 @@
     pop DS                                    ; 1f
     cld                                       ; fc
-    call 06edbh                               ; e8 fc 84
+    call 06e62h                               ; e8 83 84
     pop DS                                    ; 1f
     pop ES                                    ; 07
     popaw                                     ; 61
     iret                                      ; cf
+biosorg_check_before_or_at_0EC57h:           ; 0xfe9e3 LB 0x276
     times 0x274 db 0
     db  'XM'
-biosorg_check_0EC59h:                        ; 0xfec59 LB 0x2
+biosorg_check_at_0EC59h:                     ; 0xfec59 LB 0x2
     jmp short 0ecb0h                          ; eb 55
 int13_relocated:                             ; 0xfec5b LB 0x55
@@ -16497,5 +16465,5 @@
     cld                                       ; fc
     push 0ece9h                               ; 68 e9 ec
-    jmp near 03b53h                           ; e9 e2 4e
+    jmp near 03b13h                           ; e9 a2 4e
     push ES                                   ; 06
     push ax                                   ; 50
@@ -16503,8 +16471,8 @@
     push cx                                   ; 51
     push dx                                   ; 52
-    call 03b27h                               ; e8 ae 4e
+    call 03ae7h                               ; e8 6e 4e
     cmp AL, strict byte 000h                  ; 3c 00
     je short 0ecabh                           ; 74 2e
-    call 03b3dh                               ; e8 bd 4e
+    call 03afdh                               ; e8 7d 4e
     pop dx                                    ; 5a
     push dx                                   ; 52
@@ -16524,5 +16492,5 @@
     cld                                       ; fc
     push 0ece9h                               ; 68 e9 ec
-    jmp near 0414ch                           ; e9 b5 54
+    jmp near 0410ch                           ; e9 75 54
     and dl, 0e0h                              ; 80 e2 e0
     db  03ah, 0c2h
@@ -16564,5 +16532,5 @@
     jne short 0ecc8h                          ; 75 06
     push 0ece9h                               ; 68 e9 ec
-    jmp near 0319ah                           ; e9 d2 44
+    jmp near 0315ah                           ; e9 92 44
 int13_notfloppy:                             ; 0xfecc8 LB 0x14
     cmp dl, 0e0h                              ; 80 fa e0
@@ -16570,5 +16538,5 @@
     shr ebx, 010h                             ; 66 c1 eb 10
     push bx                                   ; 53
-    call 0458eh                               ; e8 b9 58
+    call 0454eh                               ; e8 79 58
     pop bx                                    ; 5b
     sal ebx, 010h                             ; 66 c1 e3 10
@@ -16577,7 +16545,7 @@
     cmp ah, 040h                              ; 80 fc 40
     jnbe short 0ece6h                         ; 77 05
-    call 05ab9h                               ; e8 d5 6d
+    call 05a5eh                               ; e8 7a 6d
     jmp short 0ece9h                          ; eb 03
-    call 05f08h                               ; e8 1f 72
+    call 05eadh                               ; e8 c4 71
 int13_out:                                   ; 0xfece9 LB 0x4
     pop DS                                    ; 1f
@@ -16690,5 +16658,5 @@
     aad 00ah                                  ; d5 0a
     retn                                      ; c3
-rtc_post:                                    ; 0xfedbf LB 0x198
+rtc_post:                                    ; 0xfedbf LB 0x5a
     mov AL, strict byte 000h                  ; b0 00
     out strict byte 070h, AL                  ; e6 70
@@ -16718,5 +16686,5 @@
     call 0edb6h                               ; e8 c2 ff
     test al, al                               ; 84 c0
-    je short 0ee0ah                           ; 74 12
+    je short 0ee04h                           ; 74 0c
     add cx, 0076ch                            ; 81 c1 6c 07
     adc dx, 00100h                            ; 81 d2 00 01
@@ -16724,6 +16692,4 @@
     ; dec al                                    ; fe c8
     jne short 0edf8h                          ; 75 f4
-    mov ax, 0046ch                            ; b8 6c 04
-    mov dx, 0046eh                            ; ba 6e 04
     db  08ah, 0cdh
     ; mov cl, ch                                ; 8a cd
@@ -16738,7 +16704,8 @@
     mov byte [00470h], dh                     ; 88 36 70 04
     retn                                      ; c3
-    times 0x136 db 0
+biosorg_check_before_or_at_0EF55h:           ; 0xfee19 LB 0x13e
+    times 0x13c db 0
     db  'XM'
-int0e_handler:                               ; 0xfef57 LB 0x70
+int0e_handler:                               ; 0xfef57 LB 0x3b
     push ax                                   ; 50
     push dx                                   ; 52
@@ -16773,4 +16740,5 @@
     pop ax                                    ; 58
     iret                                      ; cf
+biosorg_check_before_or_at_0EFC5h:           ; 0xfef92 LB 0x35
     times 0x33 db 0
     db  'XM'
@@ -16784,5 +16752,5 @@
     db  0f6h
     invd                                      ; 0f 08
-biosorg_check_0EFD2h:                        ; 0xfefd2 LB 0x2
+biosorg_check_at_0EFD2h:                     ; 0xfefd2 LB 0x2
     jmp short 0efd4h                          ; eb 00
 int17_handler:                               ; 0xfefd4 LB 0xd
@@ -16793,5 +16761,5 @@
     pop DS                                    ; 1f
     cld                                       ; fc
-    call 07879h                               ; e8 9c 88
+    call 07800h                               ; e8 23 88
     popaw                                     ; 61
     pop ES                                    ; 07
@@ -16802,17 +16770,20 @@
 _rmode_IDT:                                  ; 0xfefe7 LB 0x6
     db  0ffh, 003h, 000h, 000h, 000h, 000h
-int1c_handler:                               ; 0xfefed LB 0x58
+int1c_handler:                               ; 0xfefed LB 0x1
     iret                                      ; cf
+biosorg_check_before_or_at_0F043h:           ; 0xfefee LB 0x57
     times 0x55 db 0
     db  'XM'
-biosorg_check_0F045h:                        ; 0xff045 LB 0x20
+biosorg_check_at_0F045h:                     ; 0xff045 LB 0x1
     iret                                      ; cf
+biosorg_check_before_or_at_0F063h:           ; 0xff046 LB 0x1f
     times 0x1d db 0
     db  'XM'
-int10_handler:                               ; 0xff065 LB 0x3f
+int10_handler:                               ; 0xff065 LB 0x1
     iret                                      ; cf
+biosorg_check_before_or_at_0F0A2h:           ; 0xff066 LB 0x3e
     times 0x3c db 0
     db  'XM'
-biosorg_check_0F0A4h:                        ; 0xff0a4 LB 0x8
+biosorg_check_at_0F0A4h:                     ; 0xff0a4 LB 0x8
     push CS                                   ; 0e
     pop DS                                    ; 1f
@@ -16821,5 +16792,5 @@
     hlt                                       ; f4
     iret                                      ; cf
-int19_relocated:                             ; 0xff0ac LB 0x91
+int19_relocated:                             ; 0xff0ac LB 0x90
     db  08bh, 0ech
     ; mov bp, sp                                ; 8b ec
@@ -16841,30 +16812,30 @@
     mov ax, strict word 00001h                ; b8 01 00
     push ax                                   ; 50
-    call 04c2eh                               ; e8 5e 5b
+    call 04bd3h                               ; e8 03 5b
     inc sp                                    ; 44
     inc sp                                    ; 44
     test ax, ax                               ; 85 c0
-    jne short 0f0feh                          ; 75 28
+    jne short 0f0fdh                          ; 75 27
     mov ax, strict word 00002h                ; b8 02 00
     push ax                                   ; 50
-    call 04c2eh                               ; e8 51 5b
+    call 04bd3h                               ; e8 f6 5a
     inc sp                                    ; 44
     inc sp                                    ; 44
     test ax, ax                               ; 85 c0
-    jne short 0f0feh                          ; 75 1b
+    jne short 0f0fdh                          ; 75 1a
     mov ax, strict word 00003h                ; b8 03 00
-    push strict byte 00003h                   ; 6a 03
-    call 04c2eh                               ; e8 43 5b
+    push ax                                   ; 50
+    call 04bd3h                               ; e8 e9 5a
     inc sp                                    ; 44
     inc sp                                    ; 44
     test ax, ax                               ; 85 c0
-    jne short 0f0feh                          ; 75 0d
+    jne short 0f0fdh                          ; 75 0d
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 04c2eh                               ; e8 36 5b
+    call 04bd3h                               ; e8 dc 5a
     inc sp                                    ; 44
     inc sp                                    ; 44
     test ax, ax                               ; 85 c0
-    je short 0f0a4h                           ; 74 a6
+    je short 0f0a4h                           ; 74 a7
     mov word [byte bp+000h], ax               ; 89 46 00
     sal ax, 004h                              ; c1 e0 04
@@ -16895,5 +16866,5 @@
     pop eax                                   ; 66 58
     retn                                      ; c3
-pcibios_init_iomem_bases:                    ; 0xff13d LB 0x16
+pcibios_init_iomem_bases:                    ; 0xff13c LB 0x16
     push bp                                   ; 55
     db  08bh, 0ech
@@ -16906,14 +16877,14 @@
     push ax                                   ; 50
     mov bx, strict word 00008h                ; bb 08 00
-pci_init_io_loop1:                           ; 0xff153 LB 0xe
+pci_init_io_loop1:                           ; 0xff152 LB 0xe
     mov DL, strict byte 000h                  ; b2 00
-    call 0f122h                               ; e8 ca ff
+    call 0f121h                               ; e8 ca ff
     mov dx, 00cfch                            ; ba fc 0c
     in ax, DX                                 ; ed
     cmp ax, strict byte 0ffffh                ; 83 f8 ff
-    je short 0f19ah                           ; 74 39
-enable_iomem_space:                          ; 0xff161 LB 0x39
+    je short 0f199h                           ; 74 39
+enable_iomem_space:                          ; 0xff160 LB 0x39
     mov DL, strict byte 004h                  ; b2 04
-    call 0f122h                               ; e8 bc ff
+    call 0f121h                               ; e8 bc ff
     mov dx, 00cfch                            ; ba fc 0c
     in AL, DX                                 ; ec
@@ -16921,11 +16892,11 @@
     out DX, AL                                ; ee
     mov DL, strict byte 000h                  ; b2 00
-    call 0f122h                               ; e8 b0 ff
+    call 0f121h                               ; e8 b0 ff
     mov dx, 00cfch                            ; ba fc 0c
     in eax, DX                                ; 66 ed
     cmp eax, strict dword 020001022h          ; 66 3d 22 10 00 20
-    jne short 0f19ah                          ; 75 1b
+    jne short 0f199h                          ; 75 1b
     mov DL, strict byte 010h                  ; b2 10
-    call 0f122h                               ; e8 9e ff
+    call 0f121h                               ; e8 9e ff
     mov dx, 00cfch                            ; ba fc 0c
     in ax, DX                                 ; ed
@@ -16941,22 +16912,22 @@
     add dx, strict byte 00018h                ; 83 c2 18
     in eax, DX                                ; 66 ed
-next_pci_dev:                                ; 0xff19a LB 0xf
+next_pci_dev:                                ; 0xff199 LB 0xf
     mov byte [bp-008h], 010h                  ; c6 46 f8 10
     inc bx                                    ; 43
     cmp bx, 00100h                            ; 81 fb 00 01
-    jne short 0f153h                          ; 75 ae
+    jne short 0f152h                          ; 75 ae
     db  08bh, 0e5h
     ; mov sp, bp                                ; 8b e5
     pop bp                                    ; 5d
     retn                                      ; c3
-pcibios_init_set_elcr:                       ; 0xff1a9 LB 0xc
+pcibios_init_set_elcr:                       ; 0xff1a8 LB 0xc
     push ax                                   ; 50
     push cx                                   ; 51
     mov dx, 004d0h                            ; ba d0 04
     test AL, strict byte 008h                 ; a8 08
-    je short 0f1b5h                           ; 74 03
+    je short 0f1b4h                           ; 74 03
     inc dx                                    ; 42
     and AL, strict byte 007h                  ; 24 07
-is_master_pic:                               ; 0xff1b5 LB 0xd
+is_master_pic:                               ; 0xff1b4 LB 0xd
     db  08ah, 0c8h
     ; mov cl, al                                ; 8a c8
@@ -16970,5 +16941,5 @@
     pop ax                                    ; 58
     retn                                      ; c3
-pcibios_init_irqs:                           ; 0xff1c2 LB 0x53
+pcibios_init_irqs:                           ; 0xff1c1 LB 0x53
     push DS                                   ; 1e
     push bp                                   ; 55
@@ -16984,11 +16955,11 @@
     mov bl, byte [si+009h]                    ; 8a 5c 09
     mov DL, strict byte 000h                  ; b2 00
-    call 0f122h                               ; e8 43 ff
+    call 0f121h                               ; e8 43 ff
     mov dx, 00cfch                            ; ba fc 0c
     in eax, DX                                ; 66 ed
     cmp eax, dword [si+00ch]                  ; 66 3b 44 0c
-    jne near 0f292h                           ; 0f 85 a6 00
+    jne near 0f291h                           ; 0f 85 a6 00
     mov dl, byte [si+022h]                    ; 8a 54 22
-    call 0f122h                               ; e8 30 ff
+    call 0f121h                               ; e8 30 ff
     push bx                                   ; 53
     mov dx, 00cfch                            ; ba fc 0c
@@ -17005,29 +16976,29 @@
     db  08bh, 0ech
     ; mov bp, sp                                ; 8b ec
-    mov ax, 0f11eh                            ; b8 1e f1
+    mov ax, 0f11dh                            ; b8 1d f1
     push ax                                   ; 50
     db  033h, 0c0h
     ; xor ax, ax                                ; 33 c0
     push ax                                   ; 50
-pci_init_irq_loop1:                          ; 0xff215 LB 0x5
+pci_init_irq_loop1:                          ; 0xff214 LB 0x5
     mov bh, byte [si]                         ; 8a 3c
     mov bl, byte [si+001h]                    ; 8a 5c 01
-pci_init_irq_loop2:                          ; 0xff21a LB 0x15
+pci_init_irq_loop2:                          ; 0xff219 LB 0x15
     mov DL, strict byte 000h                  ; b2 00
-    call 0f122h                               ; e8 03 ff
+    call 0f121h                               ; e8 03 ff
     mov dx, 00cfch                            ; ba fc 0c
     in ax, DX                                 ; ed
     cmp ax, strict byte 0ffffh                ; 83 f8 ff
-    jne short 0f22fh                          ; 75 07
+    jne short 0f22eh                          ; 75 07
     test bl, 007h                             ; f6 c3 07
-    je short 0f286h                           ; 74 59
-    jmp short 0f27ch                          ; eb 4d
-pci_test_int_pin:                            ; 0xff22f LB 0x3c
+    je short 0f285h                           ; 74 59
+    jmp short 0f27bh                          ; eb 4d
+pci_test_int_pin:                            ; 0xff22e LB 0x3c
     mov DL, strict byte 03ch                  ; b2 3c
-    call 0f122h                               ; e8 ee fe
+    call 0f121h                               ; e8 ee fe
     mov dx, 00cfdh                            ; ba fd 0c
     in AL, DX                                 ; ec
     and AL, strict byte 007h                  ; 24 07
-    je short 0f27ch                           ; 74 40
+    je short 0f27bh                           ; 74 40
     db  0feh, 0c8h
     ; dec al                                    ; fe c8
@@ -17043,5 +17014,5 @@
     ; mov dl, al                                ; 8a d0
     mov bx, word [byte bp+000h]               ; 8b 5e 00
-    call 0f122h                               ; e8 d0 fe
+    call 0f121h                               ; e8 d0 fe
     mov dx, 00cfch                            ; ba fc 0c
     and AL, strict byte 003h                  ; 24 03
@@ -17050,5 +17021,5 @@
     in AL, DX                                 ; ec
     cmp AL, strict byte 080h                  ; 3c 80
-    jc short 0f26bh                           ; 72 0d
+    jc short 0f26ah                           ; 72 0d
     mov bx, word [bp-002h]                    ; 8b 5e fe
     mov al, byte [bx]                         ; 8a 07
@@ -17056,33 +17027,33 @@
     inc bx                                    ; 43
     mov word [bp-002h], bx                    ; 89 5e fe
-    call 0f1a9h                               ; e8 3e ff
-pirq_found:                                  ; 0xff26b LB 0x11
+    call 0f1a8h                               ; e8 3e ff
+pirq_found:                                  ; 0xff26a LB 0x11
     mov bh, byte [si]                         ; 8a 3c
     mov bl, byte [si+001h]                    ; 8a 5c 01
     add bl, byte [bp-003h]                    ; 02 5e fd
     mov DL, strict byte 03ch                  ; b2 3c
-    call 0f122h                               ; e8 aa fe
+    call 0f121h                               ; e8 aa fe
     mov dx, 00cfch                            ; ba fc 0c
     out DX, AL                                ; ee
-next_pci_func:                               ; 0xff27c LB 0xa
+next_pci_func:                               ; 0xff27b LB 0xa
     inc byte [bp-003h]                        ; fe 46 fd
     db  0feh, 0c3h
     ; inc bl                                    ; fe c3
     test bl, 007h                             ; f6 c3 07
-    jne short 0f21ah                          ; 75 94
-next_pir_entry:                              ; 0xff286 LB 0xc
+    jne short 0f219h                          ; 75 94
+next_pir_entry:                              ; 0xff285 LB 0xc
     add si, strict byte 00010h                ; 83 c6 10
     mov byte [bp-003h], 000h                  ; c6 46 fd 00
-    loop 0f215h                               ; e2 86
+    loop 0f214h                               ; e2 86
     db  08bh, 0e5h
     ; mov sp, bp                                ; 8b e5
     pop bx                                    ; 5b
-pci_init_end:                                ; 0xff292 LB 0x2e
+pci_init_end:                                ; 0xff291 LB 0x2f
     pop bp                                    ; 5d
     pop DS                                    ; 1f
     retn                                      ; c3
-    db  089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 0fch, 024h, 050h, 049h, 052h, 000h
-    db  001h, 000h, 002h, 000h, 008h, 000h, 000h, 086h, 080h, 000h, 070h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 031h
+    db  089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 024h, 050h, 049h, 052h
+    db  000h, 001h, 000h, 002h, 000h, 008h, 000h, 000h, 086h, 080h, 000h, 070h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 031h
 _pci_routing_table:                          ; 0xff2c0 LB 0x1e0
     db  000h, 008h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 000h, 000h
@@ -17116,6 +17087,7 @@
     db  000h, 0e8h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 01ch, 000h
     db  000h, 0f0h, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 01dh, 000h
-_pci_routing_table_size:                     ; 0xff4a0 LB 0x3a1
+_pci_routing_table_size:                     ; 0xff4a0 LB 0x2
     loopne 0f4a3h                             ; e0 01
+biosorg_check_before_or_at_0F83Fh:           ; 0xff4a2 LB 0x39f
     times 0x39d db 0
     db  'XM'
@@ -17154,5 +17126,5 @@
     cmp ah, 0c2h                              ; 80 fc c2
     je short 0f887h                           ; 74 0e
-    call 06647h                               ; e8 cb 6d
+    call 065ceh                               ; e8 52 6d
     popaw                                     ; 61
     pop ES                                    ; 07
@@ -17160,12 +17132,12 @@
     popfw                                     ; 9d
     jmp short 0f893h                          ; eb 11
-    call 09a31h                               ; e8 ac a1
+    call 099bah                               ; e8 35 a1
     jmp short 0f87ch                          ; eb f5
 int15_handler_mouse:                         ; 0xff887 LB 0x5
-    call 074ech                               ; e8 62 7c
+    call 07473h                               ; e8 e9 7b
     jmp short 0f87ch                          ; eb f0
 int15_handler32:                             ; 0xff88c LB 0x7
     pushaw                                    ; 60
-    call 06b1fh                               ; e8 8f 72
+    call 06aa6h                               ; e8 16 72
     popaw                                     ; 61
     jmp short 0f87dh                          ; eb ea
@@ -17184,20 +17156,22 @@
     pop bp                                    ; 5d
     iret                                      ; cf
-int74_handler:                               ; 0xff8a7 LB 0x2e
+int74_handler:                               ; 0xff8a7 LB 0x2b
     sti                                       ; fb
     pushaw                                    ; 60
     push ES                                   ; 06
     push DS                                   ; 1e
-    push strict byte 00000h                   ; 6a 00
-    push strict byte 00000h                   ; 6a 00
-    push strict byte 00000h                   ; 6a 00
-    push strict byte 00000h                   ; 6a 00
-    push strict byte 00000h                   ; 6a 00
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    push ax                                   ; 50
+    push ax                                   ; 50
+    push ax                                   ; 50
+    push ax                                   ; 50
+    push ax                                   ; 50
     push CS                                   ; 0e
     pop DS                                    ; 1f
     cld                                       ; fc
-    call 0741ah                               ; e8 5f 7b
+    call 073a1h                               ; e8 e9 7a
     pop cx                                    ; 59
-    jcxz 0f8cah                               ; e3 0c
+    jcxz 0f8c7h                               ; e3 0c
     push strict byte 00000h                   ; 6a 00
     pop DS                                    ; 1f
@@ -17206,5 +17180,5 @@
     call far [word 00022h]                    ; ff 1e 22 00
     cli                                       ; fa
-    call 0e030h                               ; e8 62 e7
+    call 0e030h                               ; e8 65 e7
     add sp, strict byte 00008h                ; 83 c4 08
     pop DS                                    ; 1f
@@ -17212,5 +17186,5 @@
     popaw                                     ; 61
     iret                                      ; cf
-int76_handler:                               ; 0xff8d5 LB 0x199
+int76_handler:                               ; 0xff8d2 LB 0x12
     push ax                                   ; 50
     push DS                                   ; 1e
@@ -17218,9 +17192,31 @@
     mov ds, ax                                ; 8e d8
     mov byte [0008eh], 0ffh                   ; c6 06 8e 00 ff
-    call 0e030h                               ; e8 4c e7
+    call 0e030h                               ; e8 4f e7
     pop DS                                    ; 1f
     pop ax                                    ; 58
     iret                                      ; cf
-    times 0x185 db 0
+int70_handler:                               ; 0xff8e4 LB 0x1f
+    push ES                                   ; 06
+    push DS                                   ; 1e
+    pushaw                                    ; 60
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    call 07046h                               ; e8 59 77
+    popaw                                     ; 61
+    pop DS                                    ; 1f
+    pop ES                                    ; 07
+    iret                                      ; cf
+    jnbe short 0f8f8h                         ; 77 05
+    cmp ax, 000b0h                            ; 3d b0 00
+    jc short 0f900h                           ; 72 08
+    db  033h, 0d2h
+    ; xor dx, dx                                ; 33 d2
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    inc byte [word 00070h]                    ; fe 06 70 00
+    jmp near 0fec1h                           ; e9 be 05
+biosorg_check_before_or_at_0FA6Ch:           ; 0xff903 LB 0x16b
+    times 0x169 db 0
     db  'XM'
 font8x8:                                     ; 0xffa6e LB 0x400
@@ -17289,5 +17285,5 @@
     db  018h, 018h, 018h, 000h, 018h, 018h, 018h, 000h, 0e0h, 030h, 030h, 01ch, 030h, 030h, 0e0h, 000h
     db  076h, 0dch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 010h, 038h, 06ch, 0c6h, 0c6h, 0feh, 000h
-biosorg_check_0FE6Eh:                        ; 0xffe6e LB 0xd
+biosorg_check_at_0FE6Eh:                     ; 0xffe6e LB 0xd
     push ES                                   ; 06
     push DS                                   ; 1e
@@ -17296,27 +17292,15 @@
     pop DS                                    ; 1f
     cld                                       ; fc
-    call 0717eh                               ; e8 07 73
+    call 07105h                               ; e8 8e 72
     popaw                                     ; 61
     pop DS                                    ; 1f
     pop ES                                    ; 07
     iret                                      ; cf
-int70_handler:                               ; 0xffe7b LB 0x2a
-    push ES                                   ; 06
-    push DS                                   ; 1e
-    pushaw                                    ; 60
-    push CS                                   ; 0e
-    pop DS                                    ; 1f
-    cld                                       ; fc
-    call 070bfh                               ; e8 3b 72
-    popaw                                     ; 61
-    pop DS                                    ; 1f
-    pop ES                                    ; 07
-    iret                                      ; cf
-    times 0x1b db 0
+biosorg_check_before_or_at_0FEA3h:           ; 0xffe7b LB 0x2a
+    times 0x28 db 0
     db  'XM'
-int08_handler:                               ; 0xffea5 LB 0x4e
+int08_handler:                               ; 0xffea5 LB 0x42
     sti                                       ; fb
     push ax                                   ; 50
-    push bx                                   ; 53
     push DS                                   ; 1e
     push dx                                   ; 52
@@ -17324,27 +17308,21 @@
     mov ds, ax                                ; 8e d8
     mov ax, word [0006ch]                     ; a1 6c 00
-    mov bx, word [word 0006eh]                ; 8b 1e 6e 00
-    add ax, strict byte 00001h                ; 83 c0 01
-    adc bx, strict byte 00000h                ; 83 d3 00
-    cmp bx, strict byte 00018h                ; 83 fb 18
-    jc short 0fed0h                           ; 72 0f
-    jnbe short 0fec8h                         ; 77 05
-    cmp ax, 000b0h                            ; 3d b0 00
-    jc short 0fed0h                           ; 72 08
-    db  033h, 0c0h
-    ; xor ax, ax                                ; 33 c0
-    db  033h, 0dbh
-    ; xor bx, bx                                ; 33 db
-    inc byte [word 00070h]                    ; fe 06 70 00
+    mov dx, word [word 0006eh]                ; 8b 16 6e 00
+    inc ax                                    ; 40
+    jne short 0feb9h                          ; 75 01
+    inc dx                                    ; 42
+    cmp dx, strict byte 00018h                ; 83 fa 18
+    jc short 0fec1h                           ; 72 03
+    jmp near 0f8f1h                           ; e9 30 fa
     mov word [0006ch], ax                     ; a3 6c 00
-    mov word [word 0006eh], bx                ; 89 1e 6e 00
+    mov word [word 0006eh], dx                ; 89 16 6e 00
     mov AL, byte [00040h]                     ; a0 40 00
     db  00ah, 0c0h
     ; or al, al                                 ; 0a c0
-    je short 0feech                           ; 74 0e
+    je short 0feddh                           ; 74 0e
     db  0feh, 0c8h
     ; dec al                                    ; fe c8
     mov byte [00040h], AL                     ; a2 40 00
-    jne short 0feech                          ; 75 07
+    jne short 0feddh                          ; 75 07
     mov dx, 003f2h                            ; ba f2 03
     in AL, DX                                 ; ec
@@ -17353,16 +17331,16 @@
     int 01ch                                  ; cd 1c
     cli                                       ; fa
-    call 05734h                               ; e8 42 58
-    dec bp                                    ; 4d
-biosorg_check_0FEF3h:                        ; 0xffef3 LB 0xd
+    call 0e034h                               ; e8 51 e1
+    pop dx                                    ; 5a
     pop DS                                    ; 1f
-    pop bx                                    ; 5b
     pop ax                                    ; 58
     iret                                      ; cf
-    add byte [bx+si], al                      ; 00 00
-    add byte [bx+si], al                      ; 00 00
-    add byte [bx+si], al                      ; 00 00
-    add byte [bx+si+04dh], bl                 ; 00 58 4d
-biosorg_check_0FF00h:                        ; 0xfff00 LB 0x53
+biosorg_check_before_or_at_0FEF1h:           ; 0xffee7 LB 0xc
+    times 0xa db 0
+    db  'XM'
+biosorg_check_at_0FEF3h:                     ; 0xffef3 LB 0xd
+    times 0xb db 0
+    db  'XM'
+biosorg_check_at_0FF00h:                     ; 0xfff00 LB 0x19
     dec di                                    ; 4f
     jc short 0ff64h                           ; 72 61
@@ -17380,9 +17358,10 @@
     dec di                                    ; 4f
     push bx                                   ; 53
+biosorg_check_before_or_at_0FF51h:           ; 0xfff19 LB 0x3a
     times 0x38 db 0
     db  'XM'
 dummy_iret:                                  ; 0xfff53 LB 0x1
     iret                                      ; cf
-biosorg_check_0FF54h:                        ; 0xfff54 LB 0x9c
+biosorg_check_at_0FF54h:                     ; 0xfff54 LB 0x2c
     iret                                      ; cf
     mov ax, ax                                ; 89 c0
@@ -17412,7 +17391,9 @@
     add byte [bx+si], al                      ; 00 00
     add byte [di], ah                         ; 00 25
-    times 0x6f db 0
+    times 0x1 db 0
+biosorg_check_before_or_at_0FFEEh:           ; 0xfff80 LB 0x70
+    times 0x6e db 0
     db  'XM'
 cpu_reset:                                   ; 0xffff0 LB 0x10
     jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
-    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 00eh
+    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0ffh
Index: /trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.md5sum
===================================================================
--- /trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.md5sum	(revision 60442)
+++ /trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.md5sum	(revision 60443)
@@ -1,1 +1,1 @@
-95481da57ef1489fb5666e8c8c2ca238 *VBoxPcBios286.rom
+72bd720065b63f96ad5945490ffeef78 *VBoxPcBios286.rom
Index: /trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.asm
===================================================================
--- /trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.asm	(revision 60442)
+++ /trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.asm	(revision 60443)
@@ -15415,14 +15415,18 @@
     loop 0e039h                               ; e2 f6
     retn                                      ; c3
-eoi_jmp_post:                                ; 0xfe044 LB 0xb
+eoi_jmp_post:                                ; 0xfe044 LB 0x3
     call 0e030h                               ; e8 e9 ff
+no_eoi_jmp_post:                             ; 0xfe047 LB 0x8
     db  033h, 0c0h
     ; xor ax, ax                                ; 33 c0
     mov ds, ax                                ; 8e d8
     jmp far [00467h]                          ; ff 2e 67 04
-biosorg_check_before_or_at_0E059h:           ; 0xfe04f LB 0xc
-    times 0xa db 0
+seg_40_value:                                ; 0xfe04f LB 0x2
+    inc ax                                    ; 40
+    times 0x1 db 0
+biosorg_check_before_or_at_0E059h:           ; 0xfe051 LB 0xa
+    times 0x8 db 0
     db  'XM'
-post:                                        ; 0xfe05b LB 0x69
+post:                                        ; 0xfe05b LB 0x6b
     cli                                       ; fa
     smsw ax                                   ; 0f 01 e0
@@ -15438,14 +15442,13 @@
     in AL, strict byte 064h                   ; e4 64
     test AL, strict byte 004h                 ; a8 04
-    je short 0e089h                           ; 74 11
+    je short 0e08bh                           ; 74 13
     db  08ah, 0c4h
     ; mov al, ah                                ; 8a c4
     db  00ah, 0c0h
     ; or al, al                                 ; 0a c0
-    jne short 0e089h                          ; 75 0b
-    push strict byte 00040h                   ; 6a 40
-    pop DS                                    ; 1f
+    jne short 0e08bh                          ; 75 0d
+    mov ds, [cs:0e04fh]                       ; 2e 8e 1e 4f e0
     cmp word [word 00072h], 01234h            ; 81 3e 72 00 34 12
-    jne short 0e064h                          ; 75 db
+    jne short 0e064h                          ; 75 d9
     mov AL, strict byte 00fh                  ; b0 0f
     out strict byte 070h, AL                  ; e6 70
@@ -15455,7 +15458,7 @@
     ; mov al, ah                                ; 8a c4
     cmp AL, strict byte 009h                  ; 3c 09
-    je short 0e0a9h                           ; 74 12
+    je short 0e0abh                           ; 74 12
     cmp AL, strict byte 00ah                  ; 3c 0a
-    je short 0e0a9h                           ; 74 0e
+    je short 0e0abh                           ; 74 0e
     db  032h, 0c0h
     ; xor al, al                                ; 32 c0
@@ -15469,16 +15472,16 @@
     ; mov al, ah                                ; 8a c4
     cmp AL, strict byte 000h                  ; 3c 00
-    je short 0e0c4h                           ; 74 15
+    je short 0e0c6h                           ; 74 15
     cmp AL, strict byte 00dh                  ; 3c 0d
-    jnc short 0e0c4h                          ; 73 11
+    jnc short 0e0c6h                          ; 73 11
     cmp AL, strict byte 009h                  ; 3c 09
-    jne short 0e0bah                          ; 75 03
-    jmp near 0e366h                           ; e9 ac 02
+    jne short 0e0bch                          ; 75 03
+    jmp near 0e366h                           ; e9 aa 02
     cmp AL, strict byte 005h                  ; 3c 05
-    je short 0e044h                           ; 74 86
+    je short 0e044h                           ; 74 84
     cmp AL, strict byte 00ah                  ; 3c 0a
-    je short 0e047h                           ; 74 85
-    jmp short 0e0c4h                          ; eb 00
-normal_post:                                 ; 0xfe0c4 LB 0x1f6
+    je short 0e047h                           ; 74 83
+    jmp short 0e0c6h                          ; eb 00
+normal_post:                                 ; 0xfe0c6 LB 0x1f6
     mov ax, 07800h                            ; b8 00 78
     db  08bh, 0e0h
@@ -15502,5 +15505,5 @@
     add bx, 01000h                            ; 81 c3 00 10
     cmp bx, 09000h                            ; 81 fb 00 90
-    jnc short 0e0f7h                          ; 73 0b
+    jnc short 0e0f9h                          ; 73 0b
     mov es, bx                                ; 8e c3
     db  033h, 0ffh
@@ -15508,5 +15511,5 @@
     mov cx, 08000h                            ; b9 00 80
     rep stosw                                 ; f3 ab
-    jmp short 0e0e2h                          ; eb eb
+    jmp short 0e0e4h                          ; eb eb
     mov es, bx                                ; 8e c3
     db  033h, 0ffh
@@ -15519,6 +15522,6 @@
     pop DS                                    ; 1f
     cld                                       ; fc
-    call 01777h                               ; e8 6f 36
-    call 0e8e0h                               ; e8 d5 07
+    call 01777h                               ; e8 6d 36
+    call 0e8e0h                               ; e8 d3 07
     db  033h, 0dbh
     ; xor bx, bx                                ; 33 db
@@ -15527,8 +15530,8 @@
     mov ax, 0ff53h                            ; b8 53 ff
     mov dx, 0f000h                            ; ba 00 f0
-    call 0e039h                               ; e8 1e ff
+    call 0e039h                               ; e8 1c ff
     mov bx, 001a0h                            ; bb a0 01
     mov cx, strict word 00010h                ; b9 10 00
-    call 0e039h                               ; e8 15 ff
+    call 0e039h                               ; e8 13 ff
     mov ax, 0027fh                            ; b8 7f 02
     mov word [00413h], ax                     ; a3 13 04
@@ -15565,7 +15568,7 @@
     mov ax, 0f000h                            ; b8 00 f0
     mov word [00072h], ax                     ; a3 72 00
-    call 0e778h                               ; e8 eb 05
-    call 0f13ch                               ; e8 ac 0f
-    call 0f1c1h                               ; e8 2e 10
+    call 0e778h                               ; e8 e9 05
+    call 0f13bh                               ; e8 a9 0f
+    call 0f1c0h                               ; e8 2b 10
     mov ax, 0fe6eh                            ; b8 6e fe
     mov word [00068h], ax                     ; a3 68 00
@@ -15619,6 +15622,6 @@
     mov ax, 0c000h                            ; b8 00 c0
     mov dx, 0c800h                            ; ba 00 c8
-    call 01600h                               ; e8 e3 33
-    call 04e4ch                               ; e8 2c 6c
+    call 01600h                               ; e8 e1 33
+    call 04e4ch                               ; e8 2a 6c
     pop DS                                    ; 1f
     mov ax, 0ff53h                            ; b8 53 ff
@@ -15633,7 +15636,7 @@
     mov CL, strict byte 014h                  ; b1 14
     mov dx, 00378h                            ; ba 78 03
-    call 0ecedh                               ; e8 b2 0a
+    call 0ecedh                               ; e8 b0 0a
     mov dx, 00278h                            ; ba 78 02
-    call 0ecedh                               ; e8 ac 0a
+    call 0ecedh                               ; e8 aa 0a
     sal bx, 00eh                              ; c1 e3 0e
     mov ax, word [00410h]                     ; a1 10 04
@@ -15658,11 +15661,11 @@
     mov CL, strict byte 00ah                  ; b1 0a
     mov dx, 003f8h                            ; ba f8 03
-    call 0ed0bh                               ; e8 8e 0a
+    call 0ed0bh                               ; e8 8c 0a
     mov dx, 002f8h                            ; ba f8 02
-    call 0ed0bh                               ; e8 88 0a
+    call 0ed0bh                               ; e8 86 0a
     mov dx, 003e8h                            ; ba e8 03
-    call 0ed0bh                               ; e8 82 0a
+    call 0ed0bh                               ; e8 80 0a
     mov dx, 002e8h                            ; ba e8 02
-    call 0ed0bh                               ; e8 7c 0a
+    call 0ed0bh                               ; e8 7a 0a
     sal bx, 009h                              ; c1 e3 09
     mov ax, word [00410h]                     ; a1 10 04
@@ -15675,12 +15678,11 @@
     mov ax, 0f000h                            ; b8 00 f0
     mov word [0012ah], ax                     ; a3 2a 01
-    mov ax, 0fe8fh                            ; b8 8f fe
+    mov ax, 0f8e6h                            ; b8 e6 f8
     mov word [001c0h], ax                     ; a3 c0 01
     mov ax, 0f000h                            ; b8 00 f0
     mov word [001c2h], ax                     ; a3 c2 01
-    call 0edbfh                               ; e8 07 0b
-    jmp short 0e31bh                          ; eb 61
-biosorg_check_before_or_at_0E2C1h:           ; 0xfe2ba LB 0x9
-    add byte [bx+si], al                      ; 00 00
+    call 0edbfh                               ; e8 05 0b
+    jmp short 0e31bh                          ; eb 5f
+biosorg_check_before_or_at_0E2C1h:           ; 0xfe2bc LB 0x7
     add byte [bx+si], al                      ; 00 00
     add byte [bx+si], al                      ; 00 00
@@ -15712,5 +15714,5 @@
     mov ax, 0f000h                            ; b8 00 f0
     mov word [0004eh], ax                     ; a3 4e 00
-    mov ax, 0f8d7h                            ; b8 d7 f8
+    mov ax, 0f8d4h                            ; b8 d4 f8
     mov word [001d8h], ax                     ; a3 d8 01
     mov ax, 0f000h                            ; b8 00 f0
@@ -16411,5 +16413,5 @@
     hlt                                       ; f4
     iret                                      ; cf
-int19_relocated:                             ; 0xff0ac LB 0x90
+int19_relocated:                             ; 0xff0ac LB 0x8f
     db  08bh, 0ech
     ; mov bp, sp                                ; 8b ec
@@ -16435,5 +16437,5 @@
     inc sp                                    ; 44
     test ax, ax                               ; 85 c0
-    jne short 0f0feh                          ; 75 28
+    jne short 0f0fdh                          ; 75 27
     mov ax, strict word 00002h                ; b8 02 00
     push ax                                   ; 50
@@ -16442,19 +16444,19 @@
     inc sp                                    ; 44
     test ax, ax                               ; 85 c0
-    jne short 0f0feh                          ; 75 1b
+    jne short 0f0fdh                          ; 75 1a
     mov ax, strict word 00003h                ; b8 03 00
-    push strict byte 00003h                   ; 6a 03
-    call 04be3h                               ; e8 f8 5a
+    push ax                                   ; 50
+    call 04be3h                               ; e8 f9 5a
     inc sp                                    ; 44
     inc sp                                    ; 44
     test ax, ax                               ; 85 c0
-    jne short 0f0feh                          ; 75 0d
+    jne short 0f0fdh                          ; 75 0d
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 04be3h                               ; e8 eb 5a
+    call 04be3h                               ; e8 ec 5a
     inc sp                                    ; 44
     inc sp                                    ; 44
     test ax, ax                               ; 85 c0
-    je short 0f0a4h                           ; 74 a6
+    je short 0f0a4h                           ; 74 a7
     sal eax, 004h                             ; 66 c1 e0 04
     mov word [bp+002h], ax                    ; 89 46 02
@@ -16484,5 +16486,5 @@
     pop eax                                   ; 66 58
     retn                                      ; c3
-pcibios_init_iomem_bases:                    ; 0xff13c LB 0x16
+pcibios_init_iomem_bases:                    ; 0xff13b LB 0x16
     push bp                                   ; 55
     db  08bh, 0ech
@@ -16495,14 +16497,14 @@
     push ax                                   ; 50
     mov bx, strict word 00008h                ; bb 08 00
-pci_init_io_loop1:                           ; 0xff152 LB 0xe
+pci_init_io_loop1:                           ; 0xff151 LB 0xe
     mov DL, strict byte 000h                  ; b2 00
-    call 0f121h                               ; e8 ca ff
+    call 0f120h                               ; e8 ca ff
     mov dx, 00cfch                            ; ba fc 0c
     in ax, DX                                 ; ed
     cmp ax, strict byte 0ffffh                ; 83 f8 ff
-    je short 0f199h                           ; 74 39
-enable_iomem_space:                          ; 0xff160 LB 0x39
+    je short 0f198h                           ; 74 39
+enable_iomem_space:                          ; 0xff15f LB 0x39
     mov DL, strict byte 004h                  ; b2 04
-    call 0f121h                               ; e8 bc ff
+    call 0f120h                               ; e8 bc ff
     mov dx, 00cfch                            ; ba fc 0c
     in AL, DX                                 ; ec
@@ -16510,11 +16512,11 @@
     out DX, AL                                ; ee
     mov DL, strict byte 000h                  ; b2 00
-    call 0f121h                               ; e8 b0 ff
+    call 0f120h                               ; e8 b0 ff
     mov dx, 00cfch                            ; ba fc 0c
     in eax, DX                                ; 66 ed
     cmp eax, strict dword 020001022h          ; 66 3d 22 10 00 20
-    jne short 0f199h                          ; 75 1b
+    jne short 0f198h                          ; 75 1b
     mov DL, strict byte 010h                  ; b2 10
-    call 0f121h                               ; e8 9e ff
+    call 0f120h                               ; e8 9e ff
     mov dx, 00cfch                            ; ba fc 0c
     in ax, DX                                 ; ed
@@ -16530,22 +16532,22 @@
     add dx, strict byte 00018h                ; 83 c2 18
     in eax, DX                                ; 66 ed
-next_pci_dev:                                ; 0xff199 LB 0xf
+next_pci_dev:                                ; 0xff198 LB 0xf
     mov byte [bp-008h], 010h                  ; c6 46 f8 10
     inc bx                                    ; 43
     cmp bx, 00100h                            ; 81 fb 00 01
-    jne short 0f152h                          ; 75 ae
+    jne short 0f151h                          ; 75 ae
     db  08bh, 0e5h
     ; mov sp, bp                                ; 8b e5
     pop bp                                    ; 5d
     retn                                      ; c3
-pcibios_init_set_elcr:                       ; 0xff1a8 LB 0xc
+pcibios_init_set_elcr:                       ; 0xff1a7 LB 0xc
     push ax                                   ; 50
     push cx                                   ; 51
     mov dx, 004d0h                            ; ba d0 04
     test AL, strict byte 008h                 ; a8 08
-    je short 0f1b4h                           ; 74 03
+    je short 0f1b3h                           ; 74 03
     inc dx                                    ; 42
     and AL, strict byte 007h                  ; 24 07
-is_master_pic:                               ; 0xff1b4 LB 0xd
+is_master_pic:                               ; 0xff1b3 LB 0xd
     db  08ah, 0c8h
     ; mov cl, al                                ; 8a c8
@@ -16559,5 +16561,5 @@
     pop ax                                    ; 58
     retn                                      ; c3
-pcibios_init_irqs:                           ; 0xff1c1 LB 0x53
+pcibios_init_irqs:                           ; 0xff1c0 LB 0x53
     push DS                                   ; 1e
     push bp                                   ; 55
@@ -16573,11 +16575,11 @@
     mov bl, byte [si+009h]                    ; 8a 5c 09
     mov DL, strict byte 000h                  ; b2 00
-    call 0f121h                               ; e8 43 ff
+    call 0f120h                               ; e8 43 ff
     mov dx, 00cfch                            ; ba fc 0c
     in eax, DX                                ; 66 ed
     cmp eax, dword [si+00ch]                  ; 66 3b 44 0c
-    jne near 0f291h                           ; 0f 85 a6 00
+    jne near 0f290h                           ; 0f 85 a6 00
     mov dl, byte [si+022h]                    ; 8a 54 22
-    call 0f121h                               ; e8 30 ff
+    call 0f120h                               ; e8 30 ff
     push bx                                   ; 53
     mov dx, 00cfch                            ; ba fc 0c
@@ -16594,29 +16596,29 @@
     db  08bh, 0ech
     ; mov bp, sp                                ; 8b ec
-    mov ax, 0f11dh                            ; b8 1d f1
+    mov ax, 0f11ch                            ; b8 1c f1
     push ax                                   ; 50
     db  033h, 0c0h
     ; xor ax, ax                                ; 33 c0
     push ax                                   ; 50
-pci_init_irq_loop1:                          ; 0xff214 LB 0x5
+pci_init_irq_loop1:                          ; 0xff213 LB 0x5
     mov bh, byte [si]                         ; 8a 3c
     mov bl, byte [si+001h]                    ; 8a 5c 01
-pci_init_irq_loop2:                          ; 0xff219 LB 0x15
+pci_init_irq_loop2:                          ; 0xff218 LB 0x15
     mov DL, strict byte 000h                  ; b2 00
-    call 0f121h                               ; e8 03 ff
+    call 0f120h                               ; e8 03 ff
     mov dx, 00cfch                            ; ba fc 0c
     in ax, DX                                 ; ed
     cmp ax, strict byte 0ffffh                ; 83 f8 ff
-    jne short 0f22eh                          ; 75 07
+    jne short 0f22dh                          ; 75 07
     test bl, 007h                             ; f6 c3 07
-    je short 0f285h                           ; 74 59
-    jmp short 0f27bh                          ; eb 4d
-pci_test_int_pin:                            ; 0xff22e LB 0x3c
+    je short 0f284h                           ; 74 59
+    jmp short 0f27ah                          ; eb 4d
+pci_test_int_pin:                            ; 0xff22d LB 0x3c
     mov DL, strict byte 03ch                  ; b2 3c
-    call 0f121h                               ; e8 ee fe
+    call 0f120h                               ; e8 ee fe
     mov dx, 00cfdh                            ; ba fd 0c
     in AL, DX                                 ; ec
     and AL, strict byte 007h                  ; 24 07
-    je short 0f27bh                           ; 74 40
+    je short 0f27ah                           ; 74 40
     db  0feh, 0c8h
     ; dec al                                    ; fe c8
@@ -16632,5 +16634,5 @@
     ; mov dl, al                                ; 8a d0
     mov bx, word [byte bp+000h]               ; 8b 5e 00
-    call 0f121h                               ; e8 d0 fe
+    call 0f120h                               ; e8 d0 fe
     mov dx, 00cfch                            ; ba fc 0c
     and AL, strict byte 003h                  ; 24 03
@@ -16639,5 +16641,5 @@
     in AL, DX                                 ; ec
     cmp AL, strict byte 080h                  ; 3c 80
-    jc short 0f26ah                           ; 72 0d
+    jc short 0f269h                           ; 72 0d
     mov bx, word [bp-002h]                    ; 8b 5e fe
     mov al, byte [bx]                         ; 8a 07
@@ -16645,33 +16647,33 @@
     inc bx                                    ; 43
     mov word [bp-002h], bx                    ; 89 5e fe
-    call 0f1a8h                               ; e8 3e ff
-pirq_found:                                  ; 0xff26a LB 0x11
+    call 0f1a7h                               ; e8 3e ff
+pirq_found:                                  ; 0xff269 LB 0x11
     mov bh, byte [si]                         ; 8a 3c
     mov bl, byte [si+001h]                    ; 8a 5c 01
     add bl, byte [bp-003h]                    ; 02 5e fd
     mov DL, strict byte 03ch                  ; b2 3c
-    call 0f121h                               ; e8 aa fe
+    call 0f120h                               ; e8 aa fe
     mov dx, 00cfch                            ; ba fc 0c
     out DX, AL                                ; ee
-next_pci_func:                               ; 0xff27b LB 0xa
+next_pci_func:                               ; 0xff27a LB 0xa
     inc byte [bp-003h]                        ; fe 46 fd
     db  0feh, 0c3h
     ; inc bl                                    ; fe c3
     test bl, 007h                             ; f6 c3 07
-    jne short 0f219h                          ; 75 94
-next_pir_entry:                              ; 0xff285 LB 0xc
+    jne short 0f218h                          ; 75 94
+next_pir_entry:                              ; 0xff284 LB 0xc
     add si, strict byte 00010h                ; 83 c6 10
     mov byte [bp-003h], 000h                  ; c6 46 fd 00
-    loop 0f214h                               ; e2 86
+    loop 0f213h                               ; e2 86
     db  08bh, 0e5h
     ; mov sp, bp                                ; 8b e5
     pop bx                                    ; 5b
-pci_init_end:                                ; 0xff291 LB 0x2f
+pci_init_end:                                ; 0xff290 LB 0x30
     pop bp                                    ; 5d
     pop DS                                    ; 1f
     retn                                      ; c3
-    db  089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 024h, 050h, 049h, 052h
-    db  000h, 001h, 000h, 002h, 000h, 008h, 000h, 000h, 086h, 080h, 000h, 070h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 031h
+    db  089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 0fch, 024h, 050h, 049h
+    db  052h, 000h, 001h, 000h, 002h, 000h, 008h, 000h, 000h, 086h, 080h, 000h, 070h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 031h
 _pci_routing_table:                          ; 0xff2c0 LB 0x1e0
     db  000h, 008h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 000h, 000h
@@ -16774,20 +16776,22 @@
     pop bp                                    ; 5d
     iret                                      ; cf
-int74_handler:                               ; 0xff8a9 LB 0x2e
+int74_handler:                               ; 0xff8a9 LB 0x2b
     sti                                       ; fb
     pushaw                                    ; 60
     push ES                                   ; 06
     push DS                                   ; 1e
-    push strict byte 00000h                   ; 6a 00
-    push strict byte 00000h                   ; 6a 00
-    push strict byte 00000h                   ; 6a 00
-    push strict byte 00000h                   ; 6a 00
-    push strict byte 00000h                   ; 6a 00
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    push ax                                   ; 50
+    push ax                                   ; 50
+    push ax                                   ; 50
+    push ax                                   ; 50
+    push ax                                   ; 50
     push CS                                   ; 0e
     pop DS                                    ; 1f
     cld                                       ; fc
-    call 07327h                               ; e8 6a 7a
+    call 07327h                               ; e8 6d 7a
     pop cx                                    ; 59
-    jcxz 0f8cch                               ; e3 0c
+    jcxz 0f8c9h                               ; e3 0c
     push strict byte 00000h                   ; 6a 00
     pop DS                                    ; 1f
@@ -16796,5 +16800,5 @@
     call far [word 00022h]                    ; ff 1e 22 00
     cli                                       ; fa
-    call 0e030h                               ; e8 60 e7
+    call 0e030h                               ; e8 63 e7
     add sp, strict byte 00008h                ; 83 c4 08
     pop DS                                    ; 1f
@@ -16802,5 +16806,5 @@
     popaw                                     ; 61
     iret                                      ; cf
-int76_handler:                               ; 0xff8d7 LB 0x12
+int76_handler:                               ; 0xff8d4 LB 0x12
     push ax                                   ; 50
     push DS                                   ; 1e
@@ -16808,10 +16812,22 @@
     mov ds, ax                                ; 8e d8
     mov byte [0008eh], 0ffh                   ; c6 06 8e 00 ff
-    call 0e030h                               ; e8 4a e7
+    call 0e030h                               ; e8 4d e7
     pop DS                                    ; 1f
     pop ax                                    ; 58
     iret                                      ; cf
-biosorg_check_before_or_at_0FA6Ch:           ; 0xff8e9 LB 0x185
-    times 0x183 db 0
+int70_handler:                               ; 0xff8e6 LB 0xd
+    push ES                                   ; 06
+    push DS                                   ; 1e
+    pushaw                                    ; 60
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    call 06fdfh                               ; e8 f0 76
+    popaw                                     ; 61
+    pop DS                                    ; 1f
+    pop ES                                    ; 07
+    iret                                      ; cf
+biosorg_check_before_or_at_0FA6Ch:           ; 0xff8f3 LB 0x17b
+    times 0x179 db 0
     db  'XM'
 font8x8:                                     ; 0xffa6e LB 0x400
@@ -16905,21 +16921,7 @@
     pop ES                                    ; 07
     iret                                      ; cf
-int70_handler:                               ; 0xffe8f LB 0xd
-    push ES                                   ; 06
-    push DS                                   ; 1e
-    pushaw                                    ; 60
-    push CS                                   ; 0e
-    pop DS                                    ; 1f
-    cld                                       ; fc
-    call 06fdfh                               ; e8 47 71
-    popaw                                     ; 61
-    pop DS                                    ; 1f
-    pop ES                                    ; 07
-    iret                                      ; cf
-biosorg_check_before_or_at_0FEA3h:           ; 0xffe9c LB 0x9
-    add byte [bx+si], al                      ; 00 00
-    add byte [bx+si], al                      ; 00 00
-    add byte [bx+si], al                      ; 00 00
-    add byte [bx+si+04dh], bl                 ; 00 58 4d
+biosorg_check_before_or_at_0FEA3h:           ; 0xffe8f LB 0x16
+    times 0x14 db 0
+    db  'XM'
 int08_handler:                               ; 0xffea5 LB 0x43
     sti                                       ; fb
@@ -17017,3 +17019,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, 04eh
+    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0a1h
Index: /trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.md5sum
===================================================================
--- /trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.md5sum	(revision 60442)
+++ /trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.md5sum	(revision 60443)
@@ -1,1 +1,1 @@
-6f304b6bd2833711f28ac083956c9a9b *VBoxPcBios386.rom
+a2f3015e93a5e62e47b783abd626ce9b *VBoxPcBios386.rom
Index: /trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.asm
===================================================================
--- /trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.asm	(revision 60442)
+++ /trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.asm	(revision 60443)
@@ -856,10 +856,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, 0bfh, 02bh, 056h, 083h, 0f1h, 092h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 0a1h, 02bh, 001h, 083h, 09ch, 092h
 _softrst:                                    ; 0xf0076 LB 0xc
-    db  000h, 000h, 000h, 000h, 000h, 000h, 04ah, 02eh, 0dbh, 03bh, 0dbh, 03bh
+    db  000h, 000h, 000h, 000h, 000h, 000h, 02ch, 02eh, 0bdh, 03bh, 0bdh, 03bh
 _dskacc:                                     ; 0xf0082 LB 0x2e
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0a3h, 02ah, 064h, 02bh, 000h, 000h, 000h, 000h
-    db  084h, 081h, 06dh, 082h, 0bfh, 091h, 069h, 092h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h, 02ah, 046h, 02bh, 000h, 000h, 000h, 000h
+    db  02fh, 081h, 018h, 082h, 06ah, 091h, 014h, 092h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
     db  032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h
 
@@ -1058,5 +1058,5 @@
   times 1144 db 0
 
-section _TEXT progbits vstart=0x1600 align=1 ; size=0x8d05 class=CODE group=AUTO
+section _TEXT progbits vstart=0x1600 align=1 ; size=0x8ca5 class=CODE group=AUTO
 rom_scan_:                                   ; 0xf1600 LB 0x52
     push bp                                   ; 55
@@ -1318,5 +1318,5 @@
     int 010h                                  ; cd 10
     jmp short 017c3h                          ; eb 03
-    call 07d2ah                               ; e8 67 65
+    call 07cd3h                               ; e8 10 65
     mov sp, bp                                ; 89 ec
     pop bp                                    ; 5d
@@ -1464,5 +1464,5 @@
     mov bx, strict word 0000ah                ; bb 0a 00
     xor cx, cx                                ; 31 c9
-    call 0a1f0h                               ; e8 13 89
+    call 0a190h                               ; e8 b3 88
     mov word [bp-008h], ax                    ; 89 46 f8
     mov cx, dx                                ; 89 d1
@@ -1701,5 +1701,5 @@
     mov dx, word [bp-026h]                    ; 8b 56 da
     mov si, word [bp-01eh]                    ; 8b 76 e2
-    call 0a26ah                               ; e8 52 87
+    call 0a20ah                               ; e8 f2 86
     mov ax, dx                                ; 89 d0
     xor ah, dh                                ; 30 f4
@@ -2162,5 +2162,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00018h                ; be 18 00
-    call 0a26ah                               ; e8 d8 82
+    call 0a20ah                               ; e8 78 82
     xor dh, dh                                ; 30 f6
     mov word [bp-014h], dx                    ; 89 56 ec
@@ -2172,5 +2172,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00020h                ; be 20 00
-    call 0a26ah                               ; e8 b8 82
+    call 0a20ah                               ; e8 58 82
     mov bx, dx                                ; 89 d3
     mov word [bp-010h], dx                    ; 89 56 f0
@@ -2204,5 +2204,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00008h                ; be 08 00
-    call 0a26ah                               ; e8 65 82
+    call 0a20ah                               ; e8 05 82
     mov word [bp-010h], dx                    ; 89 56 f0
     mov bx, word [bp-016h]                    ; 8b 5e ea
@@ -2213,5 +2213,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00018h                ; be 18 00
-    call 0a26ah                               ; e8 47 82
+    call 0a20ah                               ; e8 e7 81
     mov bl, dl                                ; 88 d3
     and bl, 00fh                              ; 80 e3 0f
@@ -2344,18 +2344,18 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-_ata_detect:                                 ; 0xf2154 LB 0x6c1
+_ata_detect:                                 ; 0xf2154 LB 0x6a3
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     push si                                   ; 56
     push di                                   ; 57
-    sub sp, 00266h                            ; 81 ec 66 02
+    sub sp, 00264h                            ; 81 ec 64 02
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
     call 0166eh                               ; e8 08 f5
-    mov word [bp-01eh], ax                    ; 89 46 e2
+    mov word [bp-024h], ax                    ; 89 46 dc
     mov bx, 00122h                            ; bb 22 01
     mov es, ax                                ; 8e c0
-    mov word [bp-02ch], bx                    ; 89 5e d4
-    mov word [bp-024h], ax                    ; 89 46 dc
+    mov word [bp-01eh], bx                    ; 89 5e e2
+    mov word [bp-022h], ax                    ; 89 46 de
     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
@@ -2368,34 +2368,34 @@
     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
-    mov byte [bp-00eh], al                    ; 88 46 f2
-    jmp near 02794h                           ; e9 de 05
+    jmp near 02775h                           ; e9 bf 05
     mov ax, 000a0h                            ; b8 a0 00
     lea dx, [bx+006h]                         ; 8d 57 06
     out DX, AL                                ; ee
-    lea di, [bx+002h]                         ; 8d 7f 02
+    lea si, [bx+002h]                         ; 8d 77 02
+    mov AL, strict byte 055h                  ; b0 55
+    mov dx, si                                ; 89 f2
+    out DX, AL                                ; ee
+    lea di, [bx+003h]                         ; 8d 7f 03
+    mov AL, strict byte 0aah                  ; b0 aa
+    mov dx, di                                ; 89 fa
+    out DX, AL                                ; ee
+    mov dx, si                                ; 89 f2
+    out DX, AL                                ; ee
     mov AL, strict byte 055h                  ; b0 55
     mov dx, di                                ; 89 fa
     out DX, AL                                ; ee
-    lea si, [bx+003h]                         ; 8d 77 03
+    mov dx, si                                ; 89 f2
+    out DX, AL                                ; ee
     mov AL, strict byte 0aah                  ; b0 aa
+    mov dx, di                                ; 89 fa
+    out DX, AL                                ; ee
     mov dx, si                                ; 89 f2
-    out DX, AL                                ; ee
-    mov dx, di                                ; 89 fa
-    out DX, AL                                ; ee
-    mov AL, strict byte 055h                  ; b0 55
-    mov dx, si                                ; 89 f2
-    out DX, AL                                ; ee
-    mov dx, di                                ; 89 fa
-    out DX, AL                                ; ee
-    mov AL, strict byte 0aah                  ; b0 aa
-    mov dx, si                                ; 89 f2
-    out DX, AL                                ; ee
-    mov dx, di                                ; 89 fa
     in AL, DX                                 ; ec
     db  02ah, 0e4h
     ; sub ah, ah                                ; 2a e4
     mov cx, ax                                ; 89 c1
-    mov dx, si                                ; 89 f2
+    mov dx, di                                ; 89 fa
     in AL, DX                                 ; ec
     db  02ah, 0e4h
@@ -2405,16 +2405,16 @@
     cmp AL, strict byte 0aah                  ; 3c aa
     jne short 0223ah                          ; 75 48
-    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    mov al, byte [bp-010h]                    ; 8a 46 f0
     xor ah, ah                                ; 30 e4
     mov dx, strict word 0001ch                ; ba 1c 00
     imul dx                                   ; f7 ea
-    mov es, [bp-024h]                         ; 8e 46 dc
-    mov si, word [bp-02ch]                    ; 8b 76 d4
+    mov es, [bp-022h]                         ; 8e 46 de
+    mov si, word [bp-01eh]                    ; 8b 76 e2
     add si, ax                                ; 01 c6
     mov byte [es:si+022h], 001h               ; 26 c6 44 22 01
-    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    mov al, byte [bp-010h]                    ; 8a 46 f0
     xor ah, ah                                ; 30 e4
     call 01db8h                               ; e8 a7 fb
-    cmp byte [bp-018h], 000h                  ; 80 7e e8 00
+    cmp byte [bp-014h], 000h                  ; 80 7e ec 00
     je short 0221ch                           ; 74 05
     mov ax, 000b0h                            ; b8 b0 00
@@ -2433,8 +2433,8 @@
     ; sub ah, ah                                ; 2a e4
     cmp cl, 001h                              ; 80 f9 01
-    jne short 0227ah                          ; 75 44
+    jne short 0227dh                          ; 75 47
     cmp al, cl                                ; 38 c8
     je short 0223ch                           ; 74 02
-    jmp short 0227ah                          ; eb 3e
+    jmp short 0227dh                          ; eb 41
     lea dx, [bx+004h]                         ; 8d 57 04
     in AL, DX                                 ; ec
@@ -2442,11 +2442,12 @@
     ; sub ah, ah                                ; 2a e4
     mov cx, ax                                ; 89 c1
-    mov byte [bp-01ch], al                    ; 88 46 e4
+    mov ch, al                                ; 88 c5
     lea dx, [bx+005h]                         ; 8d 57 05
     in AL, DX                                 ; ec
     db  02ah, 0e4h
     ; sub ah, ah                                ; 2a e4
-    mov word [bp-02ah], ax                    ; 89 46 d6
-    mov ch, byte [bp-02ah]                    ; 8a 6e d6
+    mov word [bp-032h], ax                    ; 89 46 ce
+    mov al, byte [bp-032h]                    ; 8a 46 ce
+    mov byte [bp-00ah], al                    ; 88 46 f6
     lea dx, [bx+007h]                         ; 8d 57 07
     in AL, DX                                 ; ec
@@ -2454,135 +2455,128 @@
     ; sub ah, ah                                ; 2a e4
     cmp cl, 014h                              ; 80 f9 14
-    jne short 0227ch                          ; 75 1e
-    cmp ch, 0ebh                              ; 80 fd eb
-    jne short 0227ch                          ; 75 19
-    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    jne short 0227fh                          ; 75 1f
+    cmp byte [bp-032h], 0ebh                  ; 80 7e ce eb
+    jne short 0227fh                          ; 75 19
+    mov al, byte [bp-010h]                    ; 8a 46 f0
     xor ah, ah                                ; 30 e4
     mov dx, strict word 0001ch                ; ba 1c 00
     imul dx                                   ; f7 ea
-    mov es, [bp-024h]                         ; 8e 46 dc
-    mov bx, word [bp-02ch]                    ; 8b 5e d4
+    mov es, [bp-022h]                         ; 8e 46 de
+    mov bx, word [bp-01eh]                    ; 8b 5e e2
     add bx, ax                                ; 01 c3
     mov byte [es:bx+022h], 003h               ; 26 c6 47 22 03
-    jmp short 022c5h                          ; eb 49
-    cmp byte [bp-01ch], 000h                  ; 80 7e e4 00
-    jne short 022a3h                          ; 75 21
+    jmp short 022c7h                          ; eb 48
     test ch, ch                               ; 84 ed
-    jne short 022a3h                          ; 75 1d
+    jne short 022a6h                          ; 75 23
+    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
+    jne short 022a6h                          ; 75 1d
     test al, al                               ; 84 c0
-    je short 022a3h                           ; 74 19
-    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    je short 022a6h                           ; 74 19
+    mov al, byte [bp-010h]                    ; 8a 46 f0
     xor ah, ah                                ; 30 e4
     mov dx, strict word 0001ch                ; ba 1c 00
     imul dx                                   ; f7 ea
-    mov es, [bp-024h]                         ; 8e 46 dc
-    mov bx, word [bp-02ch]                    ; 8b 5e d4
+    mov es, [bp-022h]                         ; 8e 46 de
+    mov bx, word [bp-01eh]                    ; 8b 5e e2
     add bx, ax                                ; 01 c3
     mov byte [es:bx+022h], 002h               ; 26 c6 47 22 02
-    jmp short 022c5h                          ; eb 22
-    mov al, byte [bp-01ch]                    ; 8a 46 e4
-    cmp AL, strict byte 0ffh                  ; 3c ff
-    jne short 022c5h                          ; 75 1b
-    cmp ch, al                                ; 38 c5
-    jne short 022c5h                          ; 75 17
-    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    jmp short 022c7h                          ; eb 21
+    cmp ch, 0ffh                              ; 80 fd ff
+    jne short 022c7h                          ; 75 1c
+    cmp ch, byte [bp-00ah]                    ; 3a 6e f6
+    jne short 022c7h                          ; 75 17
+    mov al, byte [bp-010h]                    ; 8a 46 f0
     xor ah, ah                                ; 30 e4
     mov dx, strict word 0001ch                ; ba 1c 00
     imul dx                                   ; f7 ea
-    mov es, [bp-024h]                         ; 8e 46 dc
-    mov bx, word [bp-02ch]                    ; 8b 5e d4
+    mov es, [bp-022h]                         ; 8e 46 de
+    mov bx, word [bp-01eh]                    ; 8b 5e e2
     add bx, ax                                ; 01 c3
     mov byte [es:bx+022h], 000h               ; 26 c6 47 22 00
-    mov dx, word [bp-030h]                    ; 8b 56 d0
+    mov dx, word [bp-028h]                    ; 8b 56 d8
     add dx, strict byte 00006h                ; 83 c2 06
     mov AL, strict byte 008h                  ; b0 08
     out DX, AL                                ; ee
-    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    mov al, byte [bp-010h]                    ; 8a 46 f0
     xor ah, ah                                ; 30 e4
     mov dx, strict word 0001ch                ; ba 1c 00
     imul dx                                   ; f7 ea
-    mov es, [bp-024h]                         ; 8e 46 dc
-    mov bx, word [bp-02ch]                    ; 8b 5e d4
+    mov es, [bp-022h]                         ; 8e 46 de
+    mov bx, word [bp-01eh]                    ; 8b 5e e2
     add bx, ax                                ; 01 c3
     mov al, byte [es:bx+022h]                 ; 26 8a 47 22
-    mov byte [bp-014h], al                    ; 88 46 ec
+    mov byte [bp-012h], al                    ; 88 46 ee
     cmp AL, strict byte 002h                  ; 3c 02
-    jne short 02349h                          ; 75 5e
+    jne short 02339h                          ; 75 4c
     mov byte [es:bx+023h], 0ffh               ; 26 c6 47 23 ff
     mov byte [es:bx+026h], 000h               ; 26 c6 47 26 00
-    lea dx, [bp-0026ah]                       ; 8d 96 96 fd
-    mov bx, word [bp-02ch]                    ; 8b 5e d4
+    lea dx, [bp-00268h]                       ; 8d 96 98 fd
+    mov bx, word [bp-01eh]                    ; 8b 5e e2
     mov word [es:bx+008h], dx                 ; 26 89 57 08
     mov [es:bx+00ah], ss                      ; 26 8c 57 0a
-    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    mov 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-02ch]                    ; 8b 46 d4
+    mov ax, word [bp-01eh]                    ; 8b 46 e2
     mov dx, es                                ; 8c c2
-    call 01e9dh                               ; e8 84 fb
+    call 01e9dh                               ; e8 82 fb
     test ax, ax                               ; 85 c0
-    je short 0232bh                           ; 74 0e
+    je short 0232dh                           ; 74 0e
     mov ax, 00124h                            ; b8 24 01
     push ax                                   ; 50
     mov ax, strict word 00007h                ; b8 07 00
     push ax                                   ; 50
-    call 01976h                               ; e8 4e f6
+    call 01976h                               ; e8 4c f6
     add sp, strict byte 00004h                ; 83 c4 04
-    test byte [bp-0026ah], 080h               ; f6 86 96 fd 80
-    je short 02337h                           ; 74 05
+    test byte [bp-00268h], 080h               ; f6 86 98 fd 80
+    je short 0233ch                           ; 74 08
     mov ax, strict word 00001h                ; b8 01 00
-    jmp short 02339h                          ; eb 02
+    jmp short 0233eh                          ; eb 05
+    jmp near 02520h                           ; e9 e4 01
     xor ax, ax                                ; 31 c0
-    mov byte [bp-006h], al                    ; 88 46 fa
-    mov al, byte [bp-0020ah]                  ; 8a 86 f6 fd
+    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 ax, word [bp-00266h]                  ; 8b 86 9a fd
+    mov word [bp-02ch], ax                    ; 89 46 d4
+    mov ax, word [bp-00262h]                  ; 8b 86 9e fd
+    mov word [bp-034h], ax                    ; 89 46 cc
+    mov ax, word [bp-0025ch]                  ; 8b 86 a4 fd
+    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
+    jne short 02397h                          ; 75 19
+    mov ax, word [bp-0019ah]                  ; 8b 86 66 fe
+    mov word [bp-020h], ax                    ; 89 46 e0
+    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-030h], ax                    ; 89 46 d0
+    mov si, word [bp-001a0h]                  ; 8b b6 60 fe
+    mov al, byte [bp-010h]                    ; 8a 46 f0
+    cmp AL, strict byte 001h                  ; 3c 01
+    jc short 023aah                           ; 72 0c
+    jbe short 023b2h                          ; 76 12
+    cmp AL, strict byte 003h                  ; 3c 03
+    je short 023bah                           ; 74 16
+    cmp AL, strict byte 002h                  ; 3c 02
+    je short 023b6h                           ; 74 0e
+    jmp short 023efh                          ; eb 45
     test al, al                               ; 84 c0
-    je short 0234ch                           ; 74 08
-    mov ax, strict word 00001h                ; b8 01 00
-    jmp short 0234eh                          ; eb 05
-    jmp near 0252ch                           ; e9 e0 01
-    xor ah, ah                                ; 30 e4
-    mov byte [bp-00ah], al                    ; 88 46 f6
-    mov word [bp-038h], 00200h                ; c7 46 c8 00 02
-    mov ax, word [bp-00268h]                  ; 8b 86 98 fd
-    mov word [bp-022h], ax                    ; 89 46 de
-    mov ax, word [bp-00264h]                  ; 8b 86 9c fd
-    mov word [bp-032h], ax                    ; 89 46 ce
-    mov ax, word [bp-0025eh]                  ; 8b 86 a2 fd
-    mov word [bp-026h], ax                    ; 89 46 da
-    mov ax, word [bp-001f2h]                  ; 8b 86 0e fe
-    mov word [bp-02eh], ax                    ; 89 46 d2
-    mov si, word [bp-001f0h]                  ; 8b b6 10 fe
-    xor ax, ax                                ; 31 c0
-    mov word [bp-020h], ax                    ; 89 46 e0
-    mov word [bp-028h], ax                    ; 89 46 d8
-    cmp si, 00fffh                            ; 81 fe ff 0f
-    jne short 023a3h                          ; 75 1f
-    cmp word [bp-02eh], strict byte 0ffffh    ; 83 7e d2 ff
-    jne short 023a3h                          ; 75 19
-    mov ax, word [bp-0019ch]                  ; 8b 86 64 fe
-    mov word [bp-028h], ax                    ; 89 46 d8
-    mov ax, word [bp-0019eh]                  ; 8b 86 62 fe
-    mov word [bp-020h], ax                    ; 89 46 e0
-    mov si, word [bp-001a0h]                  ; 8b b6 60 fe
-    mov ax, word [bp-001a2h]                  ; 8b 86 5e fe
-    mov word [bp-02eh], ax                    ; 89 46 d2
-    mov al, byte [bp-00eh]                    ; 8a 46 f2
-    cmp AL, strict byte 001h                  ; 3c 01
-    jc short 023b6h                           ; 72 0c
-    jbe short 023beh                          ; 76 12
-    cmp AL, strict byte 003h                  ; 3c 03
-    je short 023c6h                           ; 74 16
-    cmp AL, strict byte 002h                  ; 3c 02
-    je short 023c2h                           ; 74 0e
-    jmp short 023fbh                          ; eb 45
-    test al, al                               ; 84 c0
-    jne short 023fbh                          ; 75 41
+    jne short 023efh                          ; 75 41
     mov BL, strict byte 01eh                  ; b3 1e
-    jmp short 023c8h                          ; eb 0a
+    jmp short 023bch                          ; eb 0a
     mov BL, strict byte 026h                  ; b3 26
-    jmp short 023c8h                          ; eb 06
+    jmp short 023bch                          ; eb 06
     mov BL, strict byte 067h                  ; b3 67
-    jmp short 023c8h                          ; eb 02
+    jmp short 023bch                          ; eb 02
     mov BL, strict byte 070h                  ; b3 70
     mov al, bl                                ; 88 d8
@@ -2590,47 +2584,47 @@
     ; inc al                                    ; fe c0
     xor ah, ah                                ; 30 e4
-    call 016aeh                               ; e8 dd f2
+    call 016aeh                               ; e8 e9 f2
     mov dh, al                                ; 88 c6
     mov al, bl                                ; 88 d8
     xor ah, ah                                ; 30 e4
-    call 016aeh                               ; e8 d4 f2
+    call 016aeh                               ; e8 e0 f2
     mov ah, dh                                ; 88 f4
+    mov word [bp-03ch], ax                    ; 89 46 c4
+    mov al, bl                                ; 88 d8
+    add AL, strict byte 002h                  ; 04 02
+    xor ah, ah                                ; 30 e4
+    call 016aeh                               ; e8 d2 f2
+    xor ah, ah                                ; 30 e4
     mov word [bp-03eh], ax                    ; 89 46 c2
     mov al, bl                                ; 88 d8
-    add AL, strict byte 002h                  ; 04 02
-    xor ah, ah                                ; 30 e4
+    add AL, strict byte 007h                  ; 04 07
     call 016aeh                               ; e8 c6 f2
     xor ah, ah                                ; 30 e4
-    mov word [bp-040h], ax                    ; 89 46 c0
-    mov al, bl                                ; 88 d8
-    add AL, strict byte 007h                  ; 04 07
-    call 016aeh                               ; e8 ba f2
-    xor ah, ah                                ; 30 e4
-    mov word [bp-03ch], ax                    ; 89 46 c4
-    jmp short 0240dh                          ; eb 12
-    push word [bp-028h]                       ; ff 76 d8
+    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-030h]                       ; ff 76 d0
     push si                                   ; 56
-    push word [bp-02eh]                       ; ff 76 d2
     mov dx, ss                                ; 8c d2
-    lea ax, [bp-040h]                         ; 8d 46 c0
-    call 05b50h                               ; e8 43 37
+    lea ax, [bp-03eh]                         ; 8d 46 c2
+    call 05b09h                               ; e8 08 37
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 1b f5
+    call 01933h                               ; e8 27 f5
+    mov ax, word [bp-03ah]                    ; 8b 46 c6
+    push ax                                   ; 50
+    mov ax, word [bp-03eh]                    ; 8b 46 c2
+    push ax                                   ; 50
     mov ax, word [bp-03ch]                    ; 8b 46 c4
     push ax                                   ; 50
-    mov ax, word [bp-040h]                    ; 8b 46 c0
-    push ax                                   ; 50
-    mov ax, word [bp-03eh]                    ; 8b 46 c2
-    push ax                                   ; 50
-    push word [bp-026h]                       ; ff 76 da
-    push word [bp-032h]                       ; ff 76 ce
-    push word [bp-022h]                       ; ff 76 de
+    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
-    xor ah, ah                                ; 30 e4
-    push ax                                   ; 50
-    mov al, byte [bp-012h]                    ; 8a 46 ee
     push ax                                   ; 50
     mov ax, 0014dh                            ; b8 4d 01
@@ -2638,70 +2632,70 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 34 f5
+    call 01976h                               ; e8 40 f5
     add sp, strict byte 00014h                ; 83 c4 14
-    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    mov al, byte [bp-010h]                    ; 8a 46 f0
     xor ah, ah                                ; 30 e4
     mov dx, strict word 0001ch                ; ba 1c 00
     imul dx                                   ; f7 ea
-    mov es, [bp-024h]                         ; 8e 46 dc
-    mov di, word [bp-02ch]                    ; 8b 7e d4
+    mov es, [bp-022h]                         ; 8e 46 de
+    mov di, word [bp-01eh]                    ; 8b 7e e2
     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 byte [es:di+024h], al                 ; 26 88 45 24
     mov al, byte [bp-006h]                    ; 8a 46 fa
-    mov byte [es:di+024h], al                 ; 26 88 45 24
-    mov al, byte [bp-00ah]                    ; 8a 46 f6
     mov byte [es:di+026h], al                 ; 26 88 45 26
-    mov ax, word [bp-038h]                    ; 8b 46 c8
+    mov ax, word [bp-036h]                    ; 8b 46 ca
     mov word [es:di+028h], ax                 ; 26 89 45 28
-    mov ax, word [bp-032h]                    ; 8b 46 ce
+    mov ax, word [bp-034h]                    ; 8b 46 cc
     mov word [es:di+030h], ax                 ; 26 89 45 30
-    mov ax, word [bp-022h]                    ; 8b 46 de
+    mov ax, word [bp-02ch]                    ; 8b 46 d4
     mov word [es:di+032h], ax                 ; 26 89 45 32
-    mov ax, word [bp-026h]                    ; 8b 46 da
+    mov ax, word [bp-01ch]                    ; 8b 46 e4
     mov word [es:di+034h], ax                 ; 26 89 45 34
-    mov ax, word [bp-028h]                    ; 8b 46 d8
+    mov ax, word [bp-020h]                    ; 8b 46 e0
     mov word [es:di+03ch], ax                 ; 26 89 45 3c
-    mov ax, word [bp-020h]                    ; 8b 46 e0
+    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-02eh]                    ; 8b 46 d2
-    mov word [es:di+036h], ax                 ; 26 89 45 36
+    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
     lea di, [di+02ah]                         ; 8d 7d 2a
     push DS                                   ; 1e
     push SS                                   ; 16
     pop DS                                    ; 1f
-    lea si, [bp-040h]                         ; 8d 76 c0
+    lea si, [bp-03eh]                         ; 8d 76 c2
     movsw                                     ; a5
     movsw                                     ; a5
     movsw                                     ; a5
     pop DS                                    ; 1f
-    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    mov al, byte [bp-010h]                    ; 8a 46 f0
     cmp AL, strict byte 002h                  ; 3c 02
-    jnc short 02516h                          ; 73 63
+    jnc short 0250ah                          ; 73 63
     test al, al                               ; 84 c0
-    jne short 024bch                          ; 75 05
+    jne short 024b0h                          ; 75 05
     mov di, strict word 0003dh                ; bf 3d 00
-    jmp short 024bfh                          ; eb 03
+    jmp short 024b3h                          ; eb 03
     mov di, strict word 0004dh                ; bf 4d 00
-    mov dx, word [bp-01eh]                    ; 8b 56 e2
-    mov bx, word [bp-03eh]                    ; 8b 5e c2
+    mov dx, word [bp-024h]                    ; 8b 56 dc
+    mov bx, word [bp-03ch]                    ; 8b 5e c4
     mov es, dx                                ; 8e c2
     mov word [es:di], bx                      ; 26 89 1d
-    mov bl, byte [bp-040h]                    ; 8a 5e c0
+    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-026h]                    ; 8a 46 da
+    mov al, byte [bp-01ch]                    ; 8a 46 e4
     mov byte [es:di+004h], al                 ; 26 88 45 04
-    mov ax, word [bp-022h]                    ; 8b 46 de
+    mov ax, word [bp-02ch]                    ; 8b 46 d4
     mov word [es:di+009h], ax                 ; 26 89 45 09
-    mov al, byte [bp-032h]                    ; 8a 46 ce
+    mov al, byte [bp-034h]                    ; 8a 46 cc
     mov byte [es:di+00bh], al                 ; 26 88 45 0b
-    mov al, byte [bp-026h]                    ; 8a 46 da
+    mov al, byte [bp-01ch]                    ; 8a 46 e4
     mov byte [es:di+00eh], al                 ; 26 88 45 0e
     xor bl, bl                                ; 30 db
     xor bh, bh                                ; 30 ff
-    jmp short 024fdh                          ; eb 05
+    jmp short 024f1h                          ; eb 05
     cmp bh, 00fh                              ; 80 ff 0f
-    jnc short 0250eh                          ; 73 11
+    jnc short 02502h                          ; 73 11
     mov al, bh                                ; 88 f8
     xor ah, ah                                ; 30 e4
@@ -2712,90 +2706,83 @@
     db  0feh, 0c7h
     ; inc bh                                    ; fe c7
-    jmp short 024f8h                          ; eb ea
+    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-010h]                    ; 8a 5e f0
+    mov bl, byte [bp-008h]                    ; 8a 5e f8
     xor bh, bh                                ; 30 ff
-    mov es, [bp-024h]                         ; 8e 46 dc
-    add bx, word [bp-02ch]                    ; 03 5e d4
-    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    mov es, [bp-022h]                         ; 8e 46 de
+    add bx, word [bp-01eh]                    ; 03 5e e2
+    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-014h], 003h                  ; 80 7e ec 03
-    jne short 02599h                          ; 75 67
-    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    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
     xor ah, ah                                ; 30 e4
     mov dx, strict word 0001ch                ; ba 1c 00
     imul dx                                   ; f7 ea
-    mov es, [bp-024h]                         ; 8e 46 dc
-    mov bx, word [bp-02ch]                    ; 8b 5e d4
+    mov es, [bp-022h]                         ; 8e 46 de
+    mov bx, word [bp-01eh]                    ; 8b 5e e2
     add bx, ax                                ; 01 c3
     mov byte [es:bx+023h], 005h               ; 26 c6 47 23 05
     mov byte [es:bx+026h], 000h               ; 26 c6 47 26 00
-    lea dx, [bp-0026ah]                       ; 8d 96 96 fd
-    mov bx, word [bp-02ch]                    ; 8b 5e d4
+    lea dx, [bp-00268h]                       ; 8d 96 98 fd
+    mov bx, word [bp-01eh]                    ; 8b 5e e2
     mov word [es:bx+008h], dx                 ; 26 89 57 08
     mov [es:bx+00ah], ss                      ; 26 8c 57 0a
-    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    mov 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-02ch]                    ; 8b 46 d4
+    mov ax, word [bp-01eh]                    ; 8b 46 e2
     mov dx, es                                ; 8c c2
-    call 01e9dh                               ; e8 2b f9
+    call 01e9dh                               ; e8 37 f9
     test ax, ax                               ; 85 c0
-    je short 02584h                           ; 74 0e
+    je short 02578h                           ; 74 0e
     mov ax, 00174h                            ; b8 74 01
     push ax                                   ; 50
     mov ax, strict word 00007h                ; b8 07 00
     push ax                                   ; 50
-    call 01976h                               ; e8 f5 f3
+    call 01976h                               ; e8 01 f4
     add sp, strict byte 00004h                ; 83 c4 04
-    mov al, byte [bp-00269h]                  ; 8a 86 97 fd
+    mov al, byte [bp-00267h]                  ; 8a 86 99 fd
     and AL, strict byte 01fh                  ; 24 1f
-    mov byte [bp-01ah], al                    ; 88 46 e6
-    test byte [bp-0026ah], 080h               ; f6 86 96 fd 80
-    je short 0259bh                           ; 74 07
-    mov ax, strict word 00001h                ; b8 01 00
-    jmp short 0259dh                          ; eb 04
-    jmp short 025ebh                          ; eb 50
-    xor ax, ax                                ; 31 c0
-    mov byte [bp-008h], al                    ; 88 46 f8
-    cmp byte [bp-0020ah], 000h                ; 80 be f6 fd 00
-    je short 025ach                           ; 74 05
+    mov byte [bp-016h], al                    ; 88 46 ea
+    test byte [bp-00268h], 080h               ; f6 86 98 fd 80
+    je short 0258fh                           ; 74 07
     mov cx, strict word 00001h                ; b9 01 00
-    jmp short 025aeh                          ; eb 02
+    jmp short 02591h                          ; eb 04
+    jmp short 025cch                          ; eb 3d
     xor cx, cx                                ; 31 c9
-    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    mov al, byte [bp-010h]                    ; 8a 46 f0
     xor ah, ah                                ; 30 e4
     mov dx, strict word 0001ch                ; ba 1c 00
     imul dx                                   ; f7 ea
-    mov es, [bp-024h]                         ; 8e 46 dc
-    mov bx, word [bp-02ch]                    ; 8b 5e d4
+    mov es, [bp-022h]                         ; 8e 46 de
+    mov bx, word [bp-01eh]                    ; 8b 5e e2
     add bx, ax                                ; 01 c3
-    mov al, byte [bp-01ah]                    ; 8a 46 e6
+    mov al, byte [bp-016h]                    ; 8a 46 ea
     mov byte [es:bx+023h], al                 ; 26 88 47 23
-    mov al, byte [bp-008h]                    ; 8a 46 f8
-    mov byte [es:bx+024h], al                 ; 26 88 47 24
-    mov byte [es:bx+026h], cl                 ; 26 88 4f 26
+    mov 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
     xor bh, bh                                ; 30 ff
-    add bx, word [bp-02ch]                    ; 03 5e d4
-    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    add bx, word [bp-01eh]                    ; 03 5e e2
+    mov al, byte [bp-010h]                    ; 8a 46 f0
     mov byte [es:bx+001f4h], al               ; 26 88 87 f4 01
     inc byte [bp-00ch]                        ; fe 46 f4
-    mov al, byte [bp-014h]                    ; 8a 46 ec
+    mov al, byte [bp-012h]                    ; 8a 46 ee
     cmp AL, strict byte 003h                  ; 3c 03
-    je short 02624h                           ; 74 32
+    je short 02605h                           ; 74 32
     cmp AL, strict byte 002h                  ; 3c 02
-    jne short 0264bh                          ; 75 55
-    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    jne short 0262ch                          ; 75 55
+    mov al, byte [bp-010h]                    ; 8a 46 f0
     xor ah, ah                                ; 30 e4
     mov dx, strict word 0001ch                ; ba 1c 00
     imul dx                                   ; f7 ea
-    mov es, [bp-024h]                         ; 8e 46 dc
-    mov di, word [bp-02ch]                    ; 8b 7e d4
+    mov es, [bp-022h]                         ; 8e 46 de
+    mov di, word [bp-01eh]                    ; 8b 7e e2
     add di, ax                                ; 01 c7
     mov ax, word [es:di+03ch]                 ; 26 8b 45 3c
@@ -2804,57 +2791,57 @@
     mov dx, word [es:di+036h]                 ; 26 8b 55 36
     mov si, strict word 0000bh                ; be 0b 00
-    call 0a26ah                               ; e8 4c 7c
-    mov word [bp-034h], dx                    ; 89 56 cc
-    mov word [bp-036h], cx                    ; 89 4e ca
-    mov dh, byte [bp-001c9h]                  ; 8a b6 37 fe
-    mov dl, byte [bp-001cah]                  ; 8a 96 36 fe
-    mov byte [bp-016h], 00fh                  ; c6 46 ea 0f
-    jmp short 0263bh                          ; eb 09
-    dec byte [bp-016h]                        ; fe 4e ea
-    cmp byte [bp-016h], 000h                  ; 80 7e ea 00
-    jbe short 02647h                          ; 76 0c
-    mov cl, byte [bp-016h]                    ; 8a 4e ea
+    call 0a20ah                               ; e8 0b 7c
+    mov word [bp-02ah], dx                    ; 89 56 d6
+    mov word [bp-026h], cx                    ; 89 4e da
+    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 ax, strict word 00001h                ; b8 01 00
     sal ax, CL                                ; d3 e0
     test dx, ax                               ; 85 c2
-    je short 02632h                           ; 74 eb
+    je short 02613h                           ; 74 eb
     xor di, di                                ; 31 ff
-    jmp short 02652h                          ; eb 07
-    jmp short 02681h                          ; eb 34
+    jmp short 02633h                          ; eb 07
+    jmp short 02662h                          ; eb 34
     cmp di, strict byte 00014h                ; 83 ff 14
-    jnl short 02667h                          ; 7d 15
+    jnl short 02648h                          ; 7d 15
     mov si, di                                ; 89 fe
     sal si, 1                                 ; d1 e6
-    mov al, byte [bp+si-00233h]               ; 8a 82 cd fd
-    mov byte [bp+si-06ah], al                 ; 88 42 96
-    mov al, byte [bp+si-00234h]               ; 8a 82 cc fd
-    mov byte [bp+si-069h], al                 ; 88 42 97
+    mov al, byte [bp+si-00231h]               ; 8a 82 cf fd
+    mov byte [bp+si-068h], al                 ; 88 42 98
+    mov al, byte [bp+si-00232h]               ; 8a 82 ce fd
+    mov byte [bp+si-067h], al                 ; 88 42 99
     inc di                                    ; 47
-    jmp short 0264dh                          ; eb e6
-    mov byte [bp-042h], 000h                  ; c6 46 be 00
+    jmp short 0262eh                          ; eb e6
+    mov byte [bp-040h], 000h                  ; c6 46 c0 00
     mov di, strict word 00027h                ; bf 27 00
-    jmp short 02675h                          ; eb 05
+    jmp short 02656h                          ; eb 05
     dec di                                    ; 4f
     test di, di                               ; 85 ff
-    jle short 02681h                          ; 7e 0c
-    cmp byte [bp+di-06ah], 020h               ; 80 7b 96 20
-    jne short 02681h                          ; 75 06
-    mov byte [bp+di-06ah], 000h               ; c6 43 96 00
-    jmp short 02670h                          ; eb ef
-    mov al, byte [bp-014h]                    ; 8a 46 ec
+    jle short 02662h                          ; 7e 0c
+    cmp byte [bp+di-068h], 020h               ; 80 7b 98 20
+    jne short 02662h                          ; 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
     cmp AL, strict byte 003h                  ; 3c 03
-    je short 026eeh                           ; 74 66
+    je short 026cfh                           ; 74 66
     cmp AL, strict byte 002h                  ; 3c 02
-    je short 02693h                           ; 74 07
+    je short 02674h                           ; 74 07
     cmp AL, strict byte 001h                  ; 3c 01
-    je short 026f9h                           ; 74 69
-    jmp near 0278bh                           ; e9 f8 00
-    cmp byte [bp-018h], 000h                  ; 80 7e e8 00
-    je short 0269eh                           ; 74 05
+    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
     mov ax, 0019fh                            ; b8 9f 01
-    jmp short 026a1h                          ; eb 03
+    jmp short 02682h                          ; eb 03
     mov ax, 001a6h                            ; b8 a6 01
     push ax                                   ; 50
-    mov al, byte [bp-012h]                    ; 8a 46 ee
+    mov al, byte [bp-018h]                    ; 8a 46 e8
     xor ah, ah                                ; 30 e4
     push ax                                   ; 50
@@ -2863,12 +2850,12 @@
     mov ax, strict word 00002h                ; b8 02 00
     push ax                                   ; 50
-    call 01976h                               ; e8 c3 f2
+    call 01976h                               ; e8 e2 f2
     add sp, strict byte 00008h                ; 83 c4 08
     xor di, di                                ; 31 ff
-    mov al, byte [bp+di-06ah]                 ; 8a 43 96
+    mov al, byte [bp+di-068h]                 ; 8a 43 98
     xor ah, ah                                ; 30 e4
     inc di                                    ; 47
     test ax, ax                               ; 85 c0
-    je short 026d3h                           ; 74 11
+    je short 026b4h                           ; 74 11
     push ax                                   ; 50
     mov ax, 001b8h                            ; b8 b8 01
@@ -2876,10 +2863,10 @@
     mov ax, strict word 00002h                ; b8 02 00
     push ax                                   ; 50
-    call 01976h                               ; e8 a8 f2
+    call 01976h                               ; e8 c7 f2
     add sp, strict byte 00006h                ; 83 c4 06
-    jmp short 026b8h                          ; eb e5
-    push word [bp-036h]                       ; ff 76 ca
-    push word [bp-034h]                       ; ff 76 cc
-    mov al, byte [bp-016h]                    ; 8a 46 ea
+    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
     push ax                                   ; 50
     mov ax, 001bbh                            ; b8 bb 01
@@ -2887,15 +2874,15 @@
     mov ax, strict word 00002h                ; b8 02 00
     push ax                                   ; 50
-    call 01976h                               ; e8 8e f2
+    call 01976h                               ; e8 ad f2
     add sp, strict byte 0000ah                ; 83 c4 0a
-    jmp near 0278bh                           ; e9 9d 00
-    cmp byte [bp-018h], 000h                  ; 80 7e e8 00
-    je short 026fbh                           ; 74 07
+    jmp near 0276ch                           ; e9 9d 00
+    cmp byte [bp-014h], 000h                  ; 80 7e ec 00
+    je short 026dch                           ; 74 07
     mov ax, 0019fh                            ; b8 9f 01
-    jmp short 026feh                          ; eb 05
-    jmp short 02768h                          ; eb 6d
+    jmp short 026dfh                          ; eb 05
+    jmp short 02749h                          ; eb 6d
     mov ax, 001a6h                            ; b8 a6 01
     push ax                                   ; 50
-    mov al, byte [bp-012h]                    ; 8a 46 ee
+    mov al, byte [bp-018h]                    ; 8a 46 e8
     xor ah, ah                                ; 30 e4
     push ax                                   ; 50
@@ -2904,12 +2891,12 @@
     mov ax, strict word 00002h                ; b8 02 00
     push ax                                   ; 50
-    call 01976h                               ; e8 66 f2
+    call 01976h                               ; e8 85 f2
     add sp, strict byte 00008h                ; 83 c4 08
     xor di, di                                ; 31 ff
-    mov al, byte [bp+di-06ah]                 ; 8a 43 96
+    mov al, byte [bp+di-068h]                 ; 8a 43 98
     xor ah, ah                                ; 30 e4
     inc di                                    ; 47
     test ax, ax                               ; 85 c0
-    je short 02730h                           ; 74 11
+    je short 02711h                           ; 74 11
     push ax                                   ; 50
     mov ax, 001b8h                            ; b8 b8 01
@@ -2917,21 +2904,21 @@
     mov ax, strict word 00002h                ; b8 02 00
     push ax                                   ; 50
-    call 01976h                               ; e8 4b f2
+    call 01976h                               ; e8 6a f2
     add sp, strict byte 00006h                ; 83 c4 06
-    jmp short 02715h                          ; eb e5
-    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    jmp short 026f6h                          ; eb e5
+    mov al, byte [bp-010h]                    ; 8a 46 f0
     mov dx, strict word 0001ch                ; ba 1c 00
     imul dx                                   ; f7 ea
-    mov es, [bp-024h]                         ; 8e 46 dc
-    mov bx, word [bp-02ch]                    ; 8b 5e d4
+    mov es, [bp-022h]                         ; 8e 46 de
+    mov bx, word [bp-01eh]                    ; 8b 5e e2
     add bx, ax                                ; 01 c3
     cmp byte [es:bx+023h], 005h               ; 26 80 7f 23 05
-    jne short 02752h                          ; 75 0b
-    mov al, byte [bp-016h]                    ; 8a 46 ea
+    jne short 02733h                          ; 75 0b
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
     xor ah, ah                                ; 30 e4
     push ax                                   ; 50
     mov ax, 001dbh                            ; b8 db 01
-    jmp short 0275bh                          ; eb 09
-    mov al, byte [bp-016h]                    ; 8a 46 ea
+    jmp short 0273ch                          ; eb 09
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
     xor ah, ah                                ; 30 e4
     push ax                                   ; 50
@@ -2940,14 +2927,14 @@
     mov ax, strict word 00002h                ; b8 02 00
     push ax                                   ; 50
-    call 01976h                               ; e8 13 f2
+    call 01976h                               ; e8 32 f2
     add sp, strict byte 00006h                ; 83 c4 06
-    jmp short 0278bh                          ; eb 23
-    cmp byte [bp-018h], 000h                  ; 80 7e e8 00
-    je short 02773h                           ; 74 05
+    jmp short 0276ch                          ; eb 23
+    cmp byte [bp-014h], 000h                  ; 80 7e ec 00
+    je short 02754h                           ; 74 05
     mov ax, 0019fh                            ; b8 9f 01
-    jmp short 02776h                          ; eb 03
+    jmp short 02757h                          ; eb 03
     mov ax, 001a6h                            ; b8 a6 01
     push ax                                   ; 50
-    mov al, byte [bp-012h]                    ; 8a 46 ee
+    mov al, byte [bp-018h]                    ; 8a 46 e8
     xor ah, ah                                ; 30 e4
     push ax                                   ; 50
@@ -2956,10 +2943,10 @@
     mov ax, strict word 00002h                ; b8 02 00
     push ax                                   ; 50
-    call 01976h                               ; e8 ee f1
+    call 01976h                               ; e8 0d f2
     add sp, strict byte 00008h                ; 83 c4 08
-    inc byte [bp-00eh]                        ; fe 46 f2
-    cmp byte [bp-00eh], 008h                  ; 80 7e f2 08
-    jnc short 027eah                          ; 73 56
-    mov bl, byte [bp-00eh]                    ; 8a 5e f2
+    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
     xor bh, bh                                ; 30 ff
     mov ax, bx                                ; 89 d8
@@ -2968,43 +2955,43 @@
     ; sub ax, dx                                ; 2b c2
     sar ax, 1                                 ; d1 f8
-    mov word [bp-03ah], ax                    ; 89 46 c6
-    mov al, byte [bp-03ah]                    ; 8a 46 c6
-    mov byte [bp-012h], al                    ; 88 46 ee
+    mov cx, ax                                ; 89 c1
+    mov byte [bp-018h], al                    ; 88 46 e8
     mov ax, bx                                ; 89 d8
     cwd                                       ; 99
     mov bx, strict word 00002h                ; bb 02 00
     idiv bx                                   ; f7 fb
-    mov cx, dx                                ; 89 d1
-    mov byte [bp-018h], dl                    ; 88 56 e8
-    mov al, byte [bp-03ah]                    ; 8a 46 c6
+    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 al, cl                                ; 88 c8
     xor ah, ah                                ; 30 e4
     mov dx, strict word 00006h                ; ba 06 00
     imul dx                                   ; f7 ea
-    mov es, [bp-024h]                         ; 8e 46 dc
-    mov si, word [bp-02ch]                    ; 8b 76 d4
+    mov es, [bp-022h]                         ; 8e 46 de
+    mov si, word [bp-01eh]                    ; 8b 76 e2
     add si, ax                                ; 01 c6
     mov bx, word [es:si+00206h]               ; 26 8b 9c 06 02
     mov ax, word [es:si+00208h]               ; 26 8b 84 08 02
-    mov word [bp-030h], ax                    ; 89 46 d0
+    mov word [bp-028h], ax                    ; 89 46 d8
     mov dx, ax                                ; 89 c2
     add dx, strict byte 00006h                ; 83 c2 06
     mov AL, strict byte 00ah                  ; b0 0a
     out DX, AL                                ; ee
-    test cl, cl                               ; 84 c9
-    jne short 027e4h                          ; 75 03
-    jmp near 021b6h                           ; e9 d2 f9
+    cmp byte [bp-038h], 000h                  ; 80 7e c8 00
+    jne short 027c6h                          ; 75 03
+    jmp near 021b6h                           ; e9 f0 f9
     mov ax, 000b0h                            ; b8 b0 00
-    jmp near 021b9h                           ; e9 cf f9
-    mov al, byte [bp-010h]                    ; 8a 46 f0
-    mov es, [bp-024h]                         ; 8e 46 dc
-    mov bx, word [bp-02ch]                    ; 8b 5e d4
+    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
     mov byte [es:bx+001e2h], al               ; 26 88 87 e2 01
     mov al, byte [bp-00ch]                    ; 8a 46 f4
     mov byte [es:bx+001f3h], al               ; 26 88 87 f3 01
-    mov bl, byte [bp-010h]                    ; 8a 5e f0
+    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 01660h                               ; e8 52 ee
+    call 01660h                               ; e8 70 ee
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop di                                    ; 5f
@@ -3012,5 +2999,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ata_cmd_data_out_:                           ; 0xf2815 LB 0x28e
+ata_cmd_data_out_:                           ; 0xf27f7 LB 0x28e
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3045,5 +3032,5 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 080h                 ; a8 80
-    je short 02876h                           ; 74 0f
+    je short 02858h                           ; 74 0f
     mov dx, word [bp-00eh]                    ; 8b 56 f2
     add dx, strict byte 00006h                ; 83 c2 06
@@ -3051,5 +3038,5 @@
     out DX, AL                                ; ee
     mov ax, strict word 00001h                ; b8 01 00
-    jmp near 02a9ch                           ; e9 26 02
+    jmp near 02a7eh                           ; e9 26 02
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov ax, word [es:di+006h]                 ; 26 8b 45 06
@@ -3073,6 +3060,6 @@
     mov ax, word [bp-014h]                    ; 8b 46 ec
     test ax, ax                               ; 85 c0
-    je short 028c1h                           ; 74 03
-    jmp near 02988h                           ; e9 c7 00
+    je short 028a3h                           ; 74 03
+    jmp near 0296ah                           ; e9 c7 00
     xor bx, bx                                ; 31 db
     xor dx, dx                                ; 31 d2
@@ -3083,12 +3070,12 @@
     adc ax, word [bp-00ch]                    ; 13 46 f4
     test ax, ax                               ; 85 c0
-    jnbe short 028e8h                         ; 77 10
-    jne short 0294bh                          ; 75 71
+    jnbe short 028cah                         ; 77 10
+    jne short 0292dh                          ; 75 71
     test dx, dx                               ; 85 d2
-    jnbe short 028e8h                         ; 77 0a
-    jne short 0294bh                          ; 75 6b
+    jnbe short 028cah                         ; 77 0a
+    jne short 0292dh                          ; 75 6b
     cmp bx, 01000h                            ; 81 fb 00 10
-    jnbe short 028e8h                         ; 77 02
-    jne short 0294bh                          ; 75 63
+    jnbe short 028cah                         ; 77 02
+    jne short 0292dh                          ; 75 63
     mov ax, word [bp-00ch]                    ; 8b 46 f4
     mov bx, word [bp-020h]                    ; 8b 5e e0
@@ -3096,5 +3083,5 @@
     mov dx, word [bp-022h]                    ; 8b 56 de
     mov si, strict word 00018h                ; be 18 00
-    call 0a26ah                               ; e8 70 79
+    call 0a20ah                               ; e8 2e 79
     xor dh, dh                                ; 30 f6
     mov word [bp-014h], dx                    ; 89 56 ec
@@ -3104,5 +3091,5 @@
     mov dx, word [bp-022h]                    ; 8b 56 de
     mov si, strict word 00020h                ; be 20 00
-    call 0a26ah                               ; e8 59 79
+    call 0a20ah                               ; e8 17 79
     mov bx, dx                                ; 89 d3
     mov word [bp-024h], dx                    ; 89 56 dc
@@ -3138,5 +3125,5 @@
     mov dx, word [bp-022h]                    ; 8b 56 de
     mov si, strict word 00008h                ; be 08 00
-    call 0a26ah                               ; e8 05 79
+    call 0a20ah                               ; e8 c3 78
     mov word [bp-00ch], ax                    ; 89 46 f4
     mov word [bp-020h], bx                    ; 89 5e e0
@@ -3145,5 +3132,5 @@
     mov word [bp-024h], dx                    ; 89 56 dc
     mov si, strict word 00010h                ; be 10 00
-    call 0a26ah                               ; e8 f0 78
+    call 0a20ah                               ; e8 ae 78
     mov word [bp-022h], dx                    ; 89 56 de
     mov ax, dx                                ; 89 d0
@@ -3178,7 +3165,7 @@
     out DX, AL                                ; ee
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    je short 029cah                           ; 74 05
+    je short 029ach                           ; 74 05
     mov ax, 000b0h                            ; b8 b0 00
-    jmp short 029cdh                          ; eb 03
+    jmp short 029afh                          ; eb 03
     mov ax, 000a0h                            ; b8 a0 00
     mov dl, byte [bp-018h]                    ; 8a 56 e8
@@ -3199,7 +3186,7 @@
     mov bl, al                                ; 88 c3
     test AL, strict byte 080h                 ; a8 80
-    jne short 029e5h                          ; 75 f1
+    jne short 029c7h                          ; 75 f1
     test AL, strict byte 001h                 ; a8 01
-    je short 02a07h                           ; 74 0f
+    je short 029e9h                           ; 74 0f
     mov dx, word [bp-00eh]                    ; 8b 56 f2
     add dx, strict byte 00006h                ; 83 c2 06
@@ -3207,7 +3194,7 @@
     out DX, AL                                ; ee
     mov ax, strict word 00002h                ; b8 02 00
-    jmp near 02a9ch                           ; e9 95 00
+    jmp near 02a7eh                           ; e9 95 00
     test bl, 008h                             ; f6 c3 08
-    jne short 02a1bh                          ; 75 0f
+    jne short 029fdh                          ; 75 0f
     mov dx, word [bp-00eh]                    ; 8b 56 f2
     add dx, strict byte 00006h                ; 83 c2 06
@@ -3215,9 +3202,9 @@
     out DX, AL                                ; ee
     mov ax, strict word 00003h                ; b8 03 00
-    jmp near 02a9ch                           ; e9 81 00
+    jmp near 02a7eh                           ; e9 81 00
     sti                                       ; fb
     mov ax, word [bp-016h]                    ; 8b 46 ea
     cmp ax, 0f800h                            ; 3d 00 f8
-    jc short 02a36h                           ; 72 12
+    jc short 02a18h                           ; 72 12
     mov dx, ax                                ; 89 c2
     sub dx, 00800h                            ; 81 ea 00 08
@@ -3243,10 +3230,10 @@
     mov bl, al                                ; 88 c3
     test AL, strict byte 080h                 ; a8 80
-    jne short 02a52h                          ; 75 f1
+    jne short 02a34h                          ; 75 f1
     cmp word [bp-01ah], strict byte 00000h    ; 83 7e e6 00
-    jne short 02a7bh                          ; 75 14
+    jne short 02a5dh                          ; 75 14
     and AL, strict byte 0e9h                  ; 24 e9
     cmp AL, strict byte 040h                  ; 3c 40
-    je short 02a91h                           ; 74 24
+    je short 02a73h                           ; 74 24
     mov dx, word [bp-00eh]                    ; 8b 56 f2
     add dx, strict byte 00006h                ; 83 c2 06
@@ -3254,9 +3241,9 @@
     out DX, AL                                ; ee
     mov ax, strict word 00006h                ; b8 06 00
-    jmp short 02a9ch                          ; eb 21
+    jmp short 02a7eh                          ; eb 21
     mov al, bl                                ; 88 d8
     and AL, strict byte 0c9h                  ; 24 c9
     cmp AL, strict byte 048h                  ; 3c 48
-    je short 02a1ch                           ; 74 99
+    je short 029feh                           ; 74 99
     mov dx, word [bp-00eh]                    ; 8b 56 f2
     add dx, strict byte 00006h                ; 83 c2 06
@@ -3264,5 +3251,5 @@
     out DX, AL                                ; ee
     mov ax, strict word 00007h                ; b8 07 00
-    jmp short 02a9ch                          ; eb 0b
+    jmp short 02a7eh                          ; eb 0b
     mov dx, word [bp-00eh]                    ; 8b 56 f2
     add dx, strict byte 00006h                ; 83 c2 06
@@ -3275,5 +3262,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-@ata_read_sectors:                           ; 0xf2aa3 LB 0xc1
+@ata_read_sectors:                           ; 0xf2a85 LB 0xc1
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3290,5 +3277,5 @@
     mov cx, dx                                ; 89 d1
     cmp word [es:si+016h], strict byte 00000h ; 26 83 7c 16 00
-    je short 02aebh                           ; 74 23
+    je short 02acdh                           ; 74 23
     xor ah, ah                                ; 30 e4
     mov di, strict word 0001ch                ; bf 1c 00
@@ -3302,7 +3289,7 @@
     mov bx, 000c4h                            ; bb c4 00
     mov ax, si                                ; 89 f0
-    call 01e9dh                               ; e8 b7 f3
+    call 01e9dh                               ; e8 d5 f3
     mov es, [bp-00ah]                         ; 8e 46 f6
-    jmp short 02b55h                          ; eb 6a
+    jmp short 02b37h                          ; eb 6a
     xor di, di                                ; 31 ff
     mov word [bp-008h], di                    ; 89 7e f8
@@ -3318,18 +3305,18 @@
     adc dx, word [bp-00ah]                    ; 13 56 f6
     test dx, dx                               ; 85 d2
-    jnbe short 02b26h                         ; 77 12
-    jne short 02b34h                          ; 75 1e
+    jnbe short 02b08h                         ; 77 12
+    jne short 02b16h                          ; 75 1e
     cmp word [bp-008h], strict byte 00000h    ; 83 7e f8 00
-    jnbe short 02b26h                         ; 77 0a
-    jne short 02b34h                          ; 75 16
+    jnbe short 02b08h                         ; 77 0a
+    jne short 02b16h                          ; 75 16
     cmp di, 01000h                            ; 81 ff 00 10
-    jnbe short 02b26h                         ; 77 02
-    jne short 02b34h                          ; 75 0e
+    jnbe short 02b08h                         ; 77 02
+    jne short 02b16h                          ; 75 0e
     mov cx, bx                                ; 89 d9
     mov bx, strict word 00024h                ; bb 24 00
     mov ax, si                                ; 89 f0
     mov dx, es                                ; 8c c2
-    call 01e9dh                               ; e8 6b f3
-    jmp short 02b5bh                          ; eb 27
+    call 01e9dh                               ; e8 89 f3
+    jmp short 02b3dh                          ; eb 27
     xor ah, ah                                ; 30 e4
     mov di, strict word 0001ch                ; bf 1c 00
@@ -3343,5 +3330,5 @@
     mov bx, 000c4h                            ; bb c4 00
     mov ax, si                                ; 89 f0
-    call 01e9dh                               ; e8 4b f3
+    call 01e9dh                               ; e8 69 f3
     mov es, [bp-006h]                         ; 8e 46 fa
     mov word [es:di+028h], 00200h             ; 26 c7 45 28 00 02
@@ -3351,5 +3338,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-@ata_write_sectors:                          ; 0xf2b64 LB 0x5b
+@ata_write_sectors:                          ; 0xf2b46 LB 0x5b
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3360,10 +3347,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 02b84h                           ; 74 0c
+    je short 02b66h                           ; 74 0c
     mov bx, strict word 00030h                ; bb 30 00
     mov ax, si                                ; 89 f0
     mov dx, es                                ; 8c c2
-    call 02815h                               ; e8 93 fc
-    jmp short 02bb6h                          ; eb 32
+    call 027f7h                               ; e8 93 fc
+    jmp short 02b98h                          ; eb 32
     xor ax, ax                                ; 31 c0
     xor bx, bx                                ; 31 db
@@ -3376,14 +3363,14 @@
     adc dx, word [es:si+006h]                 ; 26 13 54 06
     test dx, dx                               ; 85 d2
-    jnbe short 02bb1h                         ; 77 0f
-    jne short 02b78h                          ; 75 d4
+    jnbe short 02b93h                         ; 77 0f
+    jne short 02b5ah                          ; 75 d4
     test bx, bx                               ; 85 db
-    jnbe short 02bb1h                         ; 77 09
-    jne short 02b78h                          ; 75 ce
+    jnbe short 02b93h                         ; 77 09
+    jne short 02b5ah                          ; 75 ce
     cmp ax, 01000h                            ; 3d 00 10
-    jnbe short 02bb1h                         ; 77 02
-    jne short 02b78h                          ; 75 c7
+    jnbe short 02b93h                         ; 77 02
+    jne short 02b5ah                          ; 75 c7
     mov bx, strict word 00034h                ; bb 34 00
-    jmp short 02b7bh                          ; eb c5
+    jmp short 02b5dh                          ; eb c5
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop di                                    ; 5f
@@ -3391,5 +3378,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-ata_cmd_packet_:                             ; 0xf2bbf LB 0x28b
+ata_cmd_packet_:                             ; 0xf2ba1 LB 0x28b
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3403,5 +3390,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 96 ea
+    call 0166eh                               ; e8 b4 ea
     mov word [bp-010h], 00122h                ; c7 46 f0 22 01
     mov word [bp-00eh], ax                    ; 89 46 f2
@@ -3411,9 +3398,9 @@
     and cl, 001h                              ; 80 e1 01
     cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
-    jne short 02c14h                          ; 75 23
+    jne short 02bf6h                          ; 75 23
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 37 ed
+    call 01933h                               ; e8 55 ed
     mov ax, 00221h                            ; b8 21 02
     push ax                                   ; 50
@@ -3422,10 +3409,10 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 6b ed
+    call 01976h                               ; e8 89 ed
     add sp, strict byte 00006h                ; 83 c4 06
     mov ax, strict word 00001h                ; b8 01 00
-    jmp near 02e41h                           ; e9 2d 02
+    jmp near 02e23h                           ; e9 2d 02
     test byte [bp+004h], 001h                 ; f6 46 04 01
-    jne short 02c0eh                          ; 75 f4
+    jne short 02bf0h                          ; 75 f4
     xor ah, ah                                ; 30 e4
     mov dx, strict word 00006h                ; ba 06 00
@@ -3442,8 +3429,8 @@
     mov al, byte [bp-006h]                    ; 8a 46 fa
     cmp AL, strict byte 00ch                  ; 3c 0c
-    jnc short 02c4bh                          ; 73 06
+    jnc short 02c2dh                          ; 73 06
     mov byte [bp-006h], 00ch                  ; c6 46 fa 0c
-    jmp short 02c51h                          ; eb 06
-    jbe short 02c51h                          ; 76 04
+    jmp short 02c33h                          ; eb 06
+    jbe short 02c33h                          ; 76 04
     mov byte [bp-006h], 010h                  ; c6 46 fa 10
     shr byte [bp-006h], 1                     ; d0 6e fa
@@ -3458,7 +3445,7 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 080h                 ; a8 80
-    je short 02c7ch                           ; 74 06
+    je short 02c5eh                           ; 74 06
     mov ax, strict word 00002h                ; b8 02 00
-    jmp near 02e41h                           ; e9 c5 01
+    jmp near 02e23h                           ; e9 c5 01
     mov dx, word [bp-008h]                    ; 8b 56 f8
     add dx, strict byte 00006h                ; 83 c2 06
@@ -3474,7 +3461,7 @@
     out DX, AL                                ; ee
     test cl, cl                               ; 84 c9
-    je short 02ca0h                           ; 74 05
+    je short 02c82h                           ; 74 05
     mov ax, 000b0h                            ; b8 b0 00
-    jmp short 02ca3h                          ; eb 03
+    jmp short 02c85h                          ; eb 03
     mov ax, 000a0h                            ; b8 a0 00
     mov dx, word [bp-012h]                    ; 8b 56 ee
@@ -3492,7 +3479,7 @@
     mov bl, al                                ; 88 c3
     test AL, strict byte 080h                 ; a8 80
-    jne short 02cb3h                          ; 75 f1
+    jne short 02c95h                          ; 75 f1
     test AL, strict byte 001h                 ; a8 01
-    je short 02cd5h                           ; 74 0f
+    je short 02cb7h                           ; 74 0f
     mov dx, word [bp-008h]                    ; 8b 56 f8
     add dx, strict byte 00006h                ; 83 c2 06
@@ -3500,7 +3487,7 @@
     out DX, AL                                ; ee
     mov ax, strict word 00003h                ; b8 03 00
-    jmp near 02e41h                           ; e9 6c 01
+    jmp near 02e23h                           ; e9 6c 01
     test bl, 008h                             ; f6 c3 08
-    jne short 02ce9h                          ; 75 0f
+    jne short 02ccbh                          ; 75 0f
     mov dx, word [bp-008h]                    ; 8b 56 f8
     add dx, strict byte 00006h                ; 83 c2 06
@@ -3508,5 +3495,5 @@
     out DX, AL                                ; ee
     mov ax, strict word 00004h                ; b8 04 00
-    jmp near 02e41h                           ; e9 58 01
+    jmp near 02e23h                           ; e9 58 01
     sti                                       ; fb
     mov CL, strict byte 004h                  ; b1 04
@@ -3522,5 +3509,5 @@
     ; rep es outsw                              ; f3 26 6f
     cmp byte [bp+00ah], 000h                  ; 80 7e 0a 00
-    jne short 02d13h                          ; 75 0b
+    jne short 02cf5h                          ; 75 0b
     add dx, strict byte 00007h                ; 83 c2 07
     in AL, DX                                 ; ec
@@ -3528,5 +3515,5 @@
     ; sub ah, ah                                ; 2a e4
     mov bl, al                                ; 88 c3
-    jmp near 02e22h                           ; e9 0f 01
+    jmp near 02e04h                           ; e9 0f 01
     mov dx, word [bp-012h]                    ; 8b 56 ee
     add dx, strict byte 00007h                ; 83 c2 07
@@ -3536,23 +3523,23 @@
     mov bl, al                                ; 88 c3
     test AL, strict byte 080h                 ; a8 80
-    jne short 02d13h                          ; 75 f1
+    jne short 02cf5h                          ; 75 f1
     test AL, strict byte 088h                 ; a8 88
-    je short 02d88h                           ; 74 62
+    je short 02d6ah                           ; 74 62
     test AL, strict byte 001h                 ; a8 01
-    je short 02d35h                           ; 74 0b
+    je short 02d17h                           ; 74 0b
     mov dx, word [bp-008h]                    ; 8b 56 f8
     add dx, strict byte 00006h                ; 83 c2 06
     mov AL, strict byte 008h                  ; b0 08
     out DX, AL                                ; ee
-    jmp short 02ccfh                          ; eb 9a
+    jmp short 02cb1h                          ; eb 9a
     mov al, bl                                ; 88 d8
     and AL, strict byte 0c9h                  ; 24 c9
     cmp AL, strict byte 048h                  ; 3c 48
-    je short 02d48h                           ; 74 0b
+    je short 02d2ah                           ; 74 0b
     mov dx, word [bp-008h]                    ; 8b 56 f8
     add dx, strict byte 00006h                ; 83 c2 06
     mov AL, strict byte 008h                  ; b0 08
     out DX, AL                                ; ee
-    jmp short 02ce3h                          ; eb 9b
+    jmp short 02cc5h                          ; eb 9b
     mov CL, strict byte 004h                  ; b1 04
     mov ax, word [bp+00ch]                    ; 8b 46 0c
@@ -3579,10 +3566,10 @@
     mov ax, word [bp+004h]                    ; 8b 46 04
     cmp bx, ax                                ; 39 c3
-    jnc short 02d8bh                          ; 73 0c
+    jnc short 02d6dh                          ; 73 0c
     mov cx, bx                                ; 89 d9
     sub word [bp+004h], bx                    ; 29 5e 04
     xor bx, bx                                ; 31 db
-    jmp short 02d94h                          ; eb 0c
-    jmp near 02e22h                           ; e9 97 00
+    jmp short 02d76h                          ; eb 0c
+    jmp near 02e04h                           ; e9 97 00
     mov cx, ax                                ; 89 c1
     mov word [bp+004h], strict word 00000h    ; c7 46 04 00 00
@@ -3590,7 +3577,7 @@
     xor ax, ax                                ; 31 c0
     cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
-    jne short 02db2h                          ; 75 16
+    jne short 02d94h                          ; 75 16
     cmp bx, word [bp+006h]                    ; 3b 5e 06
-    jbe short 02db2h                          ; 76 11
+    jbe short 02d94h                          ; 76 11
     sub bx, word [bp+006h]                    ; 2b 5e 06
     mov word [bp-014h], bx                    ; 89 5e ec
@@ -3598,5 +3585,5 @@
     mov word [bp+006h], ax                    ; 89 46 06
     mov word [bp+008h], ax                    ; 89 46 08
-    jmp short 02dbbh                          ; eb 09
+    jmp short 02d9dh                          ; eb 09
     mov word [bp-014h], ax                    ; 89 46 ec
     sub word [bp+006h], bx                    ; 29 5e 06
@@ -3607,10 +3594,10 @@
     test byte [bp-014h], 003h                 ; f6 46 ec 03
     test bl, 001h                             ; f6 c3 01
-    je short 02ddch                           ; 74 10
+    je short 02dbeh                           ; 74 10
     inc bx                                    ; 43
     cmp word [bp-014h], strict byte 00000h    ; 83 7e ec 00
-    jbe short 02ddch                          ; 76 09
+    jbe short 02dbeh                          ; 76 09
     test byte [bp-014h], 001h                 ; f6 46 ec 01
-    je short 02ddch                           ; 74 03
+    je short 02dbeh                           ; 74 03
     dec word [bp-014h]                        ; ff 4e ec
     shr bx, 1                                 ; d1 eb
@@ -3618,8 +3605,8 @@
     shr word [bp-014h], 1                     ; d1 6e ec
     test cx, cx                               ; 85 c9
-    je short 02dedh                           ; 74 06
+    je short 02dcfh                           ; 74 06
     mov dx, word [bp-012h]                    ; 8b 56 ee
     in ax, DX                                 ; ed
-    loop 02deah                               ; e2 fd
+    loop 02dcch                               ; e2 fd
     mov dx, word [bp-012h]                    ; 8b 56 ee
     mov cx, bx                                ; 89 d9
@@ -3628,8 +3615,8 @@
     mov ax, word [bp-014h]                    ; 8b 46 ec
     test ax, ax                               ; 85 c0
-    je short 02e03h                           ; 74 05
+    je short 02de5h                           ; 74 05
     mov cx, ax                                ; 89 c1
     in ax, DX                                 ; ed
-    loop 02e00h                               ; e2 fd
+    loop 02de2h                               ; e2 fd
     add word [bp+00ch], si                    ; 01 76 0c
     xor ax, ax                                ; 31 c0
@@ -3641,14 +3628,14 @@
     mov ax, word [bp-00ah]                    ; 8b 46 f6
     mov word [es:bx+01ch], ax                 ; 26 89 47 1c
-    jmp near 02d13h                           ; e9 f1 fe
+    jmp near 02cf5h                           ; e9 f1 fe
     mov al, bl                                ; 88 d8
     and AL, strict byte 0e9h                  ; 24 e9
     cmp AL, strict byte 040h                  ; 3c 40
-    je short 02e36h                           ; 74 0c
+    je short 02e18h                           ; 74 0c
     mov dx, word [bp-008h]                    ; 8b 56 f8
     add dx, strict byte 00006h                ; 83 c2 06
     mov AL, strict byte 008h                  ; b0 08
     out DX, AL                                ; ee
-    jmp near 02ce3h                           ; e9 ad fe
+    jmp near 02cc5h                           ; e9 ad fe
     mov dx, word [bp-008h]                    ; 8b 56 f8
     add dx, strict byte 00006h                ; 83 c2 06
@@ -3661,5 +3648,5 @@
     pop bp                                    ; 5d
     retn 0000ch                               ; c2 0c 00
-ata_soft_reset_:                             ; 0xf2e4a LB 0x84
+ata_soft_reset_:                             ; 0xf2e2c LB 0x84
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3671,5 +3658,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 12 e8
+    call 0166eh                               ; e8 30 e8
     mov es, ax                                ; 8e c0
     mov ax, bx                                ; 89 d8
@@ -3688,7 +3675,7 @@
     out DX, AL                                ; ee
     cmp byte [bp-008h], 000h                  ; 80 7e f8 00
-    je short 02e90h                           ; 74 05
+    je short 02e72h                           ; 74 05
     mov ax, 000b0h                            ; b8 b0 00
-    jmp short 02e93h                          ; eb 03
+    jmp short 02e75h                          ; eb 03
     mov ax, 000a0h                            ; b8 a0 00
     mov dx, cx                                ; 89 ca
@@ -3705,13 +3692,13 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 080h                 ; a8 80
-    jne short 02ea1h                          ; 75 f4
+    jne short 02e83h                          ; 75 f4
     and AL, strict byte 0e9h                  ; 24 e9
     cmp AL, strict byte 040h                  ; 3c 40
-    je short 02ebeh                           ; 74 0b
+    je short 02ea0h                           ; 74 0b
     lea dx, [bx+006h]                         ; 8d 57 06
     mov AL, strict byte 008h                  ; b0 08
     out DX, AL                                ; ee
     mov ax, strict word 00001h                ; b8 01 00
-    jmp short 02ec6h                          ; eb 08
+    jmp short 02ea8h                          ; eb 08
     lea dx, [bx+006h]                         ; 8d 57 06
     mov AL, strict byte 008h                  ; b0 08
@@ -3724,5 +3711,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-set_diskette_ret_status_:                    ; 0xf2ece LB 0x19
+set_diskette_ret_status_:                    ; 0xf2eb0 LB 0x19
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3733,5 +3720,5 @@
     mov dx, strict word 00041h                ; ba 41 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 80 e7
+    call 01660h                               ; e8 9e e7
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop dx                                    ; 5a
@@ -3739,5 +3726,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-set_diskette_current_cyl_:                   ; 0xf2ee7 LB 0x36
+set_diskette_current_cyl_:                   ; 0xf2ec9 LB 0x36
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3746,10 +3733,10 @@
     mov bl, al                                ; 88 c3
     cmp AL, strict byte 001h                  ; 3c 01
-    jbe short 02f00h                          ; 76 0e
+    jbe short 02ee2h                          ; 76 0e
     mov ax, 00250h                            ; b8 50 02
     push ax                                   ; 50
     mov ax, strict word 00007h                ; b8 07 00
     push ax                                   ; 50
-    call 01976h                               ; e8 79 ea
+    call 01976h                               ; e8 97 ea
     add sp, strict byte 00004h                ; 83 c4 04
     mov al, dl                                ; 88 d0
@@ -3761,5 +3748,5 @@
     mov bx, cx                                ; 89 cb
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 4a e7
+    call 01660h                               ; e8 68 e7
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop cx                                    ; 59
@@ -3767,5 +3754,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-floppy_wait_for_interrupt_:                  ; 0xf2f1d LB 0x21
+floppy_wait_for_interrupt_:                  ; 0xf2eff LB 0x21
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3774,18 +3761,18 @@
     mov dx, strict word 0003eh                ; ba 3e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01652h                               ; e8 27 e7
+    call 01652h                               ; e8 45 e7
     test AL, strict byte 080h                 ; a8 80
-    je short 02f33h                           ; 74 04
+    je short 02f15h                           ; 74 04
     and AL, strict byte 080h                  ; 24 80
-    jmp short 02f38h                          ; eb 05
+    jmp short 02f1ah                          ; eb 05
     sti                                       ; fb
     hlt                                       ; f4
     cli                                       ; fa
-    jmp short 02f22h                          ; eb ea
+    jmp short 02f04h                          ; eb ea
     lea sp, [bp-002h]                         ; 8d 66 fe
     pop dx                                    ; 5a
     pop bp                                    ; 5d
     retn                                      ; c3
-floppy_wait_for_interrupt_or_timeout_:       ; 0xf2f3e LB 0x47
+floppy_wait_for_interrupt_or_timeout_:       ; 0xf2f20 LB 0x47
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3796,16 +3783,16 @@
     mov dx, strict word 00040h                ; ba 40 00
     mov ax, dx                                ; 89 d0
-    call 01652h                               ; e8 05 e7
+    call 01652h                               ; e8 23 e7
     test al, al                               ; 84 c0
-    jne short 02f56h                          ; 75 05
+    jne short 02f38h                          ; 75 05
     sti                                       ; fb
     xor cl, cl                                ; 30 c9
-    jmp short 02f7bh                          ; eb 25
+    jmp short 02f5dh                          ; eb 25
     mov dx, strict word 0003eh                ; ba 3e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01652h                               ; e8 f3 e6
+    call 01652h                               ; e8 11 e7
     mov cl, al                                ; 88 c1
     test AL, strict byte 080h                 ; a8 80
-    je short 02f76h                           ; 74 11
+    je short 02f58h                           ; 74 11
     and AL, strict byte 07fh                  ; 24 7f
     xor ah, ah                                ; 30 e4
@@ -3813,10 +3800,10 @@
     mov dx, strict word 0003eh                ; ba 3e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 ec e6
-    jmp short 02f7bh                          ; eb 05
+    call 01660h                               ; e8 0a e7
+    jmp short 02f5dh                          ; eb 05
     sti                                       ; fb
     hlt                                       ; f4
     cli                                       ; fa
-    jmp short 02f45h                          ; eb ca
+    jmp short 02f27h                          ; eb ca
     mov al, cl                                ; 88 c8
     lea sp, [bp-006h]                         ; 8d 66 fa
@@ -3826,5 +3813,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-floppy_reset_controller_:                    ; 0xf2f85 LB 0x28
+floppy_reset_controller_:                    ; 0xf2f67 LB 0x28
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3847,5 +3834,5 @@
     and AL, strict byte 0c0h                  ; 24 c0
     cmp AL, strict byte 080h                  ; 3c 80
-    jne short 02f9ah                          ; 75 f4
+    jne short 02f7ch                          ; 75 f4
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop dx                                    ; 5a
@@ -3853,5 +3840,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-floppy_prepare_controller_:                  ; 0xf2fad LB 0x84
+floppy_prepare_controller_:                  ; 0xf2f8f LB 0x84
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3863,5 +3850,5 @@
     mov dx, strict word 0003eh                ; ba 3e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01652h                               ; e8 93 e6
+    call 01652h                               ; e8 b1 e6
     and AL, strict byte 07fh                  ; 24 7f
     xor ah, ah                                ; 30 e4
@@ -3869,5 +3856,5 @@
     mov dx, strict word 0003eh                ; ba 3e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 92 e6
+    call 01660h                               ; e8 b0 e6
     mov dx, 003f2h                            ; ba f2 03
     in AL, DX                                 ; ec
@@ -3877,7 +3864,7 @@
     mov byte [bp-008h], al                    ; 88 46 f8
     test cx, cx                               ; 85 c9
-    je short 02fe1h                           ; 74 04
+    je short 02fc3h                           ; 74 04
     mov AL, strict byte 020h                  ; b0 20
-    jmp short 02fe3h                          ; eb 02
+    jmp short 02fc5h                          ; eb 02
     mov AL, strict byte 010h                  ; b0 10
     or AL, strict byte 00ch                   ; 0c 0c
@@ -3888,8 +3875,8 @@
     mov dx, strict word 00040h                ; ba 40 00
     mov ax, dx                                ; 89 d0
-    call 01660h                               ; e8 6a e6
+    call 01660h                               ; e8 88 e6
     mov dx, 0008bh                            ; ba 8b 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01652h                               ; e8 53 e6
+    call 01652h                               ; e8 71 e6
     mov CL, strict byte 006h                  ; b1 06
     shr al, CL                                ; d2 e8
@@ -3902,13 +3889,13 @@
     and AL, strict byte 0c0h                  ; 24 c0
     cmp AL, strict byte 080h                  ; 3c 80
-    jne short 03007h                          ; 75 f4
+    jne short 02fe9h                          ; 75 f4
     cmp byte [bp-008h], 000h                  ; 80 7e f8 00
-    jne short 03029h                          ; 75 10
-    call 02f1dh                               ; e8 01 ff
+    jne short 0300bh                          ; 75 10
+    call 02effh                               ; e8 01 ff
     mov bl, al                                ; 88 c3
     xor bh, bh                                ; 30 ff
     mov dx, strict word 0003eh                ; ba 3e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 37 e6
+    call 01660h                               ; e8 55 e6
     lea sp, [bp-006h]                         ; 8d 66 fa
     pop dx                                    ; 5a
@@ -3917,5 +3904,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-floppy_media_known_:                         ; 0xf3031 LB 0x46
+floppy_media_known_:                         ; 0xf3013 LB 0x46
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3926,24 +3913,24 @@
     mov dx, strict word 0003eh                ; ba 3e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01652h                               ; e8 10 e6
+    call 01652h                               ; e8 2e e6
     mov ah, al                                ; 88 c4
     test bx, bx                               ; 85 db
-    je short 0304ah                           ; 74 02
+    je short 0302ch                           ; 74 02
     shr al, 1                                 ; d0 e8
     and AL, strict byte 001h                  ; 24 01
-    jne short 03052h                          ; 75 04
-    xor ah, ah                                ; 30 e4
-    jmp short 0306fh                          ; eb 1d
+    jne short 03034h                          ; 75 04
+    xor ah, ah                                ; 30 e4
+    jmp short 03051h                          ; eb 1d
     mov dx, 00090h                            ; ba 90 00
     test bx, bx                               ; 85 db
-    je short 0305ch                           ; 74 03
+    je short 0303eh                           ; 74 03
     mov dx, 00091h                            ; ba 91 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01652h                               ; e8 f0 e5
+    call 01652h                               ; e8 0e e6
     xor ah, ah                                ; 30 e4
     mov CL, strict byte 004h                  ; b1 04
     sar ax, CL                                ; d3 f8
     and AL, strict byte 001h                  ; 24 01
-    je short 0304eh                           ; 74 e2
+    je short 03030h                           ; 74 e2
     mov ax, strict word 00001h                ; b8 01 00
     lea sp, [bp-006h]                         ; 8d 66 fa
@@ -3953,5 +3940,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-floppy_read_id_:                             ; 0xf3077 LB 0x44
+floppy_read_id_:                             ; 0xf3059 LB 0x44
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3961,5 +3948,5 @@
     sub sp, strict byte 00008h                ; 83 ec 08
     mov bx, ax                                ; 89 c3
-    call 02fadh                               ; e8 28 ff
+    call 02f8fh                               ; e8 28 ff
     mov AL, strict byte 04ah                  ; b0 4a
     mov dx, 003f5h                            ; ba f5 03
@@ -3967,9 +3954,9 @@
     mov al, bl                                ; 88 d8
     out DX, AL                                ; ee
-    call 02f1dh                               ; e8 8c fe
+    call 02effh                               ; e8 8c fe
     xor si, si                                ; 31 f6
-    jmp short 0309ah                          ; eb 05
+    jmp short 0307ch                          ; eb 05
     cmp si, strict byte 00007h                ; 83 fe 07
-    jnl short 030a6h                          ; 7d 0c
+    jnl short 03088h                          ; 7d 0c
     mov dx, 003f5h                            ; ba f5 03
     in AL, DX                                 ; ec
@@ -3978,9 +3965,9 @@
     mov byte [bp+si-00eh], al                 ; 88 42 f2
     inc si                                    ; 46
-    jmp short 03095h                          ; eb ef
+    jmp short 03077h                          ; eb ef
     test byte [bp-00eh], 0c0h                 ; f6 46 f2 c0
-    je short 030b0h                           ; 74 04
+    je short 03092h                           ; 74 04
     xor ax, ax                                ; 31 c0
-    jmp short 030b3h                          ; eb 03
+    jmp short 03095h                          ; eb 03
     mov ax, strict word 00001h                ; b8 01 00
     lea sp, [bp-006h]                         ; 8d 66 fa
@@ -3990,5 +3977,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-floppy_drive_recal_:                         ; 0xf30bb LB 0x4d
+floppy_drive_recal_:                         ; 0xf309d LB 0x4d
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3997,5 +3984,5 @@
     push dx                                   ; 52
     mov bx, ax                                ; 89 c3
-    call 02fadh                               ; e8 e7 fe
+    call 02f8fh                               ; e8 e7 fe
     mov AL, strict byte 007h                  ; b0 07
     mov dx, 003f5h                            ; ba f5 03
@@ -4003,11 +3990,11 @@
     mov al, bl                                ; 88 d8
     out DX, AL                                ; ee
-    call 02f1dh                               ; e8 4b fe
+    call 02effh                               ; e8 4b fe
     test bx, bx                               ; 85 db
-    je short 030e0h                           ; 74 0a
+    je short 030c2h                           ; 74 0a
     mov bl, al                                ; 88 c3
     or bl, 002h                               ; 80 cb 02
     mov cx, 00095h                            ; b9 95 00
-    jmp short 030e8h                          ; eb 08
+    jmp short 030cah                          ; eb 08
     mov bl, al                                ; 88 c3
     or bl, 001h                               ; 80 cb 01
@@ -4016,9 +4003,9 @@
     mov dx, strict word 0003eh                ; ba 3e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 6d e5
+    call 01660h                               ; e8 8b e5
     xor bx, bx                                ; 31 db
     mov dx, cx                                ; 89 ca
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 63 e5
+    call 01660h                               ; e8 81 e5
     mov ax, strict word 00001h                ; b8 01 00
     lea sp, [bp-006h]                         ; 8d 66 fa
@@ -4028,5 +4015,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-floppy_media_sense_:                         ; 0xf3108 LB 0xfa
+floppy_media_sense_:                         ; 0xf30ea LB 0xfa
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -4037,50 +4024,50 @@
     push di                                   ; 57
     mov di, ax                                ; 89 c7
-    call 030bbh                               ; e8 a6 ff
+    call 0309dh                               ; e8 a6 ff
     test ax, ax                               ; 85 c0
-    jne short 0311eh                          ; 75 05
+    jne short 03100h                          ; 75 05
     xor cx, cx                                ; 31 c9
-    jmp near 031f6h                           ; e9 d8 00
+    jmp near 031d8h                           ; e9 d8 00
     mov ax, strict word 00010h                ; b8 10 00
-    call 016aeh                               ; e8 8a e5
+    call 016aeh                               ; e8 a8 e5
     test di, di                               ; 85 ff
-    jne short 03130h                          ; 75 08
+    jne short 03112h                          ; 75 08
     mov CL, strict byte 004h                  ; b1 04
     shr al, CL                                ; d2 e8
     mov cl, al                                ; 88 c1
-    jmp short 03135h                          ; eb 05
+    jmp short 03117h                          ; eb 05
     mov cl, al                                ; 88 c1
     and cl, 00fh                              ; 80 e1 0f
     cmp cl, 001h                              ; 80 f9 01
-    jne short 03143h                          ; 75 09
+    jne short 03125h                          ; 75 09
     xor cl, cl                                ; 30 c9
     mov CH, strict byte 015h                  ; b5 15
     mov si, strict word 00001h                ; be 01 00
-    jmp short 03181h                          ; eb 3e
+    jmp short 03163h                          ; eb 3e
     cmp cl, 002h                              ; 80 f9 02
-    jne short 0314eh                          ; 75 06
+    jne short 03130h                          ; 75 06
     xor cl, cl                                ; 30 c9
     mov CH, strict byte 035h                  ; b5 35
-    jmp short 0313eh                          ; eb f0
+    jmp short 03120h                          ; eb f0
     cmp cl, 003h                              ; 80 f9 03
-    jne short 03159h                          ; 75 06
+    jne short 0313bh                          ; 75 06
     xor cl, cl                                ; 30 c9
     mov CH, strict byte 017h                  ; b5 17
-    jmp short 0313eh                          ; eb e5
+    jmp short 03120h                          ; eb e5
     cmp cl, 004h                              ; 80 f9 04
-    jne short 03164h                          ; 75 06
+    jne short 03146h                          ; 75 06
     xor cl, cl                                ; 30 c9
     mov CH, strict byte 017h                  ; b5 17
-    jmp short 0313eh                          ; eb da
+    jmp short 03120h                          ; eb da
     cmp cl, 005h                              ; 80 f9 05
-    jne short 0316fh                          ; 75 06
+    jne short 03151h                          ; 75 06
     mov CL, strict byte 0cch                  ; b1 cc
     mov CH, strict byte 0d7h                  ; b5 d7
-    jmp short 0313eh                          ; eb cf
+    jmp short 03120h                          ; eb cf
     cmp cl, 00eh                              ; 80 f9 0e
-    je short 03179h                           ; 74 05
+    je short 0315bh                           ; 74 05
     cmp cl, 00fh                              ; 80 f9 0f
-    jne short 0317bh                          ; 75 02
-    jmp short 03169h                          ; eb ee
+    jne short 0315dh                          ; 75 02
+    jmp short 0314bh                          ; eb ee
     xor cl, cl                                ; 30 c9
     xor ch, ch                                ; 30 ed
@@ -4091,36 +4078,36 @@
     mov dx, 0008bh                            ; ba 8b 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 d0 e4
+    call 01660h                               ; e8 ee e4
     mov ax, di                                ; 89 f8
-    call 03077h                               ; e8 e2 fe
+    call 03059h                               ; e8 e2 fe
     test ax, ax                               ; 85 c0
-    jne short 031cbh                          ; 75 32
+    jne short 031adh                          ; 75 32
     mov al, cl                                ; 88 c8
     and AL, strict byte 0c0h                  ; 24 c0
     cmp AL, strict byte 080h                  ; 3c 80
-    je short 031cbh                           ; 74 2a
+    je short 031adh                           ; 74 2a
     mov al, cl                                ; 88 c8
     and AL, strict byte 0c0h                  ; 24 c0
     cmp AL, strict byte 0c0h                  ; 3c c0
-    je short 031b8h                           ; 74 0f
+    je short 0319ah                           ; 74 0f
     mov ah, cl                                ; 88 cc
     and ah, 03fh                              ; 80 e4 3f
     cmp AL, strict byte 040h                  ; 3c 40
-    je short 031c4h                           ; 74 12
+    je short 031a6h                           ; 74 12
     test al, al                               ; 84 c0
-    je short 031bdh                           ; 74 07
-    jmp short 03181h                          ; eb c9
+    je short 0319fh                           ; 74 07
+    jmp short 03163h                          ; eb c9
     and cl, 03fh                              ; 80 e1 3f
-    jmp short 03181h                          ; eb c4
+    jmp short 03163h                          ; eb c4
     mov cl, ah                                ; 88 e1
     or cl, 040h                               ; 80 c9 40
-    jmp short 03181h                          ; eb bd
+    jmp short 03163h                          ; eb bd
     mov cl, ah                                ; 88 e1
     or cl, 080h                               ; 80 c9 80
-    jmp short 03181h                          ; eb b6
+    jmp short 03163h                          ; eb b6
     test di, di                               ; 85 ff
-    jne short 031d4h                          ; 75 05
+    jne short 031b6h                          ; 75 05
     mov di, 00090h                            ; bf 90 00
-    jmp short 031d7h                          ; eb 03
+    jmp short 031b9h                          ; eb 03
     mov di, 00091h                            ; bf 91 00
     mov al, cl                                ; 88 c8
@@ -4129,5 +4116,5 @@
     mov dx, 0008bh                            ; ba 8b 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 7a e4
+    call 01660h                               ; e8 98 e4
     mov al, ch                                ; 88 e8
     xor ah, ah                                ; 30 e4
@@ -4135,5 +4122,5 @@
     mov dx, di                                ; 89 fa
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 6c e4
+    call 01660h                               ; e8 8a e4
     mov cx, si                                ; 89 f1
     mov ax, cx                                ; 89 c8
@@ -4146,5 +4133,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-floppy_drive_exists_:                        ; 0xf3202 LB 0x2b
+floppy_drive_exists_:                        ; 0xf31e4 LB 0x2b
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -4153,15 +4140,15 @@
     mov dx, ax                                ; 89 c2
     mov ax, strict word 00010h                ; b8 10 00
-    call 016aeh                               ; e8 9f e4
+    call 016aeh                               ; e8 bd e4
     test dx, dx                               ; 85 d2
-    jne short 03219h                          ; 75 06
+    jne short 031fbh                          ; 75 06
     mov CL, strict byte 004h                  ; b1 04
     shr al, CL                                ; d2 e8
-    jmp short 0321bh                          ; eb 02
+    jmp short 031fdh                          ; eb 02
     and AL, strict byte 00fh                  ; 24 0f
     test al, al                               ; 84 c0
-    je short 03224h                           ; 74 05
+    je short 03206h                           ; 74 05
     mov ax, strict word 00001h                ; b8 01 00
-    jmp short 03226h                          ; eb 02
+    jmp short 03208h                          ; eb 02
     xor ah, ah                                ; 30 e4
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -4170,5 +4157,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-_int13_diskette_function:                    ; 0xf322d LB 0x97c
+_int13_diskette_function:                    ; 0xf320f LB 0x97c
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -4189,36 +4176,36 @@
     mov dx, word [bp-014h]                    ; 8b 56 ec
     cmp bl, 008h                              ; 80 fb 08
-    jc short 0328ch                           ; 72 2e
+    jc short 0326eh                           ; 72 2e
     mov dx, word [bp+01ch]                    ; 8b 56 1c
     or dl, 001h                               ; 80 ca 01
     cmp bl, 008h                              ; 80 fb 08
-    jbe short 032c2h                          ; 76 59
+    jbe short 032a4h                          ; 76 59
     cmp bl, 016h                              ; 80 fb 16
-    jc short 03284h                           ; 72 16
+    jc short 03266h                           ; 72 16
     or si, 00100h                             ; 81 ce 00 01
     cmp bl, 016h                              ; 80 fb 16
-    jbe short 032c5h                          ; 76 4e
+    jbe short 032a7h                          ; 76 4e
     cmp bl, 018h                              ; 80 fb 18
-    je short 032c8h                           ; 74 4c
+    je short 032aah                           ; 74 4c
     cmp bl, 017h                              ; 80 fb 17
-    je short 032dfh                           ; 74 5e
-    jmp near 03b83h                           ; e9 ff 08
+    je short 032c1h                           ; 74 5e
+    jmp near 03b65h                           ; e9 ff 08
     cmp bl, 015h                              ; 80 fb 15
-    je short 032e2h                           ; 74 59
-    jmp near 03b83h                           ; e9 f7 08
+    je short 032c4h                           ; 74 59
+    jmp near 03b65h                           ; e9 f7 08
     cmp bl, 001h                              ; 80 fb 01
-    jc short 032a0h                           ; 72 0f
-    jbe short 032e5h                          ; 76 52
+    jc short 03282h                           ; 72 0f
+    jbe short 032c7h                          ; 76 52
     cmp bl, 005h                              ; 80 fb 05
-    je short 03300h                           ; 74 68
+    je short 032e2h                           ; 74 68
     cmp bl, 004h                              ; 80 fb 04
-    jbe short 03303h                          ; 76 66
-    jmp near 03b83h                           ; e9 e3 08
+    jbe short 032e5h                          ; 76 66
+    jmp near 03b65h                           ; e9 e3 08
     test bl, bl                               ; 84 db
-    jne short 03305h                          ; 75 61
+    jne short 032e7h                          ; 75 61
     mov al, byte [bp+00eh]                    ; 8a 46 0e
     mov byte [bp-006h], al                    ; 88 46 fa
     cmp AL, strict byte 001h                  ; 3c 01
-    jbe short 032cbh                          ; 76 1d
+    jbe short 032adh                          ; 76 1d
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -4226,24 +4213,24 @@
     mov word [bp+016h], ax                    ; 89 46 16
     mov ax, strict word 00001h                ; b8 01 00
-    call 02eceh                               ; e8 0f fc
-    jmp near 03674h                           ; e9 b2 03
-    jmp near 03845h                           ; e9 80 05
-    jmp near 03989h                           ; e9 c1 06
-    jmp near 03a22h                           ; e9 57 07
+    call 02eb0h                               ; e8 0f fc
+    jmp near 03656h                           ; e9 b2 03
+    jmp near 03827h                           ; e9 80 05
+    jmp near 0396bh                           ; e9 c1 06
+    jmp near 03a04h                           ; e9 57 07
     mov ax, strict word 00010h                ; b8 10 00
-    call 016aeh                               ; e8 dd e3
+    call 016aeh                               ; e8 fb e3
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    jne short 032e7h                          ; 75 10
+    jne short 032c9h                          ; 75 10
     mov CL, strict byte 004h                  ; b1 04
     mov ch, al                                ; 88 c5
     shr ch, CL                                ; d2 ed
-    jmp short 032ech                          ; eb 0d
-    jmp near 039adh                           ; e9 cb 06
-    jmp near 03944h                           ; e9 5f 06
-    jmp short 0332eh                          ; eb 47
+    jmp short 032ceh                          ; eb 0d
+    jmp near 0398fh                           ; e9 cb 06
+    jmp near 03926h                           ; e9 5f 06
+    jmp short 03310h                          ; eb 47
     mov ch, al                                ; 88 c5
     and ch, 00fh                              ; 80 e5 0f
     test ch, ch                               ; 84 ed
-    jne short 03308h                          ; 75 18
+    jne short 032eah                          ; 75 18
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -4251,26 +4238,26 @@
     mov word [bp+016h], ax                    ; 89 46 16
     mov ax, 00080h                            ; b8 80 00
-    jmp short 032bch                          ; eb bc
-    jmp near 0369eh                           ; e9 9b 03
-    jmp short 0334ah                          ; eb 45
-    jmp near 03b83h                           ; e9 7b 08
+    jmp short 0329eh                          ; eb bc
+    jmp near 03680h                           ; e9 9b 03
+    jmp short 0332ch                          ; eb 45
+    jmp near 03b65h                           ; e9 7b 08
     xor bx, bx                                ; 31 db
     mov dx, strict word 0003eh                ; ba 3e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 4d e3
+    call 01660h                               ; e8 6b e3
     xor al, al                                ; 30 c0
     mov byte [bp+017h], al                    ; 88 46 17
     xor ah, ah                                ; 30 e4
-    call 02eceh                               ; e8 b1 fb
+    call 02eb0h                               ; e8 b1 fb
     and byte [bp+01ch], 0feh                  ; 80 66 1c fe
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
     xor dx, dx                                ; 31 d2
-    call 02ee7h                               ; e8 bc fb
-    jmp near 03697h                           ; e9 69 03
+    call 02ec9h                               ; e8 bc fb
+    jmp near 03679h                           ; e9 69 03
     and byte [bp+01ch], 0feh                  ; 80 66 1c fe
     mov dx, 00441h                            ; ba 41 04
     xor ax, ax                                ; 31 c0
-    call 01652h                               ; e8 18 e3
+    call 01652h                               ; e8 36 e3
     mov dh, al                                ; 88 c6
     xor dl, dl                                ; 30 d2
@@ -4278,6 +4265,6 @@
     mov word [bp+016h], si                    ; 89 76 16
     test al, al                               ; 84 c0
-    je short 0339eh                           ; 74 57
-    jmp near 03674h                           ; e9 2a 03
+    je short 03380h                           ; 74 57
+    jmp near 03656h                           ; e9 2a 03
     mov byte [bp-008h], ch                    ; 88 6e f8
     mov byte [bp-00ah], dl                    ; 88 56 f6
@@ -4288,15 +4275,15 @@
     mov byte [bp-006h], al                    ; 88 46 fa
     cmp AL, strict byte 001h                  ; 3c 01
-    jnbe short 03370h                         ; 77 0e
+    jnbe short 03352h                         ; 77 0e
     cmp dl, 001h                              ; 80 fa 01
-    jnbe short 03370h                         ; 77 09
+    jnbe short 03352h                         ; 77 09
     test ch, ch                               ; 84 ed
-    je short 03370h                           ; 74 05
+    je short 03352h                           ; 74 05
     cmp ch, 048h                              ; 80 fd 48
-    jbe short 033a1h                          ; 76 31
+    jbe short 03383h                          ; 76 31
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 b8 e5
+    call 01933h                               ; e8 d6 e5
     mov ax, 00275h                            ; b8 75 02
     push ax                                   ; 50
@@ -4305,5 +4292,5 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 ec e5
+    call 01976h                               ; e8 0a e6
     add sp, strict byte 00006h                ; 83 c4 06
     mov ax, word [bp+016h]                    ; 8b 46 16
@@ -4312,21 +4299,21 @@
     mov word [bp+016h], ax                    ; 89 46 16
     mov ax, strict word 00001h                ; b8 01 00
-    jmp near 03423h                           ; e9 85 00
-    jmp near 03697h                           ; e9 f6 02
+    jmp near 03405h                           ; e9 85 00
+    jmp near 03679h                           ; e9 f6 02
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
-    call 03202h                               ; e8 59 fe
+    call 031e4h                               ; e8 59 fe
     test ax, ax                               ; 85 c0
-    je short 033dbh                           ; 74 2e
+    je short 033bdh                           ; 74 2e
     mov bl, byte [bp-006h]                    ; 8a 5e fa
     xor bh, bh                                ; 30 ff
     mov ax, bx                                ; 89 d8
-    call 03031h                               ; e8 7a fc
+    call 03013h                               ; e8 7a fc
     test ax, ax                               ; 85 c0
-    jne short 033deh                          ; 75 23
+    jne short 033c0h                          ; 75 23
     mov ax, bx                                ; 89 d8
-    call 03108h                               ; e8 48 fd
+    call 030eah                               ; e8 48 fd
     test ax, ax                               ; 85 c0
-    jne short 033deh                          ; 75 1a
+    jne short 033c0h                          ; 75 1a
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -4334,10 +4321,10 @@
     mov word [bp+016h], ax                    ; 89 46 16
     mov ax, strict word 0000ch                ; b8 0c 00
-    call 02eceh                               ; e8 f9 fa
+    call 02eb0h                               ; e8 f9 fa
     mov byte [bp+016h], bh                    ; 88 7e 16
-    jmp near 03674h                           ; e9 99 02
-    jmp near 034bah                           ; e9 dc 00
+    jmp near 03656h                           ; e9 99 02
+    jmp near 0349ch                           ; e9 dc 00
     cmp byte [bp-010h], 002h                  ; 80 7e f0 02
-    jne short 0342dh                          ; 75 49
+    jne short 0340fh                          ; 75 49
     mov CL, strict byte 00ch                  ; b1 0c
     mov dx, word [bp+006h]                    ; 8b 56 06
@@ -4351,5 +4338,5 @@
     mov word [bp-012h], bx                    ; 89 5e ee
     cmp ax, bx                                ; 39 d8
-    jbe short 03402h                          ; 76 02
+    jbe short 033e4h                          ; 76 02
     db  0feh, 0c5h
     ; inc ch                                    ; fe c5
@@ -4363,13 +4350,13 @@
     add ax, bx                                ; 01 d8
     cmp ax, word [bp-012h]                    ; 3b 46 ee
-    jnc short 03430h                          ; 73 18
+    jnc short 03412h                          ; 73 18
     mov ax, word [bp+016h]                    ; 8b 46 16
     mov ah, cl                                ; 88 cc
     mov word [bp+016h], ax                    ; 89 46 16
     mov ax, strict word 00009h                ; b8 09 00
-    call 02eceh                               ; e8 a8 fa
+    call 02eb0h                               ; e8 a8 fa
     mov byte [bp+016h], 000h                  ; c6 46 16 00
-    jmp near 03674h                           ; e9 47 02
-    jmp near 03556h                           ; e9 26 01
+    jmp near 03656h                           ; e9 47 02
+    jmp near 03538h                           ; e9 26 01
     mov AL, strict byte 006h                  ; b0 06
     mov dx, strict word 0000ah                ; ba 0a 00
@@ -4402,5 +4389,5 @@
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
-    call 02fadh                               ; e8 3d fb
+    call 02f8fh                               ; e8 3d fb
     mov AL, strict byte 0e6h                  ; b0 e6
     mov dx, 003f5h                            ; ba f5 03
@@ -4435,8 +4422,8 @@
     mov AL, strict byte 0ffh                  ; b0 ff
     out DX, AL                                ; ee
-    call 02f3eh                               ; e8 8b fa
+    call 02f20h                               ; e8 8b fa
     test al, al                               ; 84 c0
-    jne short 034cbh                          ; 75 14
-    call 02f85h                               ; e8 cb fa
+    jne short 034adh                          ; 75 14
+    call 02f67h                               ; e8 cb fa
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -4444,5 +4431,5 @@
     mov word [bp+016h], ax                    ; 89 46 16
     mov ax, 00080h                            ; b8 80 00
-    jmp near 03423h                           ; e9 58 ff
+    jmp near 03405h                           ; e9 58 ff
     mov dx, 003f4h                            ; ba f4 03
     in AL, DX                                 ; ec
@@ -4451,5 +4438,5 @@
     and AL, strict byte 0c0h                  ; 24 c0
     cmp AL, strict byte 0c0h                  ; 3c c0
-    je short 034e9h                           ; 74 12
+    je short 034cbh                           ; 74 12
     mov ax, 00275h                            ; b8 75 02
     push ax                                   ; 50
@@ -4458,10 +4445,10 @@
     mov ax, strict word 00007h                ; b8 07 00
     push ax                                   ; 50
-    call 01976h                               ; e8 90 e4
+    call 01976h                               ; e8 ae e4
     add sp, strict byte 00006h                ; 83 c4 06
     xor si, si                                ; 31 f6
-    jmp short 034f2h                          ; eb 05
+    jmp short 034d4h                          ; eb 05
     cmp si, strict byte 00007h                ; 83 fe 07
-    jnl short 0350bh                          ; 7d 19
+    jnl short 034edh                          ; 7d 19
     mov dx, 003f5h                            ; ba f5 03
     in AL, DX                                 ; ec
@@ -4473,9 +4460,9 @@
     lea dx, [si+042h]                         ; 8d 54 42
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 58 e1
+    call 01660h                               ; e8 76 e1
     inc si                                    ; 46
-    jmp short 034edh                          ; eb e2
+    jmp short 034cfh                          ; eb e2
     test byte [bp-01ch], 0c0h                 ; f6 46 e4 c0
-    je short 03522h                           ; 74 11
+    je short 03504h                           ; 74 11
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -4483,5 +4470,5 @@
     mov word [bp+016h], ax                    ; 89 46 16
     mov ax, strict word 00020h                ; b8 20 00
-    jmp near 03423h                           ; e9 01 ff
+    jmp near 03405h                           ; e9 01 ff
     mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
@@ -4505,10 +4492,10 @@
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
-    call 02ee7h                               ; e8 98 f9
+    call 02ec9h                               ; e8 98 f9
     mov byte [bp+017h], 000h                  ; c6 46 17 00
-    jmp near 03a1bh                           ; e9 c5 04
+    jmp near 039fdh                           ; e9 c5 04
     cmp byte [bp-010h], 003h                  ; 80 7e f0 03
-    je short 0355fh                           ; 74 03
-    jmp near 03682h                           ; e9 23 01
+    je short 03541h                           ; 74 03
+    jmp near 03664h                           ; e9 23 01
     mov CL, strict byte 00ch                  ; b1 0c
     mov dx, word [bp+006h]                    ; 8b 56 06
@@ -4522,5 +4509,5 @@
     mov word [bp-012h], bx                    ; 89 5e ee
     cmp ax, bx                                ; 39 d8
-    jbe short 0357dh                          ; 76 02
+    jbe short 0355fh                          ; 76 02
     db  0feh, 0c5h
     ; inc ch                                    ; fe c5
@@ -4534,6 +4521,6 @@
     add ax, bx                                ; 01 d8
     cmp ax, word [bp-012h]                    ; 3b 46 ee
-    jnc short 03596h                          ; 73 03
-    jmp near 03418h                           ; e9 82 fe
+    jnc short 03578h                          ; 73 03
+    jmp near 033fah                           ; e9 82 fe
     mov AL, strict byte 006h                  ; b0 06
     mov dx, strict word 0000ah                ; ba 0a 00
@@ -4566,5 +4553,5 @@
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
-    call 02fadh                               ; e8 d7 f9
+    call 02f8fh                               ; e8 d7 f9
     mov AL, strict byte 0c5h                  ; b0 c5
     mov dx, 003f5h                            ; ba f5 03
@@ -4599,8 +4586,8 @@
     mov AL, strict byte 0ffh                  ; b0 ff
     out DX, AL                                ; ee
-    call 02f3eh                               ; e8 25 f9
+    call 02f20h                               ; e8 25 f9
     test al, al                               ; 84 c0
-    jne short 03620h                          ; 75 03
-    jmp near 034b7h                           ; e9 97 fe
+    jne short 03602h                          ; 75 03
+    jmp near 03499h                           ; e9 97 fe
     mov dx, 003f4h                            ; ba f4 03
     in AL, DX                                 ; ec
@@ -4609,5 +4596,5 @@
     and AL, strict byte 0c0h                  ; 24 c0
     cmp AL, strict byte 0c0h                  ; 3c c0
-    je short 0363eh                           ; 74 12
+    je short 03620h                           ; 74 12
     mov ax, 00275h                            ; b8 75 02
     push ax                                   ; 50
@@ -4616,10 +4603,10 @@
     mov ax, strict word 00007h                ; b8 07 00
     push ax                                   ; 50
-    call 01976h                               ; e8 3b e3
+    call 01976h                               ; e8 59 e3
     add sp, strict byte 00006h                ; 83 c4 06
     xor si, si                                ; 31 f6
-    jmp short 03647h                          ; eb 05
+    jmp short 03629h                          ; eb 05
     cmp si, strict byte 00007h                ; 83 fe 07
-    jnl short 03660h                          ; 7d 19
+    jnl short 03642h                          ; 7d 19
     mov dx, 003f5h                            ; ba f5 03
     in AL, DX                                 ; ec
@@ -4631,22 +4618,22 @@
     lea dx, [si+042h]                         ; 8d 54 42
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 03 e0
+    call 01660h                               ; e8 21 e0
     inc si                                    ; 46
-    jmp short 03642h                          ; eb e2
+    jmp short 03624h                          ; eb e2
     test byte [bp-01ch], 0c0h                 ; f6 46 e4 c0
-    jne short 03669h                          ; 75 03
-    jmp near 03542h                           ; e9 d9 fe
+    jne short 0364bh                          ; 75 03
+    jmp near 03524h                           ; e9 d9 fe
     test byte [bp-01bh], 002h                 ; f6 46 e5 02
-    je short 0367bh                           ; 74 0c
+    je short 0365dh                           ; 74 0c
     mov word [bp+016h], 00300h                ; c7 46 16 00 03
     or byte [bp+01ch], 001h                   ; 80 4e 1c 01
-    jmp near 03697h                           ; e9 1c 00
+    jmp near 03679h                           ; e9 1c 00
     mov word [bp+016h], 00100h                ; c7 46 16 00 01
-    jmp short 03674h                          ; eb f2
+    jmp short 03656h                          ; eb f2
     mov dl, byte [bp-00ah]                    ; 8a 56 f6
     xor dh, dh                                ; 30 f6
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
-    call 02ee7h                               ; e8 58 f8
+    call 02ec9h                               ; e8 58 f8
     and byte [bp+01ch], 0feh                  ; 80 66 1c fe
     mov byte [bp+017h], 000h                  ; c6 46 17 00
@@ -4667,14 +4654,14 @@
     mov byte [bp-006h], bl                    ; 88 5e fa
     cmp bl, 001h                              ; 80 fb 01
-    jnbe short 036d3h                         ; 77 14
+    jnbe short 036b5h                         ; 77 14
     cmp dl, 001h                              ; 80 fa 01
-    jnbe short 036d3h                         ; 77 0f
+    jnbe short 036b5h                         ; 77 0f
     cmp AL, strict byte 04fh                  ; 3c 4f
-    jnbe short 036d3h                         ; 77 0b
+    jnbe short 036b5h                         ; 77 0b
     mov al, byte [bp-008h]                    ; 8a 46 f8
     test al, al                               ; 84 c0
-    je short 036d3h                           ; 74 04
+    je short 036b5h                           ; 74 04
     cmp AL, strict byte 012h                  ; 3c 12
-    jbe short 036e8h                          ; 76 15
+    jbe short 036cah                          ; 76 15
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -4682,23 +4669,23 @@
     mov word [bp+016h], ax                    ; 89 46 16
     mov ax, strict word 00001h                ; b8 01 00
-    call 02eceh                               ; e8 ea f7
+    call 02eb0h                               ; e8 ea f7
     or byte [bp+01ch], 001h                   ; 80 4e 1c 01
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
-    call 03202h                               ; e8 12 fb
+    call 031e4h                               ; e8 12 fb
     test ax, ax                               ; 85 c0
-    jne short 036f7h                          ; 75 03
-    jmp near 032f0h                           ; e9 f9 fb
+    jne short 036d9h                          ; 75 03
+    jmp near 032d2h                           ; e9 f9 fb
     mov bl, byte [bp-006h]                    ; 8a 5e fa
     xor bh, bh                                ; 30 ff
     mov ax, bx                                ; 89 d8
-    call 03031h                               ; e8 30 f9
+    call 03013h                               ; e8 30 f9
     test ax, ax                               ; 85 c0
-    jne short 03711h                          ; 75 0c
+    jne short 036f3h                          ; 75 0c
     mov ax, bx                                ; 89 d8
-    call 03108h                               ; e8 fe f9
+    call 030eah                               ; e8 fe f9
     test ax, ax                               ; 85 c0
-    jne short 03711h                          ; 75 03
-    jmp near 033c4h                           ; e9 b3 fc
+    jne short 036f3h                          ; 75 03
+    jmp near 033a6h                           ; e9 b3 fc
     mov CL, strict byte 00ch                  ; b1 0c
     mov dx, word [bp+006h]                    ; 8b 56 06
@@ -4712,5 +4699,5 @@
     mov word [bp-012h], bx                    ; 89 5e ee
     cmp ax, bx                                ; 39 d8
-    jbe short 0372fh                          ; 76 02
+    jbe short 03711h                          ; 76 02
     db  0feh, 0c5h
     ; inc ch                                    ; fe c5
@@ -4724,9 +4711,9 @@
     add ax, bx                                ; 01 d8
     cmp ax, word [bp-012h]                    ; 3b 46 ee
-    jnc short 03750h                          ; 73 0b
+    jnc short 03732h                          ; 73 0b
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
     or ah, 009h                               ; 80 cc 09
-    jmp near 0341dh                           ; e9 cd fc
+    jmp near 033ffh                           ; e9 cd fc
     mov AL, strict byte 006h                  ; b0 06
     mov dx, strict word 0000ah                ; ba 0a 00
@@ -4759,5 +4746,5 @@
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
-    call 02fadh                               ; e8 1d f8
+    call 02f8fh                               ; e8 1d f8
     mov AL, strict byte 00fh                  ; b0 0f
     mov dx, 003f5h                            ; ba f5 03
@@ -4786,9 +4773,9 @@
     mov AL, strict byte 0f6h                  ; b0 f6
     out DX, AL                                ; ee
-    call 02f3eh                               ; e8 7b f7
+    call 02f20h                               ; e8 7b f7
     test al, al                               ; 84 c0
-    jne short 037cdh                          ; 75 06
-    call 02f85h                               ; e8 bb f7
-    jmp near 032f0h                           ; e9 23 fb
+    jne short 037afh                          ; 75 06
+    call 02f67h                               ; e8 bb f7
+    jmp near 032d2h                           ; e9 23 fb
     mov dx, 003f4h                            ; ba f4 03
     in AL, DX                                 ; ec
@@ -4797,5 +4784,5 @@
     and AL, strict byte 0c0h                  ; 24 c0
     cmp AL, strict byte 0c0h                  ; 3c c0
-    je short 037ebh                           ; 74 12
+    je short 037cdh                           ; 74 12
     mov ax, 00275h                            ; b8 75 02
     push ax                                   ; 50
@@ -4804,10 +4791,10 @@
     mov ax, strict word 00007h                ; b8 07 00
     push ax                                   ; 50
-    call 01976h                               ; e8 8e e1
+    call 01976h                               ; e8 ac e1
     add sp, strict byte 00006h                ; 83 c4 06
     xor si, si                                ; 31 f6
-    jmp short 037f4h                          ; eb 05
+    jmp short 037d6h                          ; eb 05
     cmp si, strict byte 00007h                ; 83 fe 07
-    jnl short 0380dh                          ; 7d 19
+    jnl short 037efh                          ; 7d 19
     mov dx, 003f5h                            ; ba f5 03
     in AL, DX                                 ; ec
@@ -4819,12 +4806,12 @@
     lea dx, [si+042h]                         ; 8d 54 42
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 56 de
+    call 01660h                               ; e8 74 de
     inc si                                    ; 46
-    jmp short 037efh                          ; eb e2
+    jmp short 037d1h                          ; eb e2
     test byte [bp-01ch], 0c0h                 ; f6 46 e4 c0
-    je short 0382eh                           ; 74 1b
+    je short 03810h                           ; 74 1b
     test byte [bp-01bh], 002h                 ; f6 46 e5 02
-    je short 0381ch                           ; 74 03
-    jmp near 0366fh                           ; e9 53 fe
+    je short 037feh                           ; 74 03
+    jmp near 03651h                           ; e9 53 fe
     mov ax, 00275h                            ; b8 75 02
     push ax                                   ; 50
@@ -4833,18 +4820,18 @@
     mov ax, strict word 00007h                ; b8 07 00
     push ax                                   ; 50
-    call 01976h                               ; e8 4b e1
+    call 01976h                               ; e8 69 e1
     add sp, strict byte 00006h                ; 83 c4 06
     xor al, al                                ; 30 c0
     mov byte [bp+017h], al                    ; 88 46 17
     xor ah, ah                                ; 30 e4
-    call 02eceh                               ; e8 96 f6
+    call 02eb0h                               ; e8 96 f6
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
     xor dx, dx                                ; 31 d2
-    call 02ee7h                               ; e8 a5 f6
-    jmp near 03a1bh                           ; e9 d6 01
+    call 02ec9h                               ; e8 a5 f6
+    jmp near 039fdh                           ; e9 d6 01
     mov byte [bp-006h], al                    ; 88 46 fa
     cmp AL, strict byte 001h                  ; 3c 01
-    jbe short 03874h                          ; 76 28
+    jbe short 03856h                          ; 76 28
     mov word [bp+016h], strict word 00000h    ; c7 46 16 00 00
     mov word [bp+010h], strict word 00000h    ; c7 46 10 00 00
@@ -4856,21 +4843,21 @@
     xor ah, ah                                ; 30 e4
     mov word [bp+012h], ax                    ; 89 46 12
-    jmp near 03996h                           ; e9 22 01
+    jmp near 03978h                           ; e9 22 01
     mov ax, strict word 00010h                ; b8 10 00
-    call 016aeh                               ; e8 34 de
+    call 016aeh                               ; e8 52 de
     mov ch, al                                ; 88 c5
     xor ah, ah                                ; 30 e4
     test AL, strict byte 0f0h                 ; a8 f0
-    je short 03884h                           ; 74 02
+    je short 03866h                           ; 74 02
     mov AH, strict byte 001h                  ; b4 01
     test ch, 00fh                             ; f6 c5 0f
-    je short 0388bh                           ; 74 02
+    je short 0386dh                           ; 74 02
     db  0feh, 0c4h
     ; inc ah                                    ; fe c4
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    jne short 03897h                          ; 75 06
+    jne short 03879h                          ; 75 06
     mov CL, strict byte 004h                  ; b1 04
     shr ch, CL                                ; d2 ed
-    jmp short 0389ah                          ; eb 03
+    jmp short 0387ch                          ; eb 03
     and ch, 00fh                              ; 80 e5 0f
     mov byte [bp+011h], 000h                  ; c6 46 11 00
@@ -4887,37 +4874,37 @@
     mov word [bp+012h], ax                    ; 89 46 12
     cmp ch, 003h                              ; 80 fd 03
-    jc short 038d6h                           ; 72 15
-    jbe short 038fdh                          ; 76 3a
+    jc short 038b8h                           ; 72 15
+    jbe short 038dfh                          ; 76 3a
     cmp ch, 005h                              ; 80 fd 05
-    jc short 03904h                           ; 72 3c
-    jbe short 0390bh                          ; 76 41
+    jc short 038e6h                           ; 72 3c
+    jbe short 038edh                          ; 76 41
     cmp ch, 00fh                              ; 80 fd 0f
-    je short 03919h                           ; 74 4a
+    je short 038fbh                           ; 74 4a
     cmp ch, 00eh                              ; 80 fd 0e
-    je short 03912h                           ; 74 3e
-    jmp short 03920h                          ; eb 4a
+    je short 038f4h                           ; 74 3e
+    jmp short 03902h                          ; eb 4a
     cmp ch, 002h                              ; 80 fd 02
-    je short 038f6h                           ; 74 1b
+    je short 038d8h                           ; 74 1b
     cmp ch, 001h                              ; 80 fd 01
-    je short 038efh                           ; 74 0f
+    je short 038d1h                           ; 74 0f
     test ch, ch                               ; 84 ed
-    jne short 03920h                          ; 75 3c
+    jne short 03902h                          ; 75 3c
     mov word [bp+014h], strict word 00000h    ; c7 46 14 00 00
     mov byte [bp+013h], 000h                  ; c6 46 13 00
-    jmp short 03932h                          ; eb 43
+    jmp short 03914h                          ; eb 43
     mov word [bp+014h], 02709h                ; c7 46 14 09 27
-    jmp short 03932h                          ; eb 3c
+    jmp short 03914h                          ; eb 3c
     mov word [bp+014h], 04f0fh                ; c7 46 14 0f 4f
-    jmp short 03932h                          ; eb 35
+    jmp short 03914h                          ; eb 35
     mov word [bp+014h], 04f09h                ; c7 46 14 09 4f
-    jmp short 03932h                          ; eb 2e
+    jmp short 03914h                          ; eb 2e
     mov word [bp+014h], 04f12h                ; c7 46 14 12 4f
-    jmp short 03932h                          ; eb 27
+    jmp short 03914h                          ; eb 27
     mov word [bp+014h], 04f24h                ; c7 46 14 24 4f
-    jmp short 03932h                          ; eb 20
+    jmp short 03914h                          ; eb 20
     mov word [bp+014h], 0fe3fh                ; c7 46 14 3f fe
-    jmp short 03932h                          ; eb 19
+    jmp short 03914h                          ; eb 19
     mov word [bp+014h], 0feffh                ; c7 46 14 ff fe
-    jmp short 03932h                          ; eb 12
+    jmp short 03914h                          ; eb 12
     mov ax, 00275h                            ; b8 75 02
     push ax                                   ; 50
@@ -4926,25 +4913,25 @@
     mov ax, strict word 00007h                ; b8 07 00
     push ax                                   ; 50
-    call 01976h                               ; e8 47 e0
+    call 01976h                               ; e8 65 e0
     add sp, strict byte 00006h                ; 83 c4 06
     mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
     mov al, ch                                ; 88 e8
     xor ah, ah                                ; 30 e4
-    call 03ba9h                               ; e8 6b 02
+    call 03b8bh                               ; e8 6b 02
     mov word [bp+008h], ax                    ; 89 46 08
-    jmp near 03a1bh                           ; e9 d7 00
+    jmp near 039fdh                           ; e9 d7 00
     mov byte [bp-006h], al                    ; 88 46 fa
     cmp AL, strict byte 001h                  ; 3c 01
-    jbe short 03950h                          ; 76 05
+    jbe short 03932h                          ; 76 05
     mov word [bp+016h], si                    ; 89 76 16
-    jmp short 03996h                          ; eb 46
+    jmp short 03978h                          ; eb 46
     mov ax, strict word 00010h                ; b8 10 00
-    call 016aeh                               ; e8 58 dd
+    call 016aeh                               ; e8 76 dd
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    jne short 03964h                          ; 75 08
+    jne short 03946h                          ; 75 08
     mov CL, strict byte 004h                  ; b1 04
     mov ch, al                                ; 88 c5
     shr ch, CL                                ; d2 ed
-    jmp short 03969h                          ; eb 05
+    jmp short 0394bh                          ; eb 05
     mov ch, al                                ; 88 c5
     and ch, 00fh                              ; 80 e5 0f
@@ -4953,19 +4940,19 @@
     xor ah, ah                                ; 30 e4
     test ch, ch                               ; 84 ed
-    je short 03983h                           ; 74 0d
+    je short 03965h                           ; 74 0d
     cmp ch, 001h                              ; 80 fd 01
-    jbe short 03980h                          ; 76 05
+    jbe short 03962h                          ; 76 05
     or ah, 002h                               ; 80 cc 02
-    jmp short 03983h                          ; eb 03
+    jmp short 03965h                          ; eb 03
     or ah, 001h                               ; 80 cc 01
     mov word [bp+016h], ax                    ; 89 46 16
-    jmp near 03697h                           ; e9 0e fd
+    jmp near 03679h                           ; e9 0e fd
     cmp AL, strict byte 001h                  ; 3c 01
-    jbe short 0399ch                          ; 76 0f
+    jbe short 0397eh                          ; 76 0f
     mov word [bp+016h], si                    ; 89 76 16
     mov ax, strict word 00001h                ; b8 01 00
-    call 02eceh                               ; e8 38 f5
+    call 02eb0h                               ; e8 38 f5
     mov word [bp+01ch], dx                    ; 89 56 1c
-    jmp near 03697h                           ; e9 fb fc
+    jmp near 03679h                           ; e9 fb fc
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -4973,39 +4960,39 @@
     mov word [bp+016h], ax                    ; 89 46 16
     mov ax, strict word 00006h                ; b8 06 00
-    jmp near 032bch                           ; e9 0f f9
+    jmp near 0329eh                           ; e9 0f f9
     mov byte [bp-006h], al                    ; 88 46 fa
     mov bl, ch                                ; 88 eb
     cmp AL, strict byte 001h                  ; 3c 01
-    jnbe short 0398dh                         ; 77 d7
+    jnbe short 0396fh                         ; 77 d7
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
-    call 03202h                               ; e8 44 f8
+    call 031e4h                               ; e8 44 f8
     test ax, ax                               ; 85 c0
-    jne short 039c5h                          ; 75 03
-    jmp near 032f0h                           ; e9 2b f9
+    jne short 039a7h                          ; 75 03
+    jmp near 032d2h                           ; e9 2b f9
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    je short 039d0h                           ; 74 05
+    je short 039b2h                           ; 74 05
     mov dx, 00091h                            ; ba 91 00
-    jmp short 039d3h                          ; eb 03
+    jmp short 039b5h                          ; eb 03
     mov dx, 00090h                            ; ba 90 00
     mov word [bp-012h], dx                    ; 89 56 ee
     mov ax, strict word 00040h                ; b8 40 00
-    call 01652h                               ; e8 76 dc
+    call 01652h                               ; e8 94 dc
     and AL, strict byte 00fh                  ; 24 0f
     cmp bl, 002h                              ; 80 fb 02
-    jc short 039f2h                           ; 72 0f
-    jbe short 039feh                          ; 76 19
+    jc short 039d4h                           ; 72 0f
+    jbe short 039e0h                          ; 76 19
     cmp bl, 004h                              ; 80 fb 04
-    je short 039fah                           ; 74 10
+    je short 039dch                           ; 74 10
     cmp bl, 003h                              ; 80 fb 03
-    je short 03a02h                           ; 74 13
-    jmp near 032aeh                           ; e9 bc f8
+    je short 039e4h                           ; 74 13
+    jmp near 03290h                           ; e9 bc f8
     cmp bl, 001h                              ; 80 fb 01
-    je short 039fah                           ; 74 03
-    jmp near 032aeh                           ; e9 b4 f8
+    je short 039dch                           ; 74 03
+    jmp near 03290h                           ; e9 b4 f8
     or AL, strict byte 090h                   ; 0c 90
-    jmp short 03a04h                          ; eb 06
+    jmp short 039e6h                          ; eb 06
     or AL, strict byte 070h                   ; 0c 70
-    jmp short 03a04h                          ; eb 02
+    jmp short 039e6h                          ; eb 02
     or AL, strict byte 010h                   ; 0c 10
     mov bl, al                                ; 88 c3
@@ -5013,11 +5000,11 @@
     mov dx, word [bp-012h]                    ; 8b 56 ee
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 4f dc
+    call 01660h                               ; e8 6d dc
     xor al, al                                ; 30 c0
     mov byte [bp+017h], al                    ; 88 46 17
     xor ah, ah                                ; 30 e4
-    call 02eceh                               ; e8 b3 f4
+    call 02eb0h                               ; e8 b3 f4
     and byte [bp+01ch], 0feh                  ; 80 66 1c fe
-    jmp near 03697h                           ; e9 75 fc
+    jmp near 03679h                           ; e9 75 fc
     mov byte [bp-006h], al                    ; 88 46 fa
     mov ah, cl                                ; 88 cc
@@ -5032,22 +5019,22 @@
     mov byte [bp-00ah], bl                    ; 88 5e f6
     cmp AL, strict byte 001h                  ; 3c 01
-    jbe short 03a44h                          ; 76 03
-    jmp near 0398dh                           ; e9 49 ff
+    jbe short 03a26h                          ; 76 03
+    jmp near 0396fh                           ; e9 49 ff
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
-    call 03202h                               ; e8 b6 f7
+    call 031e4h                               ; e8 b6 f7
     test ax, ax                               ; 85 c0
-    jne short 03a53h                          ; 75 03
-    jmp near 032f0h                           ; e9 9d f8
+    jne short 03a35h                          ; 75 03
+    jmp near 032d2h                           ; e9 9d f8
     mov bl, byte [bp-006h]                    ; 8a 5e fa
     xor bh, bh                                ; 30 ff
     mov ax, bx                                ; 89 d8
-    call 03031h                               ; e8 d4 f5
+    call 03013h                               ; e8 d4 f5
     test ax, ax                               ; 85 c0
-    jne short 03a7bh                          ; 75 1a
+    jne short 03a5dh                          ; 75 1a
     mov ax, bx                                ; 89 d8
-    call 03108h                               ; e8 a2 f6
+    call 030eah                               ; e8 a2 f6
     test ax, ax                               ; 85 c0
-    jne short 03a7bh                          ; 75 11
+    jne short 03a5dh                          ; 75 11
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -5055,87 +5042,87 @@
     mov word [bp+016h], ax                    ; 89 46 16
     mov ax, strict word 0000ch                ; b8 0c 00
-    jmp near 032bch                           ; e9 41 f8
+    jmp near 0329eh                           ; e9 41 f8
     mov ax, strict word 00010h                ; b8 10 00
-    call 016aeh                               ; e8 2d dc
+    call 016aeh                               ; e8 4b dc
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    jne short 03a8fh                          ; 75 08
+    jne short 03a71h                          ; 75 08
     mov CL, strict byte 004h                  ; b1 04
     mov ch, al                                ; 88 c5
     shr ch, CL                                ; d2 ed
-    jmp short 03a94h                          ; eb 05
+    jmp short 03a76h                          ; eb 05
     mov ch, al                                ; 88 c5
     and ch, 00fh                              ; 80 e5 0f
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    je short 03a9fh                           ; 74 05
+    je short 03a81h                           ; 74 05
     mov dx, 00091h                            ; ba 91 00
-    jmp short 03aa2h                          ; eb 03
+    jmp short 03a84h                          ; eb 03
     mov dx, 00090h                            ; ba 90 00
     mov word [bp-012h], dx                    ; 89 56 ee
     mov ax, strict word 00040h                ; b8 40 00
-    call 01652h                               ; e8 a7 db
+    call 01652h                               ; e8 c5 db
     and AL, strict byte 00fh                  ; 24 0f
     cmp ch, 003h                              ; 80 fd 03
-    jc short 03aceh                           ; 72 1c
+    jc short 03ab0h                           ; 72 1c
     mov ah, al                                ; 88 c4
     or ah, 090h                               ; 80 cc 90
     cmp ch, 003h                              ; 80 fd 03
-    jbe short 03b0ah                          ; 76 4e
+    jbe short 03aech                          ; 76 4e
     mov dl, al                                ; 88 c2
     or dl, 010h                               ; 80 ca 10
     cmp ch, 005h                              ; 80 fd 05
-    je short 03b08h                           ; 74 42
+    je short 03aeah                           ; 74 42
     cmp ch, 004h                              ; 80 fd 04
-    je short 03b18h                           ; 74 4d
-    jmp near 03b54h                           ; e9 86 00
+    je short 03afah                           ; 74 4d
+    jmp near 03b36h                           ; e9 86 00
     cmp ch, 002h                              ; 80 fd 02
-    je short 03ae8h                           ; 74 15
+    je short 03acah                           ; 74 15
     cmp ch, 001h                              ; 80 fd 01
-    jne short 03b1ch                          ; 75 44
+    jne short 03afeh                          ; 75 44
     cmp byte [bp-00ah], 027h                  ; 80 7e f6 27
-    jne short 03b1ch                          ; 75 3e
+    jne short 03afeh                          ; 75 3e
     cmp byte [bp-008h], 009h                  ; 80 7e f8 09
-    jne short 03b34h                          ; 75 50
+    jne short 03b16h                          ; 75 50
     or AL, strict byte 090h                   ; 0c 90
-    jmp short 03b34h                          ; eb 4c
+    jmp short 03b16h                          ; eb 4c
     cmp byte [bp-00ah], 027h                  ; 80 7e f6 27
-    jne short 03af8h                          ; 75 0a
+    jne short 03adah                          ; 75 0a
     cmp byte [bp-008h], 009h                  ; 80 7e f8 09
-    jne short 03af8h                          ; 75 04
+    jne short 03adah                          ; 75 04
     or AL, strict byte 070h                   ; 0c 70
-    jmp short 03b34h                          ; eb 3c
+    jmp short 03b16h                          ; eb 3c
     cmp byte [bp-00ah], 04fh                  ; 80 7e f6 4f
-    jne short 03b34h                          ; 75 36
+    jne short 03b16h                          ; 75 36
     cmp byte [bp-008h], 00fh                  ; 80 7e f8 0f
-    jne short 03b54h                          ; 75 50
+    jne short 03b36h                          ; 75 50
     or AL, strict byte 010h                   ; 0c 10
-    jmp short 03b54h                          ; eb 4c
-    jmp short 03b36h                          ; eb 2c
+    jmp short 03b36h                          ; eb 4c
+    jmp short 03b18h                          ; eb 2c
     cmp byte [bp-00ah], 04fh                  ; 80 7e f6 4f
-    jne short 03b54h                          ; 75 44
+    jne short 03b36h                          ; 75 44
     cmp byte [bp-008h], 009h                  ; 80 7e f8 09
-    je short 03b1ah                           ; 74 04
-    jmp short 03b54h                          ; eb 3c
-    jmp short 03b1eh                          ; eb 04
+    je short 03afch                           ; 74 04
+    jmp short 03b36h                          ; eb 3c
+    jmp short 03b00h                          ; eb 04
     mov al, ah                                ; 88 e0
-    jmp short 03b54h                          ; eb 36
+    jmp short 03b36h                          ; eb 36
     cmp byte [bp-00ah], 04fh                  ; 80 7e f6 4f
-    jne short 03b54h                          ; 75 30
+    jne short 03b36h                          ; 75 30
     cmp byte [bp-008h], 009h                  ; 80 7e f8 09
-    jne short 03b2ch                          ; 75 02
-    jmp short 03b1ah                          ; eb ee
+    jne short 03b0eh                          ; 75 02
+    jmp short 03afch                          ; eb ee
     cmp byte [bp-008h], 012h                  ; 80 7e f8 12
-    jne short 03b54h                          ; 75 22
+    jne short 03b36h                          ; 75 22
     mov al, dl                                ; 88 d0
-    jmp short 03b54h                          ; eb 1e
+    jmp short 03b36h                          ; eb 1e
     cmp byte [bp-00ah], 04fh                  ; 80 7e f6 4f
-    jne short 03b54h                          ; 75 18
+    jne short 03b36h                          ; 75 18
     cmp byte [bp-008h], 009h                  ; 80 7e f8 09
-    jne short 03b44h                          ; 75 02
-    jmp short 03b1ah                          ; eb d6
+    jne short 03b26h                          ; 75 02
+    jmp short 03afch                          ; eb d6
     cmp byte [bp-008h], 012h                  ; 80 7e f8 12
-    jne short 03b4ch                          ; 75 02
-    jmp short 03b32h                          ; eb e6
+    jne short 03b2eh                          ; 75 02
+    jmp short 03b14h                          ; eb e6
     cmp byte [bp-008h], 024h                  ; 80 7e f8 24
-    jne short 03b54h                          ; 75 02
+    jne short 03b36h                          ; 75 02
     or AL, strict byte 0d0h                   ; 0c d0
     mov dl, al                                ; 88 c2
@@ -5144,21 +5131,21 @@
     sar dx, CL                                ; d3 fa
     test dl, 001h                             ; f6 c2 01
-    jne short 03b64h                          ; 75 03
-    jmp near 03a6ah                           ; e9 06 ff
+    jne short 03b46h                          ; 75 03
+    jmp near 03a4ch                           ; e9 06 ff
     mov bl, al                                ; 88 c3
     xor bh, bh                                ; 30 ff
     mov dx, word [bp-012h]                    ; 8b 56 ee
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 ef da
+    call 01660h                               ; e8 0d db
     mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
     mov al, ch                                ; 88 e8
     xor ah, ah                                ; 30 e4
-    call 03ba9h                               ; e8 2c 00
+    call 03b8bh                               ; e8 2c 00
     mov word [bp+008h], ax                    ; 89 46 08
-    jmp near 03a11h                           ; e9 8e fe
+    jmp near 039f3h                           ; e9 8e fe
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 a5 dd
+    call 01933h                               ; e8 c3 dd
     mov al, byte [bp+017h]                    ; 8a 46 17
     xor ah, ah                                ; 30 e4
@@ -5170,8 +5157,8 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 d3 dd
+    call 01976h                               ; e8 f1 dd
     add sp, strict byte 00008h                ; 83 c4 08
-    jmp near 032aeh                           ; e9 05 f7
-get_floppy_dpt_:                             ; 0xf3ba9 LB 0x32
+    jmp near 03290h                           ; e9 05 f7
+get_floppy_dpt_:                             ; 0xf3b8b LB 0x32
     push bx                                   ; 53
     push dx                                   ; 52
@@ -5180,12 +5167,12 @@
     mov dl, al                                ; 88 c2
     xor ax, ax                                ; 31 c0
-    jmp short 03bbah                          ; eb 06
+    jmp short 03b9ch                          ; eb 06
     inc ax                                    ; 40
     cmp ax, strict word 00007h                ; 3d 07 00
-    jnc short 03bd4h                          ; 73 1a
+    jnc short 03bb6h                          ; 73 1a
     mov bx, ax                                ; 89 c3
     sal bx, 1                                 ; d1 e3
     cmp dl, byte [word bx+0005bh]             ; 3a 97 5b 00
-    jne short 03bb4h                          ; 75 f0
+    jne short 03b96h                          ; 75 f0
     mov al, byte [word bx+0005ch]             ; 8a 87 5c 00
     xor ah, ah                                ; 30 e4
@@ -5193,5 +5180,5 @@
     imul bx                                   ; f7 eb
     add ax, strict word 00000h                ; 05 00 00
-    jmp short 03bd7h                          ; eb 03
+    jmp short 03bb9h                          ; eb 03
     mov ax, strict word 00041h                ; b8 41 00
     pop bp                                    ; 5d
@@ -5199,5 +5186,5 @@
     pop bx                                    ; 5b
     retn                                      ; c3
-dummy_soft_reset_:                           ; 0xf3bdb LB 0x7
+dummy_soft_reset_:                           ; 0xf3bbd LB 0x7
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -5205,39 +5192,39 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-_cdemu_init:                                 ; 0xf3be2 LB 0x18
+_cdemu_init:                                 ; 0xf3bc4 LB 0x18
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 80 da
+    call 0166eh                               ; e8 9e da
     xor bx, bx                                ; 31 db
     mov dx, 00366h                            ; ba 66 03
-    call 01660h                               ; e8 6a da
+    call 01660h                               ; e8 88 da
     mov sp, bp                                ; 89 ec
     pop bp                                    ; 5d
     retn                                      ; c3
-_cdemu_isactive:                             ; 0xf3bfa LB 0x16
+_cdemu_isactive:                             ; 0xf3bdc LB 0x16
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 68 da
+    call 0166eh                               ; e8 86 da
     mov dx, 00366h                            ; ba 66 03
-    call 01652h                               ; e8 46 da
+    call 01652h                               ; e8 64 da
     mov sp, bp                                ; 89 ec
     pop bp                                    ; 5d
     retn                                      ; c3
-_cdemu_emulated_drive:                       ; 0xf3c10 LB 0x16
+_cdemu_emulated_drive:                       ; 0xf3bf2 LB 0x16
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 52 da
+    call 0166eh                               ; e8 70 da
     mov dx, 00368h                            ; ba 68 03
-    call 01652h                               ; e8 30 da
+    call 01652h                               ; e8 4e da
     mov sp, bp                                ; 89 ec
     pop bp                                    ; 5d
     retn                                      ; c3
-_int13_eltorito:                             ; 0xf3c26 LB 0x191
+_int13_eltorito:                             ; 0xf3c08 LB 0x191
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -5246,5 +5233,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 3a da
+    call 0166eh                               ; e8 58 da
     mov si, 00366h                            ; be 66 03
     mov di, ax                                ; 89 c7
@@ -5252,15 +5239,15 @@
     xor ah, ah                                ; 30 e4
     cmp ax, strict word 0004bh                ; 3d 4b 00
-    jc short 03c4dh                           ; 72 0a
-    jbe short 03c78h                          ; 76 33
+    jc short 03c2fh                           ; 72 0a
+    jbe short 03c5ah                          ; 76 33
     cmp ax, strict word 0004dh                ; 3d 4d 00
-    jbe short 03c52h                          ; 76 08
-    jmp near 03d7dh                           ; e9 30 01
+    jbe short 03c34h                          ; 76 08
+    jmp near 03d5fh                           ; e9 30 01
     cmp ax, strict word 0004ah                ; 3d 4a 00
-    jne short 03c75h                          ; 75 23
+    jne short 03c57h                          ; 75 23
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 d6 dc
+    call 01933h                               ; e8 f4 dc
     push word [bp+016h]                       ; ff 76 16
     mov ax, 002fch                            ; b8 fc 02
@@ -5270,12 +5257,12 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 07 dd
+    call 01976h                               ; e8 25 dd
     add sp, strict byte 00008h                ; 83 c4 08
-    jmp near 03d98h                           ; e9 23 01
-    jmp near 03d7dh                           ; e9 05 01
+    jmp near 03d7ah                           ; e9 23 01
+    jmp near 03d5fh                           ; e9 05 01
     mov dx, word [bp+00ah]                    ; 8b 56 0a
     mov ax, word [bp+004h]                    ; 8b 46 04
     mov bx, strict word 00013h                ; bb 13 00
-    call 01660h                               ; e8 dc d9
+    call 01660h                               ; e8 fa d9
     mov es, di                                ; 8e c7
     mov bl, byte [es:si+001h]                 ; 26 8a 5c 01
@@ -5284,5 +5271,5 @@
     inc dx                                    ; 42
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 01660h                               ; e8 ca d9
+    call 01660h                               ; e8 e8 d9
     mov es, di                                ; 8e c7
     mov bl, byte [es:si+002h]                 ; 26 8a 5c 02
@@ -5292,5 +5279,5 @@
     inc dx                                    ; 42
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 01660h                               ; e8 b7 d9
+    call 01660h                               ; e8 d5 d9
     mov es, di                                ; 8e c7
     mov bl, byte [es:si+003h]                 ; 26 8a 5c 03
@@ -5299,5 +5286,5 @@
     add dx, strict byte 00003h                ; 83 c2 03
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 01660h                               ; e8 a3 d9
+    call 01660h                               ; e8 c1 d9
     mov es, di                                ; 8e c7
     mov bx, word [es:si+008h]                 ; 26 8b 5c 08
@@ -5306,5 +5293,5 @@
     add dx, strict byte 00004h                ; 83 c2 04
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 0169ch                               ; e8 c9 d9
+    call 0169ch                               ; e8 e7 d9
     mov es, di                                ; 8e c7
     mov bx, word [es:si+004h]                 ; 26 8b 5c 04
@@ -5312,5 +5299,5 @@
     add dx, strict byte 00008h                ; 83 c2 08
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 0167ch                               ; e8 97 d9
+    call 0167ch                               ; e8 b5 d9
     mov es, di                                ; 8e c7
     mov bx, word [es:si+006h]                 ; 26 8b 5c 06
@@ -5318,5 +5305,5 @@
     add dx, strict byte 0000ah                ; 83 c2 0a
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 0167ch                               ; e8 85 d9
+    call 0167ch                               ; e8 a3 d9
     mov es, di                                ; 8e c7
     mov bx, word [es:si+00ch]                 ; 26 8b 5c 0c
@@ -5324,5 +5311,5 @@
     add dx, strict byte 0000ch                ; 83 c2 0c
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 0167ch                               ; e8 73 d9
+    call 0167ch                               ; e8 91 d9
     mov es, di                                ; 8e c7
     mov bx, word [es:si+00eh]                 ; 26 8b 5c 0e
@@ -5330,5 +5317,5 @@
     add dx, strict byte 0000eh                ; 83 c2 0e
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 0167ch                               ; e8 61 d9
+    call 0167ch                               ; e8 7f d9
     mov es, di                                ; 8e c7
     mov bl, byte [es:si+012h]                 ; 26 8a 5c 12
@@ -5337,5 +5324,5 @@
     add dx, strict byte 00010h                ; 83 c2 10
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 01660h                               ; e8 31 d9
+    call 01660h                               ; e8 4f d9
     mov es, di                                ; 8e c7
     mov bl, byte [es:si+014h]                 ; 26 8a 5c 14
@@ -5344,5 +5331,5 @@
     add dx, strict byte 00011h                ; 83 c2 11
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 01660h                               ; e8 1d d9
+    call 01660h                               ; e8 3b d9
     mov es, di                                ; 8e c7
     mov bl, byte [es:si+010h]                 ; 26 8a 5c 10
@@ -5351,7 +5338,7 @@
     add dx, strict byte 00012h                ; 83 c2 12
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 01660h                               ; e8 09 d9
+    call 01660h                               ; e8 27 d9
     test byte [bp+016h], 0ffh                 ; f6 46 16 ff
-    jne short 03d63h                          ; 75 06
+    jne short 03d45h                          ; 75 06
     mov es, di                                ; 8e c7
     mov byte [es:si], 000h                    ; 26 c6 04 00
@@ -5360,5 +5347,5 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 ee d8
+    call 01660h                               ; e8 0c d9
     and byte [bp+01ch], 0feh                  ; 80 66 1c fe
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -5370,5 +5357,5 @@
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 ab db
+    call 01933h                               ; e8 c9 db
     mov al, byte [bp+017h]                    ; 8a 46 17
     xor ah, ah                                ; 30 e4
@@ -5377,5 +5364,5 @@
     push ax                                   ; 50
     mov ax, 00333h                            ; b8 33 03
-    jmp near 03c67h                           ; e9 cf fe
+    jmp near 03c49h                           ; e9 cf fe
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -5386,8 +5373,8 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 af d8
+    call 01660h                               ; e8 cd d8
     or byte [bp+01ch], 001h                   ; 80 4e 1c 01
-    jmp short 03d76h                          ; eb bf
-device_is_cdrom_:                            ; 0xf3db7 LB 0x3f
+    jmp short 03d58h                          ; eb bf
+device_is_cdrom_:                            ; 0xf3d99 LB 0x3f
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -5398,10 +5385,10 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 a6 d8
+    call 0166eh                               ; e8 c4 d8
     mov cx, ax                                ; 89 c1
     cmp bl, 010h                              ; 80 fb 10
-    jc short 03dd3h                           ; 72 04
+    jc short 03db5h                           ; 72 04
     xor ax, ax                                ; 31 c0
-    jmp short 03deeh                          ; eb 1b
+    jmp short 03dd0h                          ; eb 1b
     mov al, bl                                ; 88 d8
     xor ah, ah                                ; 30 e4
@@ -5412,5 +5399,5 @@
     add bx, 00122h                            ; 81 c3 22 01
     cmp byte [es:bx+023h], 005h               ; 26 80 7f 23 05
-    jne short 03dcfh                          ; 75 e4
+    jne short 03db1h                          ; 75 e4
     mov ax, strict word 00001h                ; b8 01 00
     lea sp, [bp-006h]                         ; 8d 66 fa
@@ -5420,5 +5407,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-cdrom_boot_:                                 ; 0xf3df6 LB 0x43d
+cdrom_boot_:                                 ; 0xf3dd8 LB 0x43d
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -5431,5 +5418,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 63 d8
+    call 0166eh                               ; e8 81 d8
     mov word [bp-01ah], ax                    ; 89 46 e6
     mov si, 00366h                            ; be 66 03
@@ -5438,22 +5425,22 @@
     mov word [bp-012h], ax                    ; 89 46 ee
     mov byte [bp-00ch], 000h                  ; c6 46 f4 00
-    jmp short 03e2bh                          ; eb 09
+    jmp short 03e0dh                          ; eb 09
     inc byte [bp-00ch]                        ; fe 46 f4
     cmp byte [bp-00ch], 010h                  ; 80 7e f4 10
-    jnc short 03e37h                          ; 73 0c
+    jnc short 03e19h                          ; 73 0c
     mov al, byte [bp-00ch]                    ; 8a 46 f4
     xor ah, ah                                ; 30 e4
-    call 03db7h                               ; e8 84 ff
+    call 03d99h                               ; e8 84 ff
     test ax, ax                               ; 85 c0
-    je short 03e22h                           ; 74 eb
+    je short 03e04h                           ; 74 eb
     cmp byte [bp-00ch], 010h                  ; 80 7e f4 10
-    jc short 03e43h                           ; 72 06
+    jc short 03e25h                           ; 72 06
     mov ax, strict word 00002h                ; b8 02 00
-    jmp near 041d0h                           ; e9 8d 03
+    jmp near 041b2h                           ; e9 8d 03
     mov cx, strict word 0000ch                ; b9 0c 00
     xor bx, bx                                ; 31 db
     mov dx, ss                                ; 8c d2
     lea ax, [bp-026h]                         ; 8d 46 da
-    call 0a27ah                               ; e8 2a 64
+    call 0a21ah                               ; e8 e8 63
     mov word [bp-026h], strict word 00028h    ; c7 46 da 28 00
     mov ax, strict word 00011h                ; b8 11 00
@@ -5471,8 +5458,8 @@
     mov word [es:bx+010h], 00800h             ; 26 c7 47 10 00 08
     mov byte [bp-00eh], 000h                  ; c6 46 f2 00
-    jmp short 03e8bh                          ; eb 09
+    jmp short 03e6dh                          ; eb 09
     inc byte [bp-00eh]                        ; fe 46 f2
     cmp byte [bp-00eh], 004h                  ; 80 7e f2 04
-    jnbe short 03ecdh                         ; 77 42
+    jnbe short 03eafh                         ; 77 42
     mov al, byte [bp-00ch]                    ; 8a 46 f4
     xor ah, ah                                ; 30 e4
@@ -5503,33 +5490,33 @@
     call word [word di+0006ah]                ; ff 95 6a 00
     test ax, ax                               ; 85 c0
-    jne short 03e82h                          ; 75 b5
+    jne short 03e64h                          ; 75 b5
     test ax, ax                               ; 85 c0
-    je short 03ed7h                           ; 74 06
+    je short 03eb9h                           ; 74 06
     mov ax, strict word 00003h                ; b8 03 00
-    jmp near 041d0h                           ; e9 f9 02
+    jmp near 041b2h                           ; e9 f9 02
     cmp byte [bp-00826h], 000h                ; 80 be da f7 00
-    je short 03ee4h                           ; 74 06
+    je short 03ec6h                           ; 74 06
     mov ax, strict word 00004h                ; b8 04 00
-    jmp near 041d0h                           ; e9 ec 02
+    jmp near 041b2h                           ; e9 ec 02
     xor di, di                                ; 31 ff
-    jmp short 03eeeh                          ; eb 06
+    jmp short 03ed0h                          ; eb 06
     inc di                                    ; 47
     cmp di, strict byte 00005h                ; 83 ff 05
-    jnc short 03efeh                          ; 73 10
+    jnc short 03ee0h                          ; 73 10
     mov al, byte [bp+di-00825h]               ; 8a 83 db f7
     cmp al, byte [di+00da8h]                  ; 3a 85 a8 0d
-    je short 03ee8h                           ; 74 f0
+    je short 03ecah                           ; 74 f0
     mov ax, strict word 00005h                ; b8 05 00
-    jmp near 041d0h                           ; e9 d2 02
+    jmp near 041b2h                           ; e9 d2 02
     xor di, di                                ; 31 ff
-    jmp short 03f08h                          ; eb 06
+    jmp short 03eeah                          ; eb 06
     inc di                                    ; 47
     cmp di, strict byte 00017h                ; 83 ff 17
-    jnc short 03f18h                          ; 73 10
+    jnc short 03efah                          ; 73 10
     mov al, byte [bp+di-0081fh]               ; 8a 83 e1 f7
     cmp al, byte [di+00daeh]                  ; 3a 85 ae 0d
-    je short 03f02h                           ; 74 f0
+    je short 03ee4h                           ; 74 f0
     mov ax, strict word 00006h                ; b8 06 00
-    jmp near 041d0h                           ; e9 b8 02
+    jmp near 041b2h                           ; e9 b8 02
     mov ax, word [bp-007dfh]                  ; 8b 86 21 f8
     mov dx, word [bp-007ddh]                  ; 8b 96 23 f8
@@ -5571,36 +5558,36 @@
     call word [word di+0006ah]                ; ff 95 6a 00
     test ax, ax                               ; 85 c0
-    je short 03f80h                           ; 74 06
+    je short 03f62h                           ; 74 06
     mov ax, strict word 00007h                ; b8 07 00
-    jmp near 041d0h                           ; e9 50 02
+    jmp near 041b2h                           ; e9 50 02
     cmp byte [bp-00826h], 001h                ; 80 be da f7 01
-    je short 03f8dh                           ; 74 06
+    je short 03f6fh                           ; 74 06
     mov ax, strict word 00008h                ; b8 08 00
-    jmp near 041d0h                           ; e9 43 02
+    jmp near 041b2h                           ; e9 43 02
     cmp byte [bp-00825h], 000h                ; 80 be db f7 00
-    je short 03f9ah                           ; 74 06
+    je short 03f7ch                           ; 74 06
     mov ax, strict word 00009h                ; b8 09 00
-    jmp near 041d0h                           ; e9 36 02
+    jmp near 041b2h                           ; e9 36 02
     cmp byte [bp-00808h], 055h                ; 80 be f8 f7 55
-    je short 03fa7h                           ; 74 06
+    je short 03f89h                           ; 74 06
     mov ax, strict word 0000ah                ; b8 0a 00
-    jmp near 041d0h                           ; e9 29 02
+    jmp near 041b2h                           ; e9 29 02
     cmp byte [bp-00807h], 0aah                ; 80 be f9 f7 aa
-    jne short 03fa1h                          ; 75 f3
+    jne short 03f83h                          ; 75 f3
     cmp byte [bp-00806h], 088h                ; 80 be fa f7 88
-    je short 03fbbh                           ; 74 06
+    je short 03f9dh                           ; 74 06
     mov ax, strict word 0000bh                ; b8 0b 00
-    jmp near 041d0h                           ; e9 15 02
+    jmp near 041b2h                           ; e9 15 02
     mov al, byte [bp-00805h]                  ; 8a 86 fb f7
     mov es, [bp-018h]                         ; 8e 46 e8
     mov byte [es:si+001h], al                 ; 26 88 44 01
     cmp byte [bp-00805h], 000h                ; 80 be fb f7 00
-    jne short 03fd4h                          ; 75 07
+    jne short 03fb6h                          ; 75 07
     mov byte [es:si+002h], 0e0h               ; 26 c6 44 02 e0
-    jmp short 03fe7h                          ; eb 13
+    jmp short 03fc9h                          ; eb 13
     cmp byte [bp-00805h], 004h                ; 80 be fb f7 04
-    jnc short 03fe2h                          ; 73 07
+    jnc short 03fc4h                          ; 73 07
     mov byte [es:si+002h], 000h               ; 26 c6 44 02 00
-    jmp short 03fe7h                          ; eb 05
+    jmp short 03fc9h                          ; eb 05
     mov byte [es:si+002h], 080h               ; 26 c6 44 02 80
     mov bl, byte [bp-00ch]                    ; 8a 5e f4
@@ -5621,5 +5608,5 @@
     mov word [bp-010h], ax                    ; 89 46 f0
     test ax, ax                               ; 85 c0
-    jne short 04016h                          ; 75 05
+    jne short 03ff8h                          ; 75 05
     mov word [bp-010h], 007c0h                ; c7 46 f0 c0 07
     mov ax, word [bp-010h]                    ; 8b 46 f0
@@ -5630,9 +5617,9 @@
     mov word [es:si+00eh], bx                 ; 26 89 5c 0e
     test bx, bx                               ; 85 db
-    je short 04038h                           ; 74 06
+    je short 0401ah                           ; 74 06
     cmp bx, 00400h                            ; 81 fb 00 04
-    jbe short 0403eh                          ; 76 06
+    jbe short 04020h                          ; 76 06
     mov ax, strict word 0000ch                ; b8 0c 00
-    jmp near 041d0h                           ; e9 92 01
+    jmp near 041b2h                           ; e9 92 01
     mov ax, word [bp-007feh]                  ; 8b 86 02 f8
     mov dx, word [bp-007fch]                  ; 8b 96 04 f8
@@ -5682,5 +5669,5 @@
     sal ax, 1                                 ; d1 e0
     rcl di, 1                                 ; d1 d7
-    loop 040b6h                               ; e2 fa
+    loop 04098h                               ; e2 fa
     push di                                   ; 57
     push ax                                   ; 50
@@ -5697,31 +5684,31 @@
     mov word [es:bx+020h], strict word 00000h ; 26 c7 47 20 00 00
     test ax, ax                               ; 85 c0
-    je short 040e8h                           ; 74 06
+    je short 040cah                           ; 74 06
     mov ax, strict word 0000dh                ; b8 0d 00
-    jmp near 041d0h                           ; e9 e8 00
+    jmp near 041b2h                           ; e9 e8 00
     mov es, [bp-018h]                         ; 8e 46 e8
     mov al, byte [es:si+001h]                 ; 26 8a 44 01
     cmp AL, strict byte 002h                  ; 3c 02
-    jc short 04100h                           ; 72 0d
-    jbe short 0411bh                          ; 76 26
+    jc short 040e2h                           ; 72 0d
+    jbe short 040fdh                          ; 76 26
     cmp AL, strict byte 004h                  ; 3c 04
-    je short 0412bh                           ; 74 32
+    je short 0410dh                           ; 74 32
     cmp AL, strict byte 003h                  ; 3c 03
-    je short 04123h                           ; 74 26
-    jmp near 04178h                           ; e9 78 00
+    je short 04105h                           ; 74 26
+    jmp near 0415ah                           ; e9 78 00
     cmp AL, strict byte 001h                  ; 3c 01
-    jne short 04178h                          ; 75 74
+    jne short 0415ah                          ; 75 74
     mov es, [bp-018h]                         ; 8e 46 e8
     mov word [es:si+014h], strict word 0000fh ; 26 c7 44 14 0f 00
     mov word [es:si+012h], strict word 00050h ; 26 c7 44 12 50 00
     mov word [es:si+010h], strict word 00002h ; 26 c7 44 10 02 00
-    jmp short 04178h                          ; eb 5d
+    jmp short 0415ah                          ; eb 5d
     mov word [es:si+014h], strict word 00012h ; 26 c7 44 14 12 00
-    jmp short 0410dh                          ; eb ea
+    jmp short 040efh                          ; eb ea
     mov word [es:si+014h], strict word 00024h ; 26 c7 44 14 24 00
-    jmp short 0410dh                          ; eb e2
+    jmp short 040efh                          ; eb e2
     mov dx, 001c4h                            ; ba c4 01
     mov ax, word [bp-010h]                    ; 8b 46 f0
-    call 01652h                               ; e8 1e d5
+    call 01652h                               ; e8 3c d5
     and AL, strict byte 03fh                  ; 24 3f
     xor ah, ah                                ; 30 e4
@@ -5730,5 +5717,5 @@
     mov dx, 001c4h                            ; ba c4 01
     mov ax, word [bp-010h]                    ; 8b 46 f0
-    call 01652h                               ; e8 0a d5
+    call 01652h                               ; e8 28 d5
     xor ah, ah                                ; 30 e4
     mov bx, ax                                ; 89 c3
@@ -5737,5 +5724,5 @@
     mov dx, 001c5h                            ; ba c5 01
     mov ax, word [bp-010h]                    ; 8b 46 f0
-    call 01652h                               ; e8 f9 d4
+    call 01652h                               ; e8 17 d5
     xor ah, ah                                ; 30 e4
     add ax, bx                                ; 01 d8
@@ -5745,5 +5732,5 @@
     mov dx, 001c3h                            ; ba c3 01
     mov ax, word [bp-010h]                    ; 8b 46 f0
-    call 01652h                               ; e8 e4 d4
+    call 01652h                               ; e8 02 d5
     xor ah, ah                                ; 30 e4
     inc ax                                    ; 40
@@ -5752,10 +5739,10 @@
     mov es, [bp-018h]                         ; 8e 46 e8
     cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
-    je short 041b9h                           ; 74 37
+    je short 0419bh                           ; 74 37
     cmp byte [es:si+002h], 000h               ; 26 80 7c 02 00
-    jne short 041a1h                          ; 75 18
+    jne short 04183h                          ; 75 18
     mov dx, strict word 00010h                ; ba 10 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01652h                               ; e8 c0 d4
+    call 01652h                               ; e8 de d4
     mov bl, al                                ; 88 c3
     or bl, 041h                               ; 80 cb 41
@@ -5763,8 +5750,8 @@
     mov dx, strict word 00010h                ; ba 10 00
     mov ax, strict word 00040h                ; b8 40 00
-    jmp short 041b6h                          ; eb 15
+    jmp short 04198h                          ; eb 15
     mov dx, 00304h                            ; ba 04 03
     mov ax, word [bp-01ah]                    ; 8b 46 e6
-    call 01652h                               ; e8 a8 d4
+    call 01652h                               ; e8 c6 d4
     mov bl, al                                ; 88 c3
     db  0feh, 0c3h
@@ -5773,8 +5760,8 @@
     mov dx, 00304h                            ; ba 04 03
     mov ax, word [bp-01ah]                    ; 8b 46 e6
-    call 01660h                               ; e8 a7 d4
+    call 01660h                               ; e8 c5 d4
     mov es, [bp-018h]                         ; 8e 46 e8
     cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
-    je short 041c7h                           ; 74 04
+    je short 041a9h                           ; 74 04
     mov byte [es:si], 001h                    ; 26 c6 04 01
     mov es, [bp-018h]                         ; 8e 46 e8
@@ -5790,10 +5777,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, 0eah, 045h, 0dah
-    db  042h, 00fh, 043h, 034h, 043h, 004h, 043h, 034h, 043h, 004h, 043h, 033h, 045h, 019h, 045h, 0eah
-    db  045h, 0eah, 045h, 019h, 045h, 019h, 045h, 019h, 045h, 019h, 045h, 019h, 045h, 0e1h, 045h, 019h
-    db  045h, 0eah, 045h, 0eah, 045h, 0eah, 045h, 0eah, 045h, 0eah, 045h, 0eah, 045h, 0eah, 045h, 0eah
-    db  045h, 0eah, 045h, 0eah, 045h, 0eah, 045h, 0eah, 045h
-_int13_cdemu:                                ; 0xf4233 LB 0x453
+    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0cch, 045h, 0bch
+    db  042h, 0f1h, 042h, 016h, 043h, 0e6h, 042h, 016h, 043h, 0e6h, 042h, 015h, 045h, 0fbh, 044h, 0cch
+    db  045h, 0cch, 045h, 0fbh, 044h, 0fbh, 044h, 0fbh, 044h, 0fbh, 044h, 0fbh, 044h, 0c3h, 045h, 0fbh
+    db  044h, 0cch, 045h, 0cch, 045h, 0cch, 045h, 0cch, 045h, 0cch, 045h, 0cch, 045h, 0cch, 045h, 0cch
+    db  045h, 0cch, 045h, 0cch, 045h, 0cch, 045h, 0cch, 045h
+_int13_cdemu:                                ; 0xf4215 LB 0x453
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -5803,5 +5790,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 2a d4
+    call 0166eh                               ; e8 48 d4
     mov di, 00366h                            ; bf 66 03
     mov cx, ax                                ; 89 c1
@@ -5819,8 +5806,8 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 ed d3
+    call 01660h                               ; e8 0b d4
     mov es, cx                                ; 8e c1
     cmp byte [es:di], 000h                    ; 26 80 3d 00
-    je short 0428ah                           ; 74 0f
+    je short 0426ch                           ; 74 0f
     mov al, byte [es:di+002h]                 ; 26 8a 45 02
     xor ah, ah                                ; 30 e4
@@ -5828,9 +5815,9 @@
     xor dh, dh                                ; 30 f6
     cmp ax, dx                                ; 39 d0
-    je short 042b4h                           ; 74 2a
+    je short 04296h                           ; 74 2a
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 9e d6
+    call 01933h                               ; e8 bc d6
     mov ax, word [bp+012h]                    ; 8b 46 12
     xor ah, ah                                ; 30 e4
@@ -5844,20 +5831,20 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 c8 d6
+    call 01976h                               ; e8 e6 d6
     add sp, strict byte 0000ah                ; 83 c4 0a
-    jmp near 0460dh                           ; e9 59 03
+    jmp near 045efh                           ; e9 59 03
     mov al, byte [bp+017h]                    ; 8a 46 17
     xor ah, ah                                ; 30 e4
     mov dx, ax                                ; 89 c2
     cmp ax, strict word 00050h                ; 3d 50 00
-    jnbe short 04331h                         ; 77 71
+    jnbe short 04313h                         ; 77 71
     push CS                                   ; 0e
     pop ES                                    ; 07
     mov cx, strict word 0001eh                ; b9 1e 00
-    mov di, 041dah                            ; bf da 41
+    mov di, 041bch                            ; bf bc 41
     repne scasb                               ; f2 ae
     sal cx, 1                                 ; d1 e1
     mov di, cx                                ; 89 cf
-    mov ax, word [cs:di+041f7h]               ; 2e 8b 85 f7 41
+    mov ax, word [cs:di+041d9h]               ; 2e 8b 85 d9 41
     mov bx, word [bp+016h]                    ; 8b 5e 16
     xor bh, bh                                ; 30 ff
@@ -5873,16 +5860,16 @@
     sal bx, 1                                 ; d1 e3
     cmp word [word bx+0006ah], strict byte 00000h ; 83 bf 6a 00 00
-    je short 04301h                           ; 74 09
+    je short 042e3h                           ; 74 09
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
     call word [word bx+00076h]                ; ff 97 76 00
-    jmp near 04519h                           ; e9 15 02
+    jmp near 044fbh                           ; e9 15 02
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
     or ah, 003h                               ; 80 cc 03
-    jmp near 04615h                           ; e9 06 03
+    jmp near 045f7h                           ; e9 06 03
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01652h                               ; e8 3a d3
+    call 01652h                               ; e8 58 d3
     mov cl, al                                ; 88 c1
     mov bh, al                                ; 88 c7
@@ -5891,9 +5878,9 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 36 d3
+    call 01660h                               ; e8 54 d3
     test cl, cl                               ; 84 c9
-    je short 04393h                           ; 74 65
-    jmp near 04626h                           ; e9 f5 02
-    jmp near 045eah                           ; e9 b6 02
+    je short 04375h                           ; 74 65
+    jmp near 04608h                           ; e9 f5 02
+    jmp near 045cch                           ; e9 b6 02
     mov es, [bp-012h]                         ; 8e 46 ee
     mov di, word [es:si+014h]                 ; 26 8b 7c 14
@@ -5921,18 +5908,18 @@
     mov word [bp-014h], cx                    ; 89 4e ec
     test cx, cx                               ; 85 c9
-    je short 043a0h                           ; 74 1d
+    je short 04382h                           ; 74 1d
     cmp di, word [bp-00ah]                    ; 3b 7e f6
-    jc short 04390h                           ; 72 08
+    jc short 04372h                           ; 72 08
     cmp ax, dx                                ; 39 d0
-    jnc short 04390h                          ; 73 04
+    jnc short 04372h                          ; 73 04
     cmp bx, si                                ; 39 f3
-    jnbe short 04396h                         ; 77 06
-    jmp near 0460dh                           ; e9 7a 02
-    jmp near 0451dh                           ; e9 87 01
+    jnbe short 04378h                         ; 77 06
+    jmp near 045efh                           ; e9 7a 02
+    jmp near 044ffh                           ; e9 87 01
     mov dl, byte [bp+017h]                    ; 8a 56 17
     xor dh, dh                                ; 30 f6
     cmp dx, strict byte 00004h                ; 83 fa 04
-    jne short 043a3h                          ; 75 03
-    jmp near 04519h                           ; e9 76 01
+    jne short 04385h                          ; 75 03
+    jmp near 044fbh                           ; e9 76 01
     mov CL, strict byte 004h                  ; b1 04
     mov dx, word [bp+010h]                    ; 8b 56 10
@@ -5947,5 +5934,5 @@
     xor dl, dl                                ; 30 d2
     xor cx, cx                                ; 31 c9
-    call 0a229h                               ; e8 65 5e
+    call 0a1c9h                               ; e8 23 5e
     xor bx, bx                                ; 31 db
     add ax, si                                ; 01 f0
@@ -5953,5 +5940,5 @@
     mov bx, di                                ; 89 fb
     xor cx, cx                                ; 31 c9
-    call 0a229h                               ; e8 58 5e
+    call 0a1c9h                               ; e8 16 5e
     mov bx, ax                                ; 89 c3
     mov ax, word [bp-00ah]                    ; 8b 46 f6
@@ -5988,5 +5975,5 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-030h]                         ; 8d 46 d0
-    call 0a27ah                               ; e8 52 5e
+    call 0a21ah                               ; e8 10 5e
     mov word [bp-030h], strict word 00028h    ; c7 46 d0 28 00
     mov ax, word [bp-00eh]                    ; 8b 46 f2
@@ -6041,5 +6028,5 @@
     sal si, 1                                 ; d1 e6
     rcl di, 1                                 ; d1 d7
-    loop 044adh                               ; e2 fa
+    loop 0448fh                               ; e2 fa
     push di                                   ; 57
     push si                                   ; 56
@@ -6057,9 +6044,9 @@
     mov word [es:bx+020h], strict word 00000h ; 26 c7 47 20 00 00
     test al, al                               ; 84 c0
-    je short 04519h                           ; 74 38
+    je short 044fbh                           ; 74 38
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 47 d4
+    call 01933h                               ; e8 65 d4
     mov al, dl                                ; 88 d0
     xor ah, ah                                ; 30 e4
@@ -6073,5 +6060,5 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 72 d4
+    call 01976h                               ; e8 90 d4
     add sp, strict byte 0000ah                ; 83 c4 0a
     mov ax, word [bp+016h]                    ; 8b 46 16
@@ -6080,10 +6067,10 @@
     mov word [bp+016h], ax                    ; 89 46 16
     mov byte [bp+016h], 000h                  ; c6 46 16 00
-    jmp near 04618h                           ; e9 ff 00
+    jmp near 045fah                           ; e9 ff 00
     mov byte [bp+017h], 000h                  ; c6 46 17 00
     xor bx, bx                                ; 31 db
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 38 d1
+    call 01660h                               ; e8 56 d1
     and byte [bp+01ch], 0feh                  ; 80 66 1c fe
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -6135,33 +6122,33 @@
     mov word [bp+010h], cx                    ; 89 4e 10
     cmp AL, strict byte 003h                  ; 3c 03
-    je short 045c3h                           ; 74 1c
+    je short 045a5h                           ; 74 1c
     cmp AL, strict byte 002h                  ; 3c 02
-    je short 045bbh                           ; 74 10
+    je short 0459dh                           ; 74 10
     cmp AL, strict byte 001h                  ; 3c 01
-    jne short 045c8h                          ; 75 19
+    jne short 045aah                          ; 75 19
     mov ax, word [bp+010h]                    ; 8b 46 10
     xor al, al                                ; 30 c0
     or AL, strict byte 002h                   ; 0c 02
     mov word [bp+010h], ax                    ; 89 46 10
-    jmp short 045c8h                          ; eb 0d
+    jmp short 045aah                          ; eb 0d
     or cl, 004h                               ; 80 c9 04
     mov word [bp+010h], cx                    ; 89 4e 10
-    jmp short 045c8h                          ; eb 05
+    jmp short 045aah                          ; eb 05
     or cl, 005h                               ; 80 c9 05
-    jmp short 045beh                          ; eb f6
+    jmp short 045a0h                          ; eb f6
     mov es, [bp-012h]                         ; 8e 46 ee
     cmp byte [es:si+001h], 004h               ; 26 80 7c 01 04
-    jc short 045d5h                           ; 72 03
-    jmp near 04519h                           ; e9 44 ff
+    jc short 045b7h                           ; 72 03
+    jmp near 044fbh                           ; e9 44 ff
     mov word [bp+008h], 0efc7h                ; c7 46 08 c7 ef
     mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
-    jmp short 045d2h                          ; eb f1
+    jmp short 045b4h                          ; eb f1
     or bh, 003h                               ; 80 cf 03
     mov word [bp+016h], bx                    ; 89 5e 16
-    jmp near 0451dh                           ; e9 33 ff
+    jmp near 044ffh                           ; e9 33 ff
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 3e d3
+    call 01933h                               ; e8 5c d3
     mov al, byte [bp+017h]                    ; 8a 46 17
     xor ah, ah                                ; 30 e4
@@ -6173,5 +6160,5 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 6c d3
+    call 01976h                               ; e8 8a d3
     add sp, strict byte 00008h                ; 83 c4 08
     mov ax, word [bp+016h]                    ; 8b 46 16
@@ -6183,22 +6170,22 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 3a d0
+    call 01660h                               ; e8 58 d0
     or byte [bp+01ch], 001h                   ; 80 4e 1c 01
-    jmp near 0452ch                           ; e9 ff fe
+    jmp near 0450eh                           ; e9 ff fe
     db  050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h
-    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 06fh, 047h, 0ddh
-    db  04bh, 031h, 047h, 06fh, 047h, 026h, 047h, 06fh, 047h, 026h, 047h, 06fh, 047h, 0ddh, 04bh, 06fh
-    db  047h, 06fh, 047h, 0ddh, 04bh, 0ddh, 04bh, 0ddh, 04bh, 0ddh, 04bh, 0ddh, 04bh, 053h, 047h, 0ddh
-    db  04bh, 06fh, 047h, 05ch, 047h, 08dh, 047h, 026h, 047h, 08dh, 047h, 0d5h, 048h, 075h, 049h, 08dh
-    db  047h, 09fh, 049h, 0f7h, 04bh, 0ffh, 04bh, 06fh, 047h
-_int13_cdrom:                                ; 0xf4686 LB 0x5ae
+    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 051h, 047h, 096h
+    db  04bh, 013h, 047h, 051h, 047h, 008h, 047h, 051h, 047h, 008h, 047h, 051h, 047h, 096h, 04bh, 051h
+    db  047h, 051h, 047h, 096h, 04bh, 096h, 04bh, 096h, 04bh, 096h, 04bh, 096h, 04bh, 035h, 047h, 096h
+    db  04bh, 051h, 047h, 03eh, 047h, 06fh, 047h, 008h, 047h, 06fh, 047h, 0b8h, 048h, 058h, 049h, 06fh
+    db  047h, 082h, 049h, 0b0h, 04bh, 0b8h, 04bh, 051h, 047h
+_int13_cdrom:                                ; 0xf4668 LB 0x585
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     push si                                   ; 56
     push di                                   ; 57
-    sub sp, strict byte 0002ch                ; 83 ec 2c
+    sub sp, strict byte 0002ah                ; 83 ec 2a
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 d7 cf
+    call 0166eh                               ; e8 f5 cf
     mov word [bp-018h], ax                    ; 89 46 e8
     mov word [bp-00eh], 00122h                ; c7 46 f2 22 01
@@ -6207,11 +6194,11 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 b3 cf
+    call 01660h                               ; e8 d1 cf
     mov ax, word [bp+010h]                    ; 8b 46 10
     xor ah, ah                                ; 30 e4
     cmp ax, 000e0h                            ; 3d e0 00
-    jc short 046bch                           ; 72 05
+    jc short 0469eh                           ; 72 05
     cmp ax, 000f0h                            ; 3d f0 00
-    jc short 046dbh                           ; 72 1f
+    jc short 046bdh                           ; 72 1f
     mov ax, word [bp+010h]                    ; 8b 46 10
     xor ah, ah                                ; 30 e4
@@ -6225,7 +6212,7 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 a1 d2
+    call 01976h                               ; e8 bf d2
     add sp, strict byte 0000ah                ; 83 c4 0a
-    jmp near 04c15h                           ; e9 3a 05
+    jmp near 04bceh                           ; e9 11 05
     mov ax, word [bp+010h]                    ; 8b 46 10
     xor ah, ah                                ; 30 e4
@@ -6233,7 +6220,7 @@
     add bx, ax                                ; 01 c3
     mov dl, byte [es:bx+00114h]               ; 26 8a 97 14 01
-    mov byte [bp-006h], dl                    ; 88 56 fa
+    mov byte [bp-008h], dl                    ; 88 56 f8
     cmp dl, 010h                              ; 80 fa 10
-    jc short 04700h                           ; 72 0e
+    jc short 046e2h                           ; 72 0e
     push ax                                   ; 50
     mov al, byte [bp+019h]                    ; 8a 46 19
@@ -6242,18 +6229,18 @@
     push ax                                   ; 50
     mov ax, 00416h                            ; b8 16 04
-    jmp short 046cdh                          ; eb cd
+    jmp short 046afh                          ; eb cd
     mov al, byte [bp+019h]                    ; 8a 46 19
     xor ah, ah                                ; 30 e4
     mov dx, ax                                ; 89 c2
     cmp ax, strict word 00050h                ; 3d 50 00
-    jnbe short 0476fh                         ; 77 63
+    jnbe short 04751h                         ; 77 63
     push CS                                   ; 0e
     pop ES                                    ; 07
     mov cx, strict word 0001eh                ; b9 1e 00
-    mov di, 0462dh                            ; bf 2d 46
+    mov di, 0460fh                            ; bf 0f 46
     repne scasb                               ; f2 ae
     sal cx, 1                                 ; d1 e1
     mov di, cx                                ; 89 cf
-    mov ax, word [cs:di+0464ah]               ; 2e 8b 85 4a 46
+    mov ax, word [cs:di+0462ch]               ; 2e 8b 85 2c 46
     mov bx, word [bp+018h]                    ; 8b 5e 18
     xor bh, bh                                ; 30 ff
@@ -6262,8 +6249,8 @@
     xor ah, ah                                ; 30 e4
     or ah, 003h                               ; 80 cc 03
-    jmp near 04c1dh                           ; e9 ec 04
+    jmp near 04bd6h                           ; e9 c3 04
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01652h                               ; e8 18 cf
+    call 01652h                               ; e8 36 cf
     mov cl, al                                ; 88 c1
     mov bh, al                                ; 88 c7
@@ -6272,20 +6259,20 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 14 cf
+    call 01660h                               ; e8 32 cf
     test cl, cl                               ; 84 c9
-    je short 0476ch                           ; 74 1c
-    jmp near 04c2eh                           ; e9 db 04
+    je short 0474eh                           ; 74 1c
+    jmp near 04be7h                           ; e9 b2 04
     or bh, 002h                               ; 80 cf 02
     mov word [bp+018h], bx                    ; 89 5e 18
-    jmp near 04c20h                           ; e9 c4 04
+    jmp near 04bd9h                           ; 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 04be1h                           ; e9 72 04
+    jmp near 04b9ah                           ; 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 b9 d1
+    call 01933h                               ; e8 d7 d1
     mov al, byte [bp+019h]                    ; 8a 46 19
     xor ah, ah                                ; 30 e4
@@ -6296,9 +6283,9 @@
     push ax                                   ; 50
     mov ax, strict word 00004h                ; b8 04 00
-    jmp short 047ceh                          ; eb 41
+    jmp short 047b0h                          ; eb 41
     mov bx, word [bp+00ch]                    ; 8b 5e 0c
     mov es, [bp+006h]                         ; 8e 46 06
     mov di, bx                                ; 89 df
-    mov [bp-014h], es                         ; 8c 46 ec
+    mov [bp-020h], es                         ; 8c 46 e0
     mov si, word [es:bx+002h]                 ; 26 8b 77 02
     mov ax, word [es:bx+006h]                 ; 26 8b 47 06
@@ -6307,9 +6294,9 @@
     mov word [bp-01ah], ax                    ; 89 46 e6
     mov ax, word [es:bx+00ch]                 ; 26 8b 47 0c
-    mov word [bp-016h], ax                    ; 89 46 ea
+    mov word [bp-014h], ax                    ; 89 46 ec
     mov ax, word [es:bx+00eh]                 ; 26 8b 47 0e
     mov word [bp-012h], ax                    ; 89 46 ee
-    or ax, word [bp-016h]                     ; 0b 46 ea
-    je short 047d8h                           ; 74 1b
+    or ax, word [bp-014h]                     ; 0b 46 ec
+    je short 047bah                           ; 74 1b
     mov al, byte [bp+019h]                    ; 8a 46 19
     xor ah, ah                                ; 30 e4
@@ -6321,41 +6308,41 @@
     mov ax, strict word 00007h                ; b8 07 00
     push ax                                   ; 50
-    call 01976h                               ; e8 a4 d1
+    call 01976h                               ; e8 c2 d1
     add sp, strict byte 00008h                ; 83 c4 08
-    jmp near 04c15h                           ; e9 3d 04
-    mov es, [bp-014h]                         ; 8e 46 ec
+    jmp near 04bceh                           ; e9 14 04
+    mov es, [bp-020h]                         ; 8e 46 e0
     mov ax, word [es:di+008h]                 ; 26 8b 45 08
-    mov word [bp-016h], ax                    ; 89 46 ea
+    mov word [bp-014h], ax                    ; 89 46 ec
     mov ax, word [es:di+00ah]                 ; 26 8b 45 0a
     mov word [bp-012h], ax                    ; 89 46 ee
     mov al, byte [bp+019h]                    ; 8a 46 19
-    mov byte [bp-022h], al                    ; 88 46 de
-    mov byte [bp-021h], 000h                  ; c6 46 df 00
-    mov ax, word [bp-022h]                    ; 8b 46 de
+    mov byte [bp-010h], al                    ; 88 46 f0
+    mov byte [bp-00fh], 000h                  ; c6 46 f1 00
+    mov ax, word [bp-010h]                    ; 8b 46 f0
     cmp ax, strict word 00044h                ; 3d 44 00
-    je short 04800h                           ; 74 05
+    je short 047e2h                           ; 74 05
     cmp ax, strict word 00047h                ; 3d 47 00
-    jne short 04803h                          ; 75 03
-    jmp near 04bddh                           ; e9 da 03
+    jne short 047e5h                          ; 75 03
+    jmp near 04b96h                           ; e9 b1 03
     mov cx, strict word 0000ch                ; b9 0c 00
     xor bx, bx                                ; 31 db
     mov dx, ss                                ; 8c d2
-    lea ax, [bp-030h]                         ; 8d 46 d0
-    call 0a27ah                               ; e8 6a 5a
-    mov word [bp-030h], strict word 00028h    ; c7 46 d0 28 00
-    mov ax, word [bp-016h]                    ; 8b 46 ea
+    lea ax, [bp-02eh]                         ; 8d 46 d2
+    call 0a21ah                               ; e8 28 5a
+    mov word [bp-02eh], strict word 00028h    ; c7 46 d2 28 00
+    mov ax, word [bp-014h]                    ; 8b 46 ec
     mov dx, word [bp-012h]                    ; 8b 56 ee
     xchg ah, al                               ; 86 c4
     xchg dh, dl                               ; 86 d6
     xchg dx, ax                               ; 92
-    mov word [bp-02eh], ax                    ; 89 46 d2
-    mov word [bp-02ch], dx                    ; 89 56 d4
+    mov word [bp-02ch], ax                    ; 89 46 d4
+    mov word [bp-02ah], dx                    ; 89 56 d6
     mov ax, si                                ; 89 f0
     xchg ah, al                               ; 86 c4
-    mov word [bp-029h], ax                    ; 89 46 d7
+    mov word [bp-027h], ax                    ; 89 46 d9
     les bx, [bp-00eh]                         ; c4 5e f2
     mov word [es:bx+00eh], si                 ; 26 89 77 0e
     mov word [es:bx+010h], 00800h             ; 26 c7 47 10 00 08
-    mov al, byte [bp-006h]                    ; 8a 46 fa
+    mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
     mov dx, strict word 0001ch                ; ba 1c 00
@@ -6365,5 +6352,5 @@
     xor ah, ah                                ; 30 e4
     sal ax, 1                                 ; d1 e0
-    mov word [bp-024h], ax                    ; 89 46 dc
+    mov word [bp-022h], ax                    ; 89 46 de
     push word [bp-01ch]                       ; ff 76 e4
     push word [bp-01ah]                       ; ff 76 e6
@@ -6375,37 +6362,36 @@
     sal bx, 1                                 ; d1 e3
     rcl si, 1                                 ; d1 d6
-    loop 04862h                               ; e2 fa
+    loop 04844h                               ; e2 fa
     push si                                   ; 56
     push bx                                   ; 53
     xor ax, ax                                ; 31 c0
     push ax                                   ; 50
-    mov al, byte [bp-006h]                    ; 8a 46 fa
+    mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
     mov cx, ss                                ; 8c d1
-    lea bx, [bp-030h]                         ; 8d 5e d0
+    lea bx, [bp-02eh]                         ; 8d 5e d2
     mov dx, strict word 0000ch                ; ba 0c 00
-    mov si, word [bp-024h]                    ; 8b 76 dc
+    mov si, word [bp-022h]                    ; 8b 76 de
     call word [word si+0006ah]                ; ff 94 6a 00
-    mov dx, ax                                ; 89 c2
+    mov word [bp-016h], ax                    ; 89 46 ea
     les bx, [bp-00eh]                         ; c4 5e f2
-    mov bx, word [es:bx+01ah]                 ; 26 8b 5f 1a
-    mov si, word [bp-00eh]                    ; 8b 76 f2
-    mov si, word [es:si+01ch]                 ; 26 8b 74 1c
+    mov ax, word [es:bx+01ah]                 ; 26 8b 47 1a
+    mov dx, word [es:bx+01ch]                 ; 26 8b 57 1c
     mov cx, strict word 0000bh                ; b9 0b 00
-    shr si, 1                                 ; d1 ee
-    rcr bx, 1                                 ; d1 db
-    loop 04894h                               ; e2 fa
-    mov es, [bp-014h]                         ; 8e 46 ec
-    mov word [es:di+002h], bx                 ; 26 89 5d 02
-    test al, al                               ; 84 c0
-    je short 048fbh                           ; 74 56
+    shr dx, 1                                 ; d1 ea
+    rcr ax, 1                                 ; d1 d8
+    loop 04874h                               ; 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 048deh                           ; 74 57
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 83 d0
-    mov al, dl                                ; 88 d0
-    xor ah, ah                                ; 30 e4
-    push ax                                   ; 50
-    push word [bp-022h]                       ; ff 76 de
+    call 01933h                               ; e8 a1 d0
+    mov al, byte [bp-016h]                    ; 8a 46 ea
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    push word [bp-010h]                       ; ff 76 f0
     mov ax, 003dfh                            ; b8 df 03
     push ax                                   ; 50
@@ -6414,13 +6400,13 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 af d0
+    call 01976h                               ; e8 cc d0
     add sp, strict byte 0000ah                ; 83 c4 0a
     mov ax, word [bp+018h]                    ; 8b 46 18
     xor ah, ah                                ; 30 e4
     or ah, 00ch                               ; 80 cc 0c
-    jmp near 04c1dh                           ; e9 48 03
+    jmp near 04bd6h                           ; e9 1e 03
     cmp bx, strict byte 00002h                ; 83 fb 02
-    jnbe short 04946h                         ; 77 6c
-    mov al, byte [bp-006h]                    ; 8a 46 fa
+    jnbe short 04929h                         ; 77 6c
+    mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
     mov dx, strict word 0001ch                ; ba 1c 00
@@ -6430,12 +6416,12 @@
     mov cl, byte [es:si+025h]                 ; 26 8a 4c 25
     cmp bx, strict byte 00002h                ; 83 fb 02
-    je short 0495eh                           ; 74 6c
+    je short 04941h                           ; 74 6c
     cmp bx, strict byte 00001h                ; 83 fb 01
-    je short 04936h                           ; 74 3f
+    je short 04919h                           ; 74 3f
     test bx, bx                               ; 85 db
-    je short 048feh                           ; 74 03
-    jmp near 04bddh                           ; e9 df 02
+    je short 048e1h                           ; 74 03
+    jmp near 04b96h                           ; e9 b5 02
     cmp cl, 0ffh                              ; 80 f9 ff
-    jne short 04915h                          ; 75 12
+    jne short 048f8h                          ; 75 12
     mov ax, word [bp+018h]                    ; 8b 46 18
     xor ah, ah                                ; 30 e4
@@ -6444,6 +6430,6 @@
     xor al, al                                ; 30 c0
     or AL, strict byte 001h                   ; 0c 01
-    jmp near 04c1dh                           ; e9 08 03
-    mov al, byte [bp-006h]                    ; 8a 46 fa
+    jmp near 04bd6h                           ; e9 de 02
+    mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
     mov dx, strict word 0001ch                ; ba 1c 00
@@ -6458,13 +6444,13 @@
     or AL, strict byte 001h                   ; 0c 01
     mov word [bp+018h], ax                    ; 89 46 18
-    jmp short 048fbh                          ; eb c5
+    jmp short 048deh                          ; eb c5
     test cl, cl                               ; 84 c9
-    jne short 04949h                          ; 75 0f
+    jne short 0492ch                          ; 75 0f
     or bh, 0b0h                               ; 80 cf b0
     mov word [bp+018h], bx                    ; 89 5e 18
     mov byte [bp+018h], cl                    ; 88 4e 18
-    jmp near 04c20h                           ; e9 da 02
-    jmp near 04c15h                           ; e9 cc 02
-    mov al, byte [bp-006h]                    ; 8a 46 fa
+    jmp near 04bd9h                           ; e9 b0 02
+    jmp near 04bceh                           ; e9 a2 02
+    mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
     mov dx, strict word 0001ch                ; ba 1c 00
@@ -6476,5 +6462,5 @@
     mov byte [es:bx+025h], cl                 ; 26 88 4f 25
     test cl, cl                               ; 84 c9
-    jne short 04970h                          ; 75 0e
+    jne short 04953h                          ; 75 0e
     xor ax, ax                                ; 31 c0
     mov dx, word [bp+018h]                    ; 8b 56 18
@@ -6482,8 +6468,8 @@
     or dx, ax                                 ; 09 c2
     mov word [bp+018h], dx                    ; 89 56 18
-    jmp short 048fbh                          ; eb 8b
+    jmp short 048deh                          ; eb 8b
     mov ax, strict word 00001h                ; b8 01 00
-    jmp short 04964h                          ; eb ef
-    mov al, byte [bp-006h]                    ; 8a 46 fa
+    jmp short 04947h                          ; eb ef
+    mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
     mov dx, strict word 0001ch                ; ba 1c 00
@@ -6493,12 +6479,12 @@
     mov cl, byte [es:si+025h]                 ; 26 8a 4c 25
     test cl, cl                               ; 84 c9
-    je short 04992h                           ; 74 06
+    je short 04975h                           ; 74 06
     or bh, 0b1h                               ; 80 cf b1
-    jmp near 04756h                           ; e9 c4 fd
-    je short 049b9h                           ; 74 25
+    jmp near 04738h                           ; e9 c3 fd
+    je short 0499ch                           ; 74 25
     mov ax, word [bp+018h]                    ; 8b 46 18
     xor ah, ah                                ; 30 e4
     or ah, 0b1h                               ; 80 cc b1
-    jmp near 04c1dh                           ; e9 7e 02
+    jmp near 04bd6h                           ; e9 54 02
     mov bx, word [bp+00ch]                    ; 8b 5e 0c
     mov cx, word [bp+006h]                    ; 8b 4e 06
@@ -6507,11 +6493,11 @@
     mov es, cx                                ; 8e c1
     mov ax, word [es:bx]                      ; 26 8b 07
-    mov word [bp-010h], ax                    ; 89 46 f0
+    mov word [bp-01eh], ax                    ; 89 46 e2
     cmp ax, strict word 0001ah                ; 3d 1a 00
-    jnc short 049bch                          ; 73 05
-    jmp short 04946h                          ; eb 8d
-    jmp near 04bddh                           ; e9 21 02
-    jc short 04a1eh                           ; 72 60
-    mov al, byte [bp-006h]                    ; 8a 46 fa
+    jnc short 0499fh                          ; 73 05
+    jmp short 04929h                          ; eb 8d
+    jmp near 04b96h                           ; e9 f7 01
+    jc short 04a01h                           ; 72 60
+    mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
     mov dx, strict word 0001ch                ; ba 1c 00
@@ -6534,6 +6520,7 @@
     mov word [es:bx+014h], strict word 0ffffh ; 26 c7 47 14 ff ff
     mov word [es:bx+016h], strict word 0ffffh ; 26 c7 47 16 ff ff
-    cmp word [bp-010h], strict byte 0001eh    ; 83 7e f0 1e
-    jc short 04a85h                           ; 72 61
+    cmp word [bp-01eh], strict byte 0001eh    ; 83 7e e2 1e
+    jnc short 04a0ah                          ; 73 03
+    jmp near 04acah                           ; e9 c0 00
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov word [es:si], strict word 0001eh      ; 26 c7 04 1e 00
@@ -6541,5 +6528,5 @@
     mov word [es:si+01ch], ax                 ; 26 89 44 1c
     mov word [es:si+01ah], 00356h             ; 26 c7 44 1a 56 03
-    mov cl, byte [bp-006h]                    ; 8a 4e fa
+    mov cl, byte [bp-008h]                    ; 8a 4e f8
     xor ch, ch                                ; 30 ed
     mov ax, cx                                ; 89 c8
@@ -6554,30 +6541,11 @@
     add bx, ax                                ; 01 c3
     mov ax, word [es:bx+00206h]               ; 26 8b 87 06 02
-    mov word [bp-020h], ax                    ; 89 46 e0
-    mov ax, word [es:bx+00208h]               ; 26 8b 87 08 02
-    mov word [bp-01eh], ax                    ; 89 46 e2
-    mov al, byte [es:bx+00205h]               ; 26 8a 87 05 02
-    mov byte [bp-008h], al                    ; 88 46 f8
+    mov di, word [es:bx+00208h]               ; 26 8b bf 08 02
+    mov dl, byte [es:bx+00205h]               ; 26 8a 97 05 02
+    mov byte [bp-006h], dl                    ; 88 56 fa
+    mov bx, word [bp-00eh]                    ; 8b 5e f2
+    mov word [es:bx+00234h], ax               ; 26 89 87 34 02
+    mov word [es:bx+00236h], di               ; 26 89 bf 36 02
     mov ax, cx                                ; 89 c8
-    mov dx, strict word 0001ch                ; ba 1c 00
-    imul dx                                   ; f7 ea
-    mov bx, word [bp-00eh]                    ; 8b 5e f2
-    add bx, ax                                ; 01 c3
-    mov al, byte [es:bx+026h]                 ; 26 8a 47 26
-    mov di, strict word 00070h                ; bf 70 00
-    cmp AL, strict byte 001h                  ; 3c 01
-    jne short 04a88h                          ; 75 08
-    mov ax, strict word 00001h                ; b8 01 00
-    jmp short 04a8ah                          ; eb 05
-    jmp near 04b0fh                           ; e9 87 00
-    xor ax, ax                                ; 31 c0
-    or di, ax                                 ; 09 c7
-    mov ax, word [bp-020h]                    ; 8b 46 e0
-    les bx, [bp-00eh]                         ; c4 5e f2
-    mov word [es:bx+00234h], ax               ; 26 89 87 34 02
-    mov ax, word [bp-01eh]                    ; 8b 46 e2
-    mov word [es:bx+00236h], ax               ; 26 89 87 36 02
-    mov al, byte [bp-006h]                    ; 8a 46 fa
-    xor ah, ah                                ; 30 e4
     cwd                                       ; 99
     mov bx, strict word 00002h                ; bb 02 00
@@ -6589,32 +6557,34 @@
     mov byte [es:bx+00238h], dl               ; 26 88 97 38 02
     mov byte [es:bx+00239h], 0cbh             ; 26 c6 87 39 02 cb
-    mov al, byte [bp-008h]                    ; 8a 46 f8
+    mov al, byte [bp-006h]                    ; 8a 46 fa
     mov byte [es:bx+0023ah], al               ; 26 88 87 3a 02
-    mov word [es:bx+0023bh], strict word 00001h ; 26 c7 87 3b 02 01 00
-    mov byte [es:bx+0023dh], 000h             ; 26 c6 87 3d 02 00
-    mov word [es:bx+0023eh], di               ; 26 89 bf 3e 02
+    mov byte [es:bx+0023bh], 001h             ; 26 c6 87 3b 02 01
+    mov byte [es:bx+0023ch], ch               ; 26 88 af 3c 02
+    mov byte [es:bx+0023dh], ch               ; 26 88 af 3d 02
+    mov word [es:bx+0023eh], strict word 00070h ; 26 c7 87 3e 02 70 00
     mov word [es:bx+00240h], strict word 00000h ; 26 c7 87 40 02 00 00
     mov byte [es:bx+00242h], 011h             ; 26 c6 87 42 02 11
     xor bl, bl                                ; 30 db
     xor bh, bh                                ; 30 ff
-    jmp short 04af1h                          ; eb 05
+    jmp short 04aaah                          ; eb 05
     cmp bh, 00fh                              ; 80 ff 0f
-    jnc short 04b05h                          ; 73 14
-    mov dl, bh                                ; 88 fa
-    xor dh, dh                                ; 30 f6
+    jnc short 04ac0h                          ; 73 16
+    mov al, bh                                ; 88 f8
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
     add dx, 00356h                            ; 81 c2 56 03
     mov ax, word [bp-018h]                    ; 8b 46 e8
-    call 01652h                               ; e8 53 cb
+    call 01652h                               ; e8 98 cb
     add bl, al                                ; 00 c3
     db  0feh, 0c7h
     ; inc bh                                    ; fe c7
-    jmp short 04aech                          ; eb e7
+    jmp short 04aa5h                          ; 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-010h], strict byte 00042h    ; 83 7e f0 42
-    jnc short 04b18h                          ; 73 03
-    jmp near 04bddh                           ; e9 c5 00
-    mov al, byte [bp-006h]                    ; 8a 46 fa
+    cmp word [bp-01eh], strict byte 00042h    ; 83 7e e2 42
+    jnc short 04ad3h                          ; 73 03
+    jmp near 04b96h                           ; e9 c3 00
+    mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
     cwd                                       ; 99
@@ -6635,5 +6605,5 @@
     mov word [es:si+022h], strict word 00000h ; 26 c7 44 22 00 00
     test al, al                               ; 84 c0
-    jne short 04b62h                          ; 75 0c
+    jne short 04b1dh                          ; 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
@@ -6644,10 +6614,10 @@
     mov word [es:si+02eh], 02020h             ; 26 c7 44 2e 20 20
     test al, al                               ; 84 c0
-    jne short 04b97h                          ; 75 16
+    jne short 04b52h                          ; 75 16
     mov word [es:si+030h], dx                 ; 26 89 54 30
     mov word [es:si+032h], strict word 00000h ; 26 c7 44 32 00 00
     mov word [es:si+034h], strict word 00000h ; 26 c7 44 34 00 00
     mov word [es:si+036h], strict word 00000h ; 26 c7 44 36 00 00
-    mov al, byte [bp-006h]                    ; 8a 46 fa
+    mov al, byte [bp-008h]                    ; 8a 46 f8
     and AL, strict byte 001h                  ; 24 01
     xor ah, ah                                ; 30 e4
@@ -6657,26 +6627,25 @@
     mov word [es:si+03ch], strict word 00000h ; 26 c7 44 3c 00 00
     mov word [es:si+03eh], strict word 00000h ; 26 c7 44 3e 00 00
-    xor bl, bl                                ; 30 db
-    mov BH, strict byte 01eh                  ; b7 1e
-    jmp short 04bc2h                          ; eb 05
-    cmp bh, 040h                              ; 80 ff 40
-    jnc short 04bd4h                          ; 73 12
-    mov al, bh                                ; 88 f8
-    xor ah, ah                                ; 30 e4
+    xor al, al                                ; 30 c0
+    mov AH, strict byte 01eh                  ; b4 1e
+    jmp short 04b7dh                          ; eb 05
+    cmp ah, 040h                              ; 80 fc 40
+    jnc short 04b8dh                          ; 73 10
+    mov bl, ah                                ; 88 e3
+    xor bh, bh                                ; 30 ff
     mov es, [bp-00ah]                         ; 8e 46 f6
-    mov di, si                                ; 89 f7
-    add di, ax                                ; 01 c7
-    add bl, byte [es:di]                      ; 26 02 1d
-    db  0feh, 0c7h
-    ; inc bh                                    ; fe c7
-    jmp short 04bbdh                          ; eb e9
-    neg bl                                    ; f6 db
+    add bx, si                                ; 01 f3
+    add al, byte [es:bx]                      ; 26 02 07
+    db  0feh, 0c4h
+    ; inc ah                                    ; fe c4
+    jmp short 04b78h                          ; eb eb
+    neg al                                    ; f6 d8
     mov es, [bp-00ah]                         ; 8e 46 f6
-    mov byte [es:si+041h], bl                 ; 26 88 5c 41
+    mov byte [es:si+041h], al                 ; 26 88 44 41
     mov byte [bp+019h], 000h                  ; c6 46 19 00
     xor bx, bx                                ; 31 db
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 74 ca
+    call 01660h                               ; e8 bb ca
     and byte [bp+01eh], 0feh                  ; 80 66 1e fe
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -6687,14 +6656,14 @@
     or bh, 006h                               ; 80 cf 06
     mov word [bp+018h], bx                    ; 89 5e 18
-    jmp short 04c2eh                          ; eb 2f
+    jmp short 04be7h                          ; eb 2f
     cmp bx, strict byte 00006h                ; 83 fb 06
-    je short 04bddh                           ; 74 d9
+    je short 04b96h                           ; 74 d9
     cmp bx, strict byte 00001h                ; 83 fb 01
-    jc short 04c15h                           ; 72 0c
-    jbe short 04bddh                          ; 76 d2
+    jc short 04bceh                           ; 72 0c
+    jbe short 04b96h                          ; 76 d2
     cmp bx, strict byte 00003h                ; 83 fb 03
-    jc short 04c15h                           ; 72 05
+    jc short 04bceh                           ; 72 05
     cmp bx, strict byte 00004h                ; 83 fb 04
-    jbe short 04bddh                          ; 76 c8
+    jbe short 04b96h                          ; 76 c8
     mov ax, word [bp+018h]                    ; 8b 46 18
     xor ah, ah                                ; 30 e4
@@ -6705,30 +6674,30 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 32 ca
+    call 01660h                               ; e8 79 ca
     or byte [bp+01eh], 001h                   ; 80 4e 1e 01
-    jmp short 04bf0h                          ; eb bc
-print_boot_device_:                          ; 0xf4c34 LB 0x51
+    jmp short 04ba9h                          ; eb bc
+print_boot_device_:                          ; 0xf4bed LB 0x51
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     push cx                                   ; 51
     test al, al                               ; 84 c0
-    je short 04c41h                           ; 74 05
+    je short 04bfah                           ; 74 05
     mov dx, strict word 00002h                ; ba 02 00
-    jmp short 04c5bh                          ; eb 1a
+    jmp short 04c14h                          ; eb 1a
     test dl, dl                               ; 84 d2
-    je short 04c4ah                           ; 74 05
+    je short 04c03h                           ; 74 05
     mov dx, strict word 00003h                ; ba 03 00
-    jmp short 04c5bh                          ; eb 11
+    jmp short 04c14h                          ; eb 11
     test bl, 080h                             ; f6 c3 80
-    jne short 04c53h                          ; 75 04
+    jne short 04c0ch                          ; 75 04
     xor dh, dh                                ; 30 f6
-    jmp short 04c5bh                          ; eb 08
+    jmp short 04c14h                          ; eb 08
     test bl, 080h                             ; f6 c3 80
-    je short 04c7fh                           ; 74 27
+    je short 04c38h                           ; 74 27
     mov dx, strict word 00001h                ; ba 01 00
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 cd cc
+    call 01933h                               ; e8 14 cd
     mov ax, dx                                ; 89 d0
     mov dx, strict word 0000ah                ; ba 0a 00
@@ -6740,5 +6709,5 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 fa cc
+    call 01976h                               ; e8 41 cd
     add sp, strict byte 00006h                ; 83 c4 06
     lea sp, [bp-002h]                         ; 8d 66 fe
@@ -6746,5 +6715,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-print_boot_failure_:                         ; 0xf4c85 LB 0x9f
+print_boot_failure_:                         ; 0xf4c3e LB 0x9f
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6756,9 +6725,9 @@
     mov si, cx                                ; 89 ce
     test al, al                               ; 84 c0
-    je short 04cb7h                           ; 74 1f
+    je short 04c70h                           ; 74 1f
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 90 cc
+    call 01933h                               ; e8 d7 cc
     mov cx, 00ddah                            ; b9 da 0d
     push cx                                   ; 51
@@ -6767,28 +6736,28 @@
     mov cx, strict word 00004h                ; b9 04 00
     push cx                                   ; 51
-    call 01976h                               ; e8 c4 cc
+    call 01976h                               ; e8 0b cd
     add sp, strict byte 00006h                ; 83 c4 06
-    jmp short 04cffh                          ; eb 48
+    jmp short 04cb8h                          ; eb 48
     test dl, dl                               ; 84 d2
-    je short 04ccbh                           ; 74 10
+    je short 04c84h                           ; 74 10
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 6d cc
+    call 01933h                               ; e8 b4 cc
     mov cx, 00de4h                            ; b9 e4 0d
-    jmp short 04ca6h                          ; eb db
+    jmp short 04c5fh                          ; eb db
     test bl, 080h                             ; f6 c3 80
-    je short 04ce1h                           ; 74 11
+    je short 04c9ah                           ; 74 11
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 58 cc
+    call 01933h                               ; e8 9f cc
     push si                                   ; 56
     mov cx, 00dd0h                            ; b9 d0 0d
-    jmp short 04cf0h                          ; eb 0f
+    jmp short 04ca9h                          ; eb 0f
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 47 cc
+    call 01933h                               ; e8 8e cc
     push si                                   ; 56
     mov cx, 00dc6h                            ; b9 c6 0d
@@ -6798,17 +6767,17 @@
     mov cx, strict word 00004h                ; b9 04 00
     push cx                                   ; 51
-    call 01976h                               ; e8 7a cc
+    call 01976h                               ; e8 c1 cc
     add sp, strict byte 00008h                ; 83 c4 08
     cmp byte [bp+004h], 001h                  ; 80 7e 04 01
-    jne short 04d1ch                          ; 75 17
+    jne short 04cd5h                          ; 75 17
     test dh, dh                               ; 84 f6
-    jne short 04d0eh                          ; 75 05
+    jne short 04cc7h                          ; 75 05
     mov dx, 004d5h                            ; ba d5 04
-    jmp short 04d11h                          ; eb 03
+    jmp short 04ccah                          ; eb 03
     mov dx, 004ffh                            ; ba ff 04
     push dx                                   ; 52
     mov dx, strict word 00007h                ; ba 07 00
     push dx                                   ; 52
-    call 01976h                               ; e8 5d cc
+    call 01976h                               ; e8 a4 cc
     add sp, strict byte 00004h                ; 83 c4 04
     lea sp, [bp-002h]                         ; 8d 66 fe
@@ -6816,5 +6785,5 @@
     pop bp                                    ; 5d
     retn 00002h                               ; c2 02 00
-print_cdromboot_failure_:                    ; 0xf4d24 LB 0x2a
+print_cdromboot_failure_:                    ; 0xf4cdd LB 0x2a
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6826,5 +6795,5 @@
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 fc cb
+    call 01933h                               ; e8 43 cc
     push dx                                   ; 52
     mov dx, 00534h                            ; ba 34 05
@@ -6832,5 +6801,5 @@
     mov dx, strict word 00004h                ; ba 04 00
     push dx                                   ; 52
-    call 01976h                               ; e8 33 cc
+    call 01976h                               ; e8 7a cc
     add sp, strict byte 00006h                ; 83 c4 06
     lea sp, [bp-006h]                         ; 8d 66 fa
@@ -6840,5 +6809,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-_int19_function:                             ; 0xf4d4e LB 0x28d
+_int19_function:                             ; 0xf4d07 LB 0x28d
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6848,15 +6817,15 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 0f c9
+    call 0166eh                               ; e8 56 c9
     mov bx, ax                                ; 89 c3
     mov di, ax                                ; 89 c7
     mov byte [bp-00ch], 000h                  ; c6 46 f4 00
     mov ax, strict word 0003dh                ; b8 3d 00
-    call 016aeh                               ; e8 41 c9
+    call 016aeh                               ; e8 88 c9
     mov dl, al                                ; 88 c2
     xor dh, dh                                ; 30 f6
     mov word [bp-00eh], dx                    ; 89 56 f2
     mov ax, strict word 00038h                ; b8 38 00
-    call 016aeh                               ; e8 34 c9
+    call 016aeh                               ; e8 7b c9
     and AL, strict byte 0f0h                  ; 24 f0
     mov byte [bp-010h], al                    ; 88 46 f0
@@ -6868,5 +6837,5 @@
     mov word [bp-00eh], dx                    ; 89 56 f2
     mov ax, strict word 0003ch                ; b8 3c 00
-    call 016aeh                               ; e8 1a c9
+    call 016aeh                               ; e8 61 c9
     and AL, strict byte 00fh                  ; 24 0f
     xor ah, ah                                ; 30 e4
@@ -6876,36 +6845,36 @@
     mov dx, 0037dh                            ; ba 7d 03
     mov ax, bx                                ; 89 d8
-    call 01652h                               ; e8 ab c8
+    call 01652h                               ; e8 f2 c8
     test al, al                               ; 84 c0
-    je short 04db8h                           ; 74 0d
+    je short 04d71h                           ; 74 0d
     mov dx, 0037dh                            ; ba 7d 03
     mov ax, bx                                ; 89 d8
-    call 01652h                               ; e8 9f c8
+    call 01652h                               ; e8 e6 c8
     xor ah, ah                                ; 30 e4
     mov word [bp-00eh], ax                    ; 89 46 f2
     cmp byte [bp+004h], 001h                  ; 80 7e 04 01
-    jne short 04dcfh                          ; 75 11
+    jne short 04d88h                          ; 75 11
     mov ax, strict word 0003ch                ; b8 3c 00
-    call 016aeh                               ; e8 ea c8
+    call 016aeh                               ; e8 31 c9
     and AL, strict byte 0f0h                  ; 24 f0
     xor ah, ah                                ; 30 e4
     mov CL, strict byte 004h                  ; b1 04
     sar ax, CL                                ; d3 f8
-    call 07f6ch                               ; e8 9d 31
+    call 07f13h                               ; e8 8b 31
     cmp byte [bp+004h], 002h                  ; 80 7e 04 02
-    jne short 04ddah                          ; 75 05
+    jne short 04d93h                          ; 75 05
     mov CL, strict byte 004h                  ; b1 04
     shr word [bp-00eh], CL                    ; d3 6e f2
     cmp byte [bp+004h], 003h                  ; 80 7e 04 03
-    jne short 04de8h                          ; 75 08
+    jne short 04da1h                          ; 75 08
     mov al, byte [bp-00dh]                    ; 8a 46 f3
     xor ah, ah                                ; 30 e4
     mov word [bp-00eh], ax                    ; 89 46 f2
     cmp byte [bp+004h], 004h                  ; 80 7e 04 04
-    jne short 04df3h                          ; 75 05
+    jne short 04dach                          ; 75 05
     mov CL, strict byte 00ch                  ; b1 0c
     shr word [bp-00eh], CL                    ; d3 6e f2
     cmp word [bp-00eh], strict byte 00010h    ; 83 7e f2 10
-    jnc short 04dfdh                          ; 73 04
+    jnc short 04db6h                          ; 73 04
     mov byte [bp-00ch], 001h                  ; c6 46 f4 01
     xor al, al                                ; 30 c0
@@ -6916,5 +6885,5 @@
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 20 cb
+    call 01933h                               ; e8 67 cb
     push word [bp-00eh]                       ; ff 76 f2
     mov al, byte [bp+004h]                    ; 8a 46 04
@@ -6925,40 +6894,40 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 4f cb
+    call 01976h                               ; e8 96 cb
     add sp, strict byte 00008h                ; 83 c4 08
     mov ax, word [bp-00eh]                    ; 8b 46 f2
     and ax, strict word 0000fh                ; 25 0f 00
     cmp ax, strict word 00002h                ; 3d 02 00
-    jc short 04e43h                           ; 72 0e
-    jbe short 04e52h                          ; 76 1b
+    jc short 04dfch                           ; 72 0e
+    jbe short 04e0bh                          ; 76 1b
     cmp ax, strict word 00004h                ; 3d 04 00
-    je short 04e6fh                           ; 74 33
+    je short 04e28h                           ; 74 33
     cmp ax, strict word 00003h                ; 3d 03 00
-    je short 04e65h                           ; 74 24
-    jmp short 04e9eh                          ; eb 5b
+    je short 04e1eh                           ; 74 24
+    jmp short 04e57h                          ; eb 5b
     cmp ax, strict word 00001h                ; 3d 01 00
-    jne short 04e9eh                          ; 75 56
+    jne short 04e57h                          ; 75 56
     xor al, al                                ; 30 c0
     mov byte [bp-006h], al                    ; 88 46 fa
     mov byte [bp-008h], al                    ; 88 46 f8
-    jmp short 04eb2h                          ; eb 60
+    jmp short 04e6bh                          ; eb 60
     mov dx, 0037ch                            ; ba 7c 03
     mov ax, di                                ; 89 f8
-    call 01652h                               ; e8 f8 c7
+    call 01652h                               ; e8 3f 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 04eb2h                          ; eb 4d
+    jmp short 04e6bh                          ; eb 4d
     mov byte [bp-006h], 000h                  ; c6 46 fa 00
     mov byte [bp-008h], 001h                  ; c6 46 f8 01
-    jmp short 04e79h                          ; eb 0a
+    jmp short 04e32h                          ; eb 0a
     mov byte [bp-00ah], 001h                  ; c6 46 f6 01
     cmp byte [bp-008h], 000h                  ; 80 7e f8 00
-    je short 04eb2h                           ; 74 39
-    call 03df6h                               ; e8 7a ef
+    je short 04e6bh                           ; 74 39
+    call 03dd8h                               ; e8 a3 ef
     mov bx, ax                                ; 89 c3
     test AL, strict byte 0ffh                 ; a8 ff
-    je short 04ea5h                           ; 74 23
-    call 04d24h                               ; e8 9f fe
+    je short 04e5eh                           ; 74 23
+    call 04cddh                               ; e8 9f fe
     mov al, byte [bp-00ch]                    ; 8a 46 f4
     xor ah, ah                                ; 30 e4
@@ -6970,33 +6939,33 @@
     mov al, byte [bp-008h]                    ; 8a 46 f8
     mov cx, strict word 00001h                ; b9 01 00
-    call 04c85h                               ; e8 e7 fd
+    call 04c3eh                               ; e8 e7 fd
     xor ax, ax                                ; 31 c0
     xor dx, dx                                ; 31 d2
-    jmp near 04fd4h                           ; e9 2f 01
+    jmp near 04f8dh                           ; e9 2f 01
     mov dx, 00372h                            ; ba 72 03
     mov ax, di                                ; 89 f8
-    call 0166eh                               ; e8 c1 c7
+    call 0166eh                               ; e8 08 c8
     mov si, ax                                ; 89 c6
     mov byte [bp-006h], bh                    ; 88 7e fa
     cmp byte [bp-00ah], 001h                  ; 80 7e f6 01
-    jne short 04f0dh                          ; 75 55
+    jne short 04ec6h                          ; 75 55
     xor si, si                                ; 31 f6
     mov ax, 0e200h                            ; b8 00 e2
     mov es, ax                                ; 8e c0
     cmp word [es:si], 0aa55h                  ; 26 81 3c 55 aa
-    jne short 04e85h                          ; 75 bf
+    jne short 04e3eh                          ; 75 bf
     mov cx, ax                                ; 89 c1
     mov si, word [es:si+01ah]                 ; 26 8b 74 1a
     cmp word [es:si+002h], 0506eh             ; 26 81 7c 02 6e 50
-    jne short 04e85h                          ; 75 b1
+    jne short 04e3eh                          ; 75 b1
     cmp word [es:si], 05024h                  ; 26 81 3c 24 50
-    jne short 04e85h                          ; 75 aa
+    jne short 04e3eh                          ; 75 aa
     mov bx, word [es:si+00eh]                 ; 26 8b 5c 0e
     mov dx, word [es:bx]                      ; 26 8b 17
     mov ax, word [es:bx+002h]                 ; 26 8b 47 02
     cmp ax, 06568h                            ; 3d 68 65
-    jne short 04f0fh                          ; 75 24
+    jne short 04ec8h                          ; 75 24
     cmp dx, 07445h                            ; 81 fa 45 74
-    jne short 04f0fh                          ; 75 1e
+    jne short 04ec8h                          ; 75 1e
     mov bl, byte [bp-006h]                    ; 8a 5e fa
     xor bh, bh                                ; 30 ff
@@ -7005,9 +6974,9 @@
     mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
-    call 04c34h                               ; e8 31 fd
+    call 04bedh                               ; e8 31 fd
     mov word [bp-014h], strict word 00006h    ; c7 46 ec 06 00
     mov word [bp-012h], cx                    ; 89 4e ee
-    jmp short 04f2eh                          ; eb 21
-    jmp short 04f34h                          ; eb 25
+    jmp short 04ee7h                          ; eb 21
+    jmp short 04eedh                          ; eb 25
     mov bl, byte [bp-006h]                    ; 8a 5e fa
     xor bh, bh                                ; 30 ff
@@ -7016,5 +6985,5 @@
     mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
-    call 04c34h                               ; e8 13 fd
+    call 04bedh                               ; e8 13 fd
     sti                                       ; fb
     mov word [bp-012h], cx                    ; 89 4e ee
@@ -7023,9 +6992,9 @@
     mov word [bp-014h], ax                    ; 89 46 ec
     call far [bp-014h]                        ; ff 5e ec
-    jmp near 04e85h                           ; e9 51 ff
+    jmp near 04e3eh                           ; e9 51 ff
     cmp byte [bp-008h], 000h                  ; 80 7e f8 00
-    jne short 04f61h                          ; 75 27
+    jne short 04f1ah                          ; 75 27
     cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
-    jne short 04f61h                          ; 75 21
+    jne short 04f1ah                          ; 75 21
     mov si, 007c0h                            ; be c0 07
     mov es, si                                ; 8e c6
@@ -7040,30 +7009,30 @@
     sbb ax, strict byte 00000h                ; 83 d8 00
     test ax, ax                               ; 85 c0
-    je short 04f61h                           ; 74 03
-    jmp near 04e85h                           ; e9 24 ff
+    je short 04f1ah                           ; 74 03
+    jmp near 04e3eh                           ; e9 24 ff
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    je short 04f6bh                           ; 74 04
+    je short 04f24h                           ; 74 04
     xor bl, bl                                ; 30 db
-    jmp short 04f6dh                          ; eb 02
+    jmp short 04f26h                          ; eb 02
     mov BL, strict byte 001h                  ; b3 01
     cmp byte [bp-008h], 000h                  ; 80 7e f8 00
-    je short 04f75h                           ; 74 02
+    je short 04f2eh                           ; 74 02
     mov BL, strict byte 001h                  ; b3 01
     xor dx, dx                                ; 31 d2
     mov ax, si                                ; 89 f0
-    call 0166eh                               ; e8 f2 c6
+    call 0166eh                               ; e8 39 c7
     mov di, ax                                ; 89 c7
     mov dx, strict word 00002h                ; ba 02 00
     mov ax, si                                ; 89 f0
-    call 0166eh                               ; e8 e8 c6
+    call 0166eh                               ; e8 2f c7
     cmp di, ax                                ; 39 c7
-    je short 04f9bh                           ; 74 11
+    je short 04f54h                           ; 74 11
     test bl, bl                               ; 84 db
-    jne short 04fb3h                          ; 75 25
+    jne short 04f6ch                          ; 75 25
     mov dx, 001feh                            ; ba fe 01
     mov ax, si                                ; 89 f0
-    call 0166eh                               ; e8 d8 c6
+    call 0166eh                               ; e8 1f c7
     cmp ax, 0aa55h                            ; 3d 55 aa
-    je short 04fb3h                           ; 74 18
+    je short 04f6ch                           ; 74 18
     mov al, byte [bp-00ch]                    ; 8a 46 f4
     xor ah, ah                                ; 30 e4
@@ -7075,5 +7044,5 @@
     mov al, byte [bp-008h]                    ; 8a 46 f8
     xor cx, cx                                ; 31 c9
-    jmp near 04e9bh                           ; e9 e8 fe
+    jmp near 04e54h                           ; e9 e8 fe
     mov bl, byte [bp-006h]                    ; 8a 5e fa
     xor bh, bh                                ; 30 ff
@@ -7082,5 +7051,5 @@
     mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
-    call 04c34h                               ; e8 6f fc
+    call 04bedh                               ; e8 6f fc
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
@@ -7095,5 +7064,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-keyboard_panic_:                             ; 0xf4fdb LB 0x16
+keyboard_panic_:                             ; 0xf4f94 LB 0x16
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -7103,10 +7072,10 @@
     mov ax, strict word 00007h                ; b8 07 00
     push ax                                   ; 50
-    call 01976h                               ; e8 8c c9
+    call 01976h                               ; e8 d3 c9
     add sp, strict byte 00006h                ; 83 c4 06
     mov sp, bp                                ; 89 ec
     pop bp                                    ; 5d
     retn                                      ; c3
-_keyboard_init:                              ; 0xf4ff1 LB 0x26a
+_keyboard_init:                              ; 0xf4faa LB 0x26a
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -7120,16 +7089,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 002h                 ; a8 02
-    je short 05014h                           ; 74 0d
+    je short 04fcdh                           ; 74 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 05014h                          ; 76 08
+    jbe short 04fcdh                          ; 76 08
     xor al, al                                ; 30 c0
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 04ffdh                          ; eb e9
+    jmp short 04fb6h                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 0501dh                          ; 75 05
+    jne short 04fd6h                          ; 75 05
     xor ax, ax                                ; 31 c0
-    call 04fdbh                               ; e8 be ff
+    call 04f94h                               ; e8 be ff
     mov bx, strict word 0ffffh                ; bb ff ff
     mov dx, strict word 00064h                ; ba 64 00
@@ -7138,16 +7107,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 05037h                          ; 75 0d
+    jne short 04ff0h                          ; 75 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 05037h                          ; 76 08
+    jbe short 04ff0h                          ; 76 08
     mov AL, strict byte 001h                  ; b0 01
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 05020h                          ; eb e9
+    jmp short 04fd9h                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 05041h                          ; 75 06
+    jne short 04ffah                          ; 75 06
     mov ax, strict word 00001h                ; b8 01 00
-    call 04fdbh                               ; e8 9a ff
+    call 04f94h                               ; e8 9a ff
     mov dx, strict word 00060h                ; ba 60 00
     in AL, DX                                 ; ec
@@ -7155,7 +7124,7 @@
     ; sub ah, ah                                ; 2a e4
     cmp ax, strict word 00055h                ; 3d 55 00
-    je short 05052h                           ; 74 06
+    je short 0500bh                           ; 74 06
     mov ax, 003dfh                            ; b8 df 03
-    call 04fdbh                               ; e8 89 ff
+    call 04f94h                               ; e8 89 ff
     mov AL, strict byte 0abh                  ; b0 ab
     mov dx, strict word 00064h                ; ba 64 00
@@ -7167,16 +7136,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 002h                 ; a8 02
-    je short 05072h                           ; 74 0d
+    je short 0502bh                           ; 74 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 05072h                          ; 76 08
+    jbe short 0502bh                          ; 76 08
     mov AL, strict byte 010h                  ; b0 10
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 0505bh                          ; eb e9
+    jmp short 05014h                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 0507ch                          ; 75 06
+    jne short 05035h                          ; 75 06
     mov ax, strict word 0000ah                ; b8 0a 00
-    call 04fdbh                               ; e8 5f ff
+    call 04f94h                               ; e8 5f ff
     mov bx, strict word 0ffffh                ; bb ff ff
     mov dx, strict word 00064h                ; ba 64 00
@@ -7185,16 +7154,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 05096h                          ; 75 0d
+    jne short 0504fh                          ; 75 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 05096h                          ; 76 08
+    jbe short 0504fh                          ; 76 08
     mov AL, strict byte 011h                  ; b0 11
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 0507fh                          ; eb e9
+    jmp short 05038h                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 050a0h                          ; 75 06
+    jne short 05059h                          ; 75 06
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 04fdbh                               ; e8 3b ff
+    call 04f94h                               ; e8 3b ff
     mov dx, strict word 00060h                ; ba 60 00
     in AL, DX                                 ; ec
@@ -7202,7 +7171,7 @@
     ; sub ah, ah                                ; 2a e4
     test ax, ax                               ; 85 c0
-    je short 050b0h                           ; 74 06
+    je short 05069h                           ; 74 06
     mov ax, 003e0h                            ; b8 e0 03
-    call 04fdbh                               ; e8 2b ff
+    call 04f94h                               ; e8 2b ff
     mov AL, strict byte 0ffh                  ; b0 ff
     mov dx, strict word 00060h                ; ba 60 00
@@ -7214,16 +7183,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 002h                 ; a8 02
-    je short 050d0h                           ; 74 0d
+    je short 05089h                           ; 74 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 050d0h                          ; 76 08
+    jbe short 05089h                          ; 76 08
     mov AL, strict byte 020h                  ; b0 20
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 050b9h                          ; eb e9
+    jmp short 05072h                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 050dah                          ; 75 06
+    jne short 05093h                          ; 75 06
     mov ax, strict word 00014h                ; b8 14 00
-    call 04fdbh                               ; e8 01 ff
+    call 04f94h                               ; e8 01 ff
     mov bx, strict word 0ffffh                ; bb ff ff
     mov dx, strict word 00064h                ; ba 64 00
@@ -7232,16 +7201,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 050f4h                          ; 75 0d
+    jne short 050adh                          ; 75 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 050f4h                          ; 76 08
+    jbe short 050adh                          ; 76 08
     mov AL, strict byte 021h                  ; b0 21
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 050ddh                          ; eb e9
+    jmp short 05096h                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 050feh                          ; 75 06
+    jne short 050b7h                          ; 75 06
     mov ax, strict word 00015h                ; b8 15 00
-    call 04fdbh                               ; e8 dd fe
+    call 04f94h                               ; e8 dd fe
     mov dx, strict word 00060h                ; ba 60 00
     in AL, DX                                 ; ec
@@ -7249,7 +7218,7 @@
     ; sub ah, ah                                ; 2a e4
     cmp ax, 000fah                            ; 3d fa 00
-    je short 0510fh                           ; 74 06
+    je short 050c8h                           ; 74 06
     mov ax, 003e1h                            ; b8 e1 03
-    call 04fdbh                               ; e8 cc fe
+    call 04f94h                               ; e8 cc fe
     mov dx, strict word 00064h                ; ba 64 00
     in AL, DX                                 ; ec
@@ -7257,9 +7226,9 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 05121h                          ; 75 08
+    jne short 050dah                          ; 75 08
     mov AL, strict byte 031h                  ; b0 31
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 0510fh                          ; eb ee
+    jmp short 050c8h                          ; eb ee
     mov dx, strict word 00060h                ; ba 60 00
     in AL, DX                                 ; ec
@@ -7267,12 +7236,12 @@
     ; sub ah, ah                                ; 2a e4
     cmp ax, 000aah                            ; 3d aa 00
-    je short 0513ah                           ; 74 0e
+    je short 050f3h                           ; 74 0e
     in AL, DX                                 ; ec
     db  02ah, 0e4h
     ; sub ah, ah                                ; 2a e4
     cmp ax, 000aah                            ; 3d aa 00
-    je short 0513ah                           ; 74 06
+    je short 050f3h                           ; 74 06
     mov ax, 003e2h                            ; b8 e2 03
-    call 04fdbh                               ; e8 a1 fe
+    call 04f94h                               ; e8 a1 fe
     mov AL, strict byte 0f5h                  ; b0 f5
     mov dx, strict word 00060h                ; ba 60 00
@@ -7284,16 +7253,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 002h                 ; a8 02
-    je short 0515ah                           ; 74 0d
+    je short 05113h                           ; 74 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 0515ah                          ; 76 08
+    jbe short 05113h                          ; 76 08
     mov AL, strict byte 040h                  ; b0 40
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 05143h                          ; eb e9
+    jmp short 050fch                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 05164h                          ; 75 06
+    jne short 0511dh                          ; 75 06
     mov ax, strict word 00028h                ; b8 28 00
-    call 04fdbh                               ; e8 77 fe
+    call 04f94h                               ; e8 77 fe
     mov bx, strict word 0ffffh                ; bb ff ff
     mov dx, strict word 00064h                ; ba 64 00
@@ -7302,16 +7271,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 0517eh                          ; 75 0d
+    jne short 05137h                          ; 75 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 0517eh                          ; 76 08
+    jbe short 05137h                          ; 76 08
     mov AL, strict byte 041h                  ; b0 41
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 05167h                          ; eb e9
+    jmp short 05120h                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 05188h                          ; 75 06
+    jne short 05141h                          ; 75 06
     mov ax, strict word 00029h                ; b8 29 00
-    call 04fdbh                               ; e8 53 fe
+    call 04f94h                               ; e8 53 fe
     mov dx, strict word 00060h                ; ba 60 00
     in AL, DX                                 ; ec
@@ -7319,7 +7288,7 @@
     ; sub ah, ah                                ; 2a e4
     cmp ax, 000fah                            ; 3d fa 00
-    je short 05199h                           ; 74 06
+    je short 05152h                           ; 74 06
     mov ax, 003e3h                            ; b8 e3 03
-    call 04fdbh                               ; e8 42 fe
+    call 04f94h                               ; e8 42 fe
     mov AL, strict byte 060h                  ; b0 60
     mov dx, strict word 00064h                ; ba 64 00
@@ -7331,16 +7300,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 002h                 ; a8 02
-    je short 051b9h                           ; 74 0d
+    je short 05172h                           ; 74 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 051b9h                          ; 76 08
+    jbe short 05172h                          ; 76 08
     mov AL, strict byte 050h                  ; b0 50
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 051a2h                          ; eb e9
+    jmp short 0515bh                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 051c3h                          ; 75 06
+    jne short 0517ch                          ; 75 06
     mov ax, strict word 00032h                ; b8 32 00
-    call 04fdbh                               ; e8 18 fe
+    call 04f94h                               ; e8 18 fe
     mov AL, strict byte 065h                  ; b0 65
     mov dx, strict word 00060h                ; ba 60 00
@@ -7352,16 +7321,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 002h                 ; a8 02
-    je short 051e3h                           ; 74 0d
+    je short 0519ch                           ; 74 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 051e3h                          ; 76 08
+    jbe short 0519ch                          ; 76 08
     mov AL, strict byte 060h                  ; b0 60
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 051cch                          ; eb e9
+    jmp short 05185h                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 051edh                          ; 75 06
+    jne short 051a6h                          ; 75 06
     mov ax, strict word 0003ch                ; b8 3c 00
-    call 04fdbh                               ; e8 ee fd
+    call 04f94h                               ; e8 ee fd
     mov AL, strict byte 0f4h                  ; b0 f4
     mov dx, strict word 00060h                ; ba 60 00
@@ -7373,16 +7342,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 002h                 ; a8 02
-    je short 0520dh                           ; 74 0d
+    je short 051c6h                           ; 74 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 0520dh                          ; 76 08
+    jbe short 051c6h                          ; 76 08
     mov AL, strict byte 070h                  ; b0 70
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 051f6h                          ; eb e9
+    jmp short 051afh                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 05217h                          ; 75 06
+    jne short 051d0h                          ; 75 06
     mov ax, strict word 00046h                ; b8 46 00
-    call 04fdbh                               ; e8 c4 fd
+    call 04f94h                               ; e8 c4 fd
     mov bx, strict word 0ffffh                ; bb ff ff
     mov dx, strict word 00064h                ; ba 64 00
@@ -7391,16 +7360,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 05231h                          ; 75 0d
+    jne short 051eah                          ; 75 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 05231h                          ; 76 08
+    jbe short 051eah                          ; 76 08
     mov AL, strict byte 071h                  ; b0 71
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 0521ah                          ; eb e9
+    jmp short 051d3h                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 0523bh                          ; 75 06
+    jne short 051f4h                          ; 75 06
     mov ax, strict word 00046h                ; b8 46 00
-    call 04fdbh                               ; e8 a0 fd
+    call 04f94h                               ; e8 a0 fd
     mov dx, strict word 00060h                ; ba 60 00
     in AL, DX                                 ; ec
@@ -7408,16 +7377,16 @@
     ; sub ah, ah                                ; 2a e4
     cmp ax, 000fah                            ; 3d fa 00
-    je short 0524ch                           ; 74 06
+    je short 05205h                           ; 74 06
     mov ax, 003e4h                            ; b8 e4 03
-    call 04fdbh                               ; e8 8f fd
+    call 04f94h                               ; e8 8f fd
     mov AL, strict byte 0a8h                  ; b0 a8
     mov dx, strict word 00064h                ; ba 64 00
     out DX, AL                                ; ee
     xor ax, ax                                ; 31 c0
-    call 06713h                               ; e8 bc 14
+    call 066bch                               ; e8 ac 14
     mov sp, bp                                ; 89 ec
     pop bp                                    ; 5d
     retn                                      ; c3
-enqueue_key_:                                ; 0xf525b LB 0x9e
+enqueue_key_:                                ; 0xf5214 LB 0x9e
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -7431,18 +7400,18 @@
     mov dx, strict word 0001ah                ; ba 1a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 fd c3
+    call 0166eh                               ; e8 44 c4
     mov di, ax                                ; 89 c7
     mov dx, strict word 0001ch                ; ba 1c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 f2 c3
+    call 0166eh                               ; e8 39 c4
     mov si, ax                                ; 89 c6
     lea cx, [si+002h]                         ; 8d 4c 02
     cmp cx, strict byte 0003eh                ; 83 f9 3e
-    jc short 05289h                           ; 72 03
+    jc short 05242h                           ; 72 03
     mov cx, strict word 0001eh                ; b9 1e 00
     cmp cx, di                                ; 39 f9
-    jne short 05291h                          ; 75 04
+    jne short 0524ah                          ; 75 04
     xor ax, ax                                ; 31 c0
-    jmp short 052bbh                          ; eb 2a
+    jmp short 05274h                          ; eb 2a
     mov al, bl                                ; 88 d8
     xor ah, ah                                ; 30 e4
@@ -7450,14 +7419,14 @@
     mov dx, si                                ; 89 f2
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 c1 c3
+    call 01660h                               ; e8 08 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 01660h                               ; e8 b3 c3
+    call 01660h                               ; e8 fa c3
     mov bx, cx                                ; 89 cb
     mov dx, strict word 0001ch                ; ba 1c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0167ch                               ; e8 c4 c3
+    call 0167ch                               ; e8 0b c4
     mov ax, strict word 00001h                ; b8 01 00
     lea sp, [bp-008h]                         ; 8d 66 f8
@@ -7478,24 +7447,33 @@
     cmp bh, byte [bx+si]                      ; 3a 38
     sub bl, byte [ss:di]                      ; 36 2a 1d
-    aas                                       ; 3f
-    push si                                   ; 56
+    clc                                       ; f8
+    push bp                                   ; 55
+    mov BL, strict byte 053h                  ; b3 53
+    push bx                                   ; 53
+    push bx                                   ; 53
+    push bx                                   ; 53
+    push bx                                   ; 53
+    inc dx                                    ; 42
+    push sp                                   ; 54
+    and AL, strict byte 053h                  ; 24 53
+    db  0c6h, 054h, 037h, 055h
+    ; mov byte [si+037h], 055h                  ; c6 54 37 55
+    ficom word [di-044h]                      ; de 55 bc
+    push bp                                   ; 55
     cli                                       ; fa
     push bx                                   ; 53
-    call far 08953h:09a53h                    ; 9a 53 9a 53 89
-    push sp                                   ; 54
-    imul dx, word [bp+di+00dh], strict byte 00055h ; 6b 53 0d 55
-    jle short 0533ah                          ; 7e 55
-    and ax, 00356h                            ; 25 56 03
-    push si                                   ; 56
-    inc cx                                    ; 41
-    push sp                                   ; 54
-    call far 0cb53h:09a53h                    ; 9a 53 9a 53 cb
-    push sp                                   ; 54
-    mov dx, word [bp+di+05eh]                 ; 8b 53 5e
+    push bx                                   ; 53
+    push bx                                   ; 53
+    push bx                                   ; 53
+    push bx                                   ; 53
+    test byte [si+044h], dl                   ; 84 54 44
+    push bx                                   ; 53
+    pop SS                                    ; 17
     push bp                                   ; 55
-    jcxz 0534ch                               ; e3 55
-    push DS                                   ; 1e
-    push si                                   ; 56
-_int09_function:                             ; 0xf52f9 LB 0x4cd
+    pushfw                                    ; 9c
+    push bp                                   ; 55
+    xlatb                                     ; d7
+    push bp                                   ; 55
+_int09_function:                             ; 0xf52b2 LB 0x4cd
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -7505,29 +7483,29 @@
     mov byte [bp-004h], al                    ; 88 46 fc
     test al, al                               ; 84 c0
-    jne short 05326h                          ; 75 1c
+    jne short 052dfh                          ; 75 1c
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 1e c6
+    call 01933h                               ; e8 65 c6
     mov ax, 00587h                            ; b8 87 05
     push ax                                   ; 50
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 56 c6
+    call 01976h                               ; e8 9d c6
     add sp, strict byte 00004h                ; 83 c4 04
-    jmp near 053f4h                           ; e9 ce 00
+    jmp near 053adh                           ; e9 ce 00
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01652h                               ; e8 23 c3
+    call 01652h                               ; e8 6a c3
     mov byte [bp-006h], al                    ; 88 46 fa
     mov byte [bp-008h], al                    ; 88 46 f8
     mov dx, 00096h                            ; ba 96 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01652h                               ; e8 14 c3
+    call 01652h                               ; e8 5b c3
     mov byte [bp-00ah], al                    ; 88 46 f6
     mov byte [bp-010h], al                    ; 88 46 f0
     mov dx, strict word 00017h                ; ba 17 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01652h                               ; e8 05 c3
+    call 01652h                               ; e8 4c c3
     mov byte [bp-00ch], al                    ; 88 46 f4
     mov byte [bp-00eh], al                    ; 88 46 f2
@@ -7536,9 +7514,9 @@
     pop ES                                    ; 07
     mov cx, strict word 00012h                ; b9 12 00
-    mov di, 052c4h                            ; bf c4 52
+    mov di, 0527dh                            ; bf 7d 52
     repne scasb                               ; f2 ae
     sal cx, 1                                 ; d1 e1
     mov di, cx                                ; 89 cf
-    mov ax, word [cs:di+052d5h]               ; 2e 8b 85 d5 52
+    mov ax, word [cs:di+0528eh]               ; 2e 8b 85 8e 52
     jmp ax                                    ; ff e0
     xor byte [bp-00eh], 040h                  ; 80 76 f2 40
@@ -7547,10 +7525,10 @@
     mov dx, strict word 00017h                ; ba 17 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 e3 c2
+    call 01660h                               ; e8 2a c3
     or byte [bp-008h], 040h                   ; 80 4e f8 40
     mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
     mov bx, ax                                ; 89 c3
-    jmp near 05613h                           ; e9 88 02
+    jmp near 055cch                           ; e9 88 02
     mov al, byte [bp-006h]                    ; 8a 46 fa
     and AL, strict byte 0bfh                  ; 24 bf
@@ -7558,20 +7536,20 @@
     mov bl, al                                ; 88 c3
     xor bh, bh                                ; 30 ff
-    jmp near 05613h                           ; e9 79 02
+    jmp near 055cch                           ; e9 79 02
     test byte [bp-010h], 002h                 ; f6 46 f0 02
-    jne short 053d3h                          ; 75 33
+    jne short 0538ch                          ; 75 33
     mov al, byte [bp-004h]                    ; 8a 46 fc
     and AL, strict byte 07fh                  ; 24 7f
     cmp AL, strict byte 02ah                  ; 3c 2a
-    jne short 053aeh                          ; 75 05
+    jne short 05367h                          ; 75 05
     mov bx, strict word 00002h                ; bb 02 00
-    jmp short 053b1h                          ; eb 03
+    jmp short 0536ah                          ; eb 03
     mov bx, strict word 00001h                ; bb 01 00
     test byte [bp-004h], 080h                 ; f6 46 fc 80
-    je short 053c0h                           ; 74 09
+    je short 05379h                           ; 74 09
     mov al, bl                                ; 88 d8
     not al                                    ; f6 d0
     and byte [bp-00eh], al                    ; 20 46 f2
-    jmp short 053c3h                          ; eb 03
+    jmp short 0537ch                          ; eb 03
     or byte [bp-00eh], bl                     ; 08 5e f2
     mov al, byte [bp-00eh]                    ; 8a 46 f2
@@ -7580,9 +7558,9 @@
     mov dx, strict word 00017h                ; ba 17 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 8d c2
+    call 01660h                               ; e8 d4 c2
     mov al, byte [bp-004h]                    ; 8a 46 fc
     and AL, strict byte 07fh                  ; 24 7f
     cmp AL, strict byte 01dh                  ; 3c 1d
-    je short 053e0h                           ; 74 04
+    je short 05399h                           ; 74 04
     and byte [bp-010h], 0feh                  ; 80 66 f0 fe
     and byte [bp-010h], 0fdh                  ; 80 66 f0 fd
@@ -7592,5 +7570,5 @@
     mov dx, 00096h                            ; ba 96 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 6c c2
+    call 01660h                               ; e8 b3 c2
     lea sp, [bp-002h]                         ; 8d 66 fe
     pop di                                    ; 5f
@@ -7598,5 +7576,5 @@
     retn                                      ; c3
     test byte [bp-00ah], 001h                 ; f6 46 f6 01
-    jne short 053d3h                          ; 75 d3
+    jne short 0538ch                          ; 75 d3
     mov al, byte [bp-00ch]                    ; 8a 46 f4
     or AL, strict byte 004h                   ; 0c 04
@@ -7606,8 +7584,8 @@
     mov dx, strict word 00017h                ; ba 17 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 4b c2
+    call 01660h                               ; e8 92 c2
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     test AL, strict byte 002h                 ; a8 02
-    je short 0542ah                           ; 74 0e
+    je short 053e3h                           ; 74 0e
     or AL, strict byte 004h                   ; 0c 04
     mov byte [bp-010h], al                    ; 88 46 f0
@@ -7615,5 +7593,5 @@
     mov bx, ax                                ; 89 c3
     mov dx, 00096h                            ; ba 96 00
-    jmp short 05439h                          ; eb 0f
+    jmp short 053f2h                          ; eb 0f
     mov al, byte [bp-006h]                    ; 8a 46 fa
     or AL, strict byte 001h                   ; 0c 01
@@ -7623,8 +7601,8 @@
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 21 c2
-    jmp short 053d3h                          ; eb 92
+    call 01660h                               ; e8 68 c2
+    jmp short 0538ch                          ; eb 92
     test byte [bp-00ah], 001h                 ; f6 46 f6 01
-    jne short 053d3h                          ; 75 8c
+    jne short 0538ch                          ; 75 8c
     mov al, byte [bp-00ch]                    ; 8a 46 f4
     and AL, strict byte 0fbh                  ; 24 fb
@@ -7634,8 +7612,8 @@
     mov dx, strict word 00017h                ; ba 17 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 04 c2
+    call 01660h                               ; e8 4b c2
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     test AL, strict byte 002h                 ; a8 02
-    je short 05471h                           ; 74 0e
+    je short 0542ah                           ; 74 0e
     and AL, strict byte 0fbh                  ; 24 fb
     mov byte [bp-010h], al                    ; 88 46 f0
@@ -7643,5 +7621,5 @@
     mov bx, ax                                ; 89 c3
     mov dx, 00096h                            ; ba 96 00
-    jmp short 05480h                          ; eb 0f
+    jmp short 05439h                          ; eb 0f
     mov al, byte [bp-006h]                    ; 8a 46 fa
     and AL, strict byte 0feh                  ; 24 fe
@@ -7651,6 +7629,6 @@
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 da c1
-    jmp near 053d3h                           ; e9 4a ff
+    call 01660h                               ; e8 21 c2
+    jmp near 0538ch                           ; e9 4a ff
     mov al, byte [bp-00ch]                    ; 8a 46 f4
     or AL, strict byte 008h                   ; 0c 08
@@ -7660,8 +7638,8 @@
     mov dx, strict word 00017h                ; ba 17 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 c2 c1
+    call 01660h                               ; e8 09 c2
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     test AL, strict byte 002h                 ; a8 02
-    je short 054b3h                           ; 74 0e
+    je short 0546ch                           ; 74 0e
     or AL, strict byte 008h                   ; 0c 08
     mov byte [bp-010h], al                    ; 88 46 f0
@@ -7669,5 +7647,5 @@
     mov bx, ax                                ; 89 c3
     mov dx, 00096h                            ; ba 96 00
-    jmp short 054c2h                          ; eb 0f
+    jmp short 0547bh                          ; eb 0f
     mov al, byte [bp-006h]                    ; 8a 46 fa
     or AL, strict byte 002h                   ; 0c 02
@@ -7677,6 +7655,6 @@
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 98 c1
-    jmp near 053d3h                           ; e9 08 ff
+    call 01660h                               ; e8 df c1
+    jmp near 0538ch                           ; e9 08 ff
     mov al, byte [bp-00ch]                    ; 8a 46 f4
     and AL, strict byte 0f7h                  ; 24 f7
@@ -7686,8 +7664,8 @@
     mov dx, strict word 00017h                ; ba 17 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 80 c1
+    call 01660h                               ; e8 c7 c1
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     test AL, strict byte 002h                 ; a8 02
-    je short 054f5h                           ; 74 0e
+    je short 054aeh                           ; 74 0e
     and AL, strict byte 0f7h                  ; 24 f7
     mov byte [bp-010h], al                    ; 88 46 f0
@@ -7695,5 +7673,5 @@
     mov bx, ax                                ; 89 c3
     mov dx, 00096h                            ; ba 96 00
-    jmp short 05504h                          ; eb 0f
+    jmp short 054bdh                          ; eb 0f
     mov al, byte [bp-006h]                    ; 8a 46 fa
     and AL, strict byte 0fdh                  ; 24 fd
@@ -7703,8 +7681,8 @@
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 56 c1
-    jmp near 053d3h                           ; e9 c6 fe
+    call 01660h                               ; e8 9d c1
+    jmp near 0538ch                           ; e9 c6 fe
     test byte [bp-00ah], 003h                 ; f6 46 f6 03
-    jne short 05530h                          ; 75 1d
+    jne short 054e9h                          ; 75 1d
     mov al, byte [bp-006h]                    ; 8a 46 fa
     or AL, strict byte 020h                   ; 0c 20
@@ -7714,8 +7692,8 @@
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 38 c1
+    call 01660h                               ; e8 7f c1
     mov al, byte [bp-00ch]                    ; 8a 46 f4
     xor AL, strict byte 020h                  ; 34 20
-    jmp near 055d1h                           ; e9 a1 00
+    jmp near 0558ah                           ; e9 a1 00
     mov al, byte [bp-006h]                    ; 8a 46 fa
     or AL, strict byte 008h                   ; 0c 08
@@ -7725,18 +7703,18 @@
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 1b c1
+    call 01660h                               ; e8 62 c1
     mov AL, strict byte 0aeh                  ; b0 ae
     mov dx, strict word 00064h                ; ba 64 00
     out DX, AL                                ; ee
-    call 0e034h                               ; e8 e6 8a
+    call 0e034h                               ; e8 2d 8b
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01652h                               ; e8 fb c0
+    call 01652h                               ; e8 42 c1
     test AL, strict byte 008h                 ; a8 08
-    jne short 0554eh                          ; 75 f3
-    jmp near 053d3h                           ; e9 75 fe
+    jne short 05507h                          ; 75 f3
+    jmp near 0538ch                           ; e9 75 fe
     test byte [bp-00ah], 003h                 ; f6 46 f6 03
-    je short 05567h                           ; 74 03
-    jmp near 053d3h                           ; e9 6c fe
+    je short 05520h                           ; 74 03
+    jmp near 0538ch                           ; e9 6c fe
     mov al, byte [bp-006h]                    ; 8a 46 fa
     and AL, strict byte 0dfh                  ; 24 df
@@ -7746,19 +7724,19 @@
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 e4 c0
-    jmp short 05564h                          ; eb e6
+    call 01660h                               ; e8 2b c1
+    jmp short 0551dh                          ; eb e6
     test byte [bp-00ah], 002h                 ; f6 46 f6 02
-    je short 055b7h                           ; 74 33
+    je short 05570h                           ; 74 33
     mov dx, strict word 0001ah                ; ba 1a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 e1 c0
+    call 0166eh                               ; e8 28 c1
     mov bx, ax                                ; 89 c3
     mov dx, strict word 0001ch                ; ba 1c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0167ch                               ; e8 e4 c0
+    call 0167ch                               ; e8 2b c1
     mov bx, 00080h                            ; bb 80 00
     mov dx, strict word 00071h                ; ba 71 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 bc c0
+    call 01660h                               ; e8 03 c1
     mov AL, strict byte 0aeh                  ; b0 ae
     mov dx, strict word 00064h                ; ba 64 00
@@ -7769,6 +7747,6 @@
     xor dx, dx                                ; 31 d2
     xor ax, ax                                ; 31 c0
-    call 0525bh                               ; e8 a6 fc
-    jmp short 05564h                          ; eb ad
+    call 05214h                               ; e8 a6 fc
+    jmp short 0551dh                          ; eb ad
     mov al, byte [bp-006h]                    ; 8a 46 fa
     or AL, strict byte 010h                   ; 0c 10
@@ -7778,5 +7756,5 @@
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 94 c0
+    call 01660h                               ; e8 db c0
     mov al, byte [bp-00ch]                    ; 8a 46 f4
     xor AL, strict byte 010h                  ; 34 10
@@ -7786,9 +7764,9 @@
     mov dx, strict word 00017h                ; ba 17 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 7f c0
-    jmp short 05564h                          ; eb 81
+    call 01660h                               ; e8 c6 c0
+    jmp short 0551dh                          ; eb 81
     test byte [bp-00ah], 002h                 ; f6 46 f6 02
-    je short 055ech                           ; 74 03
-    jmp near 053d3h                           ; e9 e7 fd
+    je short 055a5h                           ; 74 03
+    jmp near 0538ch                           ; e9 e7 fd
     mov al, byte [bp-006h]                    ; 8a 46 fa
     and AL, strict byte 0efh                  ; 24 ef
@@ -7798,9 +7776,9 @@
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 5f c0
-    jmp short 055e9h                          ; eb e6
+    call 01660h                               ; e8 a6 c0
+    jmp short 055a2h                          ; eb e6
     mov al, byte [bp-006h]                    ; 8a 46 fa
     test AL, strict byte 004h                 ; a8 04
-    jne short 055e9h                          ; 75 df
+    jne short 055a2h                          ; 75 df
     or AL, strict byte 004h                   ; 0c 04
     mov byte [bp-008h], al                    ; 88 46 f8
@@ -7809,20 +7787,20 @@
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 44 c0
-    jmp short 055e9h                          ; eb cb
+    call 01660h                               ; e8 8b c0
+    jmp short 055a2h                          ; eb cb
     mov al, byte [bp-006h]                    ; 8a 46 fa
     and AL, strict byte 0fbh                  ; 24 fb
-    jmp short 0560ch                          ; eb e7
+    jmp short 055c5h                          ; eb e7
     mov al, byte [bp-00ch]                    ; 8a 46 f4
     and AL, strict byte 00ch                  ; 24 0c
     cmp AL, strict byte 00ch                  ; 3c 0c
-    jne short 0563fh                          ; 75 11
+    jne short 055f8h                          ; 75 11
     mov bx, 01234h                            ; bb 34 12
     mov dx, strict word 00072h                ; ba 72 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0167ch                               ; e8 42 c0
+    call 0167ch                               ; e8 89 c0
     jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
     test byte [bp-008h], 008h                 ; f6 46 f8 08
-    je short 05656h                           ; 74 11
+    je short 0560fh                           ; 74 11
     and byte [bp-008h], 0f7h                  ; 80 66 f8 f7
     mov al, byte [bp-008h]                    ; 8a 46 f8
@@ -7830,23 +7808,23 @@
     mov bx, ax                                ; 89 c3
     mov dx, strict word 00018h                ; ba 18 00
-    jmp near 053eeh                           ; e9 98 fd
+    jmp near 053a7h                           ; e9 98 fd
     mov al, byte [bp-004h]                    ; 8a 46 fc
     test AL, strict byte 080h                 ; a8 80
-    je short 05694h                           ; 74 37
+    je short 0564dh                           ; 74 37
     cmp AL, strict byte 0fah                  ; 3c fa
-    jne short 05673h                          ; 75 12
+    jne short 0562ch                          ; 75 12
     mov dx, 00097h                            ; ba 97 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01652h                               ; e8 e8 bf
+    call 01652h                               ; e8 2f c0
     mov bl, al                                ; 88 c3
     or bl, 010h                               ; 80 cb 10
     xor bh, bh                                ; 30 ff
-    jmp short 05689h                          ; eb 16
+    jmp short 05642h                          ; eb 16
     cmp AL, strict byte 0feh                  ; 3c fe
-    je short 0567ah                           ; 74 03
-    jmp near 053d3h                           ; e9 59 fd
+    je short 05633h                           ; 74 03
+    jmp near 0538ch                           ; e9 59 fd
     mov dx, 00097h                            ; ba 97 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01652h                               ; e8 cf bf
+    call 01652h                               ; e8 16 c0
     or AL, strict byte 020h                   ; 0c 20
     xor ah, ah                                ; 30 e4
@@ -7854,12 +7832,12 @@
     mov dx, 00097h                            ; ba 97 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 ce bf
-    jmp short 05677h                          ; eb e3
+    call 01660h                               ; e8 15 c0
+    jmp short 05630h                          ; eb e3
     cmp byte [bp-004h], 058h                  ; 80 7e fc 58
-    jbe short 056bch                          ; 76 22
+    jbe short 05675h                          ; 76 22
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 8e c2
+    call 01933h                               ; e8 d5 c2
     mov al, byte [bp-004h]                    ; 8a 46 fc
     xor ah, ah                                ; 30 e4
@@ -7869,10 +7847,10 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 c0 c2
+    call 01976h                               ; e8 07 c3
     add sp, strict byte 00006h                ; 83 c4 06
-    jmp near 053f4h                           ; e9 38 fd
+    jmp near 053adh                           ; e9 38 fd
     mov al, byte [bp-00eh]                    ; 8a 46 f2
     test AL, strict byte 008h                 ; a8 08
-    je short 056ddh                           ; 74 1a
+    je short 05696h                           ; 74 1a
     mov al, byte [bp-004h]                    ; 8a 46 fc
     xor ah, ah                                ; 30 e4
@@ -7883,7 +7861,7 @@
     mov byte [bp-012h], al                    ; 88 46 ee
     mov al, byte [bx+00df5h]                  ; 8a 87 f5 0d
-    jmp near 0578fh                           ; e9 b2 00
+    jmp near 05748h                           ; e9 b2 00
     test AL, strict byte 004h                 ; a8 04
-    je short 056fbh                           ; 74 1a
+    je short 056b4h                           ; 74 1a
     mov al, byte [bp-004h]                    ; 8a 46 fc
     xor ah, ah                                ; 30 e4
@@ -7894,14 +7872,14 @@
     mov byte [bp-012h], al                    ; 88 46 ee
     mov al, byte [bx+00df3h]                  ; 8a 87 f3 0d
-    jmp near 0578fh                           ; e9 94 00
+    jmp near 05748h                           ; e9 94 00
     mov al, byte [bp-010h]                    ; 8a 46 f0
     and AL, strict byte 002h                  ; 24 02
     test al, al                               ; 84 c0
-    jbe short 0571eh                          ; 76 1a
+    jbe short 056d7h                          ; 76 1a
     mov al, byte [bp-004h]                    ; 8a 46 fc
     cmp AL, strict byte 047h                  ; 3c 47
-    jc short 0571eh                           ; 72 13
+    jc short 056d7h                           ; 72 13
     cmp AL, strict byte 053h                  ; 3c 53
-    jnbe short 0571eh                         ; 77 0f
+    jnbe short 056d7h                         ; 77 0f
     mov byte [bp-012h], 0e0h                  ; c6 46 ee e0
     xor ah, ah                                ; 30 e4
@@ -7909,7 +7887,7 @@
     imul dx                                   ; f7 ea
     mov bx, ax                                ; 89 c3
-    jmp short 0578bh                          ; eb 6d
+    jmp short 05744h                          ; eb 6d
     test byte [bp-00eh], 003h                 ; f6 46 f2 03
-    je short 0575ch                           ; 74 38
+    je short 05715h                           ; 74 38
     mov al, byte [bp-004h]                    ; 8a 46 fc
     xor ah, ah                                ; 30 e4
@@ -7922,14 +7900,14 @@
     mov al, byte [bp-00eh]                    ; 8a 46 f2
     test ax, dx                               ; 85 d0
-    je short 0574ch                           ; 74 0d
+    je short 05705h                           ; 74 0d
     mov al, byte [bx+00deeh]                  ; 8a 87 ee 0d
     mov byte [bp-012h], al                    ; 88 46 ee
     mov al, byte [bx+00defh]                  ; 8a 87 ef 0d
-    jmp short 05757h                          ; eb 0b
+    jmp short 05710h                          ; eb 0b
     mov al, byte [bx+00df0h]                  ; 8a 87 f0 0d
     mov byte [bp-012h], al                    ; 88 46 ee
     mov al, byte [bx+00df1h]                  ; 8a 87 f1 0d
     mov byte [bp-004h], al                    ; 88 46 fc
-    jmp short 05792h                          ; eb 36
+    jmp short 0574bh                          ; eb 36
     mov al, byte [bp-004h]                    ; 8a 46 fc
     xor ah, ah                                ; 30 e4
@@ -7942,9 +7920,9 @@
     mov al, byte [bp-00eh]                    ; 8a 46 f2
     test ax, dx                               ; 85 d0
-    je short 05784h                           ; 74 0d
+    je short 0573dh                           ; 74 0d
     mov al, byte [bx+00df0h]                  ; 8a 87 f0 0d
     mov byte [bp-012h], al                    ; 88 46 ee
     mov al, byte [bx+00df1h]                  ; 8a 87 f1 0d
-    jmp short 0578fh                          ; eb 0b
+    jmp short 05748h                          ; eb 0b
     mov al, byte [bx+00deeh]                  ; 8a 87 ee 0d
     mov byte [bp-012h], al                    ; 88 46 ee
@@ -7952,16 +7930,16 @@
     mov byte [bp-004h], al                    ; 88 46 fc
     cmp byte [bp-004h], 000h                  ; 80 7e fc 00
-    jne short 057b7h                          ; 75 1f
+    jne short 05770h                          ; 75 1f
     cmp byte [bp-012h], 000h                  ; 80 7e ee 00
-    jne short 057b7h                          ; 75 19
+    jne short 05770h                          ; 75 19
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 8a c1
+    call 01933h                               ; e8 d1 c1
     mov ax, 005d8h                            ; b8 d8 05
     push ax                                   ; 50
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 c2 c1
+    call 01976h                               ; e8 09 c2
     add sp, strict byte 00004h                ; 83 c4 04
     mov bl, byte [bp-012h]                    ; 8a 5e ee
@@ -7970,6 +7948,6 @@
     xor ah, ah                                ; 30 e4
     mov dx, bx                                ; 89 da
-    jmp near 055b2h                           ; e9 ec fd
-dequeue_key_:                                ; 0xf57c6 LB 0x94
+    jmp near 0556bh                           ; e9 ec fd
+dequeue_key_:                                ; 0xf577f LB 0x94
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -7984,18 +7962,18 @@
     mov dx, strict word 0001ah                ; ba 1a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 8e be
+    call 0166eh                               ; e8 d5 be
     mov bx, ax                                ; 89 c3
     mov dx, strict word 0001ch                ; ba 1c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 83 be
+    call 0166eh                               ; e8 ca be
     cmp bx, ax                                ; 39 c3
-    je short 0582ch                           ; 74 3d
+    je short 057e5h                           ; 74 3d
     mov dx, bx                                ; 89 da
     mov ax, strict word 00040h                ; b8 40 00
-    call 01652h                               ; e8 5b be
+    call 01652h                               ; e8 a2 be
     mov cl, al                                ; 88 c1
     lea dx, [bx+001h]                         ; 8d 57 01
     mov ax, strict word 00040h                ; b8 40 00
-    call 01652h                               ; e8 50 be
+    call 01652h                               ; e8 97 be
     mov es, [bp-008h]                         ; 8e 46 f8
     mov byte [es:si], cl                      ; 26 88 0c
@@ -8003,15 +7981,15 @@
     mov byte [es:di], al                      ; 26 88 05
     cmp word [bp+004h], strict byte 00000h    ; 83 7e 04 00
-    je short 05827h                           ; 74 13
+    je short 057e0h                           ; 74 13
     inc bx                                    ; 43
     inc bx                                    ; 43
     cmp bx, strict byte 0003eh                ; 83 fb 3e
-    jc short 0581eh                           ; 72 03
+    jc short 057d7h                           ; 72 03
     mov bx, strict word 0001eh                ; bb 1e 00
     mov dx, strict word 0001ah                ; ba 1a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0167ch                               ; e8 55 be
+    call 0167ch                               ; e8 9c be
     mov ax, strict word 00001h                ; b8 01 00
-    jmp short 0582eh                          ; eb 02
+    jmp short 057e7h                          ; eb 02
     xor ax, ax                                ; 31 c0
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -8024,22 +8002,20 @@
     or cl, byte [bx+di]                       ; 0a 09
     add ax, 00102h                            ; 05 02 01
-    add byte [bx+si+059h], ah                 ; 00 60 59
-    sbb bx, word [bx+di-050h]                 ; 1b 59 b0
+    add byte [bx+di], bl                      ; 00 19
     pop cx                                    ; 59
-    hlt                                       ; f4
+    aam 058h                                  ; d4 58
+    imul bx, word [bx+di-053h], 0c059h        ; 69 59 ad 59 c0
     pop cx                                    ; 59
-    pop ES                                    ; 07
+    out 059h, ax                              ; e7 59
+    db  0f1h
+    pop cx                                    ; 59
+    pushaw                                    ; 60
     pop dx                                    ; 5a
-    db  02eh, 05ah
-    ; cs pop dx                                 ; 2e 5a
-    cmp byte [bp+si-059h], bl                 ; 38 5a a7
+    xchg di, ax                               ; 97
     pop dx                                    ; 5a
-    ficomp word [bp+si+00eh]                  ; de 5a 0e
-    pop bx                                    ; 5b
-    inc bp                                    ; 45
-    pop bx                                    ; 5b
-    stosb                                     ; aa
+    db  0c7h, 05ah, 0feh, 05ah, 063h
+    ; mov word [bp+si-002h], 0635ah             ; c7 5a fe 5a 63
     pop cx                                    ; 59
-_int16_function:                             ; 0xf585a LB 0x2f6
+_int16_function:                             ; 0xf5813 LB 0x2f6
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -8048,10 +8024,10 @@
     mov dx, strict word 00017h                ; ba 17 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01652h                               ; e8 e8 bd
+    call 01652h                               ; e8 2f be
     mov cl, al                                ; 88 c1
     mov bh, al                                ; 88 c7
     mov dx, 00097h                            ; ba 97 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01652h                               ; e8 db bd
+    call 01652h                               ; e8 22 be
     mov bl, al                                ; 88 c3
     mov dl, cl                                ; 88 ca
@@ -8064,5 +8040,5 @@
     xor al, dl                                ; 30 d0
     test ax, ax                               ; 85 c0
-    je short 058fah                           ; 74 6c
+    je short 058b3h                           ; 74 6c
     cli                                       ; fa
     mov AL, strict byte 0edh                  ; b0 ed
@@ -8074,9 +8050,9 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 058a7h                          ; 75 08
+    jne short 05860h                          ; 75 08
     mov AL, strict byte 021h                  ; b0 21
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 05895h                          ; eb ee
+    jmp short 0584eh                          ; eb ee
     mov dx, strict word 00060h                ; ba 60 00
     in AL, DX                                 ; ec
@@ -8084,5 +8060,5 @@
     ; sub ah, ah                                ; 2a e4
     cmp ax, 000fah                            ; 3d fa 00
-    jne short 058f9h                          ; 75 47
+    jne short 058b2h                          ; 75 47
     and bl, 0c8h                              ; 80 e3 c8
     mov al, bh                                ; 88 f8
@@ -8107,9 +8083,9 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 058e8h                          ; 75 08
+    jne short 058a1h                          ; 75 08
     mov AL, strict byte 021h                  ; b0 21
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 058d6h                          ; eb ee
+    jmp short 0588fh                          ; eb ee
     mov dx, strict word 00060h                ; ba 60 00
     in AL, DX                                 ; ec
@@ -8119,5 +8095,5 @@
     mov dx, 00097h                            ; ba 97 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 67 bd
+    call 01660h                               ; e8 ae bd
     sti                                       ; fb
     mov CL, strict byte 008h                  ; b1 08
@@ -8125,13 +8101,13 @@
     shr ax, CL                                ; d3 e8
     cmp ax, 000a2h                            ; 3d a2 00
-    jnbe short 05960h                         ; 77 5a
+    jnbe short 05919h                         ; 77 5a
     push CS                                   ; 0e
     pop ES                                    ; 07
     mov cx, strict word 0000ch                ; b9 0c 00
-    mov di, 05837h                            ; bf 37 58
+    mov di, 057f0h                            ; bf f0 57
     repne scasb                               ; f2 ae
     sal cx, 1                                 ; d1 e1
     mov di, cx                                ; 89 cf
-    mov ax, word [cs:di+05842h]               ; 2e 8b 85 42 58
+    mov ax, word [cs:di+057fbh]               ; 2e 8b 85 fb 57
     jmp ax                                    ; ff e0
     mov ax, strict word 00001h                ; b8 01 00
@@ -8141,28 +8117,28 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-008h]                         ; 8d 46 f8
-    call 057c6h                               ; e8 9a fe
+    call 0577fh                               ; e8 9a fe
     test ax, ax                               ; 85 c0
-    jne short 0593eh                          ; 75 0e
+    jne short 058f7h                          ; 75 0e
     mov ax, 0060fh                            ; b8 0f 06
     push ax                                   ; 50
     mov ax, strict word 00007h                ; b8 07 00
     push ax                                   ; 50
-    call 01976h                               ; e8 3b c0
+    call 01976h                               ; e8 82 c0
     add sp, strict byte 00004h                ; 83 c4 04
     cmp byte [bp-008h], 000h                  ; 80 7e f8 00
-    je short 0594ah                           ; 74 06
+    je short 05903h                           ; 74 06
     cmp byte [bp-006h], 0f0h                  ; 80 7e fa f0
-    je short 05950h                           ; 74 06
+    je short 05909h                           ; 74 06
     cmp byte [bp-006h], 0e0h                  ; 80 7e fa e0
-    jne short 05954h                          ; 75 04
+    jne short 0590dh                          ; 75 04
     mov byte [bp-006h], 000h                  ; c6 46 fa 00
     mov ah, byte [bp-008h]                    ; 8a 66 f8
     mov al, byte [bp-006h]                    ; 8a 46 fa
     mov word [bp+012h], ax                    ; 89 46 12
-    jmp near 059aah                           ; e9 4a 00
+    jmp near 05963h                           ; e9 4a 00
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 c8 bf
+    call 01933h                               ; e8 0f c0
     mov CL, strict byte 008h                  ; b1 08
     mov ax, word [bp+012h]                    ; 8b 46 12
@@ -8173,10 +8149,10 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 f8 bf
+    call 01976h                               ; e8 3f c0
     add sp, strict byte 00006h                ; 83 c4 06
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 a7 bf
+    call 01933h                               ; e8 ee bf
     mov ax, word [bp+00eh]                    ; 8b 46 0e
     push ax                                   ; 50
@@ -8191,5 +8167,5 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 cf bf
+    call 01976h                               ; e8 16 c0
     add sp, strict byte 0000ch                ; 83 c4 0c
     lea sp, [bp-002h]                         ; 8d 66 fe
@@ -8204,15 +8180,15 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-008h]                         ; 8d 46 f8
-    call 057c6h                               ; e8 01 fe
+    call 0577fh                               ; e8 01 fe
     test ax, ax                               ; 85 c0
-    jne short 059cfh                          ; 75 06
+    jne short 05988h                          ; 75 06
     or word [bp+01ch], strict byte 00040h     ; 83 4e 1c 40
-    jmp short 059aah                          ; eb db
+    jmp short 05963h                          ; eb db
     cmp byte [bp-008h], 000h                  ; 80 7e f8 00
-    je short 059dbh                           ; 74 06
+    je short 05994h                           ; 74 06
     cmp byte [bp-006h], 0f0h                  ; 80 7e fa f0
-    je short 059e1h                           ; 74 06
+    je short 0599ah                           ; 74 06
     cmp byte [bp-006h], 0e0h                  ; 80 7e fa e0
-    jne short 059e5h                          ; 75 04
+    jne short 0599eh                          ; 75 04
     mov byte [bp-006h], 000h                  ; c6 46 fa 00
     mov dh, byte [bp-008h]                    ; 8a 76 f8
@@ -8220,12 +8196,12 @@
     mov word [bp+012h], dx                    ; 89 56 12
     and word [bp+01ch], strict byte 0ffbfh    ; 83 66 1c bf
-    jmp short 059aah                          ; eb b6
+    jmp short 05963h                          ; eb b6
     mov dx, strict word 00017h                ; ba 17 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01652h                               ; e8 55 bc
+    call 01652h                               ; e8 9c bc
     mov dx, word [bp+012h]                    ; 8b 56 12
     mov dl, al                                ; 88 c2
     mov word [bp+012h], dx                    ; 89 56 12
-    jmp short 059aah                          ; eb a3
+    jmp short 05963h                          ; eb a3
     mov dl, byte [bp+010h]                    ; 8a 56 10
     xor dh, dh                                ; 30 f6
@@ -8234,17 +8210,17 @@
     shr ax, CL                                ; d3 e8
     xor ah, ah                                ; 30 e4
-    call 0525bh                               ; e8 43 f8
+    call 05214h                               ; e8 43 f8
     test ax, ax                               ; 85 c0
-    jne short 05a26h                          ; 75 0a
+    jne short 059dfh                          ; 75 0a
     mov ax, word [bp+012h]                    ; 8b 46 12
     xor al, al                                ; 30 c0
     or AL, strict byte 001h                   ; 0c 01
-    jmp near 0595ah                           ; e9 34 ff
+    jmp near 05913h                           ; e9 34 ff
     and word [bp+012h], 0ff00h                ; 81 66 12 00 ff
-    jmp near 059aah                           ; e9 7c ff
+    jmp near 05963h                           ; e9 7c ff
     mov ax, word [bp+012h]                    ; 8b 46 12
     xor al, al                                ; 30 c0
     or AL, strict byte 030h                   ; 0c 30
-    jmp near 0595ah                           ; e9 22 ff
+    jmp near 05913h                           ; e9 22 ff
     mov byte [bp-004h], 002h                  ; c6 46 fc 02
     xor cx, cx                                ; 31 c9
@@ -8259,15 +8235,15 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 05a5fh                          ; 75 0d
+    jne short 05a18h                          ; 75 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 05a5fh                          ; 76 08
+    jbe short 05a18h                          ; 76 08
     mov dx, 00080h                            ; ba 80 00
     in AL, DX                                 ; ec
     db  02ah, 0e4h
     ; sub ah, ah                                ; 2a e4
-    jmp short 05a48h                          ; eb e9
+    jmp short 05a01h                          ; eb e9
     test bx, bx                               ; 85 db
-    jbe short 05aa1h                          ; 76 3e
+    jbe short 05a5ah                          ; 76 3e
     mov dx, strict word 00060h                ; ba 60 00
     in AL, DX                                 ; ec
@@ -8275,5 +8251,5 @@
     ; sub ah, ah                                ; 2a e4
     cmp ax, 000fah                            ; 3d fa 00
-    jne short 05aa1h                          ; 75 33
+    jne short 05a5ah                          ; 75 33
     mov bx, strict word 0ffffh                ; bb ff ff
     mov dx, strict word 00064h                ; ba 64 00
@@ -8282,15 +8258,15 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 05a88h                          ; 75 0d
+    jne short 05a41h                          ; 75 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 05a88h                          ; 76 08
+    jbe short 05a41h                          ; 76 08
     mov dx, 00080h                            ; ba 80 00
     in AL, DX                                 ; ec
     db  02ah, 0e4h
     ; sub ah, ah                                ; 2a e4
-    jmp short 05a71h                          ; eb e9
+    jmp short 05a2ah                          ; eb e9
     test bx, bx                               ; 85 db
-    jbe short 05a98h                          ; 76 0c
+    jbe short 05a51h                          ; 76 0c
     mov bl, ch                                ; 88 eb
     mov dx, strict word 00060h                ; ba 60 00
@@ -8302,7 +8278,7 @@
     dec byte [bp-004h]                        ; fe 4e fc
     cmp byte [bp-004h], 000h                  ; 80 7e fc 00
-    jnbe short 05a6eh                         ; 77 cd
+    jnbe short 05a27h                         ; 77 cd
     mov word [bp+00ch], cx                    ; 89 4e 0c
-    jmp near 059aah                           ; e9 03 ff
+    jmp near 05963h                           ; e9 03 ff
     mov ax, strict word 00001h                ; b8 01 00
     push ax                                   ; 50
@@ -8311,20 +8287,20 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-008h]                         ; 8d 46 f8
-    call 057c6h                               ; e8 0e fd
+    call 0577fh                               ; e8 0e fd
     test ax, ax                               ; 85 c0
-    jne short 05acah                          ; 75 0e
+    jne short 05a83h                          ; 75 0e
     mov ax, 0060fh                            ; b8 0f 06
     push ax                                   ; 50
     mov ax, strict word 00007h                ; b8 07 00
     push ax                                   ; 50
-    call 01976h                               ; e8 af be
+    call 01976h                               ; e8 f6 be
     add sp, strict byte 00004h                ; 83 c4 04
     cmp byte [bp-008h], 000h                  ; 80 7e f8 00
-    jne short 05ad3h                          ; 75 03
-    jmp near 05954h                           ; e9 81 fe
+    jne short 05a8ch                          ; 75 03
+    jmp near 0590dh                           ; e9 81 fe
     cmp byte [bp-006h], 0f0h                  ; 80 7e fa f0
-    jne short 05adch                          ; 75 03
-    jmp near 05950h                           ; e9 74 fe
-    jmp short 05ad0h                          ; eb f2
+    jne short 05a95h                          ; 75 03
+    jmp near 05909h                           ; e9 74 fe
+    jmp short 05a89h                          ; eb f2
     or word [bp+01ch], 00200h                 ; 81 4e 1c 00 02
     xor ax, ax                                ; 31 c0
@@ -8334,18 +8310,18 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-008h]                         ; 8d 46 f8
-    call 057c6h                               ; e8 d3 fc
+    call 0577fh                               ; e8 d3 fc
     test ax, ax                               ; 85 c0
-    jne short 05afah                          ; 75 03
-    jmp near 059c9h                           ; e9 cf fe
+    jne short 05ab3h                          ; 75 03
+    jmp near 05982h                           ; e9 cf fe
     cmp byte [bp-008h], 000h                  ; 80 7e f8 00
-    jne short 05b03h                          ; 75 03
-    jmp near 059e5h                           ; e9 e2 fe
+    jne short 05abch                          ; 75 03
+    jmp near 0599eh                           ; e9 e2 fe
     cmp byte [bp-006h], 0f0h                  ; 80 7e fa f0
-    jne short 05b0ch                          ; 75 03
-    jmp near 059e1h                           ; e9 d5 fe
-    jmp short 05b00h                          ; eb f2
+    jne short 05ac5h                          ; 75 03
+    jmp near 0599ah                           ; e9 d5 fe
+    jmp short 05ab9h                          ; eb f2
     mov dx, strict word 00017h                ; ba 17 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01652h                               ; e8 3b bb
+    call 01652h                               ; e8 82 bb
     mov dx, word [bp+012h]                    ; 8b 56 12
     mov dl, al                                ; 88 c2
@@ -8353,10 +8329,10 @@
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01652h                               ; e8 2a bb
+    call 01652h                               ; e8 71 bb
     mov bh, al                                ; 88 c7
     and bh, 073h                              ; 80 e7 73
     mov dx, 00096h                            ; ba 96 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01652h                               ; e8 1c bb
+    call 01652h                               ; e8 63 bb
     mov ah, al                                ; 88 c4
     and ah, 00ch                              ; 80 e4 0c
@@ -8364,10 +8340,10 @@
     mov dx, word [bp+012h]                    ; 8b 56 12
     mov dh, ah                                ; 88 e6
-    jmp near 05a02h                           ; e9 bd fe
+    jmp near 059bbh                           ; e9 bd fe
     mov ax, word [bp+012h]                    ; 8b 46 12
     xor ah, ah                                ; 30 e4
     or ah, 080h                               ; 80 cc 80
-    jmp near 0595ah                           ; e9 0a fe
-set_geom_lba_:                               ; 0xf5b50 LB 0xeb
+    jmp near 05913h                           ; e9 0a fe
+set_geom_lba_:                               ; 0xf5b09 LB 0xeb
     push bx                                   ; 53
     push cx                                   ; 51
@@ -8387,30 +8363,30 @@
     mov dx, word [bp+00ch]                    ; 8b 56 0c
     mov si, strict word 00020h                ; be 20 00
-    call 0a26ah                               ; e8 eb 46
+    call 0a20ah                               ; e8 d2 46
     test ax, ax                               ; 85 c0
-    jne short 05b8fh                          ; 75 0c
+    jne short 05b48h                          ; 75 0c
     test bx, bx                               ; 85 db
-    jne short 05b8fh                          ; 75 08
+    jne short 05b48h                          ; 75 08
     test cx, cx                               ; 85 c9
-    jne short 05b8fh                          ; 75 04
+    jne short 05b48h                          ; 75 04
     test dx, dx                               ; 85 d2
-    je short 05b96h                           ; 74 07
+    je short 05b4fh                           ; 74 07
     mov bx, strict word 0ffffh                ; bb ff ff
     mov si, bx                                ; 89 de
-    jmp short 05b9ch                          ; eb 06
+    jmp short 05b55h                          ; eb 06
     mov bx, word [bp+00ch]                    ; 8b 5e 0c
     mov si, word [bp+00eh]                    ; 8b 76 0e
     mov word [bp-004h], bx                    ; 89 5e fc
     xor bx, bx                                ; 31 db
-    jmp short 05ba8h                          ; eb 05
+    jmp short 05b61h                          ; eb 05
     cmp bx, strict byte 00004h                ; 83 fb 04
-    jnl short 05bcbh                          ; 7d 23
+    jnl short 05b84h                          ; 7d 23
     mov ax, word [bp-006h]                    ; 8b 46 fa
     cmp si, ax                                ; 39 c6
-    jc short 05bb9h                           ; 72 0a
-    jne short 05bc2h                          ; 75 11
+    jc short 05b72h                           ; 72 0a
+    jne short 05b7bh                          ; 75 11
     mov ax, word [bp-004h]                    ; 8b 46 fc
     cmp ax, word [bp-008h]                    ; 3b 46 f8
-    jnbe short 05bc2h                         ; 77 09
+    jnbe short 05b7bh                         ; 77 09
     mov ax, word [bp-002h]                    ; 8b 46 fe
     inc ax                                    ; 40
@@ -8420,18 +8396,18 @@
     rcr word [bp-008h], 1                     ; d1 5e f8
     inc bx                                    ; 43
-    jmp short 05ba3h                          ; eb d8
+    jmp short 05b5ch                          ; eb d8
     mov ax, word [bp-002h]                    ; 8b 46 fe
     xor dx, dx                                ; 31 d2
     mov bx, strict word 0003fh                ; bb 3f 00
     xor cx, cx                                ; 31 c9
-    call 0a229h                               ; e8 51 46
+    call 0a1c9h                               ; e8 38 46
     mov bx, ax                                ; 89 c3
     mov cx, dx                                ; 89 d1
     mov ax, word [bp-004h]                    ; 8b 46 fc
     mov dx, si                                ; 89 f2
-    call 0a1f0h                               ; e8 0c 46
+    call 0a190h                               ; e8 f3 45
     mov word [es:di+002h], ax                 ; 26 89 45 02
     cmp ax, 00400h                            ; 3d 00 04
-    jbe short 05bf3h                          ; 76 06
+    jbe short 05bach                          ; 76 06
     mov word [es:di+002h], 00400h             ; 26 c7 45 02 00 04
     mov ax, word [bp-002h]                    ; 8b 46 fe
@@ -8445,41 +8421,31 @@
     pop bx                                    ; 5b
     retn 00008h                               ; c2 08 00
-    retn                                      ; c3
+    jl short 05c20h                           ; 7c 5c
+    lea bx, [si-04bh]                         ; 8d 5c b5
     pop sp                                    ; 5c
-    aam 05ch                                  ; d4 5c
-    cld                                       ; fc
-    pop sp                                    ; 5c
-    cld                                       ; fc
-    pop sp                                    ; 5c
-    cld                                       ; fc
-    pop sp                                    ; 5c
-    jmp far 02660h:0265eh                     ; ea 5e 26 60 26
-    pushaw                                    ; 60
-    sbb bl, byte [byte bx+000h]               ; 1a 5f 00
-    pushaw                                    ; 60
-    db  026h, 060h
-    ; es pushaw                                 ; 26 60
-    db  026h, 060h
-    ; es pushaw                                 ; 26 60
-    add byte [byte bx+si+000h], ah            ; 00 60 00
-    pushaw                                    ; 60
-    db  026h, 060h
-    ; es pushaw                                 ; 26 60
-    db  026h, 060h
-    ; es pushaw                                 ; 26 60
-    sbb byte [byte bx+000h], 060h             ; 80 5f 00 60
-    db  026h, 060h
-    ; es pushaw                                 ; 26 60
-    db  026h, 060h
-    ; es pushaw                                 ; 26 60
-    add byte [bx+si-04fh], ah                 ; 00 60 b1
+    mov CH, strict byte 05ch                  ; b5 5c
+    mov CH, strict byte 05ch                  ; b5 5c
+    mov word [0df5eh], ax                     ; a3 5e df
     pop di                                    ; 5f
-    db  026h, 060h
-    ; es pushaw                                 ; 26 60
-    db  026h, 060h
-    ; es pushaw                                 ; 26 60
-    db  026h, 060h
-    ; es pushaw                                 ; 26 60
-_int13_harddisk:                             ; 0xf5c3b LB 0x446
+    fistp word [bx-02dh]                      ; df 5f d3
+    pop si                                    ; 5e
+    mov cx, 0df5fh                            ; b9 5f df
+    pop di                                    ; 5f
+    fistp word [bx-047h]                      ; df 5f b9
+    pop di                                    ; 5f
+    mov cx, 0df5fh                            ; b9 5f df
+    pop di                                    ; 5f
+    fistp word [bx+039h]                      ; df 5f 39
+    pop di                                    ; 5f
+    mov cx, 0df5fh                            ; b9 5f df
+    pop di                                    ; 5f
+    fistp word [bx-047h]                      ; df 5f b9
+    pop di                                    ; 5f
+    push strict byte 0005fh                   ; 6a 5f
+    fistp word [bx-021h]                      ; df 5f df
+    pop di                                    ; 5f
+    db  0dfh
+    pop di                                    ; 5f
+_int13_harddisk:                             ; 0xf5bf4 LB 0x446
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -8487,5 +8453,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 24 ba
+    call 0166eh                               ; e8 6b ba
     mov si, 00122h                            ; be 22 01
     mov word [bp-004h], ax                    ; 89 46 fc
@@ -8493,11 +8459,11 @@
     mov dx, 0008eh                            ; ba 8e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 05 ba
+    call 01660h                               ; e8 4c ba
     mov ax, word [bp+00eh]                    ; 8b 46 0e
     xor ah, ah                                ; 30 e4
     cmp ax, 00080h                            ; 3d 80 00
-    jc short 05c6ah                           ; 72 05
+    jc short 05c23h                           ; 72 05
     cmp ax, 00090h                            ; 3d 90 00
-    jc short 05c89h                           ; 72 1f
+    jc short 05c42h                           ; 72 1f
     mov ax, word [bp+00eh]                    ; 8b 46 0e
     xor ah, ah                                ; 30 e4
@@ -8511,7 +8477,7 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 f3 bc
+    call 01976h                               ; e8 3a bd
     add sp, strict byte 0000ah                ; 83 c4 0a
-    jmp near 06041h                           ; e9 b8 03
+    jmp near 05ffah                           ; e9 b8 03
     mov ax, word [bp+00eh]                    ; 8b 46 0e
     xor ah, ah                                ; 30 e4
@@ -8522,5 +8488,5 @@
     mov byte [bp-002h], dl                    ; 88 56 fe
     cmp dl, 010h                              ; 80 fa 10
-    jc short 05cb0h                           ; 72 0e
+    jc short 05c69h                           ; 72 0e
     push ax                                   ; 50
     mov al, byte [bp+017h]                    ; 8a 46 17
@@ -8529,21 +8495,21 @@
     push ax                                   ; 50
     mov ax, 006b8h                            ; b8 b8 06
-    jmp short 05c7bh                          ; eb cb
+    jmp short 05c34h                          ; eb cb
     mov al, byte [bp+017h]                    ; 8a 46 17
     xor ah, ah                                ; 30 e4
     cmp ax, strict word 00018h                ; 3d 18 00
-    jnbe short 05cf9h                         ; 77 3f
+    jnbe short 05cb2h                         ; 77 3f
     mov bx, ax                                ; 89 c3
     sal bx, 1                                 ; d1 e3
-    jmp word [cs:bx+05c09h]                   ; 2e ff a7 09 5c
+    jmp word [cs:bx+05bc2h]                   ; 2e ff a7 c2 5b
     cmp byte [bp-002h], 008h                  ; 80 7e fe 08
-    jnc short 05cd1h                          ; 73 08
+    jnc short 05c8ah                          ; 73 08
     mov al, byte [bp-002h]                    ; 8a 46 fe
     xor ah, ah                                ; 30 e4
-    call 01db8h                               ; e8 e7 c0
-    jmp near 05f03h                           ; e9 2f 02
+    call 01db8h                               ; e8 2e c1
+    jmp near 05ebch                           ; e9 2f 02
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01652h                               ; e8 75 b9
+    call 01652h                               ; e8 bc b9
     mov cl, al                                ; 88 c1
     mov dx, word [bp+016h]                    ; 8b 56 16
@@ -8553,9 +8519,9 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 6e b9
+    call 01660h                               ; e8 b5 b9
     test cl, cl                               ; 84 c9
-    je short 05d58h                           ; 74 62
-    jmp near 0605ah                           ; e9 61 03
-    jmp near 06026h                           ; e9 2a 03
+    je short 05d11h                           ; 74 62
+    jmp near 06013h                           ; e9 61 03
+    jmp near 05fdfh                           ; e9 2a 03
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -8576,11 +8542,11 @@
     mov ax, word [bp-00eh]                    ; 8b 46 f2
     cmp ax, 00080h                            ; 3d 80 00
-    jnbe short 05d32h                         ; 77 04
+    jnbe short 05cebh                         ; 77 04
     test ax, ax                               ; 85 c0
-    jne short 05d5bh                          ; 75 29
+    jne short 05d14h                          ; 75 29
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 f6 bb
+    call 01933h                               ; e8 3d bc
     mov al, byte [bp+017h]                    ; 8a 46 17
     xor ah, ah                                ; 30 e4
@@ -8592,8 +8558,8 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 24 bc
+    call 01976h                               ; e8 6b bc
     add sp, strict byte 00008h                ; 83 c4 08
-    jmp near 06041h                           ; e9 e9 02
-    jmp near 05f07h                           ; e9 ac 01
+    jmp near 05ffah                           ; e9 e9 02
+    jmp near 05ec0h                           ; e9 ac 01
     mov al, byte [bp-002h]                    ; 8a 46 fe
     xor ah, ah                                ; 30 e4
@@ -8608,13 +8574,13 @@
     mov word [bp-010h], dx                    ; 89 56 f0
     cmp ax, word [bp-00ah]                    ; 3b 46 f6
-    jbe short 05d89h                          ; 76 09
+    jbe short 05d42h                          ; 76 09
     cmp cx, word [bp-00ch]                    ; 3b 4e f4
-    jbe short 05d89h                          ; 76 04
+    jbe short 05d42h                          ; 76 04
     cmp di, dx                                ; 39 d7
-    jbe short 05dbah                          ; 76 31
+    jbe short 05d73h                          ; 76 31
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 9f bb
+    call 01933h                               ; e8 e6 bb
     push di                                   ; 57
     push word [bp-00ch]                       ; ff 76 f4
@@ -8631,11 +8597,11 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 c2 bb
+    call 01976h                               ; e8 09 bc
     add sp, strict byte 00010h                ; 83 c4 10
-    jmp near 06041h                           ; e9 87 02
+    jmp near 05ffah                           ; e9 87 02
     mov al, byte [bp+017h]                    ; 8a 46 17
     xor ah, ah                                ; 30 e4
     cmp ax, strict word 00004h                ; 3d 04 00
-    je short 05de4h                           ; 74 20
+    je short 05d9dh                           ; 74 20
     mov al, byte [bp-002h]                    ; 8a 46 fe
     mov dx, strict word 0001ch                ; ba 1c 00
@@ -8645,17 +8611,17 @@
     add bx, ax                                ; 01 c3
     cmp cx, word [es:bx+030h]                 ; 26 3b 4f 30
-    jne short 05dedh                          ; 75 14
+    jne short 05da6h                          ; 75 14
     mov ax, word [es:bx+034h]                 ; 26 8b 47 34
     cmp ax, word [bp-010h]                    ; 3b 46 f0
-    je short 05de7h                           ; 74 05
-    jmp short 05dedh                          ; eb 09
-    jmp near 05f03h                           ; e9 1c 01
+    je short 05da0h                           ; 74 05
+    jmp short 05da6h                          ; eb 09
+    jmp near 05ebch                           ; e9 1c 01
     cmp byte [bp-002h], 008h                  ; 80 7e fe 08
-    jc short 05e1ch                           ; 72 2f
+    jc short 05dd5h                           ; 72 2f
     mov ax, word [bp-00ah]                    ; 8b 46 f6
     xor dx, dx                                ; 31 d2
     mov bx, cx                                ; 89 cb
     xor cx, cx                                ; 31 c9
-    call 0a229h                               ; e8 30 44
+    call 0a1c9h                               ; e8 17 44
     xor bx, bx                                ; 31 db
     add ax, word [bp-00ch]                    ; 03 46 f4
@@ -8663,5 +8629,5 @@
     mov bx, word [bp-010h]                    ; 8b 5e f0
     xor cx, cx                                ; 31 c9
-    call 0a229h                               ; e8 21 44
+    call 0a1c9h                               ; e8 08 44
     xor bx, bx                                ; 31 db
     add ax, di                                ; 01 f8
@@ -8720,9 +8686,9 @@
     mov word [bp+016h], bx                    ; 89 5e 16
     test dl, dl                               ; 84 d2
-    je short 05f03h                           ; 74 4a
+    je short 05ebch                           ; 74 4a
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 6f ba
+    call 01933h                               ; e8 b6 ba
     mov al, dl                                ; 88 d0
     xor ah, ah                                ; 30 e4
@@ -8736,19 +8702,19 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 9a ba
+    call 01976h                               ; e8 e1 ba
     add sp, strict byte 0000ah                ; 83 c4 0a
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
     or ah, 00ch                               ; 80 cc 0c
-    jmp near 06049h                           ; e9 5f 01
+    jmp near 06002h                           ; e9 5f 01
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 3e ba
+    call 01933h                               ; e8 85 ba
     mov ax, 0077ah                            ; b8 7a 07
     push ax                                   ; 50
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 76 ba
+    call 01976h                               ; e8 bd ba
     add sp, strict byte 00004h                ; 83 c4 04
     mov byte [bp+017h], 000h                  ; c6 46 17 00
@@ -8756,5 +8722,5 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 4e b7
+    call 01660h                               ; e8 95 b7
     and byte [bp+01ch], 0feh                  ; 80 66 1c fe
     mov sp, bp                                ; 89 ec
@@ -8799,5 +8765,5 @@
     or ax, dx                                 ; 09 d0
     mov word [bp+012h], ax                    ; 89 46 12
-    jmp short 05f03h                          ; eb 83
+    jmp short 05ebch                          ; eb 83
     mov al, byte [bp-002h]                    ; 8a 46 fe
     cwd                                       ; 99
@@ -8816,10 +8782,10 @@
     and AL, strict byte 0c0h                  ; 24 c0
     cmp AL, strict byte 040h                  ; 3c 40
-    jne short 05fa6h                          ; 75 03
-    jmp near 05f03h                           ; e9 5d ff
+    jne short 05f5fh                          ; 75 03
+    jmp near 05ebch                           ; e9 5d ff
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
     or ah, 0aah                               ; 80 cc aa
-    jmp near 06049h                           ; e9 98 00
+    jmp near 06002h                           ; e9 98 00
     mov al, byte [bp-002h]                    ; 8a 46 fe
     xor ah, ah                                ; 30 e4
@@ -8837,8 +8803,8 @@
     mov bx, word [bp-00ch]                    ; 8b 5e f4
     xor cx, cx                                ; 31 c9
-    call 0a229h                               ; e8 4a 42
+    call 0a1c9h                               ; e8 31 42
     mov bx, di                                ; 89 fb
     xor cx, cx                                ; 31 c9
-    call 0a229h                               ; e8 43 42
+    call 0a1c9h                               ; e8 2a 42
     mov word [bp-008h], ax                    ; 89 46 f8
     mov word [bp-006h], dx                    ; 89 56 fa
@@ -8849,9 +8815,9 @@
     or ah, 003h                               ; 80 cc 03
     mov word [bp+016h], ax                    ; 89 46 16
-    jmp near 05f07h                           ; e9 07 ff
+    jmp near 05ec0h                           ; e9 07 ff
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 28 b9
+    call 01933h                               ; e8 6f b9
     mov al, byte [bp+017h]                    ; 8a 46 17
     xor ah, ah                                ; 30 e4
@@ -8863,11 +8829,11 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 56 b9
+    call 01976h                               ; e8 9d b9
     add sp, strict byte 00008h                ; 83 c4 08
-    jmp near 05f03h                           ; e9 dd fe
+    jmp near 05ebch                           ; e9 dd fe
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 02 b9
+    call 01933h                               ; e8 49 b9
     mov al, byte [bp+017h]                    ; 8a 46 17
     xor ah, ah                                ; 30 e4
@@ -8876,5 +8842,5 @@
     push ax                                   ; 50
     mov ax, 007c7h                            ; b8 c7 07
-    jmp near 05d4ah                           ; e9 09 fd
+    jmp near 05d03h                           ; e9 09 fd
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -8885,27 +8851,32 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 06 b6
+    call 01660h                               ; e8 4d b6
     or byte [bp+01ch], 001h                   ; 80 4e 1c 01
-    jmp near 05f16h                           ; e9 b5 fe
-    sbb sp, word [bx+di+04eh]                 ; 1b 61 4e
+    jmp near 05ecfh                           ; e9 b5 fe
+    aam 060h                                  ; d4 60
+    pop ES                                    ; 07
     popaw                                     ; 61
-    dec si                                    ; 4e
+    pop ES                                    ; 07
     popaw                                     ; 61
-    dec si                                    ; 4e
+    pop ES                                    ; 07
     popaw                                     ; 61
-    jo short 060d0h                           ; 70 65
-    retn                                      ; c3
-    bound cx, [bp+061h]                       ; 62 4e 61
-    leave                                     ; c9
-    bound si, [bx+si+065h]                    ; 62 70 65
-    xor sp, word [bx+di+033h]                 ; 33 61 33
+    sbb word [di+07ch], sp                    ; 19 65 7c
+    bound ax, [bx]                            ; 62 07
     popaw                                     ; 61
-    xor sp, word [bx+di+033h]                 ; 33 61 33
-    popaw                                     ; 61
-    xchg word [di+033h], sp                   ; 87 65 33
-    popaw                                     ; 61
-    db  033h
-    popaw                                     ; 61
-_int13_harddisk_ext:                         ; 0xf6081 LB 0x53b
+    db  082h, 062h, 019h, 065h
+    ; and byte [bp+si+019h], 065h               ; 82 62 19 65
+    in AL, DX                                 ; ec
+    pushaw                                    ; 60
+    in AL, DX                                 ; ec
+    pushaw                                    ; 60
+    in AL, DX                                 ; ec
+    pushaw                                    ; 60
+    in AL, DX                                 ; ec
+    pushaw                                    ; 60
+    xor byte [di-014h], ah                    ; 30 65 ec
+    pushaw                                    ; 60
+    in AL, DX                                 ; ec
+    pushaw                                    ; 60
+_int13_harddisk_ext:                         ; 0xf603a LB 0x52b
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -8913,9 +8884,9 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 de b5
+    call 0166eh                               ; e8 25 b6
     mov word [bp-018h], ax                    ; 89 46 e8
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 d2 b5
+    call 0166eh                               ; e8 19 b6
     mov word [bp-008h], 00122h                ; c7 46 f8 22 01
     mov word [bp-006h], ax                    ; 89 46 fa
@@ -8923,11 +8894,11 @@
     mov dx, 0008eh                            ; ba 8e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 b1 b5
+    call 01660h                               ; e8 f8 b5
     mov ax, word [bp+00eh]                    ; 8b 46 0e
     xor ah, ah                                ; 30 e4
     cmp ax, 00080h                            ; 3d 80 00
-    jc short 060beh                           ; 72 05
+    jc short 06077h                           ; 72 05
     cmp ax, 00090h                            ; 3d 90 00
-    jc short 060ddh                           ; 72 1f
+    jc short 06096h                           ; 72 1f
     mov ax, word [bp+00eh]                    ; 8b 46 0e
     xor ah, ah                                ; 30 e4
@@ -8941,7 +8912,7 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 9f b8
+    call 01976h                               ; e8 e6 b8
     add sp, strict byte 0000ah                ; 83 c4 0a
-    jmp near 0659dh                           ; e9 c0 04
+    jmp near 06546h                           ; e9 b0 04
     mov ax, word [bp+00eh]                    ; 8b 46 0e
     xor ah, ah                                ; 30 e4
@@ -8951,5 +8922,5 @@
     mov byte [bp-004h], dl                    ; 88 56 fc
     cmp dl, 010h                              ; 80 fa 10
-    jc short 06102h                           ; 72 0e
+    jc short 060bbh                           ; 72 0e
     push ax                                   ; 50
     mov al, byte [bp+017h]                    ; 8a 46 17
@@ -8958,14 +8929,14 @@
     push ax                                   ; 50
     mov ax, 006b8h                            ; b8 b8 06
-    jmp short 060cfh                          ; eb cd
+    jmp short 06088h                          ; eb cd
     mov bl, byte [bp+017h]                    ; 8a 5e 17
     xor bh, bh                                ; 30 ff
     sub bx, strict byte 00041h                ; 83 eb 41
     cmp bx, strict byte 0000fh                ; 83 fb 0f
-    jnbe short 06133h                         ; 77 24
+    jnbe short 060ech                         ; 77 24
     sal bx, 1                                 ; d1 e3
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
-    jmp word [cs:bx+06061h]                   ; 2e ff a7 61 60
+    jmp word [cs:bx+0601ah]                   ; 2e ff a7 1a 60
     mov word [bp+010h], 0aa55h                ; c7 46 10 55 aa
     mov ax, word [bp+016h]                    ; 8b 46 16
@@ -8974,9 +8945,9 @@
     mov word [bp+016h], ax                    ; 89 46 16
     mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
-    jmp near 06574h                           ; e9 41 04
+    jmp near 0651dh                           ; 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 f5 b7
+    call 01933h                               ; e8 3c b8
     mov al, byte [bp+017h]                    ; 8a 46 17
     xor ah, ah                                ; 30 e4
@@ -8985,8 +8956,8 @@
     push ax                                   ; 50
     mov ax, 007c7h                            ; b8 c7 07
-    jmp near 061ebh                           ; e9 9d 00
+    jmp near 061a4h                           ; e9 9d 00
     mov di, word [bp+00ah]                    ; 8b 7e 0a
     mov es, [bp+004h]                         ; 8e 46 04
-    mov word [bp-022h], di                    ; 89 7e de
+    mov word [bp-024h], di                    ; 89 7e dc
     mov [bp-01eh], es                         ; 8c 46 e2
     mov ax, word [es:di+002h]                 ; 26 8b 45 02
@@ -9001,12 +8972,12 @@
     xor bx, bx                                ; 31 db
     mov si, strict word 00020h                ; be 20 00
-    call 0a25ah                               ; e8 d9 40
+    call 0a1fah                               ; e8 c0 40
     mov word [bp-00eh], ax                    ; 89 46 f2
     mov word [bp-010h], bx                    ; 89 5e f0
     mov si, dx                                ; 89 d6
-    mov ax, word [es:di+008h]                 ; 26 8b 45 08
-    mov dx, word [es:di+00ah]                 ; 26 8b 55 0a
-    or si, ax                                 ; 09 c6
-    or cx, dx                                 ; 09 d1
+    mov dx, word [es:di+008h]                 ; 26 8b 55 08
+    mov ax, word [es:di+00ah]                 ; 26 8b 45 0a
+    or si, dx                                 ; 09 d6
+    or cx, ax                                 ; 09 c1
     mov al, byte [bp-004h]                    ; 8a 46 fc
     xor ah, ah                                ; 30 e4
@@ -9018,21 +8989,21 @@
     mov dx, word [bp-00eh]                    ; 8b 56 f2
     cmp dx, word [es:bx+03ch]                 ; 26 3b 57 3c
-    jnbe short 061d3h                         ; 77 22
-    jne short 061f9h                          ; 75 46
+    jnbe short 0618ch                         ; 77 22
+    jne short 061b2h                          ; 75 46
     mov dx, word [bp-010h]                    ; 8b 56 f0
     cmp dx, word [es:bx+03ah]                 ; 26 3b 57 3a
-    jnbe short 061d3h                         ; 77 17
+    jnbe short 0618ch                         ; 77 17
     mov dx, word [bp-010h]                    ; 8b 56 f0
     cmp dx, word [es:bx+03ah]                 ; 26 3b 57 3a
-    jne short 061f9h                          ; 75 34
+    jne short 061b2h                          ; 75 34
     cmp cx, word [es:bx+038h]                 ; 26 3b 4f 38
-    jnbe short 061d3h                         ; 77 08
-    jne short 061f9h                          ; 75 2c
+    jnbe short 0618ch                         ; 77 08
+    jne short 061b2h                          ; 75 2c
     cmp si, word [es:bx+036h]                 ; 26 3b 77 36
-    jc short 061f9h                           ; 72 26
+    jc short 061b2h                           ; 72 26
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 55 b7
+    call 01933h                               ; e8 9c b7
     mov al, byte [bp+017h]                    ; 8a 46 17
     xor ah, ah                                ; 30 e4
@@ -9044,15 +9015,15 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 83 b7
+    call 01976h                               ; e8 ca b7
     add sp, strict byte 00008h                ; 83 c4 08
-    jmp near 0659dh                           ; e9 a4 03
+    jmp near 06546h                           ; 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 0620fh                           ; 74 06
+    je short 061c8h                           ; 74 06
     cmp word [bp-012h], strict byte 00047h    ; 83 7e ee 47
-    jne short 06212h                          ; 75 03
-    jmp near 06570h                           ; e9 5e 03
+    jne short 061cbh                          ; 75 03
+    jmp near 06519h                           ; e9 4e 03
     les bx, [bp-008h]                         ; c4 5e f8
     mov word [es:bx+018h], strict word 00000h ; 26 c7 47 18 00 00
@@ -9089,12 +9060,12 @@
     mov word [bp-016h], ax                    ; 89 46 ea
     mov es, [bp-01eh]                         ; 8e 46 e2
-    mov bx, word [bp-022h]                    ; 8b 5e de
+    mov bx, word [bp-024h]                    ; 8b 5e dc
     mov word [es:bx+002h], ax                 ; 26 89 47 02
     test dl, dl                               ; 84 d2
-    je short 062e7h                           ; 74 54
+    je short 062a0h                           ; 74 54
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 95 b6
+    call 01933h                               ; e8 dc b6
     mov al, dl                                ; 88 d0
     xor ah, ah                                ; 30 e4
@@ -9107,12 +9078,12 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 c1 b6
+    call 01976h                               ; e8 08 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 065a5h                           ; e9 e2 02
+    jmp near 0654eh                           ; e9 d2 02
     or ah, 0b2h                               ; 80 cc b2
-    jmp near 065a5h                           ; e9 dc 02
+    jmp near 0654eh                           ; e9 cc 02
     mov bx, word [bp+00ah]                    ; 8b 5e 0a
     mov ax, word [bp+004h]                    ; 8b 46 04
@@ -9124,9 +9095,9 @@
     mov word [bp-014h], ax                    ; 89 46 ec
     cmp ax, strict word 0001ah                ; 3d 1a 00
-    jnc short 062eah                          ; 73 06
-    jmp near 0659dh                           ; e9 b6 02
-    jmp near 06570h                           ; e9 86 02
-    jnc short 062efh                          ; 73 03
-    jmp near 06382h                           ; e9 93 00
+    jnc short 062a3h                          ; 73 06
+    jmp near 06546h                           ; e9 a6 02
+    jmp near 06519h                           ; e9 76 02
+    jnc short 062a8h                          ; 73 03
+    jmp near 0633bh                           ; e9 93 00
     mov al, byte [bp-004h]                    ; 8a 46 fc
     xor ah, ah                                ; 30 e4
@@ -9137,7 +9108,7 @@
     mov ax, word [es:bx+032h]                 ; 26 8b 47 32
     mov dx, word [es:bx+030h]                 ; 26 8b 57 30
+    mov word [bp-026h], dx                    ; 89 56 da
+    mov dx, word [es:bx+034h]                 ; 26 8b 57 34
     mov word [bp-028h], dx                    ; 89 56 d8
-    mov dx, word [es:bx+034h]                 ; 26 8b 57 34
-    mov word [bp-026h], dx                    ; 89 56 da
     mov dx, word [es:bx+03ch]                 ; 26 8b 57 3c
     mov word [bp-00eh], dx                    ; 89 56 f2
@@ -9153,8 +9124,8 @@
     mov word [es:bx+004h], ax                 ; 26 89 47 04
     mov word [es:bx+006h], strict word 00000h ; 26 c7 47 06 00 00
-    mov ax, word [bp-028h]                    ; 8b 46 d8
+    mov ax, word [bp-026h]                    ; 8b 46 da
     mov word [es:bx+008h], ax                 ; 26 89 47 08
     mov word [es:bx+00ah], strict word 00000h ; 26 c7 47 0a 00 00
-    mov ax, word [bp-026h]                    ; 8b 46 da
+    mov ax, word [bp-028h]                    ; 8b 46 d8
     mov word [es:bx+00ch], ax                 ; 26 89 47 0c
     mov word [es:bx+00eh], strict word 00000h ; 26 c7 47 0e 00 00
@@ -9166,10 +9137,10 @@
     mov dx, si                                ; 89 f2
     mov si, strict word 00020h                ; be 20 00
-    call 0a26ah                               ; e8 f2 3e
+    call 0a20ah                               ; e8 d9 3e
     mov bx, di                                ; 89 fb
     mov word [es:bx+014h], dx                 ; 26 89 57 14
     mov word [es:bx+016h], cx                 ; 26 89 4f 16
     cmp word [bp-014h], strict byte 0001eh    ; 83 7e ec 1e
-    jc short 063f9h                           ; 72 71
+    jc short 063adh                           ; 72 6c
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov word [es:di], strict word 0001eh      ; 26 c7 05 1e 00
@@ -9190,5 +9161,5 @@
     add bx, ax                                ; 01 c3
     mov ax, word [es:bx+00206h]               ; 26 8b 87 06 02
-    mov word [bp-024h], ax                    ; 89 46 dc
+    mov word [bp-022h], ax                    ; 89 46 de
     mov ax, word [es:bx+00208h]               ; 26 8b 87 08 02
     mov word [bp-020h], ax                    ; 89 46 e0
@@ -9200,32 +9171,25 @@
     mov bx, word [bp-008h]                    ; 8b 5e f8
     add bx, ax                                ; 01 c3
-    mov ah, byte [es:bx+026h]                 ; 26 8a 67 26
     mov al, byte [es:bx+027h]                 ; 26 8a 47 27
     test al, al                               ; 84 c0
-    jne short 063e9h                          ; 75 04
+    jne short 0639eh                          ; 75 04
     xor si, si                                ; 31 f6
-    jmp short 063ech                          ; eb 03
+    jmp short 063a1h                          ; eb 03
     mov si, strict word 00008h                ; be 08 00
     or si, strict byte 00010h                 ; 83 ce 10
-    cmp ah, 001h                              ; 80 fc 01
-    jne short 063fch                          ; 75 08
+    cmp AL, strict byte 001h                  ; 3c 01
+    jne short 063b0h                          ; 75 08
     mov dx, strict word 00001h                ; ba 01 00
-    jmp short 063feh                          ; eb 05
-    jmp near 0649fh                           ; e9 a3 00
-    xor dx, dx                                ; 31 d2
-    or si, dx                                 ; 09 d6
-    cmp AL, strict byte 001h                  ; 3c 01
-    jne short 06409h                          ; 75 05
-    mov dx, strict word 00001h                ; ba 01 00
-    jmp short 0640bh                          ; eb 02
+    jmp short 063b2h                          ; eb 05
+    jmp near 06448h                           ; e9 98 00
     xor dx, dx                                ; 31 d2
     or si, dx                                 ; 09 d6
     cmp AL, strict byte 003h                  ; 3c 03
-    jne short 06416h                          ; 75 05
+    jne short 063bdh                          ; 75 05
     mov ax, strict word 00003h                ; b8 03 00
-    jmp short 06418h                          ; eb 02
+    jmp short 063bfh                          ; eb 02
     xor ax, ax                                ; 31 c0
     or si, ax                                 ; 09 c6
-    mov ax, word [bp-024h]                    ; 8b 46 dc
+    mov ax, word [bp-022h]                    ; 8b 46 de
     les bx, [bp-008h]                         ; c4 5e f8
     mov word [es:bx+00234h], ax               ; 26 89 87 34 02
@@ -9238,8 +9202,9 @@
     idiv bx                                   ; f7 fb
     or dl, 00eh                               ; 80 ca 0e
+    mov ax, dx                                ; 89 d0
     mov CL, strict byte 004h                  ; b1 04
-    sal dx, CL                                ; d3 e2
+    sal ax, CL                                ; d3 e0
     mov bx, word [bp-008h]                    ; 8b 5e f8
-    mov byte [es:bx+00238h], dl               ; 26 88 97 38 02
+    mov byte [es:bx+00238h], al               ; 26 88 87 38 02
     mov byte [es:bx+00239h], 0cbh             ; 26 c6 87 39 02 cb
     mov al, byte [bp-002h]                    ; 8a 46 fe
@@ -9252,7 +9217,7 @@
     xor bl, bl                                ; 30 db
     xor bh, bh                                ; 30 ff
-    jmp short 0647fh                          ; eb 05
+    jmp short 06428h                          ; eb 05
     cmp bh, 00fh                              ; 80 ff 0f
-    jnc short 06495h                          ; 73 16
+    jnc short 0643eh                          ; 73 16
     mov al, bh                                ; 88 f8
     xor ah, ah                                ; 30 e4
@@ -9260,15 +9225,15 @@
     add dx, 00356h                            ; 81 c2 56 03
     mov ax, word [bp-018h]                    ; 8b 46 e8
-    call 01652h                               ; e8 c3 b1
+    call 01652h                               ; e8 1a b2
     add bl, al                                ; 00 c3
     db  0feh, 0c7h
     ; inc bh                                    ; fe c7
-    jmp short 0647ah                          ; eb e5
+    jmp short 06423h                          ; eb e5
     neg bl                                    ; f6 db
     les si, [bp-008h]                         ; c4 76 f8
     mov byte [es:si+00243h], bl               ; 26 88 9c 43 02
     cmp word [bp-014h], strict byte 00042h    ; 83 7e ec 42
-    jnc short 064a8h                          ; 73 03
-    jmp near 06570h                           ; e9 c8 00
+    jnc short 06451h                          ; 73 03
+    jmp near 06519h                           ; e9 c8 00
     mov al, byte [bp-004h]                    ; 8a 46 fc
     xor ah, ah                                ; 30 e4
@@ -9290,5 +9255,5 @@
     mov word [es:di+022h], strict word 00000h ; 26 c7 45 22 00 00
     test al, al                               ; 84 c0
-    jne short 064f2h                          ; 75 0c
+    jne short 0649bh                          ; 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
@@ -9299,5 +9264,5 @@
     mov word [es:di+02eh], 02020h             ; 26 c7 45 2e 20 20
     test al, al                               ; 84 c0
-    jne short 06527h                          ; 75 16
+    jne short 064d0h                          ; 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
@@ -9314,7 +9279,7 @@
     xor bl, bl                                ; 30 db
     mov BH, strict byte 01eh                  ; b7 1e
-    jmp short 06552h                          ; eb 05
+    jmp short 064fbh                          ; eb 05
     cmp bh, 040h                              ; 80 ff 40
-    jnc short 06567h                          ; 73 15
+    jnc short 06510h                          ; 73 15
     mov al, bh                                ; 88 f8
     xor ah, ah                                ; 30 e4
@@ -9322,9 +9287,9 @@
     add dx, ax                                ; 01 c2
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 01652h                               ; e8 f1 b0
+    call 01652h                               ; e8 48 b1
     add bl, al                                ; 00 c3
     db  0feh, 0c7h
     ; inc bh                                    ; fe c7
-    jmp short 0654dh                          ; eb e6
+    jmp short 064f6h                          ; eb e6
     neg bl                                    ; f6 db
     mov es, [bp-00ah]                         ; 8e 46 f6
@@ -9334,5 +9299,5 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 e1 b0
+    call 01660h                               ; e8 38 b1
     and byte [bp+01ch], 0feh                  ; 80 66 1c fe
     mov sp, bp                                ; 89 ec
@@ -9340,12 +9305,12 @@
     retn                                      ; c3
     cmp ax, strict word 00006h                ; 3d 06 00
-    je short 06570h                           ; 74 e4
+    je short 06519h                           ; 74 e4
     cmp ax, strict word 00001h                ; 3d 01 00
-    jc short 0659dh                           ; 72 0c
-    jbe short 06570h                          ; 76 dd
+    jc short 06546h                           ; 72 0c
+    jbe short 06519h                          ; 76 dd
     cmp ax, strict word 00003h                ; 3d 03 00
-    jc short 0659dh                           ; 72 05
+    jc short 06546h                           ; 72 05
     cmp ax, strict word 00004h                ; 3d 04 00
-    jbe short 06570h                          ; 76 d3
+    jbe short 06519h                          ; 76 d3
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -9356,8 +9321,8 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 aa b0
+    call 01660h                               ; e8 01 b1
     or byte [bp+01ch], 001h                   ; 80 4e 1c 01
-    jmp short 06583h                          ; eb c7
-_int14_function:                             ; 0xf65bc LB 0x157
+    jmp short 0652ch                          ; eb c7
+_int14_function:                             ; 0xf6565 LB 0x157
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -9367,5 +9332,5 @@
     sal dx, 1                                 ; d1 e2
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 a2 b0
+    call 0166eh                               ; e8 f9 b0
     mov si, ax                                ; 89 c6
     mov bx, ax                                ; 89 c3
@@ -9373,22 +9338,22 @@
     add dx, strict byte 0007ch                ; 83 c2 7c
     mov ax, strict word 00040h                ; b8 40 00
-    call 01652h                               ; e8 76 b0
+    call 01652h                               ; e8 cd b0
     mov cl, al                                ; 88 c1
     cmp word [bp+00eh], strict byte 00004h    ; 83 7e 0e 04
-    jnc short 065e8h                          ; 73 04
+    jnc short 06591h                          ; 73 04
     test si, si                               ; 85 f6
-    jnbe short 065ebh                         ; 77 03
-    jmp near 06709h                           ; e9 1e 01
+    jnbe short 06594h                         ; 77 03
+    jmp near 066b2h                           ; e9 1e 01
     mov al, byte [bp+013h]                    ; 8a 46 13
     cmp AL, strict byte 001h                  ; 3c 01
-    jc short 065ffh                           ; 72 0d
-    jbe short 0665ah                          ; 76 66
+    jc short 065a8h                           ; 72 0d
+    jbe short 06603h                          ; 76 66
     cmp AL, strict byte 003h                  ; 3c 03
-    je short 06652h                           ; 74 5a
+    je short 065fbh                           ; 74 5a
     cmp AL, strict byte 002h                  ; 3c 02
-    je short 06655h                           ; 74 59
-    jmp near 06703h                           ; e9 04 01
+    je short 065feh                           ; 74 59
+    jmp near 066ach                           ; e9 04 01
     test al, al                               ; 84 c0
-    jne short 06657h                          ; 75 54
+    jne short 06600h                          ; 75 54
     lea dx, [bx+003h]                         ; 8d 57 03
     in AL, DX                                 ; ec
@@ -9424,5 +9389,5 @@
     ; sub ah, ah                                ; 2a e4
     mov byte [bp+012h], al                    ; 88 46 12
-    jmp near 066e4h                           ; e9 9f 00
+    jmp near 0668dh                           ; e9 9f 00
     mov AL, strict byte 017h                  ; b0 17
     mov dx, bx                                ; 89 da
@@ -9431,11 +9396,11 @@
     mov AL, strict byte 004h                  ; b0 04
     out DX, AL                                ; ee
-    jmp short 06627h                          ; eb d5
-    jmp near 066f2h                           ; e9 9d 00
-    jmp short 066a8h                          ; eb 51
-    jmp near 06703h                           ; e9 a9 00
+    jmp short 065d0h                          ; eb d5
+    jmp near 0669bh                           ; e9 9d 00
+    jmp short 06651h                          ; eb 51
+    jmp near 066ach                           ; e9 a9 00
     mov dx, strict word 0006ch                ; ba 6c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 0b b0
+    call 0166eh                               ; e8 62 b0
     mov si, ax                                ; 89 c6
     lea dx, [bx+005h]                         ; 8d 57 05
@@ -9445,18 +9410,18 @@
     and ax, strict word 00060h                ; 25 60 00
     cmp ax, strict word 00060h                ; 3d 60 00
-    je short 0668ah                           ; 74 17
+    je short 06633h                           ; 74 17
     test cl, cl                               ; 84 c9
-    je short 0668ah                           ; 74 13
+    je short 06633h                           ; 74 13
     mov dx, strict word 0006ch                ; ba 6c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 ee af
+    call 0166eh                               ; e8 45 b0
     cmp ax, si                                ; 39 f0
-    je short 06665h                           ; 74 e1
+    je short 0660eh                           ; 74 e1
     mov si, ax                                ; 89 c6
     db  0feh, 0c9h
     ; dec cl                                    ; fe c9
-    jmp short 06665h                          ; eb db
+    jmp short 0660eh                          ; eb db
     test cl, cl                               ; 84 c9
-    je short 06694h                           ; 74 06
+    je short 0663dh                           ; 74 06
     mov al, byte [bp+012h]                    ; 8a 46 12
     mov dx, bx                                ; 89 da
@@ -9468,11 +9433,11 @@
     mov byte [bp+013h], al                    ; 88 46 13
     test cl, cl                               ; 84 c9
-    jne short 066e4h                          ; 75 43
+    jne short 0668dh                          ; 75 43
     or AL, strict byte 080h                   ; 0c 80
     mov byte [bp+013h], al                    ; 88 46 13
-    jmp short 066e4h                          ; eb 3c
+    jmp short 0668dh                          ; eb 3c
     mov dx, strict word 0006ch                ; ba 6c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 bd af
+    call 0166eh                               ; e8 14 b0
     mov si, ax                                ; 89 c6
     lea dx, [bx+005h]                         ; 8d 57 05
@@ -9481,18 +9446,18 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 066d4h                          ; 75 17
+    jne short 0667dh                          ; 75 17
     test cl, cl                               ; 84 c9
-    je short 066d4h                           ; 74 13
+    je short 0667dh                           ; 74 13
     mov dx, strict word 0006ch                ; ba 6c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 a4 af
+    call 0166eh                               ; e8 fb af
     cmp ax, si                                ; 39 f0
-    je short 066b3h                           ; 74 e5
+    je short 0665ch                           ; 74 e5
     mov si, ax                                ; 89 c6
     db  0feh, 0c9h
     ; dec cl                                    ; fe c9
-    jmp short 066b3h                          ; eb df
+    jmp short 0665ch                          ; eb df
     test cl, cl                               ; 84 c9
-    je short 066eah                           ; 74 12
+    je short 06693h                           ; 74 12
     mov byte [bp+013h], 000h                  ; c6 46 13 00
     mov dx, bx                                ; 89 da
@@ -9502,10 +9467,10 @@
     mov byte [bp+012h], al                    ; 88 46 12
     and byte [bp+01ch], 0feh                  ; 80 66 1c fe
-    jmp short 0670dh                          ; eb 23
+    jmp short 066b6h                          ; eb 23
     lea dx, [bx+005h]                         ; 8d 57 05
     in AL, DX                                 ; ec
     db  02ah, 0e4h
     ; sub ah, ah                                ; 2a e4
-    jmp short 066a3h                          ; eb b1
+    jmp short 0664ch                          ; eb b1
     lea dx, [si+005h]                         ; 8d 54 05
     in AL, DX                                 ; ec
@@ -9517,7 +9482,7 @@
     db  02ah, 0e4h
     ; sub ah, ah                                ; 2a e4
-    jmp short 066e1h                          ; eb de
+    jmp short 0668ah                          ; eb de
     or byte [bp+01ch], 001h                   ; 80 4e 1c 01
-    jmp short 0670dh                          ; eb 04
+    jmp short 066b6h                          ; eb 04
     or byte [bp+01ch], 001h                   ; 80 4e 1c 01
     lea sp, [bp-002h]                         ; 8d 66 fe
@@ -9525,5 +9490,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-set_enable_a20_:                             ; 0xf6713 LB 0x30
+set_enable_a20_:                             ; 0xf66bc LB 0x30
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -9538,14 +9503,14 @@
     mov cl, al                                ; 88 c1
     test bx, bx                               ; 85 db
-    je short 0672ch                           ; 74 05
+    je short 066d5h                           ; 74 05
     or AL, strict byte 002h                   ; 0c 02
     out DX, AL                                ; ee
-    jmp short 0672fh                          ; eb 03
+    jmp short 066d8h                          ; eb 03
     and AL, strict byte 0fdh                  ; 24 fd
     out DX, AL                                ; ee
     test cl, 002h                             ; f6 c1 02
-    je short 06739h                           ; 74 05
+    je short 066e2h                           ; 74 05
     mov ax, strict word 00001h                ; b8 01 00
-    jmp short 0673bh                          ; eb 02
+    jmp short 066e4h                          ; eb 02
     xor ax, ax                                ; 31 c0
     lea sp, [bp-006h]                         ; 8d 66 fa
@@ -9555,5 +9520,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-set_e820_range_:                             ; 0xf6743 LB 0x8b
+set_e820_range_:                             ; 0xf66ec LB 0x8b
     push si                                   ; 56
     push bp                                   ; 55
@@ -9585,8 +9550,8 @@
     retn 0000ah                               ; c2 0a 00
     db  0ech, 0e9h, 0d8h, 0c1h, 0c0h, 0bfh, 091h, 090h, 089h, 088h, 087h, 083h, 052h, 04fh, 041h, 024h
-    db  000h, 06eh, 06ch, 00ah, 068h, 01eh, 068h, 0b6h, 068h, 0bch, 068h, 0c1h, 068h, 0c6h, 068h, 06eh
-    db  069h, 00ah, 06bh, 029h, 06bh, 0afh, 068h, 0afh, 068h, 0f3h, 06bh, 01eh, 06ch, 031h, 06ch, 040h
-    db  06ch, 0b6h, 068h, 049h, 06ch
-_int15_function:                             ; 0xf67ce LB 0x4d6
+    db  000h, 017h, 06ch, 0b3h, 067h, 0c7h, 067h, 05fh, 068h, 065h, 068h, 06ah, 068h, 06fh, 068h, 017h
+    db  069h, 0b3h, 06ah, 0d2h, 06ah, 058h, 068h, 058h, 068h, 09ch, 06bh, 0c7h, 06bh, 0dah, 06bh, 0e9h
+    db  06bh, 05fh, 068h, 0f2h, 06bh
+_int15_function:                             ; 0xf6777 LB 0x4d6
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -9597,13 +9562,13 @@
     mov dx, ax                                ; 89 c2
     cmp ax, 000ech                            ; 3d ec 00
-    jnbe short 06814h                         ; 77 35
+    jnbe short 067bdh                         ; 77 35
     push CS                                   ; 0e
     pop ES                                    ; 07
     mov cx, strict word 00012h                ; b9 12 00
-    mov di, 06799h                            ; bf 99 67
+    mov di, 06742h                            ; bf 42 67
     repne scasb                               ; f2 ae
     sal cx, 1                                 ; d1 e1
     mov di, cx                                ; 89 cf
-    mov si, word [cs:di+067aah]               ; 2e 8b b5 aa 67
+    mov si, word [cs:di+06753h]               ; 2e 8b b5 53 67
     mov ax, word [bp+012h]                    ; 8b 46 12
     xor ah, ah                                ; 30 e4
@@ -9618,29 +9583,29 @@
     xor ah, ah                                ; 30 e4
     cmp ax, 000c0h                            ; 3d c0 00
-    je short 06817h                           ; 74 03
-    jmp near 06c6eh                           ; e9 57 04
+    je short 067c0h                           ; 74 03
+    jmp near 06c17h                           ; e9 57 04
     or byte [bp+018h], 001h                   ; 80 4e 18 01
-    jmp near 06c15h                           ; e9 f7 03
+    jmp near 06bbeh                           ; e9 f7 03
     mov dx, ax                                ; 89 c2
     cmp ax, strict word 00001h                ; 3d 01 00
-    jc short 06833h                           ; 72 0e
-    jbe short 06847h                          ; 76 20
+    jc short 067dch                           ; 72 0e
+    jbe short 067f0h                          ; 76 20
     cmp ax, strict word 00003h                ; 3d 03 00
-    je short 06874h                           ; 74 48
+    je short 0681dh                           ; 74 48
     cmp ax, strict word 00002h                ; 3d 02 00
-    je short 06857h                           ; 74 26
-    jmp short 06881h                          ; eb 4e
+    je short 06800h                           ; 74 26
+    jmp short 0682ah                          ; eb 4e
     test ax, ax                               ; 85 c0
-    jne short 06881h                          ; 75 4a
+    jne short 0682ah                          ; 75 4a
     xor ax, ax                                ; 31 c0
-    call 06713h                               ; e8 d7 fe
+    call 066bch                               ; e8 d7 fe
     and byte [bp+018h], 0feh                  ; 80 66 18 fe
     mov byte [bp+013h], 000h                  ; c6 46 13 00
-    jmp near 068afh                           ; e9 68 00
+    jmp near 06858h                           ; e9 68 00
     mov ax, strict word 00001h                ; b8 01 00
-    call 06713h                               ; e8 c6 fe
+    call 066bch                               ; e8 c6 fe
     and byte [bp+018h], 0feh                  ; 80 66 18 fe
     mov byte [bp+013h], dh                    ; 88 76 13
-    jmp near 068afh                           ; e9 58 00
+    jmp near 06858h                           ; e9 58 00
     mov dx, 00092h                            ; ba 92 00
     in AL, DX                                 ; ec
@@ -9654,13 +9619,13 @@
     and byte [bp+018h], 0feh                  ; 80 66 18 fe
     mov byte [bp+013h], ah                    ; 88 66 13
-    jmp near 068afh                           ; e9 3b 00
+    jmp near 06858h                           ; e9 3b 00
     and byte [bp+018h], 0feh                  ; 80 66 18 fe
     mov byte [bp+013h], ah                    ; 88 66 13
     mov word [bp+00ch], ax                    ; 89 46 0c
-    jmp near 068afh                           ; e9 2e 00
+    jmp near 06858h                           ; e9 2e 00
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 a7 b0
+    call 01933h                               ; e8 fe b0
     mov ax, word [bp+012h]                    ; 8b 46 12
     xor ah, ah                                ; 30 e4
@@ -9670,5 +9635,5 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 d9 b0
+    call 01976h                               ; e8 30 b1
     add sp, strict byte 00006h                ; 83 c4 06
     or byte [bp+018h], 001h                   ; 80 4e 18 01
@@ -9683,36 +9648,36 @@
     retn                                      ; c3
     mov word [bp+018h], bx                    ; 89 5e 18
-    jmp near 06968h                           ; e9 ac 00
+    jmp near 06911h                           ; e9 ac 00
     mov word [bp+018h], bx                    ; 89 5e 18
-    jmp short 068afh                          ; eb ee
+    jmp short 06858h                          ; eb ee
     mov word [bp+018h], cx                    ; 89 4e 18
-    jmp short 068ach                          ; eb e6
+    jmp short 06855h                          ; eb e6
     test byte [bp+012h], 0ffh                 ; f6 46 12 ff
-    jne short 0693bh                          ; 75 6f
+    jne short 068e4h                          ; 75 6f
     mov dx, 000a0h                            ; ba a0 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01652h                               ; e8 7d ad
+    call 01652h                               ; e8 d4 ad
     test AL, strict byte 001h                 ; a8 01
-    jne short 06938h                          ; 75 5f
+    jne short 068e1h                          ; 75 5f
     mov bx, strict word 00001h                ; bb 01 00
     mov dx, 000a0h                            ; ba a0 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 7b ad
+    call 01660h                               ; e8 d2 ad
     mov bx, word [bp+014h]                    ; 8b 5e 14
     mov dx, 00098h                            ; ba 98 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0167ch                               ; e8 8b ad
+    call 0167ch                               ; e8 e2 ad
     mov bx, word [bp+00ch]                    ; 8b 5e 0c
     mov dx, 0009ah                            ; ba 9a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0167ch                               ; e8 7f ad
+    call 0167ch                               ; e8 d6 ad
     mov bx, word [bp+00eh]                    ; 8b 5e 0e
     mov dx, 0009ch                            ; ba 9c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0167ch                               ; e8 73 ad
+    call 0167ch                               ; e8 ca ad
     mov bx, word [bp+010h]                    ; 8b 5e 10
     mov dx, 0009eh                            ; ba 9e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0167ch                               ; e8 67 ad
+    call 0167ch                               ; e8 be ad
     and byte [bp+018h], 0feh                  ; 80 66 18 fe
     mov dx, 000a1h                            ; ba a1 00
@@ -9723,24 +9688,24 @@
     out DX, AL                                ; ee
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 016aeh                               ; e8 86 ad
+    call 016aeh                               ; e8 dd ad
     mov dl, al                                ; 88 c2
     or dl, 040h                               ; 80 ca 40
     xor dh, dh                                ; 30 f6
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 016c9h                               ; e8 94 ad
-    jmp near 068afh                           ; e9 77 ff
-    jmp near 06c0ch                           ; e9 d1 02
+    call 016c9h                               ; e8 eb ad
+    jmp near 06858h                           ; e9 77 ff
+    jmp near 06bb5h                           ; e9 d1 02
     cmp ax, strict word 00001h                ; 3d 01 00
-    jne short 0695ch                          ; 75 1c
+    jne short 06905h                          ; 75 1c
     xor bx, bx                                ; 31 db
     mov dx, 000a0h                            ; ba a0 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 15 ad
+    call 01660h                               ; e8 6c ad
     and byte [bp+018h], 0feh                  ; 80 66 18 fe
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 016aeh                               ; e8 59 ad
+    call 016aeh                               ; e8 b0 ad
     mov dl, al                                ; 88 c2
     and dl, 0bfh                              ; 80 e2 bf
-    jmp short 0692dh                          ; eb d1
+    jmp short 068d6h                          ; eb d1
     mov word [bp+018h], bx                    ; 89 5e 18
     mov ax, dx                                ; 89 d0
@@ -9750,8 +9715,8 @@
     or dx, ax                                 ; 09 c2
     mov word [bp+012h], dx                    ; 89 56 12
-    jmp near 068afh                           ; e9 41 ff
+    jmp near 06858h                           ; e9 41 ff
     cli                                       ; fa
     mov ax, strict word 00001h                ; b8 01 00
-    call 06713h                               ; e8 9e fd
+    call 066bch                               ; e8 9e fd
     mov di, ax                                ; 89 c7
     mov CL, strict byte 004h                  ; b1 04
@@ -9765,5 +9730,5 @@
     mov cl, al                                ; 88 c1
     cmp si, dx                                ; 39 d6
-    jnc short 06992h                          ; 73 02
+    jnc short 0693bh                          ; 73 02
     db  0feh, 0c1h
     ; inc cl                                    ; fe c1
@@ -9772,10 +9737,10 @@
     mov ax, word [bp+014h]                    ; 8b 46 14
     mov bx, strict word 0002fh                ; bb 2f 00
-    call 0167ch                               ; e8 db ac
+    call 0167ch                               ; e8 32 ad
     mov dx, word [bp+006h]                    ; 8b 56 06
     add dx, strict byte 0000ah                ; 83 c2 0a
     mov ax, word [bp+014h]                    ; 8b 46 14
     mov bx, si                                ; 89 f3
-    call 0167ch                               ; e8 cd ac
+    call 0167ch                               ; e8 24 ad
     mov bl, cl                                ; 88 cb
     xor bh, bh                                ; 30 ff
@@ -9783,40 +9748,40 @@
     add dx, strict byte 0000ch                ; 83 c2 0c
     mov ax, word [bp+014h]                    ; 8b 46 14
-    call 01660h                               ; e8 a1 ac
+    call 01660h                               ; e8 f8 ac
     mov dx, word [bp+006h]                    ; 8b 56 06
     add dx, strict byte 0000dh                ; 83 c2 0d
     mov ax, word [bp+014h]                    ; 8b 46 14
     mov bx, 00093h                            ; bb 93 00
-    call 01660h                               ; e8 92 ac
+    call 01660h                               ; e8 e9 ac
     mov dx, word [bp+006h]                    ; 8b 56 06
     add dx, strict byte 0000eh                ; 83 c2 0e
     mov ax, word [bp+014h]                    ; 8b 46 14
     xor bx, bx                                ; 31 db
-    call 0167ch                               ; e8 a0 ac
+    call 0167ch                               ; e8 f7 ac
     mov dx, word [bp+006h]                    ; 8b 56 06
     add dx, strict byte 00020h                ; 83 c2 20
     mov ax, word [bp+014h]                    ; 8b 46 14
     mov bx, strict word 0ffffh                ; bb ff ff
-    call 0167ch                               ; e8 91 ac
+    call 0167ch                               ; e8 e8 ac
     mov dx, word [bp+006h]                    ; 8b 56 06
     add dx, strict byte 00022h                ; 83 c2 22
     mov ax, word [bp+014h]                    ; 8b 46 14
     xor bx, bx                                ; 31 db
-    call 0167ch                               ; e8 83 ac
+    call 0167ch                               ; e8 da ac
     mov dx, word [bp+006h]                    ; 8b 56 06
     add dx, strict byte 00024h                ; 83 c2 24
     mov ax, word [bp+014h]                    ; 8b 46 14
     mov bx, strict word 0000fh                ; bb 0f 00
-    call 01660h                               ; e8 58 ac
+    call 01660h                               ; e8 af ac
     mov dx, word [bp+006h]                    ; 8b 56 06
     add dx, strict byte 00025h                ; 83 c2 25
     mov ax, word [bp+014h]                    ; 8b 46 14
     mov bx, 0009bh                            ; bb 9b 00
-    call 01660h                               ; e8 49 ac
+    call 01660h                               ; e8 a0 ac
     mov dx, word [bp+006h]                    ; 8b 56 06
     add dx, strict byte 00026h                ; 83 c2 26
     mov ax, word [bp+014h]                    ; 8b 46 14
     xor bx, bx                                ; 31 db
-    call 0167ch                               ; e8 57 ac
+    call 0167ch                               ; e8 ae ac
     mov ax, ss                                ; 8c d0
     mov CL, strict byte 004h                  ; b1 04
@@ -9830,10 +9795,10 @@
     mov ax, word [bp+014h]                    ; 8b 46 14
     mov bx, strict word 0ffffh                ; bb ff ff
-    call 0167ch                               ; e8 3a ac
+    call 0167ch                               ; e8 91 ac
     mov dx, word [bp+006h]                    ; 8b 56 06
     add dx, strict byte 0002ah                ; 83 c2 2a
     mov ax, word [bp+014h]                    ; 8b 46 14
     mov bx, si                                ; 89 f3
-    call 0167ch                               ; e8 2c ac
+    call 0167ch                               ; e8 83 ac
     mov bl, cl                                ; 88 cb
     xor bh, bh                                ; 30 ff
@@ -9841,15 +9806,15 @@
     add dx, strict byte 0002ch                ; 83 c2 2c
     mov ax, word [bp+014h]                    ; 8b 46 14
-    call 01660h                               ; e8 00 ac
+    call 01660h                               ; e8 57 ac
     mov dx, word [bp+006h]                    ; 8b 56 06
     add dx, strict byte 0002dh                ; 83 c2 2d
     mov ax, word [bp+014h]                    ; 8b 46 14
     mov bx, 00093h                            ; bb 93 00
-    call 01660h                               ; e8 f1 ab
+    call 01660h                               ; e8 48 ac
     mov dx, word [bp+006h]                    ; 8b 56 06
     add dx, strict byte 0002eh                ; 83 c2 2e
     mov ax, word [bp+014h]                    ; 8b 46 14
     xor bx, bx                                ; 31 db
-    call 0167ch                               ; e8 ff ab
+    call 0167ch                               ; e8 56 ac
     mov si, word [bp+006h]                    ; 8b 76 06
     mov es, [bp+014h]                         ; 8e 46 14
@@ -9862,5 +9827,5 @@
     mov word [00467h], sp                     ; 89 26 67 04
     mov [00469h], ss                          ; 8c 16 69 04
-    call 06a99h                               ; e8 00 00
+    call 06a42h                               ; e8 00 00
     pop di                                    ; 5f
     add di, strict byte 0001bh                ; 83 c7 1b
@@ -9868,5 +9833,5 @@
     push di                                   ; 57
     lgdt [es:si+008h]                         ; 26 0f 01 54 08
-    lidt [cs:0efe1h]                          ; 2e 0f 01 1e e1 ef
+    lidt [cs:0efefh]                          ; 2e 0f 01 1e ef ef
     mov eax, cr0                              ; 0f 20 c0
     or AL, strict byte 001h                   ; 0c 01
@@ -9885,5 +9850,5 @@
     cld                                       ; fc
     rep movsw                                 ; f3 a5
-    call 06acdh                               ; e8 00 00
+    call 06a76h                               ; e8 00 00
     pop ax                                    ; 58
     push 0f000h                               ; 68 00 f0
@@ -9897,5 +9862,5 @@
     mov cr0, eax                              ; 0f 22 c0
     retf                                      ; cb
-    lidt [cs:0efe7h]                          ; 2e 0f 01 1e e7 ef
+    lidt [cs:0eff5h]                          ; 2e 0f 01 1e f5 ef
     db  033h, 0c0h
     ; xor ax, ax                                ; 33 c0
@@ -9906,48 +9871,48 @@
     pop DS                                    ; 1f
     mov ax, di                                ; 89 f8
-    call 06713h                               ; e8 15 fc
+    call 066bch                               ; e8 15 fc
     sti                                       ; fb
     mov byte [bp+013h], 000h                  ; c6 46 13 00
     and byte [bp+018h], 0feh                  ; 80 66 18 fe
-    jmp near 068afh                           ; e9 a5 fd
+    jmp near 06858h                           ; e9 a5 fd
     mov ax, strict word 00031h                ; b8 31 00
-    call 016aeh                               ; e8 9e ab
+    call 016aeh                               ; e8 f5 ab
     mov dh, al                                ; 88 c6
     mov ax, strict word 00030h                ; b8 30 00
-    call 016aeh                               ; e8 96 ab
+    call 016aeh                               ; e8 ed ab
     mov dl, al                                ; 88 c2
     mov word [bp+012h], dx                    ; 89 56 12
     cmp dx, strict byte 0ffc0h                ; 83 fa c0
-    jbe short 06b03h                          ; 76 e1
+    jbe short 06aach                          ; 76 e1
     mov word [bp+012h], strict word 0ffc0h    ; c7 46 12 c0 ff
-    jmp short 06b03h                          ; eb da
+    jmp short 06aach                          ; eb da
     cli                                       ; fa
     mov ax, strict word 00001h                ; b8 01 00
-    call 06713h                               ; e8 e3 fb
+    call 066bch                               ; e8 e3 fb
     mov dx, word [bp+006h]                    ; 8b 56 06
     add dx, strict byte 00038h                ; 83 c2 38
     mov ax, word [bp+014h]                    ; 8b 46 14
     mov bx, strict word 0ffffh                ; bb ff ff
-    call 0167ch                               ; e8 3d ab
+    call 0167ch                               ; e8 94 ab
     mov dx, word [bp+006h]                    ; 8b 56 06
     add dx, strict byte 0003ah                ; 83 c2 3a
     mov ax, word [bp+014h]                    ; 8b 46 14
     xor bx, bx                                ; 31 db
-    call 0167ch                               ; e8 2f ab
+    call 0167ch                               ; e8 86 ab
     mov dx, word [bp+006h]                    ; 8b 56 06
     add dx, strict byte 0003ch                ; 83 c2 3c
     mov ax, word [bp+014h]                    ; 8b 46 14
     mov bx, strict word 0000fh                ; bb 0f 00
-    call 01660h                               ; e8 04 ab
+    call 01660h                               ; e8 5b ab
     mov dx, word [bp+006h]                    ; 8b 56 06
     add dx, strict byte 0003dh                ; 83 c2 3d
     mov ax, word [bp+014h]                    ; 8b 46 14
     mov bx, 0009bh                            ; bb 9b 00
-    call 01660h                               ; e8 f5 aa
+    call 01660h                               ; e8 4c ab
     mov dx, word [bp+006h]                    ; 8b 56 06
     add dx, strict byte 0003eh                ; 83 c2 3e
     mov ax, word [bp+014h]                    ; 8b 46 14
     xor bx, bx                                ; 31 db
-    call 0167ch                               ; e8 03 ab
+    call 0167ch                               ; e8 5a ab
     mov AL, strict byte 011h                  ; b0 11
     mov dx, strict word 00020h                ; ba 20 00
@@ -9978,5 +9943,5 @@
     out DX, AL                                ; ee
     mov si, word [bp+006h]                    ; 8b 76 06
-    call 06bb7h                               ; e8 00 00
+    call 06b60h                               ; e8 00 00
     pop di                                    ; 5f
     add di, strict byte 00018h                ; 83 c7 18
@@ -10006,14 +9971,14 @@
     push cx                                   ; 51
     retf                                      ; cb
-    jmp near 068afh                           ; e9 bc fc
+    jmp near 06858h                           ; e9 bc fc
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 35 ad
+    call 01933h                               ; e8 8c ad
     mov ax, 0086eh                            ; b8 6e 08
     push ax                                   ; 50
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 6d ad
+    call 01976h                               ; e8 c4 ad
     add sp, strict byte 00004h                ; 83 c4 04
     or byte [bp+018h], 001h                   ; 80 4e 18 01
@@ -10022,36 +9987,36 @@
     or ah, 086h                               ; 80 cc 86
     mov word [bp+012h], ax                    ; 89 46 12
-    jmp near 068afh                           ; e9 91 fc
+    jmp near 06858h                           ; e9 91 fc
     mov word [bp+018h], cx                    ; 89 4e 18
     mov word [bp+012h], ax                    ; 89 46 12
     mov word [bp+00ch], 0e6f5h                ; c7 46 0c f5 e6
     mov word [bp+014h], 0f000h                ; c7 46 14 00 f0
-    jmp near 068afh                           ; e9 7e fc
+    jmp near 06858h                           ; e9 7e fc
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 34 aa
+    call 0166eh                               ; e8 8b aa
     mov word [bp+014h], ax                    ; 89 46 14
-    jmp near 06b03h                           ; e9 c3 fe
+    jmp near 06aach                           ; e9 c3 fe
     mov ax, 0089dh                            ; b8 9d 08
     push ax                                   ; 50
     mov ax, strict word 00008h                ; b8 08 00
-    jmp short 06c05h                          ; eb bc
+    jmp short 06baeh                          ; eb bc
     test byte [bp+012h], 0ffh                 ; f6 46 12 ff
-    jne short 06c6eh                          ; 75 1f
+    jne short 06c17h                          ; 75 1f
     mov word [bp+012h], ax                    ; 89 46 12
     mov ax, word [bp+00ch]                    ; 8b 46 0c
     xor ah, ah                                ; 30 e4
     cmp ax, strict word 00001h                ; 3d 01 00
-    jc short 06c67h                           ; 72 0b
+    jc short 06c10h                           ; 72 0b
     cmp ax, strict word 00003h                ; 3d 03 00
-    jnbe short 06c67h                         ; 77 06
+    jnbe short 06c10h                         ; 77 06
     mov word [bp+018h], cx                    ; 89 4e 18
-    jmp near 068afh                           ; e9 48 fc
+    jmp near 06858h                           ; e9 48 fc
     or byte [bp+018h], 001h                   ; 80 4e 18 01
-    jmp near 068afh                           ; e9 41 fc
+    jmp near 06858h                           ; e9 41 fc
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 ba ac
+    call 01933h                               ; e8 11 ad
     push word [bp+00ch]                       ; ff 76 0c
     push word [bp+012h]                       ; ff 76 12
@@ -10060,20 +10025,18 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 ec ac
+    call 01976h                               ; e8 43 ad
     add sp, strict byte 00008h                ; 83 c4 08
-    jmp near 06c0ch                           ; e9 7c ff
-    cmp AL, strict byte 06eh                  ; 3c 6e
-    o32 outsb                                 ; 66 6e
-    mov si, 0e36eh                            ; be 6e e3
+    jmp near 06bb5h                           ; e9 7c ff
+    in ax, 06dh                               ; e5 6d
+    movd mm4, [bx+06eh]                       ; 0f 6e 67 6e
+    mov [bp-054h], gs                         ; 8c 6e ac
     outsb                                     ; 6e
-    add bp, word [bx+024h]                    ; 03 6f 24
+    int 06eh                                  ; cd 6e
+    rep outsb                                 ; f3 6e
+    sbb word [bx+056h], bp                    ; 19 6f 56
     outsw                                     ; 6f
-    dec dx                                    ; 4a
+    db  08ah
     outsw                                     ; 6f
-    jo short 06d0fh                           ; 70 6f
-    lodsw                                     ; ad
-    outsw                                     ; 6f
-    loope 06d13h                              ; e1 6f
-_int15_function32:                           ; 0xf6ca4 LB 0x3cf
+_int15_function32:                           ; 0xf6c4d LB 0x3cf
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -10087,9 +10050,9 @@
     xor dh, dh                                ; 30 f6
     cmp ax, 000e8h                            ; 3d e8 00
-    je short 06d0bh                           ; 74 4b
+    je short 06cb4h                           ; 74 4b
     cmp ax, 000d0h                            ; 3d d0 00
-    je short 06d04h                           ; 74 3f
+    je short 06cadh                           ; 74 3f
     cmp ax, 00086h                            ; 3d 86 00
-    jne short 06d29h                          ; 75 5f
+    jne short 06cd2h                          ; 75 5f
     sti                                       ; fb
     mov ax, word [bp+01ch]                    ; 8b 46 1c
@@ -10110,34 +10073,34 @@
     db  066h, 00bh, 0c9h
     ; or ecx, ecx                               ; 66 0b c9
-    je near 06d01h                            ; 0f 84 0e 00
+    je near 06caah                            ; 0f 84 0e 00
     in AL, strict byte 061h                   ; e4 61
     and AL, strict byte 010h                  ; 24 10
     db  03ah, 0c4h
     ; cmp al, ah                                ; 3a c4
-    je short 06cf3h                           ; 74 f8
+    je short 06c9ch                           ; 74 f8
     db  08ah, 0e0h
     ; mov ah, al                                ; 8a e0
     dec ecx                                   ; 66 49
-    jne short 06cf3h                          ; 75 f2
-    jmp near 06eb8h                           ; e9 b4 01
+    jne short 06c9ch                          ; 75 f2
+    jmp near 06e61h                           ; e9 b4 01
     cmp dx, strict byte 0004fh                ; 83 fa 4f
-    je short 06d0dh                           ; 74 04
-    jmp short 06d29h                          ; eb 1e
-    jmp short 06d63h                          ; eb 56
+    je short 06cb6h                           ; 74 04
+    jmp short 06cd2h                          ; eb 1e
+    jmp short 06d0ch                          ; eb 56
     cmp word [bp+016h], 05052h                ; 81 7e 16 52 50
-    jne short 06d6dh                          ; 75 59
+    jne short 06d16h                          ; 75 59
     cmp word [bp+014h], 04f43h                ; 81 7e 14 43 4f
-    jne short 06d6dh                          ; 75 52
+    jne short 06d16h                          ; 75 52
     cmp word [bp+01eh], 04d4fh                ; 81 7e 1e 4f 4d
-    jne short 06d6dh                          ; 75 4b
+    jne short 06d16h                          ; 75 4b
     cmp word [bp+01ch], 04445h                ; 81 7e 1c 45 44
-    je short 06d2bh                           ; 74 02
-    jmp short 06d6dh                          ; eb 42
+    je short 06cd4h                           ; 74 02
+    jmp short 06d16h                          ; eb 42
     mov ax, word [bp+00ah]                    ; 8b 46 0a
     or ax, word [bp+008h]                     ; 0b 46 08
-    jne short 06d6dh                          ; 75 3a
+    jne short 06d16h                          ; 75 3a
     mov ax, word [bp+006h]                    ; 8b 46 06
     or ax, word [bp+004h]                     ; 0b 46 04
-    jne short 06d6dh                          ; 75 32
+    jne short 06d16h                          ; 75 32
     mov word [bp+028h], bx                    ; 89 5e 28
     mov ax, word [bp+014h]                    ; 8b 46 14
@@ -10151,17 +10114,17 @@
     mov word [bp+020h], 03332h                ; c7 46 20 32 33
     mov word [bp+022h], 04941h                ; c7 46 22 41 49
-    jmp near 06eb8h                           ; e9 55 01
+    jmp near 06e61h                           ; e9 55 01
     cmp dx, strict byte 00020h                ; 83 fa 20
-    je short 06d73h                           ; 74 0b
+    je short 06d1ch                           ; 74 0b
     cmp dx, strict byte 00001h                ; 83 fa 01
-    je short 06d70h                           ; 74 03
-    jmp near 06e8bh                           ; e9 1b 01
-    jmp near 07033h                           ; e9 c0 02
+    je short 06d19h                           ; 74 03
+    jmp near 06e34h                           ; e9 1b 01
+    jmp near 06fdch                           ; e9 c0 02
     cmp word [bp+01ah], 0534dh                ; 81 7e 1a 4d 53
-    jne short 06d6dh                          ; 75 f3
+    jne short 06d16h                          ; 75 f3
     cmp word [bp+018h], 04150h                ; 81 7e 18 50 41
-    jne short 06d6dh                          ; 75 ec
+    jne short 06d16h                          ; 75 ec
     mov ax, strict word 00035h                ; b8 35 00
-    call 016aeh                               ; e8 27 a9
+    call 016aeh                               ; e8 7e a9
     mov bl, al                                ; 88 c3
     xor bh, bh                                ; 30 ff
@@ -10170,7 +10133,7 @@
     sal bx, 1                                 ; d1 e3
     rcl dx, 1                                 ; d1 d2
-    loop 06d90h                               ; e2 fa
+    loop 06d39h                               ; e2 fa
     mov ax, strict word 00034h                ; b8 34 00
-    call 016aeh                               ; e8 12 a9
+    call 016aeh                               ; e8 69 a9
     xor ah, ah                                ; 30 e4
     mov dx, bx                                ; 89 da
@@ -10180,10 +10143,10 @@
     adc dx, 00100h                            ; 81 d2 00 01
     cmp dx, 00100h                            ; 81 fa 00 01
-    jc short 06db6h                           ; 72 06
-    jne short 06de4h                          ; 75 32
+    jc short 06d5fh                           ; 72 06
+    jne short 06d8dh                          ; 75 32
     test bx, bx                               ; 85 db
-    jnbe short 06de4h                         ; 77 2e
+    jnbe short 06d8dh                         ; 77 2e
     mov ax, strict word 00031h                ; b8 31 00
-    call 016aeh                               ; e8 f2 a8
+    call 016aeh                               ; e8 49 a9
     mov bl, al                                ; 88 c3
     xor bh, bh                                ; 30 ff
@@ -10192,7 +10155,7 @@
     sal bx, 1                                 ; d1 e3
     rcl dx, 1                                 ; d1 d2
-    loop 06dc5h                               ; e2 fa
+    loop 06d6eh                               ; e2 fa
     mov ax, strict word 00030h                ; b8 30 00
-    call 016aeh                               ; e8 dd a8
+    call 016aeh                               ; e8 34 a9
     xor ah, ah                                ; 30 e4
     or bx, ax                                 ; 09 c3
@@ -10200,9 +10163,9 @@
     sal bx, 1                                 ; d1 e3
     rcl dx, 1                                 ; d1 d2
-    loop 06dd8h                               ; e2 fa
+    loop 06d81h                               ; e2 fa
     add bx, strict byte 00000h                ; 83 c3 00
     adc dx, strict byte 00010h                ; 83 d2 10
     mov ax, strict word 00062h                ; b8 62 00
-    call 016aeh                               ; e8 c4 a8
+    call 016aeh                               ; e8 1b a9
     xor ah, ah                                ; 30 e4
     mov word [bp-00ah], ax                    ; 89 46 f6
@@ -10212,7 +10175,7 @@
     sal word [bp-00ah], 1                     ; d1 66 f6
     rcl word [bp-008h], 1                     ; d1 56 f8
-    loop 06df7h                               ; e2 f8
+    loop 06da0h                               ; e2 f8
     mov ax, strict word 00061h                ; b8 61 00
-    call 016aeh                               ; e8 a9 a8
+    call 016aeh                               ; e8 00 a9
     xor ah, ah                                ; 30 e4
     or word [bp-00ah], ax                     ; 09 46 f6
@@ -10221,10 +10184,10 @@
     mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
     mov ax, strict word 00063h                ; b8 63 00
-    call 016aeh                               ; e8 93 a8
+    call 016aeh                               ; e8 ea a8
     mov byte [bp-006h], al                    ; 88 46 fa
     mov byte [bp-004h], al                    ; 88 46 fc
     mov ax, word [bp+014h]                    ; 8b 46 14
     cmp ax, strict word 00009h                ; 3d 09 00
-    jnbe short 06e8bh                         ; 77 62
+    jnbe short 06e34h                         ; 77 62
     mov si, ax                                ; 89 c6
     sal si, 1                                 ; d1 e6
@@ -10233,5 +10196,5 @@
     mov ax, dx                                ; 89 d0
     adc ax, strict word 0ffffh                ; 15 ff ff
-    jmp word [cs:si+06c90h]                   ; 2e ff a4 90 6c
+    jmp word [cs:si+06c39h]                   ; 2e ff a4 39 6c
     mov ax, strict word 00001h                ; b8 01 00
     push ax                                   ; 50
@@ -10247,8 +10210,8 @@
     xor bx, bx                                ; 31 db
     xor cx, cx                                ; 31 c9
-    call 06743h                               ; e8 ea f8
+    call 066ech                               ; e8 ea f8
     mov word [bp+014h], strict word 00001h    ; c7 46 14 01 00
     mov word [bp+016h], strict word 00000h    ; c7 46 16 00 00
-    jmp near 07018h                           ; e9 b2 01
+    jmp near 06fc1h                           ; e9 b2 01
     mov ax, strict word 00002h                ; b8 02 00
     push ax                                   ; 50
@@ -10264,11 +10227,11 @@
     mov bx, 0fc00h                            ; bb 00 fc
     mov cx, strict word 00009h                ; b9 09 00
-    call 06743h                               ; e8 bf f8
+    call 066ech                               ; e8 bf f8
     mov word [bp+014h], strict word 00002h    ; c7 46 14 02 00
-    jmp short 06e5eh                          ; eb d3
+    jmp short 06e07h                          ; eb d3
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 9d aa
+    call 01933h                               ; e8 f4 aa
     push word [bp+014h]                       ; ff 76 14
     push word [bp+020h]                       ; ff 76 20
@@ -10277,5 +10240,5 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 cf aa
+    call 01976h                               ; e8 26 ab
     add sp, strict byte 00008h                ; 83 c4 08
     or byte [bp+028h], 001h                   ; 80 4e 28 01
@@ -10301,7 +10264,7 @@
     xor bx, bx                                ; 31 db
     mov cx, strict word 0000fh                ; b9 0f 00
-    call 06743h                               ; e8 68 f8
+    call 066ech                               ; e8 68 f8
     mov word [bp+014h], strict word 00003h    ; c7 46 14 03 00
-    jmp near 06e5eh                           ; e9 7b ff
+    jmp near 06e07h                           ; e9 7b ff
     mov dx, strict word 00001h                ; ba 01 00
     push dx                                   ; 52
@@ -10315,7 +10278,7 @@
     xor bx, bx                                ; 31 db
     mov cx, strict word 00010h                ; b9 10 00
-    call 06743h                               ; e8 48 f8
+    call 066ech                               ; e8 48 f8
     mov word [bp+014h], strict word 00004h    ; c7 46 14 04 00
-    jmp near 06e5eh                           ; e9 5b ff
+    jmp near 06e07h                           ; e9 5b ff
     mov si, strict word 00003h                ; be 03 00
     push si                                   ; 56
@@ -10330,7 +10293,7 @@
     mov cx, ax                                ; 89 c1
     mov ax, si                                ; 89 f0
-    call 06743h                               ; e8 27 f8
+    call 066ech                               ; e8 27 f8
     mov word [bp+014h], strict word 00005h    ; c7 46 14 05 00
-    jmp near 06e5eh                           ; e9 3a ff
+    jmp near 06e07h                           ; e9 3a ff
     mov ax, strict word 00002h                ; b8 02 00
     push ax                                   ; 50
@@ -10346,7 +10309,7 @@
     xor bx, bx                                ; 31 db
     mov cx, 0fec0h                            ; b9 c0 fe
-    call 06743h                               ; e8 01 f8
+    call 066ech                               ; e8 01 f8
     mov word [bp+014h], strict word 00006h    ; c7 46 14 06 00
-    jmp near 06e5eh                           ; e9 14 ff
+    jmp near 06e07h                           ; e9 14 ff
     mov ax, strict word 00002h                ; b8 02 00
     push ax                                   ; 50
@@ -10362,7 +10325,7 @@
     xor bx, bx                                ; 31 db
     mov cx, 0fee0h                            ; b9 e0 fe
-    call 06743h                               ; e8 db f7
+    call 066ech                               ; e8 db f7
     mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
-    jmp near 06e5eh                           ; e9 ee fe
+    jmp near 06e07h                           ; e9 ee fe
     mov ax, strict word 00002h                ; b8 02 00
     push ax                                   ; 50
@@ -10376,17 +10339,17 @@
     xor bx, bx                                ; 31 db
     mov cx, strict word 0fffch                ; b9 fc ff
-    call 06743h                               ; e8 bb f7
+    call 066ech                               ; e8 bb f7
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    jne short 06f95h                          ; 75 07
+    jne short 06f3eh                          ; 75 07
     mov ax, word [bp-008h]                    ; 8b 46 f8
     test ax, ax                               ; 85 c0
-    je short 06fa5h                           ; 74 10
+    je short 06f4eh                           ; 74 10
     mov word [bp+014h], strict word 00009h    ; c7 46 14 09 00
-    jmp near 06e5eh                           ; e9 c1 fe
+    jmp near 06e07h                           ; e9 c1 fe
     mov word [bp+014h], strict word 00008h    ; c7 46 14 08 00
-    jmp near 06e5eh                           ; e9 b9 fe
+    jmp near 06e07h                           ; e9 b9 fe
     mov word [bp+014h], ax                    ; 89 46 14
     mov word [bp+016h], ax                    ; 89 46 16
-    jmp short 07018h                          ; eb 6b
+    jmp short 06fc1h                          ; eb 6b
     mov ax, strict word 00002h                ; b8 02 00
     push ax                                   ; 50
@@ -10400,19 +10363,19 @@
     xor bx, bx                                ; 31 db
     xor cx, cx                                ; 31 c9
-    call 06743h                               ; e8 7f f7
+    call 066ech                               ; e8 7f f7
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    jne short 06fd1h                          ; 75 07
+    jne short 06f7ah                          ; 75 07
     mov ax, word [bp-008h]                    ; 8b 46 f8
     test ax, ax                               ; 85 c0
-    je short 06fd9h                           ; 74 08
+    je short 06f82h                           ; 74 08
     mov word [bp+014h], strict word 00009h    ; c7 46 14 09 00
-    jmp near 06e5eh                           ; e9 85 fe
+    jmp near 06e07h                           ; e9 85 fe
     mov word [bp+014h], ax                    ; 89 46 14
     mov word [bp+016h], ax                    ; 89 46 16
-    jmp short 07018h                          ; eb 37
+    jmp short 06fc1h                          ; eb 37
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    jne short 06fedh                          ; 75 06
+    jne short 06f96h                          ; 75 06
     cmp word [bp-008h], strict byte 00000h    ; 83 7e f8 00
-    je short 07018h                           ; 74 2b
+    je short 06fc1h                           ; 74 2b
     mov ax, strict word 00001h                ; b8 01 00
     push ax                                   ; 50
@@ -10430,5 +10393,5 @@
     xor bx, bx                                ; 31 db
     xor cx, cx                                ; 31 c9
-    call 06743h                               ; e8 33 f7
+    call 066ech                               ; e8 33 f7
     xor ax, ax                                ; 31 c0
     mov word [bp+014h], ax                    ; 89 46 14
@@ -10439,21 +10402,21 @@
     mov word [bp+01eh], strict word 00000h    ; c7 46 1e 00 00
     and byte [bp+028h], 0feh                  ; 80 66 28 fe
-    jmp near 06eb8h                           ; e9 85 fe
+    jmp near 06e61h                           ; e9 85 fe
     mov word [bp+028h], bx                    ; 89 5e 28
     mov ax, strict word 00031h                ; b8 31 00
-    call 016aeh                               ; e8 72 a6
+    call 016aeh                               ; e8 c9 a6
     mov dh, al                                ; 88 c6
     mov ax, strict word 00030h                ; b8 30 00
-    call 016aeh                               ; e8 6a a6
+    call 016aeh                               ; e8 c1 a6
     mov dl, al                                ; 88 c2
     mov word [bp+01ch], dx                    ; 89 56 1c
     cmp dx, 03c00h                            ; 81 fa 00 3c
-    jbe short 07054h                          ; 76 05
+    jbe short 06ffdh                          ; 76 05
     mov word [bp+01ch], 03c00h                ; c7 46 1c 00 3c
     mov ax, strict word 00035h                ; b8 35 00
-    call 016aeh                               ; e8 54 a6
+    call 016aeh                               ; e8 ab a6
     mov dh, al                                ; 88 c6
     mov ax, strict word 00034h                ; b8 34 00
-    call 016aeh                               ; e8 4c a6
+    call 016aeh                               ; e8 a3 a6
     mov dl, al                                ; 88 c2
     mov word [bp+018h], dx                    ; 89 56 18
@@ -10461,6 +10424,6 @@
     mov word [bp+020h], ax                    ; 89 46 20
     mov word [bp+014h], dx                    ; 89 56 14
-    jmp near 06eb8h                           ; e9 45 fe
-_inv_op_handler:                             ; 0xf7073 LB 0x18f
+    jmp near 06e61h                           ; e9 45 fe
+_inv_op_handler:                             ; 0xf701c LB 0x18f
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -10471,10 +10434,10 @@
     les bx, [bp+018h]                         ; c4 5e 18
     cmp byte [es:bx], 0f0h                    ; 26 80 3f f0
-    jne short 07089h                          ; 75 06
+    jne short 07032h                          ; 75 06
     inc word [bp+018h]                        ; ff 46 18
-    jmp near 071fbh                           ; e9 72 01
+    jmp near 071a4h                           ; e9 72 01
     cmp word [es:bx], 0050fh                  ; 26 81 3f 0f 05
-    je short 07093h                           ; 74 03
-    jmp near 071f7h                           ; e9 64 01
+    je short 0703ch                           ; 74 03
+    jmp near 071a0h                           ; e9 64 01
     mov si, 00800h                            ; be 00 08
     xor ax, ax                                ; 31 c0
@@ -10505,9 +10468,9 @@
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 070e4h                               ; e2 fa
+    loop 0708dh                               ; e2 fa
     cmp bx, dx                                ; 39 d3
-    jne short 070f2h                          ; 75 04
+    jne short 0709bh                          ; 75 04
     cmp di, ax                                ; 39 c7
-    je short 070f7h                           ; 74 05
+    je short 070a0h                           ; 74 05
     mov word [bp-006h], strict word 00001h    ; c7 46 fa 01 00
     mov es, [bp-008h]                         ; 8e 46 f8
@@ -10520,9 +10483,9 @@
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 0710dh                               ; e2 fa
+    loop 070b6h                               ; e2 fa
     cmp bx, dx                                ; 39 d3
-    jne short 0711bh                          ; 75 04
+    jne short 070c4h                          ; 75 04
     cmp di, ax                                ; 39 c7
-    je short 0711fh                           ; 74 04
+    je short 070c8h                           ; 74 04
     or byte [bp-006h], 002h                   ; 80 4e fa 02
     xor ax, ax                                ; 31 c0
@@ -10574,8 +10537,8 @@
     mov ax, strict word 00008h                ; b8 08 00
     test cx, strict word 00001h               ; f7 c1 01 00
-    je near 071b4h                            ; 0f 84 02 00
+    je near 0715dh                            ; 0f 84 02 00
     mov es, ax                                ; 8e c0
     test cx, strict word 00002h               ; f7 c1 02 00
-    je near 071dch                            ; 0f 84 20 00
+    je near 07185h                            ; 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
@@ -10594,8 +10557,8 @@
     mov ss, [word ss:00020h]                  ; 36 8e 16 20 00
     iret                                      ; cf
-    jmp short 071fbh                          ; eb 04
+    jmp short 071a4h                          ; eb 04
     sti                                       ; fb
     hlt                                       ; f4
-    jmp short 071f8h                          ; eb fd
+    jmp short 071a1h                          ; eb fd
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop di                                    ; 5f
@@ -10603,5 +10566,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-init_rtc_:                                   ; 0xf7202 LB 0x28
+init_rtc_:                                   ; 0xf71ab LB 0x28
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -10609,17 +10572,17 @@
     mov dx, strict word 00026h                ; ba 26 00
     mov ax, strict word 0000ah                ; b8 0a 00
-    call 016c9h                               ; e8 ba a4
+    call 016c9h                               ; e8 11 a5
     mov dx, strict word 00002h                ; ba 02 00
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 016c9h                               ; e8 b1 a4
+    call 016c9h                               ; e8 08 a5
     mov ax, strict word 0000ch                ; b8 0c 00
-    call 016aeh                               ; e8 90 a4
+    call 016aeh                               ; e8 e7 a4
     mov ax, strict word 0000dh                ; b8 0d 00
-    call 016aeh                               ; e8 8a a4
+    call 016aeh                               ; e8 e1 a4
     lea sp, [bp-002h]                         ; 8d 66 fe
     pop dx                                    ; 5a
     pop bp                                    ; 5d
     retn                                      ; c3
-rtc_updating_:                               ; 0xf722a LB 0x21
+rtc_updating_:                               ; 0xf71d3 LB 0x21
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -10627,11 +10590,11 @@
     mov dx, 061a8h                            ; ba a8 61
     dec dx                                    ; 4a
-    je short 07242h                           ; 74 0e
+    je short 071ebh                           ; 74 0e
     mov ax, strict word 0000ah                ; b8 0a 00
-    call 016aeh                               ; e8 74 a4
+    call 016aeh                               ; e8 cb a4
     test AL, strict byte 080h                 ; a8 80
-    jne short 07231h                          ; 75 f3
+    jne short 071dah                          ; 75 f3
     xor ax, ax                                ; 31 c0
-    jmp short 07245h                          ; eb 03
+    jmp short 071eeh                          ; eb 03
     mov ax, strict word 00001h                ; b8 01 00
     lea sp, [bp-002h]                         ; 8d 66 fe
@@ -10639,5 +10602,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-_int70_function:                             ; 0xf724b LB 0xbf
+_int70_function:                             ; 0xf71f4 LB 0xbf
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -10645,52 +10608,52 @@
     push ax                                   ; 50
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 016aeh                               ; e8 58 a4
+    call 016aeh                               ; e8 af a4
     mov bl, al                                ; 88 c3
     mov byte [bp-004h], al                    ; 88 46 fc
     mov ax, strict word 0000ch                ; b8 0c 00
-    call 016aeh                               ; e8 4d a4
+    call 016aeh                               ; e8 a4 a4
     mov dl, al                                ; 88 c2
     test bl, 060h                             ; f6 c3 60
-    jne short 0726bh                          ; 75 03
-    jmp near 072f1h                           ; e9 86 00
+    jne short 07214h                          ; 75 03
+    jmp near 0729ah                           ; e9 86 00
     test AL, strict byte 020h                 ; a8 20
-    je short 07273h                           ; 74 04
+    je short 0721ch                           ; 74 04
     sti                                       ; fb
     int 04ah                                  ; cd 4a
     cli                                       ; fa
     test dl, 040h                             ; f6 c2 40
-    je short 072dbh                           ; 74 63
+    je short 07284h                           ; 74 63
     mov dx, 000a0h                            ; ba a0 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01652h                               ; e8 d1 a3
+    call 01652h                               ; e8 28 a4
     test al, al                               ; 84 c0
-    je short 072f1h                           ; 74 6c
+    je short 0729ah                           ; 74 6c
     mov dx, 0009ch                            ; ba 9c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0168ah                               ; e8 fc a3
+    call 0168ah                               ; e8 53 a4
     test dx, dx                               ; 85 d2
-    jne short 072ddh                          ; 75 4b
+    jne short 07286h                          ; 75 4b
     cmp ax, 003d1h                            ; 3d d1 03
-    jnc short 072ddh                          ; 73 46
+    jnc short 07286h                          ; 73 46
     mov dx, 00098h                            ; ba 98 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 ce a3
+    call 0166eh                               ; e8 25 a4
     mov si, ax                                ; 89 c6
     mov dx, 0009ah                            ; ba 9a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 c3 a3
+    call 0166eh                               ; e8 1a 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 a8 a3
+    call 01660h                               ; e8 ff a3
     mov dl, byte [bp-004h]                    ; 8a 56 fc
     and dl, 037h                              ; 80 e2 37
     xor dh, dh                                ; 30 f6
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 016c9h                               ; e8 03 a4
+    call 016c9h                               ; e8 5a a4
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 01652h                               ; e8 85 a3
+    call 01652h                               ; e8 dc a3
     mov bl, al                                ; 88 c3
     or bl, 080h                               ; 80 cb 80
@@ -10698,6 +10661,6 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 01660h                               ; e8 85 a3
-    jmp short 072f1h                          ; eb 14
+    call 01660h                               ; e8 dc a3
+    jmp short 0729ah                          ; eb 14
     mov bx, ax                                ; 89 c3
     add bx, 0fc2fh                            ; 81 c3 2f fc
@@ -10706,19 +10669,20 @@
     mov dx, 0009ch                            ; ba 9c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0169ch                               ; e8 ab a3
-    call 0e030h                               ; e8 3c 6d
+    call 0169ch                               ; e8 02 a4
+    call 0e030h                               ; e8 93 6d
     lea sp, [bp-002h]                         ; 8d 66 fe
     pop si                                    ; 5e
     pop bp                                    ; 5d
     retn                                      ; c3
-    and byte [bp+di+047h], dh                 ; 20 73 47
-    jnc short 0736bh                          ; 73 6c
-    jnc short 072a9h                          ; 73 a8
-    jnc short 072fdh                          ; 73 fa
-    jnc short 07336h                          ; 73 31
-    je short 0737fh                           ; 74 78
-    je short 072dch                           ; 74 d3
+    leave                                     ; c9
+    jc short 07296h                           ; 72 f0
+    jc short 072bdh                           ; 72 15
+    jnc short 072fbh                          ; 73 51
+    jnc short 0724fh                          ; 73 a3
+    jnc short 07288h                          ; 73 da
+    jnc short 072d1h                          ; 73 21
+    je short 0732eh                           ; 74 7c
     db  074h
-_int1a_function:                             ; 0xf730a LB 0x1d9
+_int1a_function:                             ; 0xf72b3 LB 0x1d9
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -10726,9 +10690,9 @@
     mov al, byte [bp+013h]                    ; 8a 46 13
     cmp AL, strict byte 007h                  ; 3c 07
-    jnbe short 07373h                         ; 77 5e
+    jnbe short 0731ch                         ; 77 5e
     mov bl, al                                ; 88 c3
     xor bh, bh                                ; 30 ff
     sal bx, 1                                 ; d1 e3
-    jmp word [cs:bx+072fah]                   ; 2e ff a7 fa 72
+    jmp word [cs:bx+072a3h]                   ; 2e ff a7 a3 72
     cli                                       ; fa
     mov bx, 0046eh                            ; bb 6e 04
@@ -10745,5 +10709,5 @@
     mov byte [es:bx], 000h                    ; 26 c6 07 00
     sti                                       ; fb
-    jmp short 07373h                          ; eb 2c
+    jmp short 0731ch                          ; eb 2c
     cli                                       ; fa
     mov bx, 0046eh                            ; bb 6e 04
@@ -10759,21 +10723,21 @@
     sti                                       ; fb
     mov byte [bp+013h], 000h                  ; c6 46 13 00
-    jmp short 07373h                          ; eb 07
-    call 0722ah                               ; e8 bb fe
+    jmp short 0731ch                          ; eb 07
+    call 071d3h                               ; e8 bb fe
     test ax, ax                               ; 85 c0
-    je short 07376h                           ; 74 03
-    jmp near 073a4h                           ; e9 2e 00
+    je short 0731fh                           ; 74 03
+    jmp near 0734dh                           ; e9 2e 00
     xor ax, ax                                ; 31 c0
-    call 016aeh                               ; e8 33 a3
+    call 016aeh                               ; e8 8a a3
     mov byte [bp+00fh], al                    ; 88 46 0f
     mov ax, strict word 00002h                ; b8 02 00
-    call 016aeh                               ; e8 2a a3
+    call 016aeh                               ; e8 81 a3
     mov byte [bp+010h], al                    ; 88 46 10
     mov ax, strict word 00004h                ; b8 04 00
-    call 016aeh                               ; e8 21 a3
+    call 016aeh                               ; e8 78 a3
     mov dl, al                                ; 88 c2
     mov byte [bp+011h], al                    ; 88 46 11
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 016aeh                               ; e8 16 a3
+    call 016aeh                               ; e8 6d a3
     and AL, strict byte 001h                  ; 24 01
     mov byte [bp+00eh], al                    ; 88 46 0e
@@ -10783,22 +10747,22 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-    call 0722ah                               ; e8 7f fe
+    call 071d3h                               ; e8 7f fe
     test ax, ax                               ; 85 c0
-    je short 073b2h                           ; 74 03
-    call 07202h                               ; e8 50 fe
+    je short 0735bh                           ; 74 03
+    call 071abh                               ; e8 50 fe
     mov dl, byte [bp+00fh]                    ; 8a 56 0f
     xor dh, dh                                ; 30 f6
     xor ax, ax                                ; 31 c0
-    call 016c9h                               ; e8 0d a3
+    call 016c9h                               ; e8 64 a3
     mov dl, byte [bp+010h]                    ; 8a 56 10
     xor dh, dh                                ; 30 f6
     mov ax, strict word 00002h                ; b8 02 00
-    call 016c9h                               ; e8 02 a3
+    call 016c9h                               ; e8 59 a3
     mov dl, byte [bp+011h]                    ; 8a 56 11
     xor dh, dh                                ; 30 f6
     mov ax, strict word 00004h                ; b8 04 00
-    call 016c9h                               ; e8 f7 a2
+    call 016c9h                               ; e8 4e a3
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 016aeh                               ; e8 d6 a2
+    call 016aeh                               ; e8 2d a3
     mov bl, al                                ; 88 c3
     and bl, 060h                              ; 80 e3 60
@@ -10810,76 +10774,76 @@
     xor dh, dh                                ; 30 f6
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 016c9h                               ; e8 d8 a2
+    call 016c9h                               ; e8 2f a3
     mov byte [bp+013h], 000h                  ; c6 46 13 00
     mov byte [bp+012h], bl                    ; 88 5e 12
-    jmp short 073a4h                          ; eb aa
+    jmp short 0734dh                          ; eb aa
     mov byte [bp+013h], 000h                  ; c6 46 13 00
-    call 0722ah                               ; e8 29 fe
+    call 071d3h                               ; e8 29 fe
     test ax, ax                               ; 85 c0
-    je short 07407h                           ; 74 02
-    jmp short 073a4h                          ; eb 9d
+    je short 073b0h                           ; 74 02
+    jmp short 0734dh                          ; eb 9d
     mov ax, strict word 00009h                ; b8 09 00
-    call 016aeh                               ; e8 a1 a2
+    call 016aeh                               ; e8 f8 a2
     mov byte [bp+010h], al                    ; 88 46 10
     mov ax, strict word 00008h                ; b8 08 00
-    call 016aeh                               ; e8 98 a2
+    call 016aeh                               ; e8 ef a2
     mov byte [bp+00fh], al                    ; 88 46 0f
     mov ax, strict word 00007h                ; b8 07 00
-    call 016aeh                               ; e8 8f a2
+    call 016aeh                               ; e8 e6 a2
     mov byte [bp+00eh], al                    ; 88 46 0e
     mov ax, strict word 00032h                ; b8 32 00
-    call 016aeh                               ; e8 86 a2
+    call 016aeh                               ; e8 dd a2
     mov byte [bp+011h], al                    ; 88 46 11
     mov byte [bp+012h], al                    ; 88 46 12
-    jmp near 073a4h                           ; e9 73 ff
-    call 0722ah                               ; e8 f6 fd
+    jmp near 0734dh                           ; e9 73 ff
+    call 071d3h                               ; e8 f6 fd
     test ax, ax                               ; 85 c0
-    je short 0743eh                           ; 74 06
-    call 07202h                               ; e8 c7 fd
-    jmp near 073a4h                           ; e9 66 ff
+    je short 073e7h                           ; 74 06
+    call 071abh                               ; e8 c7 fd
+    jmp near 0734dh                           ; e9 66 ff
     mov dl, byte [bp+010h]                    ; 8a 56 10
     xor dh, dh                                ; 30 f6
     mov ax, strict word 00009h                ; b8 09 00
-    call 016c9h                               ; e8 80 a2
+    call 016c9h                               ; e8 d7 a2
     mov dl, byte [bp+00fh]                    ; 8a 56 0f
     xor dh, dh                                ; 30 f6
     mov ax, strict word 00008h                ; b8 08 00
-    call 016c9h                               ; e8 75 a2
+    call 016c9h                               ; e8 cc a2
     mov dl, byte [bp+00eh]                    ; 8a 56 0e
     xor dh, dh                                ; 30 f6
     mov ax, strict word 00007h                ; b8 07 00
-    call 016c9h                               ; e8 6a a2
+    call 016c9h                               ; e8 c1 a2
     mov dl, byte [bp+011h]                    ; 8a 56 11
     xor dh, dh                                ; 30 f6
     mov ax, strict word 00032h                ; b8 32 00
-    call 016c9h                               ; e8 5f a2
+    call 016c9h                               ; e8 b6 a2
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 016aeh                               ; e8 3e a2
+    call 016aeh                               ; e8 95 a2
     mov bl, al                                ; 88 c3
     and bl, 07fh                              ; 80 e3 7f
-    jmp near 073e7h                           ; e9 6f ff
+    jmp near 07390h                           ; e9 6f ff
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 016aeh                               ; e8 30 a2
+    call 016aeh                               ; e8 87 a2
     mov bl, al                                ; 88 c3
     mov word [bp+012h], strict word 00000h    ; c7 46 12 00 00
     test AL, strict byte 020h                 ; a8 20
-    je short 0748ch                           ; 74 03
-    jmp near 073a4h                           ; e9 18 ff
-    call 0722ah                               ; e8 9b fd
+    je short 07435h                           ; 74 03
+    jmp near 0734dh                           ; e9 18 ff
+    call 071d3h                               ; e8 9b fd
     test ax, ax                               ; 85 c0
-    je short 07496h                           ; 74 03
-    call 07202h                               ; e8 6c fd
+    je short 0743fh                           ; 74 03
+    call 071abh                               ; e8 6c fd
     mov dl, byte [bp+00fh]                    ; 8a 56 0f
     xor dh, dh                                ; 30 f6
     mov ax, strict word 00001h                ; b8 01 00
-    call 016c9h                               ; e8 28 a2
+    call 016c9h                               ; e8 7f a2
     mov dl, byte [bp+010h]                    ; 8a 56 10
     xor dh, dh                                ; 30 f6
     mov ax, strict word 00003h                ; b8 03 00
-    call 016c9h                               ; e8 1d a2
+    call 016c9h                               ; e8 74 a2
     mov dl, byte [bp+011h]                    ; 8a 56 11
     xor dh, dh                                ; 30 f6
     mov ax, strict word 00005h                ; b8 05 00
-    call 016c9h                               ; e8 12 a2
+    call 016c9h                               ; e8 69 a2
     mov dx, 000a1h                            ; ba a1 00
     in AL, DX                                 ; ec
@@ -10893,13 +10857,13 @@
     xor dh, dh                                ; 30 f6
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 016c9h                               ; e8 f9 a1
-    jmp near 073a4h                           ; e9 d1 fe
+    call 016c9h                               ; e8 50 a2
+    jmp near 0734dh                           ; e9 d1 fe
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 016aeh                               ; e8 d5 a1
+    call 016aeh                               ; e8 2c a2
     mov bl, al                                ; 88 c3
     mov dl, al                                ; 88 c2
     and dl, 057h                              ; 80 e2 57
-    jmp near 073e9h                           ; e9 06 ff
-send_to_mouse_ctrl_:                         ; 0xf74e3 LB 0x38
+    jmp near 07392h                           ; e9 06 ff
+send_to_mouse_ctrl_:                         ; 0xf748c LB 0x38
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -10912,5 +10876,5 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 002h                 ; a8 02
-    je short 07506h                           ; 74 12
+    je short 074afh                           ; 74 12
     mov ax, 008eeh                            ; b8 ee 08
     push ax                                   ; 50
@@ -10919,5 +10883,5 @@
     mov ax, strict word 00007h                ; b8 07 00
     push ax                                   ; 50
-    call 01976h                               ; e8 73 a4
+    call 01976h                               ; e8 ca a4
     add sp, strict byte 00006h                ; 83 c4 06
     mov AL, strict byte 0d4h                  ; b0 d4
@@ -10933,5 +10897,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-get_mouse_data_:                             ; 0xf751b LB 0x5d
+get_mouse_data_:                             ; 0xf74c4 LB 0x5d
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -10948,7 +10912,7 @@
     and ax, strict word 00021h                ; 25 21 00
     cmp ax, strict word 00021h                ; 3d 21 00
-    je short 0755eh                           ; 74 28
+    je short 07507h                           ; 74 28
     test cx, cx                               ; 85 c9
-    je short 0755eh                           ; 74 24
+    je short 07507h                           ; 74 24
     mov dx, strict word 00061h                ; ba 61 00
     in AL, DX                                 ; ec
@@ -10967,11 +10931,11 @@
     xor ah, ah                                ; 30 e4
     cmp dx, ax                                ; 39 c2
-    je short 07545h                           ; 74 ea
+    je short 074eeh                           ; 74 ea
     dec cx                                    ; 49
-    jmp short 07528h                          ; eb ca
+    jmp short 074d1h                          ; eb ca
     test cx, cx                               ; 85 c9
-    jne short 07566h                          ; 75 04
+    jne short 0750fh                          ; 75 04
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 07571h                          ; eb 0b
+    jmp short 0751ah                          ; eb 0b
     mov dx, strict word 00060h                ; ba 60 00
     in AL, DX                                 ; ec
@@ -10985,5 +10949,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-set_kbd_command_byte_:                       ; 0xf7578 LB 0x36
+set_kbd_command_byte_:                       ; 0xf7521 LB 0x36
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -10996,5 +10960,5 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 002h                 ; a8 02
-    je short 0759bh                           ; 74 12
+    je short 07544h                           ; 74 12
     mov ax, 008f8h                            ; b8 f8 08
     push ax                                   ; 50
@@ -11003,5 +10967,5 @@
     mov ax, strict word 00007h                ; b8 07 00
     push ax                                   ; 50
-    call 01976h                               ; e8 de a3
+    call 01976h                               ; e8 35 a4
     add sp, strict byte 00006h                ; 83 c4 06
     mov AL, strict byte 060h                  ; b0 60
@@ -11016,5 +10980,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-_int74_function:                             ; 0xf75ae LB 0xd2
+_int74_function:                             ; 0xf7557 LB 0xd2
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -11022,5 +10986,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 b1 a0
+    call 0166eh                               ; e8 08 a1
     mov cx, ax                                ; 89 c1
     mov word [bp+004h], strict word 00000h    ; c7 46 04 00 00
@@ -11031,5 +10995,5 @@
     and AL, strict byte 021h                  ; 24 21
     cmp AL, strict byte 021h                  ; 3c 21
-    jne short 075f2h                          ; 75 22
+    jne short 0759bh                          ; 75 22
     mov dx, strict word 00060h                ; ba 60 00
     in AL, DX                                 ; ec
@@ -11039,13 +11003,13 @@
     mov dx, strict word 00026h                ; ba 26 00
     mov ax, cx                                ; 89 c8
-    call 01652h                               ; e8 72 a0
+    call 01652h                               ; e8 c9 a0
     mov byte [bp-002h], al                    ; 88 46 fe
     mov dx, strict word 00027h                ; ba 27 00
     mov ax, cx                                ; 89 c8
-    call 01652h                               ; e8 67 a0
+    call 01652h                               ; e8 be a0
     mov byte [bp-006h], al                    ; 88 46 fa
     test AL, strict byte 080h                 ; a8 80
-    jne short 075f5h                          ; 75 03
-    jmp near 0766ch                           ; e9 77 00
+    jne short 0759eh                          ; 75 03
+    jmp near 07615h                           ; e9 77 00
     mov al, byte [bp-006h]                    ; 8a 46 fa
     and AL, strict byte 007h                  ; 24 07
@@ -11061,21 +11025,21 @@
     add dx, strict byte 00028h                ; 83 c2 28
     mov ax, cx                                ; 89 c8
-    call 01660h                               ; e8 48 a0
+    call 01660h                               ; e8 9f a0
     mov al, byte [bp-008h]                    ; 8a 46 f8
     cmp al, byte [bp-004h]                    ; 3a 46 fc
-    jc short 0765ch                           ; 72 3c
+    jc short 07605h                           ; 72 3c
     mov dx, strict word 00028h                ; ba 28 00
     mov ax, cx                                ; 89 c8
-    call 01652h                               ; e8 2a a0
+    call 01652h                               ; e8 81 a0
     xor ah, ah                                ; 30 e4
     mov word [bp+00ch], ax                    ; 89 46 0c
     mov dx, strict word 00029h                ; ba 29 00
     mov ax, cx                                ; 89 c8
-    call 01652h                               ; e8 1d a0
+    call 01652h                               ; e8 74 a0
     xor ah, ah                                ; 30 e4
     mov word [bp+00ah], ax                    ; 89 46 0a
     mov dx, strict word 0002ah                ; ba 2a 00
     mov ax, cx                                ; 89 c8
-    call 01652h                               ; e8 10 a0
+    call 01652h                               ; e8 67 a0
     xor ah, ah                                ; 30 e4
     mov word [bp+008h], ax                    ; 89 46 08
@@ -11084,7 +11048,7 @@
     mov byte [bp-002h], ah                    ; 88 66 fe
     test byte [bp-006h], 080h                 ; f6 46 fa 80
-    je short 0765fh                           ; 74 0a
+    je short 07608h                           ; 74 0a
     mov word [bp+004h], strict word 00001h    ; c7 46 04 01 00
-    jmp short 0765fh                          ; eb 03
+    jmp short 07608h                          ; eb 03
     inc byte [bp-002h]                        ; fe 46 fe
     mov bl, byte [bp-002h]                    ; 8a 5e fe
@@ -11092,17 +11056,17 @@
     mov dx, strict word 00026h                ; ba 26 00
     mov ax, cx                                ; 89 c8
-    call 01660h                               ; e8 f4 9f
+    call 01660h                               ; e8 4b a0
     mov sp, bp                                ; 89 ec
     pop bp                                    ; 5d
     retn                                      ; c3
-    retn 03e76h                               ; c2 76 3e
-    jnbe short 07633h                         ; 77 be
-    jnbe short 076cah                         ; 77 53
-    js short 0763eh                           ; 78 c5
-    js short 07684h                           ; 78 09
-    jnbe short 0766ah                         ; 77 ed
-    js short 07639h                           ; 78 ba
+    imul si, word [bp-019h], strict byte 00076h ; 6b 76 e7 76
+    db  067h, 077h, 0fch
+    ; jnbe short 0761ch                         ; 67 77 fc
+    jnbe short 07690h                         ; 77 6e
+    js short 075d6h                           ; 78 b2
+    jbe short 075bch                          ; 76 96
+    js short 0768bh                           ; 78 63
     db  079h
-_int15_function_mouse:                       ; 0xf7680 LB 0x3a0
+_int15_function_mouse:                       ; 0xf7629 LB 0x3a0
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -11111,60 +11075,60 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 de 9f
+    call 0166eh                               ; e8 35 a0
     mov cx, ax                                ; 89 c1
     cmp byte [bp+012h], 007h                  ; 80 7e 12 07
-    jbe short 076a3h                          ; 76 0b
+    jbe short 0764ch                          ; 76 0b
     or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     mov byte [bp+013h], 001h                  ; c6 46 13 01
-    jmp near 07a1ah                           ; e9 77 03
+    jmp near 079c3h                           ; e9 77 03
     mov ax, strict word 00065h                ; b8 65 00
-    call 07578h                               ; e8 cf fe
+    call 07521h                               ; e8 cf fe
     and word [bp+018h], strict byte 0fffeh    ; 83 66 18 fe
     mov byte [bp+013h], 000h                  ; c6 46 13 00
     mov bl, byte [bp+012h]                    ; 8a 5e 12
     cmp bl, 007h                              ; 80 fb 07
-    jnbe short 07717h                         ; 77 5e
+    jnbe short 076c0h                         ; 77 5e
     xor bh, bh                                ; 30 ff
     sal bx, 1                                 ; d1 e3
-    jmp word [cs:bx+07670h]                   ; 2e ff a7 70 76
+    jmp word [cs:bx+07619h]                   ; 2e ff a7 19 76
     cmp byte [bp+00dh], 001h                  ; 80 7e 0d 01
-    jnbe short 0771ah                         ; 77 52
+    jnbe short 076c3h                         ; 77 52
     mov dx, strict word 00027h                ; ba 27 00
     mov ax, cx                                ; 89 c8
-    call 01652h                               ; e8 82 9f
+    call 01652h                               ; e8 d9 9f
     test AL, strict byte 080h                 ; a8 80
-    jne short 076dfh                          ; 75 0b
+    jne short 07688h                          ; 75 0b
     or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     mov byte [bp+013h], 005h                  ; c6 46 13 05
-    jmp near 07a14h                           ; e9 35 03
+    jmp near 079bdh                           ; e9 35 03
     cmp byte [bp+00dh], 000h                  ; 80 7e 0d 00
-    jne short 076e9h                          ; 75 04
+    jne short 07692h                          ; 75 04
     mov AL, strict byte 0f5h                  ; b0 f5
-    jmp short 076ebh                          ; eb 02
+    jmp short 07694h                          ; eb 02
     mov AL, strict byte 0f4h                  ; b0 f4
     xor ah, ah                                ; 30 e4
-    call 074e3h                               ; e8 f3 fd
+    call 0748ch                               ; e8 f3 fd
     test al, al                               ; 84 c0
-    jne short 0771dh                          ; 75 29
+    jne short 076c6h                          ; 75 29
     mov dx, ss                                ; 8c d2
     lea ax, [bp-006h]                         ; 8d 46 fa
-    call 0751bh                               ; e8 1f fe
+    call 074c4h                               ; e8 1f fe
     test al, al                               ; 84 c0
-    je short 07706h                           ; 74 06
+    je short 076afh                           ; 74 06
     cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
-    jne short 0771dh                          ; 75 17
-    jmp near 07a14h                           ; e9 0b 03
+    jne short 076c6h                          ; 75 17
+    jmp near 079bdh                           ; e9 0b 03
     mov al, byte [bp+00dh]                    ; 8a 46 0d
     cmp AL, strict byte 001h                  ; 3c 01
-    jc short 07714h                           ; 72 04
+    jc short 076bdh                           ; 72 04
     cmp AL, strict byte 008h                  ; 3c 08
-    jbe short 07720h                          ; 76 0c
-    jmp near 078bbh                           ; e9 a4 01
-    jmp near 079feh                           ; e9 e4 02
-    jmp near 07a0ch                           ; e9 ef 02
-    jmp near 07992h                           ; e9 72 02
+    jbe short 076c9h                          ; 76 0c
+    jmp near 07864h                           ; e9 a4 01
+    jmp near 079a7h                           ; e9 e4 02
+    jmp near 079b5h                           ; e9 ef 02
+    jmp near 0793bh                           ; e9 72 02
     mov dx, strict word 00027h                ; ba 27 00
     mov ax, cx                                ; 89 c8
-    call 01652h                               ; e8 2a 9f
+    call 01652h                               ; e8 81 9f
     mov ah, byte [bp+00dh]                    ; 8a 66 0d
     db  0feh, 0cch
@@ -11176,8 +11140,8 @@
     mov dx, strict word 00027h                ; ba 27 00
     mov ax, cx                                ; 89 c8
-    call 01660h                               ; e8 22 9f
+    call 01660h                               ; e8 79 9f
     mov dx, strict word 00026h                ; ba 26 00
     mov ax, cx                                ; 89 c8
-    call 01652h                               ; e8 0c 9f
+    call 01652h                               ; e8 63 9f
     mov bl, al                                ; 88 c3
     and bl, 0f8h                              ; 80 e3 f8
@@ -11185,20 +11149,20 @@
     mov dx, strict word 00026h                ; ba 26 00
     mov ax, cx                                ; 89 c8
-    call 01660h                               ; e8 0b 9f
+    call 01660h                               ; e8 62 9f
     mov ax, 000ffh                            ; b8 ff 00
-    call 074e3h                               ; e8 88 fd
+    call 0748ch                               ; e8 88 fd
     test al, al                               ; 84 c0
-    jne short 0771dh                          ; 75 be
+    jne short 076c6h                          ; 75 be
     mov dx, ss                                ; 8c d2
     lea ax, [bp-008h]                         ; 8d 46 f8
-    call 0751bh                               ; e8 b4 fd
+    call 074c4h                               ; e8 b4 fd
     mov cl, al                                ; 88 c1
     cmp byte [bp-008h], 0feh                  ; 80 7e f8 fe
-    jne short 07779h                          ; 75 0a
+    jne short 07722h                          ; 75 0a
     or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     mov byte [bp+013h], 004h                  ; c6 46 13 04
-    jmp short 07706h                          ; eb 8d
+    jmp short 076afh                          ; eb 8d
     cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
-    je short 07793h                           ; 74 14
+    je short 0773ch                           ; 74 14
     mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
@@ -11208,89 +11172,89 @@
     mov ax, strict word 00007h                ; b8 07 00
     push ax                                   ; 50
-    call 01976h                               ; e8 e6 a1
+    call 01976h                               ; e8 3d a2
     add sp, strict byte 00006h                ; 83 c4 06
     test cl, cl                               ; 84 c9
-    jne short 0771dh                          ; 75 86
+    jne short 076c6h                          ; 75 86
     mov dx, ss                                ; 8c d2
     lea ax, [bp-006h]                         ; 8d 46 fa
-    call 0751bh                               ; e8 7c fd
+    call 074c4h                               ; e8 7c fd
     test al, al                               ; 84 c0
-    jne short 077f9h                          ; 75 56
+    jne short 077a2h                          ; 75 56
     mov dx, ss                                ; 8c d2
     lea ax, [bp-004h]                         ; 8d 46 fc
-    call 0751bh                               ; e8 70 fd
+    call 074c4h                               ; e8 70 fd
     test al, al                               ; 84 c0
-    jne short 077f9h                          ; 75 4a
+    jne short 077a2h                          ; 75 4a
     mov al, byte [bp-006h]                    ; 8a 46 fa
     mov byte [bp+00ch], al                    ; 88 46 0c
     mov al, byte [bp-004h]                    ; 8a 46 fc
     mov byte [bp+00dh], al                    ; 88 46 0d
-    jmp near 07a14h                           ; e9 56 02
+    jmp near 079bdh                           ; e9 56 02
     mov al, byte [bp+00dh]                    ; 8a 46 0d
     cmp AL, strict byte 003h                  ; 3c 03
-    jc short 077d5h                           ; 72 10
-    jbe short 077f3h                          ; 76 2c
+    jc short 0777eh                           ; 72 10
+    jbe short 0779ch                          ; 76 2c
     cmp AL, strict byte 006h                  ; 3c 06
-    je short 07808h                           ; 74 3d
+    je short 077b1h                           ; 74 3d
     cmp AL, strict byte 005h                  ; 3c 05
-    je short 07802h                           ; 74 33
+    je short 077abh                           ; 74 33
     cmp AL, strict byte 004h                  ; 3c 04
-    je short 077fch                           ; 74 29
-    jmp short 0780eh                          ; eb 39
+    je short 077a5h                           ; 74 29
+    jmp short 077b7h                          ; eb 39
     cmp AL, strict byte 002h                  ; 3c 02
-    je short 077edh                           ; 74 14
+    je short 07796h                           ; 74 14
     cmp AL, strict byte 001h                  ; 3c 01
-    je short 077e7h                           ; 74 0a
+    je short 07790h                           ; 74 0a
     test al, al                               ; 84 c0
-    jne short 0780eh                          ; 75 2d
+    jne short 077b7h                          ; 75 2d
     mov byte [bp-006h], 00ah                  ; c6 46 fa 0a
-    jmp short 07812h                          ; eb 2b
+    jmp short 077bbh                          ; eb 2b
     mov byte [bp-006h], 014h                  ; c6 46 fa 14
-    jmp short 07812h                          ; eb 25
+    jmp short 077bbh                          ; eb 25
     mov byte [bp-006h], 028h                  ; c6 46 fa 28
-    jmp short 07812h                          ; eb 1f
+    jmp short 077bbh                          ; eb 1f
     mov byte [bp-006h], 03ch                  ; c6 46 fa 3c
-    jmp short 07812h                          ; eb 19
-    jmp near 07992h                           ; e9 96 01
+    jmp short 077bbh                          ; eb 19
+    jmp near 0793bh                           ; e9 96 01
     mov byte [bp-006h], 050h                  ; c6 46 fa 50
-    jmp short 07812h                          ; eb 10
+    jmp short 077bbh                          ; eb 10
     mov byte [bp-006h], 064h                  ; c6 46 fa 64
-    jmp short 07812h                          ; eb 0a
+    jmp short 077bbh                          ; eb 0a
     mov byte [bp-006h], 0c8h                  ; c6 46 fa c8
-    jmp short 07812h                          ; eb 04
+    jmp short 077bbh                          ; eb 04
     mov byte [bp-006h], 000h                  ; c6 46 fa 00
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    jbe short 07848h                          ; 76 30
+    jbe short 077f1h                          ; 76 30
     mov ax, 000f3h                            ; b8 f3 00
-    call 074e3h                               ; e8 c5 fc
+    call 0748ch                               ; e8 c5 fc
     test al, al                               ; 84 c0
-    jne short 0783dh                          ; 75 1b
+    jne short 077e6h                          ; 75 1b
     mov dx, ss                                ; 8c d2
     lea ax, [bp-004h]                         ; 8d 46 fc
-    call 0751bh                               ; e8 f1 fc
+    call 074c4h                               ; e8 f1 fc
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
-    call 074e3h                               ; e8 b1 fc
+    call 0748ch                               ; e8 b1 fc
     mov dx, ss                                ; 8c d2
     lea ax, [bp-004h]                         ; 8d 46 fc
-    call 0751bh                               ; e8 e1 fc
-    jmp near 07a14h                           ; e9 d7 01
+    call 074c4h                               ; e8 e1 fc
+    jmp near 079bdh                           ; e9 d7 01
     or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     mov byte [bp+013h], 003h                  ; c6 46 13 03
-    jmp near 07a14h                           ; e9 cc 01
+    jmp near 079bdh                           ; e9 cc 01
     or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     mov byte [bp+013h], 002h                  ; c6 46 13 02
-    jmp near 07a14h                           ; e9 c1 01
+    jmp near 079bdh                           ; e9 c1 01
     cmp byte [bp+00dh], 004h                  ; 80 7e 0d 04
-    jnc short 078bbh                          ; 73 62
+    jnc short 07864h                          ; 73 62
     mov ax, 000e8h                            ; b8 e8 00
-    call 074e3h                               ; e8 84 fc
+    call 0748ch                               ; e8 84 fc
     test al, al                               ; 84 c0
-    jne short 078b1h                          ; 75 4e
+    jne short 0785ah                          ; 75 4e
     mov dx, ss                                ; 8c d2
     lea ax, [bp-006h]                         ; 8d 46 fa
-    call 0751bh                               ; e8 b0 fc
+    call 074c4h                               ; e8 b0 fc
     cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
-    je short 07885h                           ; 74 14
+    je short 0782eh                           ; 74 14
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
@@ -11300,14 +11264,14 @@
     mov ax, strict word 00007h                ; b8 07 00
     push ax                                   ; 50
-    call 01976h                               ; e8 f4 a0
+    call 01976h                               ; e8 4b a1
     add sp, strict byte 00006h                ; 83 c4 06
     mov al, byte [bp+00dh]                    ; 8a 46 0d
     xor ah, ah                                ; 30 e4
-    call 074e3h                               ; e8 56 fc
+    call 0748ch                               ; e8 56 fc
     mov dx, ss                                ; 8c d2
     lea ax, [bp-006h]                         ; 8d 46 fa
-    call 0751bh                               ; e8 86 fc
+    call 074c4h                               ; e8 86 fc
     cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
-    je short 078eah                           ; 74 4f
+    je short 07893h                           ; 74 4f
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
@@ -11317,44 +11281,44 @@
     mov ax, strict word 00007h                ; b8 07 00
     push ax                                   ; 50
-    call 01976h                               ; e8 ca a0
+    call 01976h                               ; e8 21 a1
     add sp, strict byte 00006h                ; 83 c4 06
-    jmp short 078eah                          ; eb 39
+    jmp short 07893h                          ; eb 39
     or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     mov byte [bp+013h], 003h                  ; c6 46 13 03
-    jmp short 078eah                          ; eb 2f
+    jmp short 07893h                          ; eb 2f
     or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     mov byte [bp+013h], 002h                  ; c6 46 13 02
-    jmp short 078eah                          ; eb 25
+    jmp short 07893h                          ; eb 25
     mov ax, 000f2h                            ; b8 f2 00
-    call 074e3h                               ; e8 18 fc
+    call 0748ch                               ; e8 18 fc
     test al, al                               ; 84 c0
-    jne short 078e2h                          ; 75 13
+    jne short 0788bh                          ; 75 13
     mov dx, ss                                ; 8c d2
     lea ax, [bp-006h]                         ; 8d 46 fa
-    call 0751bh                               ; e8 44 fc
+    call 074c4h                               ; e8 44 fc
     mov dx, ss                                ; 8c d2
     lea ax, [bp-004h]                         ; 8d 46 fc
-    call 0751bh                               ; e8 3c fc
-    jmp near 077b5h                           ; e9 d3 fe
+    call 074c4h                               ; e8 3c fc
+    jmp near 0775eh                           ; e9 d3 fe
     or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     mov byte [bp+013h], 003h                  ; c6 46 13 03
-    jmp near 07a14h                           ; e9 27 01
+    jmp near 079bdh                           ; e9 27 01
     mov al, byte [bp+00dh]                    ; 8a 46 0d
     test al, al                               ; 84 c0
-    jbe short 078fdh                          ; 76 09
+    jbe short 078a6h                          ; 76 09
     cmp AL, strict byte 002h                  ; 3c 02
-    jbe short 078fbh                          ; 76 03
-    jmp near 0799ch                           ; e9 a1 00
-    jmp short 07967h                          ; eb 6a
+    jbe short 078a4h                          ; 76 03
+    jmp near 07945h                           ; e9 a1 00
+    jmp short 07910h                          ; eb 6a
     mov ax, 000e9h                            ; b8 e9 00
-    call 074e3h                               ; e8 e0 fb
+    call 0748ch                               ; e8 e0 fb
     test al, al                               ; 84 c0
-    jne short 07970h                          ; 75 69
+    jne short 07919h                          ; 75 69
     mov dx, ss                                ; 8c d2
     lea ax, [bp-006h]                         ; 8d 46 fa
-    call 0751bh                               ; e8 0c fc
+    call 074c4h                               ; e8 0c fc
     mov cl, al                                ; 88 c1
     cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
-    je short 0792bh                           ; 74 14
+    je short 078d4h                           ; 74 14
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
@@ -11364,23 +11328,23 @@
     mov ax, strict word 00007h                ; b8 07 00
     push ax                                   ; 50
-    call 01976h                               ; e8 4e a0
+    call 01976h                               ; e8 a5 a0
     add sp, strict byte 00006h                ; 83 c4 06
     test cl, cl                               ; 84 c9
-    jne short 07992h                          ; 75 63
+    jne short 0793bh                          ; 75 63
     mov dx, ss                                ; 8c d2
     lea ax, [bp-006h]                         ; 8d 46 fa
-    call 0751bh                               ; e8 e4 fb
+    call 074c4h                               ; e8 e4 fb
     test al, al                               ; 84 c0
-    jne short 07992h                          ; 75 57
+    jne short 0793bh                          ; 75 57
     mov dx, ss                                ; 8c d2
     lea ax, [bp-004h]                         ; 8d 46 fc
-    call 0751bh                               ; e8 d8 fb
+    call 074c4h                               ; e8 d8 fb
     test al, al                               ; 84 c0
-    jne short 07992h                          ; 75 4b
+    jne short 0793bh                          ; 75 4b
     mov dx, ss                                ; 8c d2
     lea ax, [bp-008h]                         ; 8d 46 f8
-    call 0751bh                               ; e8 cc fb
+    call 074c4h                               ; e8 cc fb
     test al, al                               ; 84 c0
-    jne short 07992h                          ; 75 3f
+    jne short 0793bh                          ; 75 3f
     mov al, byte [bp-006h]                    ; 8a 46 fa
     mov byte [bp+00ch], al                    ; 88 46 0c
@@ -11389,26 +11353,26 @@
     mov al, byte [bp-008h]                    ; 8a 46 f8
     mov byte [bp+00eh], al                    ; 88 46 0e
-    jmp short 078eah                          ; eb 83
+    jmp short 07893h                          ; eb 83
     cmp AL, strict byte 001h                  ; 3c 01
-    jne short 07972h                          ; 75 07
+    jne short 0791bh                          ; 75 07
     mov ax, 000e6h                            ; b8 e6 00
-    jmp short 07975h                          ; eb 05
-    jmp short 07992h                          ; eb 20
+    jmp short 0791eh                          ; eb 05
+    jmp short 0793bh                          ; eb 20
     mov ax, 000e7h                            ; b8 e7 00
-    call 074e3h                               ; e8 6b fb
+    call 0748ch                               ; e8 6b fb
     mov cl, al                                ; 88 c1
     test cl, cl                               ; 84 c9
-    jne short 0798eh                          ; 75 10
+    jne short 07937h                          ; 75 10
     mov dx, ss                                ; 8c d2
     lea ax, [bp-006h]                         ; 8d 46 fa
-    call 0751bh                               ; e8 95 fb
+    call 074c4h                               ; e8 95 fb
     cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
-    je short 0798eh                           ; 74 02
+    je short 07937h                           ; 74 02
     mov CL, strict byte 001h                  ; b1 01
     test cl, cl                               ; 84 c9
-    je short 079fch                           ; 74 6a
+    je short 079a5h                           ; 74 6a
     or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     mov byte [bp+013h], 003h                  ; c6 46 13 03
-    jmp short 079fch                          ; eb 60
+    jmp short 079a5h                          ; eb 60
     mov al, byte [bp+00dh]                    ; 8a 46 0d
     xor ah, ah                                ; 30 e4
@@ -11418,30 +11382,30 @@
     mov ax, strict word 00007h                ; b8 07 00
     push ax                                   ; 50
-    call 01976h                               ; e8 c9 9f
+    call 01976h                               ; e8 20 a0
     add sp, strict byte 00006h                ; 83 c4 06
     or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     mov byte [bp+013h], 001h                  ; c6 46 13 01
-    jmp short 07a14h                          ; eb 5a
+    jmp short 079bdh                          ; eb 5a
     mov si, word [bp+00ch]                    ; 8b 76 0c
     mov bx, si                                ; 89 f3
     mov dx, strict word 00022h                ; ba 22 00
     mov ax, cx                                ; 89 c8
-    call 0167ch                               ; e8 b5 9c
+    call 0167ch                               ; e8 0c 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 aa 9c
+    call 0167ch                               ; e8 01 9d
     mov dx, strict word 00027h                ; ba 27 00
     mov ax, cx                                ; 89 c8
-    call 01652h                               ; e8 78 9c
+    call 01652h                               ; e8 cf 9c
     mov ah, al                                ; 88 c4
     test si, si                               ; 85 f6
-    jne short 079eeh                          ; 75 0e
+    jne short 07997h                          ; 75 0e
     cmp word [bp+014h], strict byte 00000h    ; 83 7e 14 00
-    jne short 079eeh                          ; 75 08
+    jne short 07997h                          ; 75 08
     test AL, strict byte 080h                 ; a8 80
-    je short 079f0h                           ; 74 06
+    je short 07999h                           ; 74 06
     and AL, strict byte 07fh                  ; 24 7f
-    jmp short 079f0h                          ; eb 02
+    jmp short 07999h                          ; eb 02
     or AL, strict byte 080h                   ; 0c 80
     mov bl, al                                ; 88 c3
@@ -11449,21 +11413,21 @@
     mov dx, strict word 00027h                ; ba 27 00
     mov ax, cx                                ; 89 c8
-    call 01660h                               ; e8 64 9c
-    jmp short 07a14h                          ; eb 16
+    call 01660h                               ; e8 bb 9c
+    jmp short 079bdh                          ; eb 16
     mov ax, 00974h                            ; b8 74 09
     push ax                                   ; 50
     mov ax, strict word 00007h                ; b8 07 00
     push ax                                   ; 50
-    call 01976h                               ; e8 6d 9f
+    call 01976h                               ; e8 c4 9f
     add sp, strict byte 00004h                ; 83 c4 04
     or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     mov byte [bp+013h], 001h                  ; c6 46 13 01
     mov ax, strict word 00047h                ; b8 47 00
-    call 07578h                               ; e8 5e fb
+    call 07521h                               ; e8 5e fb
     lea sp, [bp-002h]                         ; 8d 66 fe
     pop si                                    ; 5e
     pop bp                                    ; 5d
     retn                                      ; c3
-_int17_function:                             ; 0xf7a20 LB 0xac
+_int17_function:                             ; 0xf79c9 LB 0xac
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -11475,23 +11439,23 @@
     add dx, strict byte 00008h                ; 83 c2 08
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 3a 9c
+    call 0166eh                               ; e8 91 9c
     mov bx, ax                                ; 89 c3
     mov si, ax                                ; 89 c6
     cmp byte [bp+013h], 003h                  ; 80 7e 13 03
-    jnc short 07a4ah                          ; 73 0c
+    jnc short 079f3h                          ; 73 0c
     mov ax, word [bp+00eh]                    ; 8b 46 0e
     cmp ax, strict word 00003h                ; 3d 03 00
-    jnc short 07a4ah                          ; 73 04
+    jnc short 079f3h                          ; 73 04
     test bx, bx                               ; 85 db
-    jnbe short 07a4dh                         ; 77 03
-    jmp near 07ac2h                           ; e9 75 00
+    jnbe short 079f6h                         ; 77 03
+    jmp near 07a6bh                           ; e9 75 00
     mov dx, ax                                ; 89 c2
     add dx, strict byte 00078h                ; 83 c2 78
     mov ax, strict word 00040h                ; b8 40 00
-    call 01652h                               ; e8 fa 9b
+    call 01652h                               ; e8 51 9c
     mov ch, al                                ; 88 c5
     xor cl, cl                                ; 30 c9
     cmp byte [bp+013h], 000h                  ; 80 7e 13 00
-    jne short 07a8eh                          ; 75 2c
+    jne short 07a37h                          ; 75 2c
     mov al, byte [bp+012h]                    ; 8a 46 12
     mov dx, bx                                ; 89 da
@@ -11513,11 +11477,11 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 040h                 ; a8 40
-    je short 07a8eh                           ; 74 07
+    je short 07a37h                           ; 74 07
     test cx, cx                               ; 85 c9
-    je short 07a8eh                           ; 74 03
+    je short 07a37h                           ; 74 03
     dec cx                                    ; 49
-    jmp short 07a7dh                          ; eb ef
+    jmp short 07a26h                          ; eb ef
     cmp byte [bp+013h], 001h                  ; 80 7e 13 01
-    jne short 07aa9h                          ; 75 15
+    jne short 07a52h                          ; 75 15
     lea dx, [si+002h]                         ; 8d 54 02
     in AL, DX                                 ; ec
@@ -11538,8 +11502,8 @@
     mov byte [bp+013h], al                    ; 88 46 13
     test cx, cx                               ; 85 c9
-    jne short 07abch                          ; 75 04
+    jne short 07a65h                          ; 75 04
     or byte [bp+013h], 001h                   ; 80 4e 13 01
     and byte [bp+01ch], 0feh                  ; 80 66 1c fe
-    jmp short 07ac6h                          ; eb 04
+    jmp short 07a6fh                          ; eb 04
     or byte [bp+01ch], 001h                   ; 80 4e 1c 01
     lea sp, [bp-002h]                         ; 8d 66 fe
@@ -11547,5 +11511,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-wait_:                                       ; 0xf7acc LB 0xb2
+wait_:                                       ; 0xf7a75 LB 0xb2
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -11565,5 +11529,5 @@
     mov dx, 0046ch                            ; ba 6c 04
     xor ax, ax                                ; 31 c0
-    call 0168ah                               ; e8 9b 9b
+    call 0168ah                               ; e8 f2 9b
     mov word [bp-00eh], ax                    ; 89 46 f2
     mov bx, dx                                ; 89 d3
@@ -11571,20 +11535,20 @@
     mov dx, 0046ch                            ; ba 6c 04
     xor ax, ax                                ; 31 c0
-    call 0168ah                               ; e8 8d 9b
+    call 0168ah                               ; e8 e4 9b
     mov word [bp-012h], ax                    ; 89 46 ee
     mov di, dx                                ; 89 d7
     cmp dx, bx                                ; 39 da
-    jnbe short 07b0dh                         ; 77 07
-    jne short 07b14h                          ; 75 0c
+    jnbe short 07ab6h                         ; 77 07
+    jne short 07abdh                          ; 75 0c
     cmp ax, word [bp-00eh]                    ; 3b 46 f2
-    jbe short 07b14h                          ; 76 07
+    jbe short 07abdh                          ; 76 07
     sub ax, word [bp-00eh]                    ; 2b 46 f2
     sbb dx, bx                                ; 19 da
-    jmp short 07b1fh                          ; eb 0b
+    jmp short 07ac8h                          ; eb 0b
     cmp dx, bx                                ; 39 da
-    jc short 07b1fh                           ; 72 07
-    jne short 07b23h                          ; 75 09
+    jc short 07ac8h                           ; 72 07
+    jne short 07acch                          ; 75 09
     cmp ax, word [bp-00eh]                    ; 3b 46 f2
-    jnc short 07b23h                          ; 73 04
+    jnc short 07acch                          ; 73 04
     sub si, ax                                ; 29 c6
     sbb cx, dx                                ; 19 d1
@@ -11594,11 +11558,11 @@
     mov ax, 00100h                            ; b8 00 01
     int 016h                                  ; cd 16
-    je short 07b37h                           ; 74 05
+    je short 07ae0h                           ; 74 05
     mov AL, strict byte 001h                  ; b0 01
-    jmp near 07b39h                           ; e9 02 00
+    jmp near 07ae2h                           ; e9 02 00
     db  032h, 0c0h
     ; xor al, al                                ; 32 c0
     test al, al                               ; 84 c0
-    je short 07b63h                           ; 74 26
+    je short 07b0ch                           ; 74 26
     db  033h, 0c0h
     ; xor ax, ax                                ; 33 c0
@@ -11613,15 +11577,15 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 20 9e
+    call 01976h                               ; e8 77 9e
     add sp, strict byte 00006h                ; 83 c4 06
     cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
-    je short 07b63h                           ; 74 04
+    je short 07b0ch                           ; 74 04
     mov al, dl                                ; 88 d0
-    jmp short 07b75h                          ; eb 12
+    jmp short 07b1eh                          ; eb 12
     test cx, cx                               ; 85 c9
-    jnle short 07af4h                         ; 7f 8d
-    jne short 07b6dh                          ; 75 04
+    jnle short 07a9dh                         ; 7f 8d
+    jne short 07b16h                          ; 75 04
     test si, si                               ; 85 f6
-    jnbe short 07af4h                         ; 77 87
+    jnbe short 07a9dh                         ; 77 87
     mov ax, word [bp-010h]                    ; 8b 46 f0
     push ax                                   ; 50
@@ -11635,5 +11599,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-read_logo_byte_:                             ; 0xf7b7e LB 0x16
+read_logo_byte_:                             ; 0xf7b27 LB 0x16
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -11650,5 +11614,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-read_logo_word_:                             ; 0xf7b94 LB 0x14
+read_logo_word_:                             ; 0xf7b3d LB 0x14
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -11663,5 +11627,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-print_detected_harddisks_:                   ; 0xf7ba8 LB 0x15a
+print_detected_harddisks_:                   ; 0xf7b51 LB 0x15a
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -11673,5 +11637,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 b3 9a
+    call 0166eh                               ; e8 0a 9b
     mov si, ax                                ; 89 c6
     mov byte [bp-00eh], 000h                  ; c6 46 f2 00
@@ -11679,9 +11643,9 @@
     mov byte [bp-00ch], ch                    ; 88 6e f4
     mov dx, 00304h                            ; ba 04 03
-    call 01652h                               ; e8 86 9a
+    call 01652h                               ; e8 dd 9a
     mov byte [bp-00ah], al                    ; 88 46 f6
     xor cl, cl                                ; 30 c9
     cmp cl, byte [bp-00ah]                    ; 3a 4e f6
-    jnc short 07c34h                          ; 73 5e
+    jnc short 07bddh                          ; 73 5e
     mov al, cl                                ; 88 c8
     xor ah, ah                                ; 30 e4
@@ -11689,15 +11653,15 @@
     add dx, 00305h                            ; 81 c2 05 03
     mov ax, si                                ; 89 f0
-    call 01652h                               ; e8 6d 9a
+    call 01652h                               ; e8 c4 9a
     mov bl, al                                ; 88 c3
     cmp AL, strict byte 00ch                  ; 3c 0c
-    jc short 07c16h                           ; 72 2b
+    jc short 07bbfh                           ; 72 2b
     test ch, ch                               ; 84 ed
-    jne short 07bffh                          ; 75 10
+    jne short 07ba8h                          ; 75 10
     mov ax, 009a7h                            ; b8 a7 09
     push ax                                   ; 50
     mov ax, strict word 00002h                ; b8 02 00
     push ax                                   ; 50
-    call 01976h                               ; e8 7c 9d
+    call 01976h                               ; e8 d3 9d
     add sp, strict byte 00004h                ; 83 c4 04
     mov CH, strict byte 001h                  ; b5 01
@@ -11710,41 +11674,41 @@
     mov ax, strict word 00002h                ; b8 02 00
     push ax                                   ; 50
-    call 01976h                               ; e8 66 9d
+    call 01976h                               ; e8 bd 9d
     add sp, strict byte 00006h                ; 83 c4 06
-    jmp near 07cc8h                           ; e9 b2 00
+    jmp near 07c71h                           ; e9 b2 00
     cmp AL, strict byte 008h                  ; 3c 08
-    jc short 07c37h                           ; 72 1d
+    jc short 07be0h                           ; 72 1d
     cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
-    jne short 07c32h                          ; 75 12
+    jne short 07bdbh                          ; 75 12
     mov ax, 009cfh                            ; b8 cf 09
     push ax                                   ; 50
     mov ax, strict word 00002h                ; b8 02 00
     push ax                                   ; 50
-    call 01976h                               ; e8 4b 9d
+    call 01976h                               ; e8 a2 9d
     add sp, strict byte 00004h                ; 83 c4 04
     mov byte [bp-00ch], 001h                  ; c6 46 f4 01
-    jmp short 07bffh                          ; eb cb
-    jmp near 07ccdh                           ; e9 96 00
+    jmp short 07ba8h                          ; eb cb
+    jmp near 07c76h                           ; e9 96 00
     cmp AL, strict byte 004h                  ; 3c 04
-    jnc short 07c55h                          ; 73 1a
+    jnc short 07bfeh                          ; 73 1a
     cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
-    jne short 07c55h                          ; 75 14
+    jne short 07bfeh                          ; 75 14
     mov ax, 009e4h                            ; b8 e4 09
     push ax                                   ; 50
     mov ax, strict word 00002h                ; b8 02 00
     push ax                                   ; 50
-    call 01976h                               ; e8 2a 9d
+    call 01976h                               ; e8 81 9d
     add sp, strict byte 00004h                ; 83 c4 04
     mov byte [bp-00eh], 001h                  ; c6 46 f2 01
-    jmp short 07c6eh                          ; eb 19
+    jmp short 07c17h                          ; eb 19
     cmp bl, 004h                              ; 80 fb 04
-    jc short 07c6eh                           ; 72 14
+    jc short 07c17h                           ; 72 14
     test ch, ch                               ; 84 ed
-    jne short 07c6eh                          ; 75 10
+    jne short 07c17h                          ; 75 10
     mov ax, 009f6h                            ; b8 f6 09
     push ax                                   ; 50
     mov ax, strict word 00002h                ; b8 02 00
     push ax                                   ; 50
-    call 01976h                               ; e8 0d 9d
+    call 01976h                               ; e8 64 9d
     add sp, strict byte 00004h                ; 83 c4 04
     mov CH, strict byte 001h                  ; b5 01
@@ -11757,8 +11721,8 @@
     mov ax, strict word 00002h                ; b8 02 00
     push ax                                   ; 50
-    call 01976h                               ; e8 f7 9c
+    call 01976h                               ; e8 4e 9d
     add sp, strict byte 00006h                ; 83 c4 06
     cmp bl, 004h                              ; 80 fb 04
-    jc short 07c8ah                           ; 72 03
+    jc short 07c33h                           ; 72 03
     sub bl, 004h                              ; 80 eb 04
     mov al, bl                                ; 88 d8
@@ -11769,12 +11733,12 @@
     sar ax, 1                                 ; d1 f8
     test ax, ax                               ; 85 c0
-    je short 07c9ch                           ; 74 05
+    je short 07c45h                           ; 74 05
     mov ax, 00a14h                            ; b8 14 0a
-    jmp short 07c9fh                          ; eb 03
+    jmp short 07c48h                          ; eb 03
     mov ax, 00a1fh                            ; b8 1f 0a
     push ax                                   ; 50
     mov ax, strict word 00002h                ; b8 02 00
     push ax                                   ; 50
-    call 01976h                               ; e8 cf 9c
+    call 01976h                               ; e8 26 9d
     add sp, strict byte 00004h                ; 83 c4 04
     mov al, bl                                ; 88 d8
@@ -11784,26 +11748,26 @@
     idiv bx                                   ; f7 fb
     test dx, dx                               ; 85 d2
-    je short 07cbdh                           ; 74 05
+    je short 07c66h                           ; 74 05
     mov ax, 00a28h                            ; b8 28 0a
-    jmp short 07cc0h                          ; eb 03
+    jmp short 07c69h                          ; eb 03
     mov ax, 00a2eh                            ; b8 2e 0a
     push ax                                   ; 50
     push bx                                   ; 53
-    call 01976h                               ; e8 b1 9c
+    call 01976h                               ; e8 08 9d
     add sp, strict byte 00004h                ; 83 c4 04
     db  0feh, 0c1h
     ; inc cl                                    ; fe c1
-    jmp near 07bd1h                           ; e9 04 ff
+    jmp near 07b7ah                           ; e9 04 ff
     cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
-    jne short 07cebh                          ; 75 18
+    jne short 07c94h                          ; 75 18
     test ch, ch                               ; 84 ed
-    jne short 07cebh                          ; 75 14
+    jne short 07c94h                          ; 75 14
     cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
-    jne short 07cebh                          ; 75 0e
+    jne short 07c94h                          ; 75 0e
     mov ax, 00a35h                            ; b8 35 0a
     push ax                                   ; 50
     mov ax, strict word 00002h                ; b8 02 00
     push ax                                   ; 50
-    call 01976h                               ; e8 8e 9c
+    call 01976h                               ; e8 e5 9c
     add sp, strict byte 00004h                ; 83 c4 04
     mov ax, 00a49h                            ; b8 49 0a
@@ -11811,5 +11775,5 @@
     mov ax, strict word 00002h                ; b8 02 00
     push ax                                   ; 50
-    call 01976h                               ; e8 80 9c
+    call 01976h                               ; e8 d7 9c
     add sp, strict byte 00004h                ; 83 c4 04
     lea sp, [bp-008h]                         ; 8d 66 f8
@@ -11820,5 +11784,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-get_boot_drive_:                             ; 0xf7d02 LB 0x28
+get_boot_drive_:                             ; 0xf7cab LB 0x28
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -11828,10 +11792,10 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 5c 99
+    call 0166eh                               ; e8 b3 99
     mov dx, 00304h                            ; ba 04 03
-    call 01652h                               ; e8 3a 99
+    call 01652h                               ; e8 91 99
     sub bl, 002h                              ; 80 eb 02
     cmp bl, al                                ; 38 c3
-    jc short 07d21h                           ; 72 02
+    jc short 07ccah                           ; 72 02
     mov BL, strict byte 0ffh                  ; b3 ff
     mov al, bl                                ; 88 d8
@@ -11841,5 +11805,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-show_logo_:                                  ; 0xf7d2a LB 0x242
+show_logo_:                                  ; 0xf7cd3 LB 0x240
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -11852,5 +11816,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 30 99
+    call 0166eh                               ; e8 87 99
     mov si, ax                                ; 89 c6
     mov byte [bp-00ch], 000h                  ; c6 46 f4 00
@@ -11864,7 +11828,7 @@
     mov al, cl                                ; 88 c8
     xor ah, ah                                ; 30 e4
-    call 07b94h                               ; e8 3b fe
+    call 07b3dh                               ; e8 3b fe
     cmp ax, 066bbh                            ; 3d bb 66
-    jne short 07d70h                          ; 75 12
+    jne short 07d19h                          ; 75 12
     push SS                                   ; 16
     pop ES                                    ; 07
@@ -11874,10 +11838,10 @@
     mov word [es:di], bx                      ; 26 89 1d
     cmp ax, strict word 0004fh                ; 3d 4f 00
-    je short 07d73h                           ; 74 03
-    jmp near 07e39h                           ; e9 c6 00
+    je short 07d1ch                           ; 74 03
+    jmp near 07de2h                           ; e9 c6 00
     mov al, cl                                ; 88 c8
     add AL, strict byte 004h                  ; 04 04
     xor ah, ah                                ; 30 e4
-    call 07b7eh                               ; e8 02 fe
+    call 07b27h                               ; e8 02 fe
     mov bl, al                                ; 88 c3
     mov byte [bp-014h], al                    ; 88 46 ec
@@ -11885,5 +11849,5 @@
     add AL, strict byte 005h                  ; 04 05
     xor ah, ah                                ; 30 e4
-    call 07b7eh                               ; e8 f4 fd
+    call 07b27h                               ; e8 f4 fd
     mov bh, al                                ; 88 c7
     mov byte [bp-012h], al                    ; 88 46 ee
@@ -11891,5 +11855,5 @@
     add AL, strict byte 002h                  ; 04 02
     xor ah, ah                                ; 30 e4
-    call 07b94h                               ; e8 fc fd
+    call 07b3dh                               ; e8 fc fd
     mov dx, ax                                ; 89 c2
     mov word [bp-016h], ax                    ; 89 46 ea
@@ -11897,22 +11861,22 @@
     add AL, strict byte 006h                  ; 04 06
     xor ah, ah                                ; 30 e4
-    call 07b7eh                               ; e8 d8 fd
+    call 07b27h                               ; e8 d8 fd
     mov byte [bp-010h], al                    ; 88 46 f0
     test bl, bl                               ; 84 db
-    jne short 07db5h                          ; 75 08
+    jne short 07d5eh                          ; 75 08
     test bh, bh                               ; 84 ff
-    jne short 07db5h                          ; 75 04
+    jne short 07d5eh                          ; 75 04
     test dx, dx                               ; 85 d2
-    je short 07d70h                           ; 74 bb
+    je short 07d19h                           ; 74 bb
     mov bx, 00142h                            ; bb 42 01
     mov ax, 04f02h                            ; b8 02 4f
     int 010h                                  ; cd 10
     cmp byte [bp-014h], 000h                  ; 80 7e ec 00
-    je short 07de8h                           ; 74 25
+    je short 07d91h                           ; 74 25
     xor cx, cx                                ; 31 c9
-    jmp short 07dcdh                          ; eb 06
+    jmp short 07d76h                          ; eb 06
     inc cx                                    ; 41
     cmp cx, strict byte 00010h                ; 83 f9 10
-    jnbe short 07defh                         ; 77 22
+    jnbe short 07d98h                         ; 77 22
     mov ax, cx                                ; 89 c8
     or ah, 002h                               ; 80 cc 02
@@ -11921,31 +11885,31 @@
     xor dx, dx                                ; 31 d2
     mov ax, strict word 00001h                ; b8 01 00
-    call 07acch                               ; e8 ee fc
+    call 07a75h                               ; e8 ee fc
     cmp AL, strict byte 086h                  ; 3c 86
-    jne short 07dc7h                          ; 75 e5
+    jne short 07d70h                          ; 75 e5
     mov byte [bp-00ch], 001h                  ; c6 46 f4 01
-    jmp short 07defh                          ; eb 07
+    jmp short 07d98h                          ; eb 07
     mov ax, 00210h                            ; b8 10 02
     mov dx, 003b8h                            ; ba b8 03
     out DX, ax                                ; ef
     cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
-    jne short 07e0ah                          ; 75 15
+    jne short 07db3h                          ; 75 15
     mov CL, strict byte 004h                  ; b1 04
     mov ax, word [bp-016h]                    ; 8b 46 ea
     shr ax, CL                                ; d3 e8
     mov dx, strict word 00001h                ; ba 01 00
-    call 07acch                               ; e8 ca fc
+    call 07a75h                               ; e8 ca fc
     cmp AL, strict byte 086h                  ; 3c 86
-    jne short 07e0ah                          ; 75 04
+    jne short 07db3h                          ; 75 04
     mov byte [bp-00ch], 001h                  ; c6 46 f4 01
     cmp byte [bp-012h], 000h                  ; 80 7e ee 00
-    je short 07e39h                           ; 74 29
+    je short 07de2h                           ; 74 29
     cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
-    jne short 07e39h                          ; 75 23
+    jne short 07de2h                          ; 75 23
     mov cx, strict word 00010h                ; b9 10 00
-    jmp short 07e20h                          ; eb 05
+    jmp short 07dc9h                          ; eb 05
     dec cx                                    ; 49
     test cx, cx                               ; 85 c9
-    jbe short 07e39h                          ; 76 19
+    jbe short 07de2h                          ; 76 19
     mov ax, cx                                ; 89 c8
     or ah, 002h                               ; 80 cc 02
@@ -11954,43 +11918,43 @@
     xor dx, dx                                ; 31 d2
     mov ax, strict word 00001h                ; b8 01 00
-    call 07acch                               ; e8 9b fc
+    call 07a75h                               ; e8 9b fc
     cmp AL, strict byte 086h                  ; 3c 86
-    jne short 07e1bh                          ; 75 e6
+    jne short 07dc4h                          ; 75 e6
     mov byte [bp-00ch], 001h                  ; c6 46 f4 01
     xor bx, bx                                ; 31 db
     mov dx, 0037dh                            ; ba 7d 03
     mov ax, si                                ; 89 f0
-    call 01660h                               ; e8 1d 98
+    call 01660h                               ; e8 74 98
     mov AL, strict byte 003h                  ; b0 03
     mov AH, strict byte 000h                  ; b4 00
     int 010h                                  ; cd 10
     cmp byte [bp-010h], 000h                  ; 80 7e f0 00
-    je short 07e63h                           ; 74 14
+    je short 07e0ch                           ; 74 14
     cmp byte [bp-014h], 000h                  ; 80 7e ec 00
-    jne short 07e91h                          ; 75 3c
+    jne short 07e3ah                          ; 75 3c
     cmp byte [bp-012h], 000h                  ; 80 7e ee 00
-    jne short 07e91h                          ; 75 36
+    jne short 07e3ah                          ; 75 36
     cmp word [bp-016h], strict byte 00000h    ; 83 7e ea 00
-    je short 07e66h                           ; 74 05
-    jmp short 07e91h                          ; eb 2e
-    jmp near 07f4dh                           ; e9 e7 00
+    je short 07e0fh                           ; 74 05
+    jmp short 07e3ah                          ; eb 2e
+    jmp near 07ef6h                           ; e9 e7 00
     cmp byte [bp-010h], 002h                  ; 80 7e f0 02
-    jne short 07e7ah                          ; 75 0e
+    jne short 07e23h                          ; 75 0e
     mov ax, 00a4bh                            ; b8 4b 0a
     push ax                                   ; 50
     mov ax, strict word 00002h                ; b8 02 00
     push ax                                   ; 50
-    call 01976h                               ; e8 ff 9a
+    call 01976h                               ; e8 56 9b
     add sp, strict byte 00004h                ; 83 c4 04
     cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
-    jne short 07e91h                          ; 75 11
+    jne short 07e3ah                          ; 75 11
     mov dx, strict word 00001h                ; ba 01 00
     mov ax, 000c0h                            ; b8 c0 00
-    call 07acch                               ; e8 43 fc
+    call 07a75h                               ; e8 43 fc
     cmp AL, strict byte 086h                  ; 3c 86
-    jne short 07e91h                          ; 75 04
+    jne short 07e3ah                          ; 75 04
     mov byte [bp-00ch], 001h                  ; c6 46 f4 01
     cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
-    je short 07e63h                           ; 74 cc
+    je short 07e0ch                           ; 74 cc
     mov byte [bp-00eh], 000h                  ; c6 46 f2 00
     mov ax, 00100h                            ; b8 00 01
@@ -12013,57 +11977,57 @@
     mov ax, strict word 00002h                ; b8 02 00
     push ax                                   ; 50
-    call 01976h                               ; e8 b3 9a
+    call 01976h                               ; e8 0a 9b
     add sp, strict byte 00004h                ; 83 c4 04
-    call 07ba8h                               ; e8 df fc
+    call 07b51h                               ; e8 df fc
     mov ax, 00ab1h                            ; b8 b1 0a
     push ax                                   ; 50
     mov ax, strict word 00002h                ; b8 02 00
     push ax                                   ; 50
-    call 01976h                               ; e8 a2 9a
+    call 01976h                               ; e8 f9 9a
     add sp, strict byte 00004h                ; 83 c4 04
     mov dx, strict word 00001h                ; ba 01 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 07acch                               ; e8 ec fb
+    call 07a75h                               ; e8 ec fb
     mov cl, al                                ; 88 c1
     test al, al                               ; 84 c0
-    je short 07ed7h                           ; 74 f1
+    je short 07e80h                           ; 74 f1
     cmp AL, strict byte 030h                  ; 3c 30
-    je short 07f3ah                           ; 74 50
+    je short 07ee3h                           ; 74 50
     cmp cl, 002h                              ; 80 f9 02
-    jc short 07f13h                           ; 72 24
+    jc short 07ebch                           ; 72 24
     cmp cl, 009h                              ; 80 f9 09
-    jnbe short 07f13h                         ; 77 1f
+    jnbe short 07ebch                         ; 77 1f
     mov al, cl                                ; 88 c8
     xor ah, ah                                ; 30 e4
-    call 07d02h                               ; e8 07 fe
+    call 07cabh                               ; e8 07 fe
     cmp AL, strict byte 0ffh                  ; 3c ff
-    jne short 07f01h                          ; 75 02
-    jmp short 07ed7h                          ; eb d6
+    jne short 07eaah                          ; 75 02
+    jmp short 07e80h                          ; eb d6
     mov bl, al                                ; 88 c3
     xor bh, bh                                ; 30 ff
     mov dx, 0037ch                            ; ba 7c 03
     mov ax, si                                ; 89 f0
-    call 01660h                               ; e8 53 97
+    call 01660h                               ; e8 aa 97
     mov byte [bp-00eh], 002h                  ; c6 46 f2 02
-    jmp short 07f3ah                          ; eb 27
+    jmp short 07ee3h                          ; eb 27
     cmp cl, 02eh                              ; 80 f9 2e
-    je short 07f28h                           ; 74 10
+    je short 07ed1h                           ; 74 10
     cmp cl, 026h                              ; 80 f9 26
-    je short 07f2eh                           ; 74 11
+    je short 07ed7h                           ; 74 11
     cmp cl, 021h                              ; 80 f9 21
-    jne short 07f34h                          ; 75 12
+    jne short 07eddh                          ; 75 12
     mov byte [bp-00eh], 001h                  ; c6 46 f2 01
-    jmp short 07f3ah                          ; eb 12
+    jmp short 07ee3h                          ; eb 12
     mov byte [bp-00eh], 003h                  ; c6 46 f2 03
-    jmp short 07f3ah                          ; eb 0c
+    jmp short 07ee3h                          ; eb 0c
     mov byte [bp-00eh], 004h                  ; c6 46 f2 04
-    jmp short 07f3ah                          ; eb 06
+    jmp short 07ee3h                          ; eb 06
     cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
-    je short 07ed7h                           ; 74 9d
+    je short 07e80h                           ; 74 9d
     mov bl, byte [bp-00eh]                    ; 8a 5e f2
     xor bh, bh                                ; 30 ff
     mov dx, 0037dh                            ; ba 7d 03
     mov ax, si                                ; 89 f0
-    call 01660h                               ; e8 19 97
+    call 01660h                               ; e8 70 97
     mov AL, strict byte 003h                  ; b0 03
     mov AH, strict byte 000h                  ; b4 00
@@ -12075,10 +12039,10 @@
     out strict byte 040h, AL                  ; e6 40
     out strict byte 040h, AL                  ; e6 40
-    pushad                                    ; 66 60
+    push bp                                   ; 55
     push DS                                   ; 1e
     mov ds, ax                                ; 8e d8
-    call 0edbfh                               ; e8 60 6e
+    call 0ede3h                               ; e8 dc 6e
     pop DS                                    ; 1f
-    popad                                     ; 66 61
+    pop bp                                    ; 5d
     lea sp, [bp-00ah]                         ; 8d 66 f6
     pop di                                    ; 5f
@@ -12089,12 +12053,15 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-delay_boot_:                                 ; 0xf7f6c LB 0x6e
+delay_boot_:                                 ; 0xf7f13 LB 0x72
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     push bx                                   ; 53
+    push cx                                   ; 51
     push dx                                   ; 52
+    push si                                   ; 56
+    push di                                   ; 57
     mov bx, ax                                ; 89 c3
     test ax, ax                               ; 85 c0
-    je short 07fd3h                           ; 74 5c
+    je short 07f7bh                           ; 74 5a
     mov AL, strict byte 034h                  ; b0 34
     out strict byte 043h, AL                  ; e6 43
@@ -12108,8 +12075,8 @@
     mov ax, strict word 00002h                ; b8 02 00
     push ax                                   ; 50
-    call 01976h                               ; e8 e7 99
+    call 01976h                               ; e8 3d 9a
     add sp, strict byte 00006h                ; 83 c4 06
     test bx, bx                               ; 85 db
-    jbe short 07fb0h                          ; 76 1a
+    jbe short 07f5ah                          ; 76 1a
     push bx                                   ; 53
     mov ax, 00b19h                            ; b8 19 0b
@@ -12117,16 +12084,16 @@
     mov ax, strict word 00002h                ; b8 02 00
     push ax                                   ; 50
-    call 01976h                               ; e8 d4 99
+    call 01976h                               ; e8 2a 9a
     add sp, strict byte 00006h                ; 83 c4 06
     xor dx, dx                                ; 31 d2
     mov ax, strict word 00040h                ; b8 40 00
-    call 07acch                               ; e8 1f fb
+    call 07a75h                               ; e8 1e fb
     dec bx                                    ; 4b
-    jmp short 07f92h                          ; eb e2
+    jmp short 07f3ch                          ; eb e2
     mov bx, 00a49h                            ; bb 49 0a
     push bx                                   ; 53
     mov bx, strict word 00002h                ; bb 02 00
     push bx                                   ; 53
-    call 01976h                               ; e8 bb 99
+    call 01976h                               ; e8 11 9a
     add sp, strict byte 00004h                ; 83 c4 04
     mov AL, strict byte 034h                  ; b0 34
@@ -12136,16 +12103,19 @@
     out strict byte 040h, AL                  ; e6 40
     out strict byte 040h, AL                  ; e6 40
-    pushad                                    ; 66 60
+    push bp                                   ; 55
     push DS                                   ; 1e
     mov ds, ax                                ; 8e d8
-    call 0edbfh                               ; e8 ef 6d
+    call 0ede3h                               ; e8 6a 6e
     pop DS                                    ; 1f
-    popad                                     ; 66 61
-    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop bp                                    ; 5d
+    lea sp, [bp-00ah]                         ; 8d 66 f6
+    pop di                                    ; 5f
+    pop si                                    ; 5e
     pop dx                                    ; 5a
+    pop cx                                    ; 59
     pop bx                                    ; 5b
     pop bp                                    ; 5d
     retn                                      ; c3
-scsi_cmd_data_in_:                           ; 0xf7fda LB 0xd5
+scsi_cmd_data_in_:                           ; 0xf7f85 LB 0xd5
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -12163,10 +12133,10 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 07ff0h                          ; 75 f7
+    jne short 07f9bh                          ; 75 f7
     mov al, byte [bp+004h]                    ; 8a 46 04
     cmp AL, strict byte 010h                  ; 3c 10
-    jne short 08004h                          ; 75 04
+    jne short 07fafh                          ; 75 04
     xor ax, ax                                ; 31 c0
-    jmp short 08006h                          ; eb 02
+    jmp short 07fb1h                          ; eb 02
     xor ah, ah                                ; 30 e4
     mov di, ax                                ; 89 c7
@@ -12176,5 +12146,5 @@
     shr dx, 1                                 ; d1 ea
     rcr ax, 1                                 ; d1 d8
-    loop 08010h                               ; e2 fa
+    loop 07fbbh                               ; e2 fa
     mov cx, ax                                ; 89 c1
     and cx, 000f0h                            ; 81 e1 f0 00
@@ -12194,5 +12164,5 @@
     shr dx, 1                                 ; d1 ea
     rcr ax, 1                                 ; d1 d8
-    loop 08035h                               ; e2 fa
+    loop 07fe0h                               ; e2 fa
     mov dx, si                                ; 89 f2
     out DX, AL                                ; ee
@@ -12201,5 +12171,5 @@
     xor ah, ah                                ; 30 e4
     cmp cx, ax                                ; 39 c1
-    jnc short 08057h                          ; 73 0e
+    jnc short 08002h                          ; 73 0e
     les di, [bp-00ah]                         ; c4 7e f6
     add di, cx                                ; 01 cf
@@ -12208,5 +12178,5 @@
     out DX, AL                                ; ee
     inc cx                                    ; 41
-    jmp short 08040h                          ; eb e9
+    jmp short 07febh                          ; eb e9
     mov dx, si                                ; 89 f2
     in AL, DX                                 ; ec
@@ -12214,7 +12184,7 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 08057h                          ; 75 f7
+    jne short 08002h                          ; 75 f7
     test AL, strict byte 002h                 ; a8 02
-    je short 08072h                           ; 74 0e
+    je short 0801dh                           ; 74 0e
     lea dx, [si+003h]                         ; 8d 54 03
     xor al, al                                ; 30 c0
@@ -12224,10 +12194,10 @@
     ; sub ah, ah                                ; 2a e4
     mov di, strict word 00004h                ; bf 04 00
-    jmp short 080a4h                          ; eb 32
+    jmp short 0804fh                          ; eb 32
     lea dx, [si+001h]                         ; 8d 54 01
     cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
-    jne short 08081h                          ; 75 06
+    jne short 0802ch                          ; 75 06
     cmp bx, 08000h                            ; 81 fb 00 80
-    jbe short 0809bh                          ; 76 1a
+    jbe short 08046h                          ; 76 1a
     mov cx, 08000h                            ; b9 00 80
     les di, [bp+006h]                         ; c4 7e 06
@@ -12238,5 +12208,5 @@
     add ax, 00800h                            ; 05 00 08
     mov word [bp+008h], ax                    ; 89 46 08
-    jmp short 08072h                          ; eb d7
+    jmp short 0801dh                          ; eb d7
     mov cx, bx                                ; 89 d9
     les di, [bp+006h]                         ; c4 7e 06
@@ -12249,5 +12219,5 @@
     pop bp                                    ; 5d
     retn 0000ah                               ; c2 0a 00
-scsi_cmd_data_out_:                          ; 0xf80af LB 0xd5
+scsi_cmd_data_out_:                          ; 0xf805a LB 0xd5
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -12265,10 +12235,10 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 080c5h                          ; 75 f7
+    jne short 08070h                          ; 75 f7
     mov al, byte [bp+004h]                    ; 8a 46 04
     cmp AL, strict byte 010h                  ; 3c 10
-    jne short 080d9h                          ; 75 04
+    jne short 08084h                          ; 75 04
     xor ax, ax                                ; 31 c0
-    jmp short 080dbh                          ; eb 02
+    jmp short 08086h                          ; eb 02
     xor ah, ah                                ; 30 e4
     mov si, ax                                ; 89 c6
@@ -12278,5 +12248,5 @@
     shr dx, 1                                 ; d1 ea
     rcr ax, 1                                 ; d1 d8
-    loop 080e5h                               ; e2 fa
+    loop 08090h                               ; e2 fa
     mov cx, ax                                ; 89 c1
     and cx, 000f0h                            ; 81 e1 f0 00
@@ -12296,5 +12266,5 @@
     shr dx, 1                                 ; d1 ea
     rcr ax, 1                                 ; d1 d8
-    loop 0810ah                               ; e2 fa
+    loop 080b5h                               ; e2 fa
     mov dx, di                                ; 89 fa
     out DX, AL                                ; ee
@@ -12303,5 +12273,5 @@
     xor ah, ah                                ; 30 e4
     cmp cx, ax                                ; 39 c1
-    jnc short 0812ch                          ; 73 0e
+    jnc short 080d7h                          ; 73 0e
     les si, [bp-00ah]                         ; c4 76 f6
     add si, cx                                ; 01 ce
@@ -12310,10 +12280,10 @@
     out DX, AL                                ; ee
     inc cx                                    ; 41
-    jmp short 08115h                          ; eb e9
+    jmp short 080c0h                          ; eb e9
     lea dx, [di+001h]                         ; 8d 55 01
     cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
-    jne short 0813bh                          ; 75 06
+    jne short 080e6h                          ; 75 06
     cmp bx, 08000h                            ; 81 fb 00 80
-    jbe short 08156h                          ; 76 1b
+    jbe short 08101h                          ; 76 1b
     mov cx, 08000h                            ; b9 00 80
     les si, [bp+006h]                         ; c4 76 06
@@ -12325,5 +12295,5 @@
     add ax, 00800h                            ; 05 00 08
     mov word [bp+008h], ax                    ; 89 46 08
-    jmp short 0812ch                          ; eb d6
+    jmp short 080d7h                          ; eb d6
     mov cx, bx                                ; 89 d9
     les si, [bp+006h]                         ; c4 76 06
@@ -12335,7 +12305,7 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 0815eh                          ; 75 f7
+    jne short 08109h                          ; 75 f7
     test AL, strict byte 002h                 ; a8 02
-    je short 08179h                           ; 74 0e
+    je short 08124h                           ; 74 0e
     lea dx, [di+003h]                         ; 8d 55 03
     xor al, al                                ; 30 c0
@@ -12345,5 +12315,5 @@
     ; sub ah, ah                                ; 2a e4
     mov ax, strict word 00004h                ; b8 04 00
-    jmp short 0817bh                          ; eb 02
+    jmp short 08126h                          ; eb 02
     xor ax, ax                                ; 31 c0
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -12352,5 +12322,5 @@
     pop bp                                    ; 5d
     retn 0000ah                               ; c2 0a 00
-@scsi_read_sectors:                          ; 0xf8184 LB 0xe9
+@scsi_read_sectors:                          ; 0xf812f LB 0xe9
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -12364,5 +12334,5 @@
     mov byte [bp-006h], al                    ; 88 46 fa
     cmp AL, strict byte 004h                  ; 3c 04
-    jbe short 081b4h                          ; 76 15
+    jbe short 0815fh                          ; 76 15
     xor ah, ah                                ; 30 e4
     push ax                                   ; 50
@@ -12373,5 +12343,5 @@
     mov ax, strict word 00007h                ; b8 07 00
     push ax                                   ; 50
-    call 01976h                               ; e8 c5 97
+    call 01976h                               ; e8 1a 98
     add sp, strict byte 00008h                ; 83 c4 08
     mov es, [bp+006h]                         ; 8e 46 06
@@ -12414,5 +12384,5 @@
     sal word [bp-00ah], 1                     ; d1 66 f6
     rcl word [bp-008h], 1                     ; d1 56 f8
-    loop 0821fh                               ; e2 f8
+    loop 081cah                               ; e2 f8
     push word [bp-008h]                       ; ff 76 f8
     push word [bp-00ah]                       ; ff 76 f6
@@ -12425,8 +12395,8 @@
     mov cx, ss                                ; 8c d1
     lea bx, [bp-01ah]                         ; 8d 5e e6
-    call 07fdah                               ; e8 95 fd
+    call 07f85h                               ; e8 95 fd
     mov ah, al                                ; 88 c4
     test al, al                               ; 84 c0
-    jne short 08260h                          ; 75 15
+    jne short 0820bh                          ; 75 15
     mov es, [bp+006h]                         ; 8e 46 06
     mov word [es:si+018h], di                 ; 26 89 7c 18
@@ -12442,5 +12412,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-@scsi_write_sectors:                         ; 0xf826d LB 0xe9
+@scsi_write_sectors:                         ; 0xf8218 LB 0xe9
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -12454,5 +12424,5 @@
     mov byte [bp-006h], al                    ; 88 46 fa
     cmp AL, strict byte 004h                  ; 3c 04
-    jbe short 0829dh                          ; 76 15
+    jbe short 08248h                          ; 76 15
     xor ah, ah                                ; 30 e4
     push ax                                   ; 50
@@ -12463,5 +12433,5 @@
     mov ax, strict word 00007h                ; b8 07 00
     push ax                                   ; 50
-    call 01976h                               ; e8 dc 96
+    call 01976h                               ; e8 31 97
     add sp, strict byte 00008h                ; 83 c4 08
     mov es, [bp+006h]                         ; 8e 46 06
@@ -12504,5 +12474,5 @@
     sal word [bp-00ah], 1                     ; d1 66 f6
     rcl word [bp-008h], 1                     ; d1 56 f8
-    loop 08308h                               ; e2 f8
+    loop 082b3h                               ; e2 f8
     push word [bp-008h]                       ; ff 76 f8
     push word [bp-00ah]                       ; ff 76 f6
@@ -12515,8 +12485,8 @@
     mov cx, ss                                ; 8c d1
     lea bx, [bp-01ah]                         ; 8d 5e e6
-    call 080afh                               ; e8 81 fd
+    call 0805ah                               ; e8 81 fd
     mov ah, al                                ; 88 c4
     test al, al                               ; 84 c0
-    jne short 08349h                          ; 75 15
+    jne short 082f4h                          ; 75 15
     mov es, [bp+006h]                         ; 8e 46 06
     mov word [es:si+018h], di                 ; 26 89 7c 18
@@ -12532,5 +12502,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-scsi_cmd_packet_:                            ; 0xf8356 LB 0x170
+scsi_cmd_packet_:                            ; 0xf8301 LB 0x170
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -12544,13 +12514,13 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 fc 92
+    call 0166eh                               ; e8 51 93
     mov si, 00122h                            ; be 22 01
     mov word [bp-00ch], ax                    ; 89 46 f4
     cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
-    jne short 083a1h                          ; 75 23
+    jne short 0834ch                          ; 75 23
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 aa 95
+    call 01933h                               ; e8 ff 95
     mov ax, 00b62h                            ; b8 62 0b
     push ax                                   ; 50
@@ -12559,8 +12529,8 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 de 95
+    call 01976h                               ; e8 33 96
     add sp, strict byte 00006h                ; 83 c4 06
     mov dx, strict word 00001h                ; ba 01 00
-    jmp near 084bbh                           ; e9 1a 01
+    jmp near 08466h                           ; e9 1a 01
     sub di, strict byte 00008h                ; 83 ef 08
     sal di, 1                                 ; d1 e7
@@ -12577,5 +12547,5 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 083beh                          ; 75 f7
+    jne short 08369h                          ; 75 f7
     xor dx, bx                                ; 31 da
     mov ax, word [bp+006h]                    ; 8b 46 06
@@ -12593,5 +12563,5 @@
     shr dx, 1                                 ; d1 ea
     rcr ax, 1                                 ; d1 d8
-    loop 083e9h                               ; e2 fa
+    loop 08394h                               ; e2 fa
     and ax, 000f0h                            ; 25 f0 00
     mov cl, byte [bp-006h]                    ; 8a 4e fa
@@ -12612,5 +12582,5 @@
     shr dx, 1                                 ; d1 ea
     rcr ax, 1                                 ; d1 d8
-    loop 08411h                               ; e2 fa
+    loop 083bch                               ; e2 fa
     mov dx, bx                                ; 89 da
     out DX, AL                                ; ee
@@ -12619,5 +12589,5 @@
     xor ah, ah                                ; 30 e4
     cmp cx, ax                                ; 39 c1
-    jnc short 08436h                          ; 73 11
+    jnc short 083e1h                          ; 73 11
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov di, word [bp-00eh]                    ; 8b 7e f2
@@ -12627,5 +12597,5 @@
     out DX, AL                                ; ee
     inc cx                                    ; 41
-    jmp short 0841ch                          ; eb e6
+    jmp short 083c7h                          ; eb e6
     mov dx, bx                                ; 89 da
     in AL, DX                                 ; ec
@@ -12633,7 +12603,7 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 08436h                          ; 75 f7
+    jne short 083e1h                          ; 75 f7
     test AL, strict byte 002h                 ; a8 02
-    je short 08451h                           ; 74 0e
+    je short 083fch                           ; 74 0e
     lea dx, [bx+003h]                         ; 8d 57 03
     xor al, al                                ; 30 c0
@@ -12643,12 +12613,12 @@
     ; sub ah, ah                                ; 2a e4
     mov dx, strict word 00003h                ; ba 03 00
-    jmp short 084bbh                          ; eb 6a
+    jmp short 08466h                          ; eb 6a
     mov ax, word [bp+004h]                    ; 8b 46 04
     test ax, ax                               ; 85 c0
-    je short 08460h                           ; 74 08
+    je short 0840bh                           ; 74 08
     lea dx, [bx+001h]                         ; 8d 57 01
     mov cx, ax                                ; 89 c1
     in AL, DX                                 ; ec
-    loop 0845dh                               ; e2 fd
+    loop 08408h                               ; e2 fd
     mov ax, word [bp+006h]                    ; 8b 46 06
     mov es, [bp-00ch]                         ; 8e 46 f4
@@ -12658,7 +12628,7 @@
     lea ax, [bx+001h]                         ; 8d 47 01
     cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
-    jne short 08481h                          ; 75 07
+    jne short 0842ch                          ; 75 07
     cmp word [bp+006h], 08000h                ; 81 7e 06 00 80
-    jbe short 0849eh                          ; 76 1d
+    jbe short 08449h                          ; 76 1d
     mov dx, ax                                ; 89 c2
     mov cx, 08000h                            ; b9 00 80
@@ -12670,5 +12640,5 @@
     add ax, 00800h                            ; 05 00 08
     mov word [bp+00eh], ax                    ; 89 46 0e
-    jmp short 08471h                          ; eb d3
+    jmp short 0841ch                          ; eb d3
     mov dx, ax                                ; 89 c2
     mov cx, word [bp+006h]                    ; 8b 4e 06
@@ -12677,8 +12647,8 @@
     mov es, [bp-00ch]                         ; 8e 46 f4
     cmp word [es:si+020h], strict byte 00000h ; 26 83 7c 20 00
-    je short 084b9h                           ; 74 07
+    je short 08464h                           ; 74 07
     mov cx, word [es:si+020h]                 ; 26 8b 4c 20
     in AL, DX                                 ; ec
-    loop 084b6h                               ; e2 fd
+    loop 08461h                               ; e2 fd
     xor dx, dx                                ; 31 d2
     mov ax, dx                                ; 89 d0
@@ -12688,5 +12658,5 @@
     pop bp                                    ; 5d
     retn 0000ch                               ; c2 0c 00
-scsi_enumerate_attached_devices_:            ; 0xf84c6 LB 0x4cb
+scsi_enumerate_attached_devices_:            ; 0xf8471 LB 0x4cb
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -12700,17 +12670,17 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 92 91
+    call 0166eh                               ; e8 e7 91
     mov di, 00122h                            ; bf 22 01
     mov word [bp-016h], ax                    ; 89 46 ea
     mov word [bp-014h], strict word 00000h    ; c7 46 ec 00 00
-    jmp near 08904h                           ; e9 1a 04
+    jmp near 088afh                           ; e9 1a 04
     cmp AL, strict byte 004h                  ; 3c 04
-    jc short 084f1h                           ; 72 03
-    jmp near 08987h                           ; e9 96 04
+    jc short 0849ch                           ; 72 03
+    jmp near 08932h                           ; e9 96 04
     mov cx, strict word 00010h                ; b9 10 00
     xor bx, bx                                ; 31 db
     mov dx, ss                                ; 8c d2
     lea ax, [bp-048h]                         ; 8d 46 b8
-    call 0a27ah                               ; e8 7c 1d
+    call 0a21ah                               ; e8 71 1d
     mov byte [bp-048h], 09eh                  ; c6 46 b8 9e
     mov byte [bp-047h], 010h                  ; c6 46 b9 10
@@ -12730,7 +12700,7 @@
     lea bx, [bp-048h]                         ; 8d 5e b8
     mov ax, word [bp-0024ah]                  ; 8b 86 b6 fd
-    call 07fdah                               ; e8 ae fa
+    call 07f85h                               ; e8 ae fa
     test al, al                               ; 84 c0
-    je short 08542h                           ; 74 12
+    je short 084edh                           ; 74 12
     mov ax, 00b92h                            ; b8 92 0b
     push ax                                   ; 50
@@ -12739,5 +12709,5 @@
     mov ax, strict word 00007h                ; b8 07 00
     push ax                                   ; 50
-    call 01976h                               ; e8 37 94
+    call 01976h                               ; e8 8c 94
     add sp, strict byte 00006h                ; 83 c4 06
     mov ax, word [bp-00242h]                  ; 8b 86 be fd
@@ -12771,5 +12741,5 @@
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 08590h                               ; e2 fa
+    loop 0853bh                               ; e2 fa
     or bx, ax                                 ; 09 c3
     or dx, si                                 ; 09 f2
@@ -12779,11 +12749,11 @@
     mov word [bp-01ch], bx                    ; 89 5e e4
     test dx, dx                               ; 85 d2
-    jne short 085afh                          ; 75 06
+    jne short 0855ah                          ; 75 06
     cmp bx, 00200h                            ; 81 fb 00 02
-    je short 085d2h                           ; 74 23
+    je short 0857dh                           ; 74 23
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 79 93
+    call 01933h                               ; e8 ce 93
     push dx                                   ; 52
     push word [bp-01ch]                       ; ff 76 e4
@@ -12793,24 +12763,24 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 aa 93
+    call 01976h                               ; e8 ff 93
     add sp, strict byte 0000ah                ; 83 c4 0a
-    jmp near 088f8h                           ; e9 26 03
+    jmp near 088a3h                           ; e9 26 03
     mov al, byte [bp-00ch]                    ; 8a 46 f4
     cmp AL, strict byte 001h                  ; 3c 01
-    jc short 085e5h                           ; 72 0c
-    jbe short 085edh                          ; 76 12
+    jc short 08590h                           ; 72 0c
+    jbe short 08598h                          ; 76 12
     cmp AL, strict byte 003h                  ; 3c 03
-    je short 085f5h                           ; 74 16
+    je short 085a0h                           ; 74 16
     cmp AL, strict byte 002h                  ; 3c 02
-    je short 085f1h                           ; 74 0e
-    jmp short 0863ch                          ; eb 57
+    je short 0859ch                           ; 74 0e
+    jmp short 085e7h                          ; eb 57
     test al, al                               ; 84 c0
-    jne short 0863ch                          ; 75 53
+    jne short 085e7h                          ; 75 53
     mov BL, strict byte 090h                  ; b3 90
-    jmp short 085f7h                          ; eb 0a
+    jmp short 085a2h                          ; eb 0a
     mov BL, strict byte 098h                  ; b3 98
-    jmp short 085f7h                          ; eb 06
+    jmp short 085a2h                          ; eb 06
     mov BL, strict byte 0a0h                  ; b3 a0
-    jmp short 085f7h                          ; eb 02
+    jmp short 085a2h                          ; eb 02
     mov BL, strict byte 0a8h                  ; b3 a8
     mov cl, bl                                ; 88 d9
@@ -12818,16 +12788,16 @@
     xor ch, ch                                ; 30 ed
     mov ax, cx                                ; 89 c8
-    call 016aeh                               ; e8 ab 90
+    call 016aeh                               ; e8 00 91
     test al, al                               ; 84 c0
-    je short 0863ch                           ; 74 35
+    je short 085e7h                           ; 74 35
     mov al, bl                                ; 88 d8
     db  0feh, 0c0h
     ; inc al                                    ; fe c0
     xor ah, ah                                ; 30 e4
-    call 016aeh                               ; e8 9e 90
+    call 016aeh                               ; e8 f3 90
     mov dh, al                                ; 88 c6
     mov al, bl                                ; 88 d8
     xor ah, ah                                ; 30 e4
-    call 016aeh                               ; e8 95 90
+    call 016aeh                               ; e8 ea 90
     mov ah, dh                                ; 88 f4
     cwd                                       ; 99
@@ -12837,12 +12807,12 @@
     add AL, strict byte 002h                  ; 04 02
     xor ah, ah                                ; 30 e4
-    call 016aeh                               ; e8 84 90
+    call 016aeh                               ; e8 d9 90
     xor ah, ah                                ; 30 e4
     mov word [bp-028h], ax                    ; 89 46 d8
     mov ax, cx                                ; 89 c8
-    call 016aeh                               ; e8 7a 90
+    call 016aeh                               ; e8 cf 90
     xor ah, ah                                ; 30 e4
     mov word [bp-01ah], ax                    ; 89 46 e6
-    jmp near 08729h                           ; e9 ed 00
+    jmp near 086d4h                           ; e9 ed 00
     mov ax, word [bp-020h]                    ; 8b 46 e0
     mov bx, word [bp-022h]                    ; 8b 5e de
@@ -12850,5 +12820,5 @@
     mov dx, word [bp-024h]                    ; 8b 56 dc
     mov si, strict word 0000ch                ; be 0c 00
-    call 0a26ah                               ; e8 1c 1c
+    call 0a20ah                               ; e8 11 1c
     mov word [bp-02ah], ax                    ; 89 46 d6
     mov word [bp-02ch], bx                    ; 89 5e d4
@@ -12857,13 +12827,13 @@
     mov ax, word [bp-020h]                    ; 8b 46 e0
     test ax, ax                               ; 85 c0
-    jnbe short 08676h                         ; 77 15
-    je short 08666h                           ; 74 03
-    jmp near 086e9h                           ; e9 83 00
+    jnbe short 08621h                         ; 77 15
+    je short 08611h                           ; 74 03
+    jmp near 08694h                           ; e9 83 00
     cmp word [bp-022h], strict byte 00000h    ; 83 7e de 00
-    jnbe short 08676h                         ; 77 0a
-    jne short 08663h                          ; 75 f5
+    jnbe short 08621h                         ; 77 0a
+    jne short 0860eh                          ; 75 f5
     cmp word [bp-012h], strict byte 00040h    ; 83 7e ee 40
-    jnbe short 08676h                         ; 77 02
-    jne short 086e9h                          ; 75 73
+    jnbe short 08621h                         ; 77 02
+    jne short 08694h                          ; 75 73
     mov word [bp-028h], 000ffh                ; c7 46 d8 ff 00
     mov word [bp-01ah], strict word 0003fh    ; c7 46 e6 3f 00
@@ -12872,5 +12842,5 @@
     mov dx, word [bp-024h]                    ; 8b 56 dc
     mov si, strict word 00006h                ; be 06 00
-    call 0a26ah                               ; e8 db 1b
+    call 0a20ah                               ; e8 d0 1b
     mov si, word [bp-018h]                    ; 8b 76 e8
     add si, dx                                ; 01 d6
@@ -12890,5 +12860,5 @@
     mov dx, si                                ; 89 f2
     mov si, strict word 00008h                ; be 08 00
-    call 0a26ah                               ; e8 ab 1b
+    call 0a20ah                               ; e8 a0 1b
     mov word [bp-02eh], bx                    ; 89 5e d2
     mov word [bp-030h], cx                    ; 89 4e d0
@@ -12899,5 +12869,5 @@
     mov dx, word [bp-01eh]                    ; 8b 56 e2
     mov si, strict word 00010h                ; be 10 00
-    call 0a26ah                               ; e8 90 1b
+    call 0a20ah                               ; e8 85 1b
     mov si, word [bp-032h]                    ; 8b 76 ce
     add si, dx                                ; 01 d6
@@ -12905,17 +12875,17 @@
     mov ax, word [bp-02eh]                    ; 8b 46 d2
     adc ax, bx                                ; 11 d8
-    jmp short 08726h                          ; eb 3d
+    jmp short 086d1h                          ; eb 3d
     test ax, ax                               ; 85 c0
-    jnbe short 086ffh                         ; 77 12
-    jne short 0870bh                          ; 75 1c
+    jnbe short 086aah                         ; 77 12
+    jne short 086b6h                          ; 75 1c
     cmp word [bp-022h], strict byte 00000h    ; 83 7e de 00
-    jnbe short 086ffh                         ; 77 0a
-    jne short 0870bh                          ; 75 14
+    jnbe short 086aah                         ; 77 0a
+    jne short 086b6h                          ; 75 14
     cmp word [bp-012h], strict byte 00020h    ; 83 7e ee 20
-    jnbe short 086ffh                         ; 77 02
-    jne short 0870bh                          ; 75 0c
+    jnbe short 086aah                         ; 77 02
+    jne short 086b6h                          ; 75 0c
     mov word [bp-028h], 00080h                ; c7 46 d8 80 00
     mov word [bp-01ah], strict word 00020h    ; c7 46 e6 20 00
-    jmp short 08724h                          ; eb 19
+    jmp short 086cfh                          ; 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
@@ -12924,5 +12894,5 @@
     mov dx, word [bp-024h]                    ; 8b 56 dc
     mov si, strict word 0000bh                ; be 0b 00
-    call 0a26ah                               ; e8 46 1b
+    call 0a20ah                               ; e8 3b 1b
     mov si, dx                                ; 89 d6
     mov word [bp-026h], cx                    ; 89 4e da
@@ -12961,10 +12931,10 @@
     mov word [es:bx+034h], ax                 ; 26 89 47 34
     cmp word [bp-026h], strict byte 00000h    ; 83 7e da 00
-    jne short 087a0h                          ; 75 06
+    jne short 0874bh                          ; 75 06
     cmp si, 00400h                            ; 81 fe 00 04
-    jbe short 087aeh                          ; 76 0e
+    jbe short 08759h                          ; 76 0e
     mov word [es:bx+02ch], 00400h             ; 26 c7 47 2c 00 04
     mov word [es:bx+032h], 00400h             ; 26 c7 47 32 00 04
-    jmp short 087b6h                          ; eb 08
+    jmp short 08761h                          ; eb 08
     mov word [es:bx+02ch], si                 ; 26 89 77 2c
     mov word [es:bx+032h], si                 ; 26 89 77 32
@@ -12972,5 +12942,5 @@
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 72 91
+    call 01933h                               ; e8 c7 91
     push word [bp-020h]                       ; ff 76 e0
     push word [bp-022h]                       ; ff 76 de
@@ -12989,5 +12959,5 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 8b 91
+    call 01976h                               ; e8 e0 91
     add sp, strict byte 00018h                ; 83 c4 18
     mov al, byte [bp-00eh]                    ; 8a 46 f2
@@ -13018,5 +12988,5 @@
     mov dx, strict word 00075h                ; ba 75 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01652h                               ; e8 11 8e
+    call 01652h                               ; e8 66 8e
     mov bl, al                                ; 88 c3
     db  0feh, 0c3h
@@ -13025,11 +12995,11 @@
     mov dx, strict word 00075h                ; ba 75 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 10 8e
+    call 01660h                               ; e8 65 8e
     inc byte [bp-00ch]                        ; fe 46 f4
-    jmp near 088edh                           ; e9 97 00
+    jmp near 08898h                           ; e9 97 00
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 d2 90
+    call 01933h                               ; e8 27 91
     push word [bp-014h]                       ; ff 76 ec
     mov al, byte [bp-00ch]                    ; 8a 46 f4
@@ -13040,5 +13010,5 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 01 91
+    call 01976h                               ; e8 56 91
     add sp, strict byte 00008h                ; 83 c4 08
     mov al, byte [bp-00ch]                    ; 8a 46 f4
@@ -13046,7 +13016,7 @@
     mov byte [bp-00eh], al                    ; 88 46 f2
     test byte [bp-00247h], 080h               ; f6 86 b9 fd 80
-    je short 0888ch                           ; 74 05
+    je short 08837h                           ; 74 05
     mov cx, strict word 00001h                ; b9 01 00
-    jmp short 0888eh                          ; eb 02
+    jmp short 08839h                          ; eb 02
     xor cx, cx                                ; 31 c9
     mov al, byte [bp-00ch]                    ; 8a 46 f4
@@ -13086,6 +13056,6 @@
     inc word [bp-014h]                        ; ff 46 ec
     cmp word [bp-014h], strict byte 00010h    ; 83 7e ec 10
-    jl short 08904h                           ; 7c 03
-    jmp near 08987h                           ; e9 83 00
+    jl short 088afh                           ; 7c 03
+    jmp near 08932h                           ; e9 83 00
     mov byte [bp-048h], 012h                  ; c6 46 b8 12
     xor al, al                                ; 30 c0
@@ -13109,7 +13079,7 @@
     lea bx, [bp-048h]                         ; 8d 5e b8
     mov ax, word [bp-0024ah]                  ; 8b 86 b6 fd
-    call 07fdah                               ; e8 9e f6
+    call 07f85h                               ; e8 9e f6
     test al, al                               ; 84 c0
-    je short 08952h                           ; 74 12
+    je short 088fdh                           ; 74 12
     mov ax, 00b92h                            ; b8 92 0b
     push ax                                   ; 50
@@ -13118,5 +13088,5 @@
     mov ax, strict word 00007h                ; b8 07 00
     push ax                                   ; 50
-    call 01976h                               ; e8 27 90
+    call 01976h                               ; e8 7c 90
     add sp, strict byte 00006h                ; 83 c4 06
     mov es, [bp-016h]                         ; 8e 46 ea
@@ -13124,17 +13094,17 @@
     mov byte [bp-00ch], al                    ; 88 46 f4
     test byte [bp-00248h], 0e0h               ; f6 86 b8 fd e0
-    jne short 0896eh                          ; 75 0a
+    jne short 08919h                          ; 75 0a
     test byte [bp-00248h], 01fh               ; f6 86 b8 fd 1f
-    jne short 0896eh                          ; 75 03
-    jmp near 084eah                           ; e9 7c fb
+    jne short 08919h                          ; 75 03
+    jmp near 08495h                           ; e9 7c fb
     test byte [bp-00248h], 0e0h               ; f6 86 b8 fd e0
-    je short 08978h                           ; 74 03
-    jmp near 088edh                           ; e9 75 ff
+    je short 08923h                           ; 74 03
+    jmp near 08898h                           ; e9 75 ff
     mov al, byte [bp-00248h]                  ; 8a 86 b8 fd
     and AL, strict byte 01fh                  ; 24 1f
     cmp AL, strict byte 005h                  ; 3c 05
-    jne short 08985h                          ; 75 03
-    jmp near 08856h                           ; e9 d1 fe
-    jmp short 08975h                          ; eb ee
+    jne short 08930h                          ; 75 03
+    jmp near 08801h                           ; e9 d1 fe
+    jmp short 08920h                          ; eb ee
     lea sp, [bp-00ah]                         ; 8d 66 f6
     pop di                                    ; 5f
@@ -13145,10 +13115,10 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-_scsi_init:                                  ; 0xf8991 LB 0x66
+_scsi_init:                                  ; 0xf893c LB 0x66
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 d1 8c
+    call 0166eh                               ; e8 26 8d
     mov bx, 00122h                            ; bb 22 01
     mov es, ax                                ; 8e c0
@@ -13161,10 +13131,10 @@
     ; sub ah, ah                                ; 2a e4
     cmp AL, strict byte 055h                  ; 3c 55
-    jne short 089c1h                          ; 75 0c
+    jne short 0896ch                          ; 75 0c
     xor al, al                                ; 30 c0
     mov dx, 00433h                            ; ba 33 04
     out DX, AL                                ; ee
     mov ax, 00430h                            ; b8 30 04
-    call 084c6h                               ; e8 05 fb
+    call 08471h                               ; e8 05 fb
     mov AL, strict byte 055h                  ; b0 55
     mov dx, 00436h                            ; ba 36 04
@@ -13174,10 +13144,10 @@
     ; sub ah, ah                                ; 2a e4
     cmp AL, strict byte 055h                  ; 3c 55
-    jne short 089dah                          ; 75 0c
+    jne short 08985h                          ; 75 0c
     xor al, al                                ; 30 c0
     mov dx, 00437h                            ; ba 37 04
     out DX, AL                                ; ee
     mov ax, 00434h                            ; b8 34 04
-    call 084c6h                               ; e8 ec fa
+    call 08471h                               ; e8 ec fa
     mov AL, strict byte 055h                  ; b0 55
     mov dx, 0043ah                            ; ba 3a 04
@@ -13187,14 +13157,14 @@
     ; sub ah, ah                                ; 2a e4
     cmp AL, strict byte 055h                  ; 3c 55
-    jne short 089f3h                          ; 75 0c
+    jne short 0899eh                          ; 75 0c
     xor al, al                                ; 30 c0
     mov dx, 0043bh                            ; ba 3b 04
     out DX, AL                                ; ee
     mov ax, 00438h                            ; b8 38 04
-    call 084c6h                               ; e8 d3 fa
+    call 08471h                               ; e8 d3 fa
     mov sp, bp                                ; 89 ec
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_ctrl_extract_bits_:                     ; 0xf89f7 LB 0x1c
+ahci_ctrl_extract_bits_:                     ; 0xf89a2 LB 0x1c
     push si                                   ; 56
     push bp                                   ; 55
@@ -13205,12 +13175,12 @@
     mov cl, byte [bp+006h]                    ; 8a 4e 06
     xor ch, ch                                ; 30 ed
-    jcxz 08a0eh                               ; e3 06
+    jcxz 089b9h                               ; e3 06
     shr dx, 1                                 ; d1 ea
     rcr ax, 1                                 ; d1 d8
-    loop 08a08h                               ; e2 fa
+    loop 089b3h                               ; e2 fa
     pop bp                                    ; 5d
     pop si                                    ; 5e
     retn 00002h                               ; c2 02 00
-ahci_addr_to_phys_:                          ; 0xf8a13 LB 0x1e
+ahci_addr_to_phys_:                          ; 0xf89be LB 0x1e
     push bx                                   ; 53
     push cx                                   ; 51
@@ -13223,5 +13193,5 @@
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 08a21h                               ; e2 fa
+    loop 089cch                               ; e2 fa
     xor cx, cx                                ; 31 c9
     add ax, bx                                ; 01 d8
@@ -13231,5 +13201,5 @@
     pop bx                                    ; 5b
     retn                                      ; c3
-ahci_port_cmd_sync_:                         ; 0xf8a31 LB 0x159
+ahci_port_cmd_sync_:                         ; 0xf89dc LB 0x159
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13246,6 +13216,6 @@
     mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
     cmp AL, strict byte 0ffh                  ; 3c ff
-    jne short 08a54h                          ; 75 03
-    jmp near 08b82h                           ; e9 2e 01
+    jne short 089ffh                          ; 75 03
+    jmp near 08b2dh                           ; e9 2e 01
     mov al, byte [es:si+00263h]               ; 26 8a 84 63 02
     xor ah, ah                                ; 30 e4
@@ -13260,5 +13230,5 @@
     lea ax, [si+00080h]                       ; 8d 84 80 00
     mov dx, cx                                ; 89 ca
-    call 08a13h                               ; e8 92 ff
+    call 089beh                               ; e8 92 ff
     mov es, cx                                ; 8e c1
     mov word [es:si+008h], ax                 ; 26 89 44 08
@@ -13328,12 +13298,12 @@
     xchg dx, ax                               ; 92
     test dh, 040h                             ; f6 c6 40
-    jne short 08b14h                          ; 75 04
+    jne short 08abfh                          ; 75 04
     test AL, strict byte 001h                 ; a8 01
-    je short 08b18h                           ; 74 04
+    je short 08ac3h                           ; 74 04
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 08b1ah                          ; eb 02
+    jmp short 08ac5h                          ; eb 02
     xor al, al                                ; 30 c0
     test al, al                               ; 84 c0
-    je short 08ae6h                           ; 74 c8
+    je short 08a91h                           ; 74 c8
     mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
@@ -13392,5 +13362,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_cmd_data_:                              ; 0xf8b8a LB 0x262
+ahci_cmd_data_:                              ; 0xf8b35 LB 0x262
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13417,5 +13387,5 @@
     mov ax, 00080h                            ; b8 80 00
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 0a27ah                               ; e8 b2 16
+    call 0a21ah                               ; e8 a7 16
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov word [es:di+00080h], 08027h           ; 26 c7 85 80 00 27 80
@@ -13435,5 +13405,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00008h                ; be 08 00
-    call 0a26ah                               ; e8 5e 16
+    call 0a20ah                               ; e8 53 16
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov byte [es:di+00085h], dl               ; 26 88 95 85 00
@@ -13446,5 +13416,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00010h                ; be 10 00
-    call 0a26ah                               ; e8 38 16
+    call 0a20ah                               ; e8 2d 16
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov byte [es:di+00086h], dl               ; 26 88 95 86 00
@@ -13458,5 +13428,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00018h                ; be 18 00
-    call 0a26ah                               ; e8 0c 16
+    call 0a20ah                               ; e8 01 16
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov byte [es:di+00088h], dl               ; 26 88 95 88 00
@@ -13469,5 +13439,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00020h                ; be 20 00
-    call 0a26ah                               ; e8 e6 15
+    call 0a20ah                               ; e8 db 15
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov byte [es:di+00089h], dl               ; 26 88 95 89 00
@@ -13480,5 +13450,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00028h                ; be 28 00
-    call 0a26ah                               ; e8 c0 15
+    call 0a20ah                               ; e8 b5 15
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov byte [es:di+0008ah], dl               ; 26 88 95 8a 00
@@ -13493,5 +13463,5 @@
     mov bx, word [bp-012h]                    ; 8b 5e ee
     xor cx, cx                                ; 31 c9
-    call 0a229h                               ; e8 4d 15
+    call 0a1c9h                               ; e8 42 15
     push dx                                   ; 52
     push ax                                   ; 50
@@ -13503,5 +13473,5 @@
     mov ax, 0026ah                            ; b8 6a 02
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 0a13eh                               ; e8 46 14
+    call 0a0deh                               ; e8 3b 14
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov dx, word [es:di+0027eh]               ; 26 8b 95 7e 02
@@ -13527,5 +13497,5 @@
     mov ax, word [es:bx+020h]                 ; 26 8b 47 20
     test ax, ax                               ; 85 c0
-    je short 08d88h                           ; 74 39
+    je short 08d33h                           ; 74 39
     dec ax                                    ; 48
     mov es, [bp-00ah]                         ; 8e 46 f6
@@ -13545,13 +13515,13 @@
     mov al, byte [bp-008h]                    ; 8a 46 f8
     cmp AL, strict byte 035h                  ; 3c 35
-    jne short 08d95h                          ; 75 06
+    jne short 08d40h                          ; 75 06
     mov byte [bp-008h], 040h                  ; c6 46 f8 40
-    jmp short 08dach                          ; eb 17
+    jmp short 08d57h                          ; eb 17
     cmp AL, strict byte 0a0h                  ; 3c a0
-    jne short 08da8h                          ; 75 0f
+    jne short 08d53h                          ; 75 0f
     or byte [bp-008h], 020h                   ; 80 4e f8 20
     les bx, [bp-00eh]                         ; c4 5e f2
     or byte [es:bx+00083h], 001h              ; 26 80 8f 83 00 01
-    jmp short 08dach                          ; eb 04
+    jmp short 08d57h                          ; eb 04
     mov byte [bp-008h], 000h                  ; c6 46 f8 00
     or byte [bp-008h], 005h                   ; 80 4e f8 05
@@ -13560,5 +13530,5 @@
     mov ax, word [bp-00eh]                    ; 8b 46 f2
     mov dx, word [bp-00ch]                    ; 8b 56 f4
-    call 08a31h                               ; e8 73 fc
+    call 089dch                               ; e8 73 fc
     mov cx, word [bp-00ch]                    ; 8b 4e f4
     mov bx, word [bp-00eh]                    ; 8b 5e f2
@@ -13567,11 +13537,11 @@
     add ax, 0026ah                            ; 05 6a 02
     mov dx, cx                                ; 89 ca
-    call 0a1b5h                               ; e8 e2 13
+    call 0a155h                               ; e8 d7 13
     mov es, cx                                ; 8e c1
     mov al, byte [es:bx+003h]                 ; 26 8a 47 03
     test al, al                               ; 84 c0
-    je short 08de2h                           ; 74 05
+    je short 08d8dh                           ; 74 05
     mov ax, strict word 00004h                ; b8 04 00
-    jmp short 08de4h                          ; eb 02
+    jmp short 08d8fh                          ; eb 02
     xor ah, ah                                ; 30 e4
     lea sp, [bp-006h]                         ; 8d 66 fa
@@ -13581,5 +13551,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_port_deinit_current_:                   ; 0xf8dec LB 0x183
+ahci_port_deinit_current_:                   ; 0xf8d97 LB 0x183
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13596,5 +13566,5 @@
     mov byte [bp-00ah], al                    ; 88 46 f6
     cmp AL, strict byte 0ffh                  ; 3c ff
-    je short 08e6fh                           ; 74 61
+    je short 08e1ah                           ; 74 61
     xor ah, ah                                ; 30 e4
     mov CL, strict byte 007h                  ; b1 07
@@ -13642,26 +13612,26 @@
     xchg dx, ax                               ; 92
     test ax, 0c011h                           ; a9 11 c0
-    je short 08e72h                           ; 74 07
+    je short 08e1dh                           ; 74 07
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 08e74h                          ; eb 05
-    jmp near 08f66h                           ; e9 f4 00
+    jmp short 08e1fh                          ; eb 05
+    jmp near 08f11h                           ; e9 f4 00
     xor al, al                                ; 30 c0
     cmp AL, strict byte 001h                  ; 3c 01
-    je short 08e41h                           ; 74 c9
+    je short 08dech                           ; 74 c9
     mov cx, strict word 00020h                ; b9 20 00
     xor bx, bx                                ; 31 db
     mov ax, di                                ; 89 f8
     mov dx, word [bp-00eh]                    ; 8b 56 f2
-    call 0a27ah                               ; e8 f5 13
+    call 0a21ah                               ; e8 ea 13
     lea ax, [di+00080h]                       ; 8d 85 80 00
     mov cx, strict word 00040h                ; b9 40 00
     xor bx, bx                                ; 31 db
     mov dx, word [bp-00eh]                    ; 8b 56 f2
-    call 0a27ah                               ; e8 e6 13
+    call 0a21ah                               ; e8 db 13
     lea ax, [di+00200h]                       ; 8d 85 00 02
     mov cx, strict word 00060h                ; b9 60 00
     xor bx, bx                                ; 31 db
     mov dx, word [bp-00eh]                    ; 8b 56 f2
-    call 0a27ah                               ; e8 d7 13
+    call 0a21ah                               ; e8 cc 13
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     xor ah, ah                                ; 30 e4
@@ -13769,5 +13739,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_port_init_:                             ; 0xf8f6f LB 0x250
+ahci_port_init_:                             ; 0xf8f1a LB 0x250
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13779,5 +13749,5 @@
     mov word [bp-00ah], dx                    ; 89 56 f6
     mov byte [bp-008h], bl                    ; 88 5e f8
-    call 08dech                               ; e8 69 fe
+    call 08d97h                               ; e8 69 fe
     mov al, bl                                ; 88 d8
     xor ah, ah                                ; 30 e4
@@ -13830,20 +13800,20 @@
     xchg dx, ax                               ; 92
     test ax, 0c011h                           ; a9 11 c0
-    je short 08ff6h                           ; 74 04
+    je short 08fa1h                           ; 74 04
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 08ff8h                          ; eb 02
+    jmp short 08fa3h                          ; eb 02
     xor al, al                                ; 30 c0
     cmp AL, strict byte 001h                  ; 3c 01
-    je short 08fc0h                           ; 74 c4
+    je short 08f6bh                           ; 74 c4
     mov cx, strict word 00020h                ; b9 20 00
     xor bx, bx                                ; 31 db
     mov ax, si                                ; 89 f0
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 0a27ah                               ; e8 71 12
+    call 0a21ah                               ; e8 66 12
     lea ax, [si+00080h]                       ; 8d 84 80 00
     mov cx, strict word 00040h                ; b9 40 00
     xor bx, bx                                ; 31 db
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 0a27ah                               ; e8 62 12
+    call 0a21ah                               ; e8 57 12
     lea di, [si+00200h]                       ; 8d bc 00 02
     mov cx, strict word 00060h                ; b9 60 00
@@ -13851,5 +13821,5 @@
     mov ax, di                                ; 89 f8
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 0a27ah                               ; e8 51 12
+    call 0a21ah                               ; e8 46 12
     mov bl, byte [bp-008h]                    ; 8a 5e f8
     xor bh, bh                                ; 30 ff
@@ -13870,5 +13840,5 @@
     mov ax, di                                ; 89 f8
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 08a13h                               ; e8 bb f9
+    call 089beh                               ; e8 bb f9
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov di, word [es:si+00260h]               ; 26 8b bc 60 02
@@ -13915,5 +13885,5 @@
     mov ax, si                                ; 89 f0
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 08a13h                               ; e8 4f f9
+    call 089beh                               ; e8 4f f9
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov di, word [es:si+00260h]               ; 26 8b bc 60 02
@@ -14020,5 +13990,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-@ahci_read_sectors:                          ; 0xf91bf LB 0xaa
+@ahci_read_sectors:                          ; 0xf916a LB 0xaa
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14031,5 +14001,5 @@
     sub di, strict byte 0000ch                ; 83 ef 0c
     cmp di, strict byte 00004h                ; 83 ff 04
-    jbe short 091eah                          ; 76 13
+    jbe short 09195h                          ; 76 13
     push di                                   ; 57
     mov ax, 00c62h                            ; b8 62 0c
@@ -14039,5 +14009,5 @@
     mov ax, strict word 00007h                ; b8 07 00
     push ax                                   ; 50
-    call 01976h                               ; e8 8f 87
+    call 01976h                               ; e8 e4 87
     add sp, strict byte 00008h                ; 83 c4 08
     xor bx, bx                                ; 31 db
@@ -14053,9 +14023,9 @@
     mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
     xor ax, ax                                ; 31 c0
-    call 08f6fh                               ; e8 5a fd
+    call 08f1ah                               ; e8 5a fd
     mov bx, strict word 00025h                ; bb 25 00
     mov ax, si                                ; 89 f0
     mov dx, word [bp+006h]                    ; 8b 56 06
-    call 08b8ah                               ; e8 6a f9
+    call 08b35h                               ; e8 6a f9
     mov bx, ax                                ; 89 c3
     mov es, [bp+006h]                         ; 8e 46 06
@@ -14087,5 +14057,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-@ahci_write_sectors:                         ; 0xf9269 LB 0x88
+@ahci_write_sectors:                         ; 0xf9214 LB 0x88
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14099,5 +14069,5 @@
     sub bx, strict byte 0000ch                ; 83 eb 0c
     cmp bx, strict byte 00004h                ; 83 fb 04
-    jbe short 09297h                          ; 76 13
+    jbe short 09242h                          ; 76 13
     push bx                                   ; 53
     mov ax, 00c93h                            ; b8 93 0c
@@ -14107,5 +14077,5 @@
     mov ax, strict word 00007h                ; b8 07 00
     push ax                                   ; 50
-    call 01976h                               ; e8 e2 86
+    call 01976h                               ; e8 37 87
     add sp, strict byte 00008h                ; 83 c4 08
     xor di, di                                ; 31 ff
@@ -14121,9 +14091,9 @@
     mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
     xor ax, ax                                ; 31 c0
-    call 08f6fh                               ; e8 af fc
+    call 08f1ah                               ; e8 af fc
     mov bx, strict word 00035h                ; bb 35 00
     mov ax, si                                ; 89 f0
     mov dx, cx                                ; 89 ca
-    call 08b8ah                               ; e8 c0 f8
+    call 08b35h                               ; e8 c0 f8
     mov dx, ax                                ; 89 c2
     mov es, cx                                ; 8e c1
@@ -14140,5 +14110,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-ahci_cmd_packet_:                            ; 0xf92f1 LB 0x18c
+ahci_cmd_packet_:                            ; 0xf929c LB 0x18c
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14152,13 +14122,13 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 62 83
+    call 0166eh                               ; e8 b7 83
     mov si, 00122h                            ; be 22 01
     mov word [bp-008h], ax                    ; 89 46 f8
     cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
-    jne short 0933bh                          ; 75 23
+    jne short 092e6h                          ; 75 23
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 10 86
+    call 01933h                               ; e8 65 86
     mov ax, 00ca6h                            ; b8 a6 0c
     push ax                                   ; 50
@@ -14167,10 +14137,10 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 44 86
+    call 01976h                               ; e8 99 86
     add sp, strict byte 00006h                ; 83 c4 06
     mov ax, strict word 00001h                ; b8 01 00
-    jmp near 09474h                           ; e9 39 01
+    jmp near 0941fh                           ; e9 39 01
     test byte [bp+004h], 001h                 ; f6 46 04 01
-    jne short 09335h                          ; 75 f4
+    jne short 092e0h                          ; 75 f4
     mov bx, word [bp+006h]                    ; 8b 5e 06
     mov di, word [bp+008h]                    ; 8b 7e 08
@@ -14178,5 +14148,5 @@
     sal bx, 1                                 ; d1 e3
     rcl di, 1                                 ; d1 d7
-    loop 0934ah                               ; e2 fa
+    loop 092f5h                               ; e2 fa
     mov es, [bp-008h]                         ; 8e 46 f8
     mov word [es:si], bx                      ; 26 89 1c
@@ -14192,5 +14162,5 @@
     mov dx, word [bp+008h]                    ; 8b 56 08
     xor cx, cx                                ; 31 c9
-    call 0a1f0h                               ; e8 6d 0e
+    call 0a190h                               ; e8 62 0e
     mov word [es:si+00eh], ax                 ; 26 89 44 0e
     xor di, di                                ; 31 ff
@@ -14210,5 +14180,5 @@
     mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
     xor ax, ax                                ; 31 c0
-    call 08f6fh                               ; e8 af fb
+    call 08f1ah                               ; e8 af fb
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
@@ -14218,5 +14188,5 @@
     mov ax, 000c0h                            ; b8 c0 00
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 0a287h                               ; e8 b2 0e
+    call 0a227h                               ; e8 a7 0e
     mov es, [bp-008h]                         ; 8e 46 f8
     mov word [es:si+018h], di                 ; 26 89 7c 18
@@ -14225,5 +14195,5 @@
     mov ax, word [es:si+01eh]                 ; 26 8b 44 1e
     test ax, ax                               ; 85 c0
-    je short 09413h                           ; 74 27
+    je short 093beh                           ; 74 27
     dec ax                                    ; 48
     mov es, [bp-00ah]                         ; 8e 46 f6
@@ -14238,5 +14208,5 @@
     mov ax, si                                ; 89 f0
     mov dx, word [bp-008h]                    ; 8b 56 f8
-    call 08b8ah                               ; e8 6c f7
+    call 08b35h                               ; e8 6c f7
     les bx, [bp-00eh]                         ; c4 5e f2
     mov dx, word [es:bx+004h]                 ; 26 8b 57 04
@@ -14265,7 +14235,7 @@
     mov ax, word [es:bx+006h]                 ; 26 8b 47 06
     or ax, word [es:bx+004h]                  ; 26 0b 47 04
-    jne short 09472h                          ; 75 05
+    jne short 0941dh                          ; 75 05
     mov ax, strict word 00004h                ; b8 04 00
-    jmp short 09474h                          ; eb 02
+    jmp short 0941fh                          ; eb 02
     xor ax, ax                                ; 31 c0
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -14274,5 +14244,5 @@
     pop bp                                    ; 5d
     retn 0000ch                               ; c2 0c 00
-ahci_port_detect_device_:                    ; 0xf947d LB 0x4fe
+ahci_port_detect_device_:                    ; 0xf9428 LB 0x4fe
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14290,8 +14260,8 @@
     mov bx, word [bp-020h]                    ; 8b 5e e0
     mov ax, si                                ; 89 f0
-    call 08f6fh                               ; e8 ce fa
+    call 08f1ah                               ; e8 ce fa
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 c4 81
+    call 0166eh                               ; e8 19 82
     mov word [bp-01ah], 00122h                ; c7 46 e6 22 01
     mov word [bp-00eh], ax                    ; 89 46 f2
@@ -14365,8 +14335,8 @@
     mov bx, strict word 0000fh                ; bb 0f 00
     xor cx, cx                                ; 31 c9
-    call 089f7h                               ; e8 9f f4
+    call 089a2h                               ; e8 9f f4
     test ax, ax                               ; 85 c0
-    jne short 0955fh                          ; 75 03
-    jmp near 09973h                           ; e9 14 04
+    jne short 0950ah                          ; 75 03
+    jmp near 0991eh                           ; e9 14 04
     mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
@@ -14400,7 +14370,7 @@
     xor cx, cx                                ; 31 c9
     mov ax, di                                ; 89 f8
-    call 089f7h                               ; e8 4d f4
+    call 089a2h                               ; e8 4d f4
     cmp ax, strict word 00001h                ; 3d 01 00
-    je short 0955fh                           ; 74 b0
+    je short 0950ah                           ; 74 b0
     xor ax, ax                                ; 31 c0
     push ax                                   ; 50
@@ -14409,7 +14379,7 @@
     mov ax, di                                ; 89 f8
     mov dx, word [bp-01ch]                    ; 8b 56 e4
-    call 089f7h                               ; e8 38 f4
+    call 089a2h                               ; e8 38 f4
     cmp ax, strict word 00003h                ; 3d 03 00
-    jne short 0955ch                          ; 75 98
+    jne short 09507h                          ; 75 98
     mov ax, word [bp-016h]                    ; 8b 46 ea
     add ax, 00130h                            ; 05 30 01
@@ -14439,6 +14409,6 @@
     mov byte [bp-00ch], al                    ; 88 46 f4
     cmp AL, strict byte 004h                  ; 3c 04
-    jc short 0960eh                           ; 72 03
-    jmp near 09973h                           ; e9 65 03
+    jc short 095b9h                           ; 72 03
+    jmp near 0991eh                           ; e9 65 03
     mov ax, word [bp-016h]                    ; 8b 46 ea
     add ax, 00118h                            ; 05 18 01
@@ -14492,7 +14462,7 @@
     add cl, 00ch                              ; 80 c1 0c
     test dx, dx                               ; 85 d2
-    jne short 096d9h                          ; 75 55
+    jne short 09684h                          ; 75 55
     cmp bx, 00101h                            ; 81 fb 01 01
-    jne short 096d9h                          ; 75 4f
+    jne short 09684h                          ; 75 4f
     mov es, [bp-00eh]                         ; 8e 46 f2
     mov bx, word [bp-01ah]                    ; 8b 5e e6
@@ -14509,11 +14479,11 @@
     mov ax, word [bp-01ah]                    ; 8b 46 e6
     mov dx, es                                ; 8c c2
-    call 08b8ah                               ; e8 c0 f4
+    call 08b35h                               ; e8 c0 f4
     mov byte [bp-00ah], cl                    ; 88 4e f6
     test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
-    je short 096dch                           ; 74 08
+    je short 09687h                           ; 74 08
     mov ax, strict word 00001h                ; b8 01 00
-    jmp short 096deh                          ; eb 05
-    jmp near 098aeh                           ; e9 d2 01
+    jmp short 09689h                          ; eb 05
+    jmp near 09859h                           ; e9 d2 01
     xor ax, ax                                ; 31 c0
     mov cl, al                                ; 88 c1
@@ -14531,7 +14501,7 @@
     mov word [bp-012h], ax                    ; 89 46 ee
     cmp di, 00fffh                            ; 81 ff ff 0f
-    jne short 0972dh                          ; 75 1f
+    jne short 096d8h                          ; 75 1f
     cmp word [bp-014h], strict byte 0ffffh    ; 83 7e ec ff
-    jne short 0972dh                          ; 75 19
+    jne short 096d8h                          ; 75 19
     mov ax, word [bp-0015ch]                  ; 8b 86 a4 fe
     mov word [bp-012h], ax                    ; 89 46 ee
@@ -14573,19 +14543,19 @@
     mov al, byte [bp-00ch]                    ; 8a 46 f4
     cmp AL, strict byte 001h                  ; 3c 01
-    jc short 097aah                           ; 72 0c
-    jbe short 097b2h                          ; 76 12
+    jc short 09755h                           ; 72 0c
+    jbe short 0975dh                          ; 76 12
     cmp AL, strict byte 003h                  ; 3c 03
-    je short 097bah                           ; 74 16
+    je short 09765h                           ; 74 16
     cmp AL, strict byte 002h                  ; 3c 02
-    je short 097b6h                           ; 74 0e
-    jmp short 097fdh                          ; eb 53
+    je short 09761h                           ; 74 0e
+    jmp short 097a8h                          ; eb 53
     test al, al                               ; 84 c0
-    jne short 097fdh                          ; 75 4f
+    jne short 097a8h                          ; 75 4f
     mov DL, strict byte 040h                  ; b2 40
-    jmp short 097bch                          ; eb 0a
+    jmp short 09767h                          ; eb 0a
     mov DL, strict byte 048h                  ; b2 48
-    jmp short 097bch                          ; eb 06
+    jmp short 09767h                          ; eb 06
     mov DL, strict byte 050h                  ; b2 50
-    jmp short 097bch                          ; eb 02
+    jmp short 09767h                          ; eb 02
     mov DL, strict byte 058h                  ; b2 58
     mov bl, dl                                ; 88 d3
@@ -14593,16 +14563,16 @@
     xor bh, bh                                ; 30 ff
     mov ax, bx                                ; 89 d8
-    call 016aeh                               ; e8 e6 7e
+    call 016aeh                               ; e8 3b 7f
     test al, al                               ; 84 c0
-    je short 097fdh                           ; 74 31
+    je short 097a8h                           ; 74 31
     mov al, dl                                ; 88 d0
     db  0feh, 0c0h
     ; inc al                                    ; fe c0
     xor ah, ah                                ; 30 e4
-    call 016aeh                               ; e8 d9 7e
+    call 016aeh                               ; e8 2e 7f
     mov ch, al                                ; 88 c5
     mov al, dl                                ; 88 d0
     xor ah, ah                                ; 30 e4
-    call 016aeh                               ; e8 d0 7e
+    call 016aeh                               ; e8 25 7f
     mov ah, ch                                ; 88 ec
     mov word [bp-028h], ax                    ; 89 46 d8
@@ -14610,12 +14580,12 @@
     add AL, strict byte 002h                  ; 04 02
     xor ah, ah                                ; 30 e4
-    call 016aeh                               ; e8 c2 7e
+    call 016aeh                               ; e8 17 7f
     xor ah, ah                                ; 30 e4
     mov word [bp-02ah], ax                    ; 89 46 d6
     mov ax, bx                                ; 89 d8
-    call 016aeh                               ; e8 b8 7e
+    call 016aeh                               ; e8 0d 7f
     xor ah, ah                                ; 30 e4
     mov word [bp-026h], ax                    ; 89 46 da
-    jmp short 0980fh                          ; eb 12
+    jmp short 097bah                          ; eb 12
     push word [bp-012h]                       ; ff 76 ee
     push word [bp-01eh]                       ; ff 76 e2
@@ -14624,9 +14594,9 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-02ah]                         ; 8d 46 d6
-    call 05b50h                               ; e8 41 c3
+    call 05b09h                               ; e8 4f c3
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 19 81
+    call 01933h                               ; e8 6e 81
     push word [bp-012h]                       ; ff 76 ee
     push word [bp-01eh]                       ; ff 76 e2
@@ -14651,5 +14621,5 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 28 81
+    call 01976h                               ; e8 7d 81
     add sp, strict byte 0001ch                ; 83 c4 1c
     mov al, byte [bp-00ah]                    ; 8a 46 f6
@@ -14683,5 +14653,5 @@
     mov dx, strict word 00075h                ; ba 75 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01652h                               ; e8 b6 7d
+    call 01652h                               ; e8 0b 7e
     mov bl, al                                ; 88 c3
     db  0feh, 0c3h
@@ -14690,10 +14660,10 @@
     mov dx, strict word 00075h                ; ba 75 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 b5 7d
-    jmp near 09962h                           ; e9 b4 00
+    call 01660h                               ; e8 0a 7e
+    jmp near 0990dh                           ; e9 b4 00
     cmp dx, 0eb14h                            ; 81 fa 14 eb
-    jne short 09909h                          ; 75 55
+    jne short 098b4h                          ; 75 55
     cmp bx, 00101h                            ; 81 fb 01 01
-    jne short 09909h                          ; 75 4f
+    jne short 098b4h                          ; 75 4f
     mov es, [bp-00eh]                         ; 8e 46 f2
     mov bx, word [bp-01ah]                    ; 8b 5e e6
@@ -14710,11 +14680,11 @@
     mov ax, word [bp-01ah]                    ; 8b 46 e6
     mov dx, es                                ; 8c c2
-    call 08b8ah                               ; e8 90 f2
+    call 08b35h                               ; e8 90 f2
     mov byte [bp-00ah], cl                    ; 88 4e f6
     test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
-    je short 0990bh                           ; 74 07
+    je short 098b6h                           ; 74 07
     mov cx, strict word 00001h                ; b9 01 00
-    jmp short 0990dh                          ; eb 04
-    jmp short 09962h                          ; eb 57
+    jmp short 098b8h                          ; eb 04
+    jmp short 0990dh                          ; eb 57
     xor cx, cx                                ; 31 c9
     mov bl, byte [bp-00ch]                    ; 8a 5e f4
@@ -14756,5 +14726,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_mem_alloc_:                             ; 0xf997b LB 0x43
+ahci_mem_alloc_:                             ; 0xf9926 LB 0x43
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14766,7 +14736,7 @@
     mov dx, 00413h                            ; ba 13 04
     xor ax, ax                                ; 31 c0
-    call 0166eh                               ; e8 e3 7c
+    call 0166eh                               ; e8 38 7d
     test ax, ax                               ; 85 c0
-    je short 099b4h                           ; 74 25
+    je short 0995fh                           ; 74 25
     dec ax                                    ; 48
     mov bx, ax                                ; 89 c3
@@ -14775,5 +14745,5 @@
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 09997h                               ; e2 fa
+    loop 09942h                               ; e2 fa
     mov si, ax                                ; 89 c6
     mov di, dx                                ; 89 d7
@@ -14781,8 +14751,8 @@
     shr di, 1                                 ; d1 ef
     rcr si, 1                                 ; d1 de
-    loop 099a4h                               ; e2 fa
+    loop 0994fh                               ; e2 fa
     mov dx, 00413h                            ; ba 13 04
     xor ax, ax                                ; 31 c0
-    call 0167ch                               ; e8 ca 7c
+    call 0167ch                               ; e8 1f 7d
     mov ax, si                                ; 89 f0
     lea sp, [bp-00ah]                         ; 8d 66 f6
@@ -14794,5 +14764,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_hba_init_:                              ; 0xf99be LB 0x16e
+ahci_hba_init_:                              ; 0xf9969 LB 0x16e
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14806,5 +14776,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 9a 7c
+    call 0166eh                               ; e8 ef 7c
     mov bx, 00122h                            ; bb 22 01
     mov di, ax                                ; 89 c7
@@ -14823,9 +14793,9 @@
     shr eax, 010h                             ; 66 c1 e8 10
     xchg dx, ax                               ; 92
-    call 0997bh                               ; e8 83 ff
+    call 09926h                               ; e8 83 ff
     mov word [bp-010h], ax                    ; 89 46 f0
     test ax, ax                               ; 85 c0
-    jne short 09a02h                          ; 75 03
-    jmp near 09b0bh                           ; e9 09 01
+    jne short 099adh                          ; 75 03
+    jmp near 09ab6h                           ; e9 09 01
     mov ax, word [bp-010h]                    ; 8b 46 f0
     mov es, di                                ; 8e c7
@@ -14877,5 +14847,5 @@
     xchg dx, ax                               ; 92
     test AL, strict byte 001h                 ; a8 01
-    jne short 09a5ch                          ; 75 de
+    jne short 09a07h                          ; 75 de
     xor ax, ax                                ; 31 c0
     xor cx, cx                                ; 31 c9
@@ -14896,31 +14866,31 @@
     mov bx, strict word 0001fh                ; bb 1f 00
     xor cx, cx                                ; 31 c9
-    call 089f7h                               ; e8 54 ef
+    call 089a2h                               ; e8 54 ef
     db  0feh, 0c0h
     ; inc al                                    ; fe c0
     mov byte [bp-00eh], al                    ; 88 46 f2
     mov byte [bp-00ch], 000h                  ; c6 46 f4 00
-    jmp short 09acfh                          ; eb 21
+    jmp short 09a7ah                          ; eb 21
     xor al, al                                ; 30 c0
     test al, al                               ; 84 c0
-    je short 09ac6h                           ; 74 12
+    je short 09a71h                           ; 74 12
     mov bl, byte [bp-00ch]                    ; 8a 5e f4
     xor bh, bh                                ; 30 ff
     xor ax, ax                                ; 31 c0
     mov dx, word [bp-010h]                    ; 8b 56 f0
-    call 0947dh                               ; e8 bc f9
+    call 09428h                               ; e8 bc f9
     dec byte [bp-00eh]                        ; fe 4e f2
-    je short 09b09h                           ; 74 43
+    je short 09ab4h                           ; 74 43
     inc byte [bp-00ch]                        ; fe 46 f4
     cmp byte [bp-00ch], 020h                  ; 80 7e f4 20
-    jnc short 09b09h                          ; 73 3a
+    jnc short 09ab4h                          ; 73 3a
     mov cl, byte [bp-00ch]                    ; 8a 4e f4
     xor ch, ch                                ; 30 ed
     mov bx, strict word 00001h                ; bb 01 00
     xor di, di                                ; 31 ff
-    jcxz 09ae1h                               ; e3 06
+    jcxz 09a8ch                               ; e3 06
     sal bx, 1                                 ; d1 e3
     rcl di, 1                                 ; d1 d7
-    loop 09adbh                               ; e2 fa
+    loop 09a86h                               ; e2 fa
     mov ax, strict word 0000ch                ; b8 0c 00
     xor cx, cx                                ; 31 c9
@@ -14938,9 +14908,9 @@
     xchg dx, ax                               ; 92
     test dx, di                               ; 85 fa
-    jne short 09b05h                          ; 75 04
+    jne short 09ab0h                          ; 75 04
     test ax, bx                               ; 85 d8
-    je short 09aaeh                           ; 74 a9
+    je short 09a59h                           ; 74 a9
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 09ab0h                          ; eb a7
+    jmp short 09a5bh                          ; eb a7
     xor ax, ax                                ; 31 c0
     lea sp, [bp-00ah]                         ; 8d 66 f6
@@ -14952,7 +14922,7 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 011h, 09ch, 0efh, 09bh, 0f5h, 09bh, 0fbh, 09bh, 001h
-    db  09ch, 007h, 09ch, 00dh, 09ch, 011h, 09ch
-_ahci_init:                                  ; 0xf9b2c LB 0x11a
+    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0bch, 09bh, 09ah, 09bh, 0a0h, 09bh, 0a6h, 09bh, 0ach
+    db  09bh, 0b2h, 09bh, 0b8h, 09bh, 0bch, 09bh
+_ahci_init:                                  ; 0xf9ad7 LB 0x11a
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14961,8 +14931,8 @@
     mov ax, 00601h                            ; b8 01 06
     mov dx, strict word 00001h                ; ba 01 00
-    call 0a065h                               ; e8 29 05
+    call 0a010h                               ; e8 29 05
     mov dx, ax                                ; 89 c2
     cmp ax, strict word 0ffffh                ; 3d ff ff
-    je short 09b8ch                           ; 74 49
+    je short 09b37h                           ; 74 49
     mov al, ah                                ; 88 e0
     mov byte [bp-006h], ah                    ; 88 66 fa
@@ -14971,8 +14941,8 @@
     xor ah, ah                                ; 30 e4
     mov bx, strict word 00034h                ; bb 34 00
-    call 0a090h                               ; e8 3b 05
+    call 0a018h                               ; e8 18 05
     mov cl, al                                ; 88 c1
     test cl, cl                               ; 84 c9
-    je short 09b8fh                           ; 74 34
+    je short 09b3ah                           ; 74 34
     mov bl, cl                                ; 88 cb
     xor bh, bh                                ; 30 ff
@@ -14985,7 +14955,7 @@
     mov dx, word [bp-00ch]                    ; 8b 56 f4
     mov ax, word [bp-010h]                    ; 8b 46 f0
-    call 0a090h                               ; e8 16 05
+    call 0a018h                               ; e8 f3 04
     cmp AL, strict byte 012h                  ; 3c 12
-    je short 09b8fh                           ; 74 11
+    je short 09b3ah                           ; 74 11
     mov bl, cl                                ; 88 cb
     db  0feh, 0c3h
@@ -14994,8 +14964,8 @@
     mov dx, word [bp-00ch]                    ; 8b 56 f4
     mov ax, word [bp-010h]                    ; 8b 46 f0
-    jmp short 09b52h                          ; eb c6
-    jmp near 09c40h                           ; e9 b1 00
+    jmp short 09afdh                          ; eb c6
+    jmp near 09bebh                           ; e9 b1 00
     test cl, cl                               ; 84 c9
-    je short 09b8ch                           ; 74 f9
+    je short 09b37h                           ; 74 f9
     add cl, 002h                              ; 80 c1 02
     mov bl, cl                                ; 88 cb
@@ -15009,7 +14979,7 @@
     mov dx, word [bp-00eh]                    ; 8b 56 f2
     mov ax, word [bp-00ah]                    ; 8b 46 f6
-    call 0a090h                               ; e8 db 04
+    call 0a018h                               ; e8 b8 04
     cmp AL, strict byte 010h                  ; 3c 10
-    jne short 09b8ch                          ; 75 d3
+    jne short 09b37h                          ; 75 d3
     mov byte [bp-004h], 000h                  ; c6 46 fc 00
     mov bl, cl                                ; 88 cb
@@ -15018,29 +14988,29 @@
     mov dx, word [bp-00eh]                    ; 8b 56 f2
     mov ax, word [bp-00ah]                    ; 8b 46 f6
-    call 0a0b7h                               ; e8 ea 04
+    call 0a03fh                               ; e8 c7 04
     mov dx, ax                                ; 89 c2
     and ax, strict word 0000fh                ; 25 0f 00
     sub ax, strict word 00004h                ; 2d 04 00
     cmp ax, strict word 0000bh                ; 3d 0b 00
-    jnbe short 09c11h                         ; 77 37
+    jnbe short 09bbch                         ; 77 37
     push CS                                   ; 0e
     pop ES                                    ; 07
     mov cx, strict word 00008h                ; b9 08 00
-    mov di, 09b15h                            ; bf 15 9b
+    mov di, 09ac0h                            ; bf c0 9a
     repne scasb                               ; f2 ae
     sal cx, 1                                 ; d1 e1
     mov di, cx                                ; 89 cf
-    mov ax, word [cs:di-064e4h]               ; 2e 8b 85 1c 9b
+    mov ax, word [cs:di-06539h]               ; 2e 8b 85 c7 9a
     jmp ax                                    ; ff e0
     mov byte [bp-004h], 010h                  ; c6 46 fc 10
-    jmp short 09c11h                          ; eb 1c
+    jmp short 09bbch                          ; eb 1c
     mov byte [bp-004h], 014h                  ; c6 46 fc 14
-    jmp short 09c11h                          ; eb 16
+    jmp short 09bbch                          ; eb 16
     mov byte [bp-004h], 018h                  ; c6 46 fc 18
-    jmp short 09c11h                          ; eb 10
+    jmp short 09bbch                          ; eb 10
     mov byte [bp-004h], 01ch                  ; c6 46 fc 1c
-    jmp short 09c11h                          ; eb 0a
+    jmp short 09bbch                          ; eb 0a
     mov byte [bp-004h], 020h                  ; c6 46 fc 20
-    jmp short 09c11h                          ; eb 04
+    jmp short 09bbch                          ; eb 04
     mov byte [bp-004h], 024h                  ; c6 46 fc 24
     mov CL, strict byte 004h                  ; b1 04
@@ -15052,5 +15022,5 @@
     mov al, byte [bp-004h]                    ; 8a 46 fc
     test al, al                               ; 84 c0
-    je short 09c40h                           ; 74 1c
+    je short 09bebh                           ; 74 1c
     mov bl, al                                ; 88 c3
     xor bh, bh                                ; 30 ff
@@ -15059,15 +15029,15 @@
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
-    call 0a0dch                               ; e8 a7 04
+    call 0a064h                               ; e8 84 04
     test AL, strict byte 001h                 ; a8 01
-    je short 09c40h                           ; 74 07
+    je short 09bebh                           ; 74 07
     and AL, strict byte 0f0h                  ; 24 f0
     add ax, cx                                ; 01 c8
-    call 099beh                               ; e8 7e fd
+    call 09969h                               ; e8 7e fd
     lea sp, [bp-002h]                         ; 8d 66 fe
     pop di                                    ; 5f
     pop bp                                    ; 5d
     retn                                      ; c3
-apm_out_str_:                                ; 0xf9c46 LB 0x39
+apm_out_str_:                                ; 0xf9bf1 LB 0x39
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15075,5 +15045,5 @@
     mov bx, ax                                ; 89 c3
     cmp byte [bx], 000h                       ; 80 3f 00
-    je short 09c5bh                           ; 74 0a
+    je short 09c06h                           ; 74 0a
     mov al, byte [bx]                         ; 8a 07
     out DX, AL                                ; ee
@@ -15082,29 +15052,27 @@
     db  00ah, 0c0h
     ; or al, al                                 ; 0a c0
-    jne short 09c53h                          ; 75 f8
+    jne short 09bfeh                          ; 75 f8
     lea sp, [bp-002h]                         ; 8d 66 fe
     pop bx                                    ; 5b
     pop bp                                    ; 5d
     retn                                      ; c3
-    mov AL, byte [02b9ch]                     ; a0 9c 2b
-    popfw                                     ; 9d
-    mov DL, strict byte 09ch                  ; b2 9c
-    int 09ch                                  ; cd 9c
-    sub bx, word [di-06308h]                  ; 2b 9d f8 9c
-    sub bx, word [di-062cfh]                  ; 2b 9d 31 9d
-    std                                       ; fd
+    dec bx                                    ; 4b
     pushfw                                    ; 9c
-    std                                       ; fd
+    db  0d6h
     pushfw                                    ; 9c
-    std                                       ; fd
+    pop bp                                    ; 5d
     pushfw                                    ; 9c
-    jo short 09c16h                           ; 70 9d
-    std                                       ; fd
+    js short 09bb0h                           ; 78 9c
+    db  0d6h
     pushfw                                    ; 9c
-    std                                       ; fd
+    mov word [0d69ch], ax                     ; a3 9c d6
     pushfw                                    ; 9c
-    db  069h
-    popfw                                     ; 9d
-_apm_function:                               ; 0xf9c7f LB 0xf6
+    fcomp qword [si-06358h]                   ; dc 9c a8 9c
+    test AL, strict byte 09ch                 ; a8 9c
+    test AL, strict byte 09ch                 ; a8 9c
+    sbb bx, word [di-06358h]                  ; 1b 9d a8 9c
+    test AL, strict byte 09ch                 ; a8 9c
+    adc AL, strict byte 09dh                  ; 14 9d
+_apm_function:                               ; 0xf9c2a LB 0xf6
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15114,21 +15082,21 @@
     xor ah, ah                                ; 30 e4
     cmp ax, strict word 0000eh                ; 3d 0e 00
-    jnbe short 09cfdh                         ; 77 6c
+    jnbe short 09ca8h                         ; 77 6c
     mov bx, ax                                ; 89 c3
     sal bx, 1                                 ; d1 e3
     mov dx, word [bp+018h]                    ; 8b 56 18
     or dl, 001h                               ; 80 ca 01
-    jmp word [cs:bx-0639fh]                   ; 2e ff a7 61 9c
+    jmp word [cs:bx-063f4h]                   ; 2e ff a7 0c 9c
     mov word [bp+012h], 00102h                ; c7 46 12 02 01
     mov word [bp+00ch], 0504dh                ; c7 46 0c 4d 50
     mov word [bp+010h], strict word 00003h    ; c7 46 10 03 00
-    jmp near 09d2bh                           ; e9 79 00
+    jmp near 09cd6h                           ; e9 79 00
     mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
-    mov word [bp+00ch], 0a2f4h                ; c7 46 0c f4 a2
+    mov word [bp+00ch], 0a294h                ; c7 46 0c 94 a2
     mov word [bp+010h], 0f000h                ; c7 46 10 00 f0
     mov ax, strict word 0fff0h                ; b8 f0 ff
     mov word [bp+006h], ax                    ; 89 46 06
     mov word [bp+004h], ax                    ; 89 46 04
-    jmp near 09d2bh                           ; e9 5e 00
+    jmp near 09cd6h                           ; e9 5e 00
     mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
     mov word [bp+00ch], 0da40h                ; c7 46 0c 40 da
@@ -15143,12 +15111,12 @@
     mov si, ax                                ; 89 c6
     sal esi, 010h                             ; 66 c1 e6 10
-    jmp near 09d2bh                           ; e9 33 00
+    jmp near 09cd6h                           ; e9 33 00
     sti                                       ; fb
     hlt                                       ; f4
-    jmp near 09d2bh                           ; e9 2e 00
+    jmp near 09cd6h                           ; e9 2e 00
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 2b 7c
+    call 01933h                               ; e8 80 7c
     push word [bp+00ch]                       ; ff 76 0c
     push word [bp+012h]                       ; ff 76 12
@@ -15157,5 +15125,5 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 5d 7c
+    call 01976h                               ; e8 b2 7c
     add sp, strict byte 00008h                ; 83 c4 08
     mov ax, word [bp+012h]                    ; 8b 46 12
@@ -15169,28 +15137,28 @@
     retn                                      ; c3
     cmp word [bp+010h], strict byte 00003h    ; 83 7e 10 03
-    je short 09d56h                           ; 74 1f
+    je short 09d01h                           ; 74 1f
     cmp word [bp+010h], strict byte 00002h    ; 83 7e 10 02
-    je short 09d4eh                           ; 74 11
+    je short 09cf9h                           ; 74 11
     cmp word [bp+010h], strict byte 00001h    ; 83 7e 10 01
-    jne short 09d5eh                          ; 75 1b
+    jne short 09d09h                          ; 75 1b
     mov dx, 08900h                            ; ba 00 89
     mov ax, 00d10h                            ; b8 10 0d
-    call 09c46h                               ; e8 fa fe
-    jmp short 09d2bh                          ; eb dd
+    call 09bf1h                               ; e8 fa fe
+    jmp short 09cd6h                          ; eb dd
     mov dx, 08900h                            ; ba 00 89
     mov ax, 00d18h                            ; b8 18 0d
-    jmp short 09d49h                          ; eb f3
+    jmp short 09cf4h                          ; eb f3
     mov dx, 08900h                            ; ba 00 89
     mov ax, 00d20h                            ; b8 20 0d
-    jmp short 09d49h                          ; eb eb
+    jmp short 09cf4h                          ; eb eb
     or ah, 00ah                               ; 80 cc 0a
     mov word [bp+012h], ax                    ; 89 46 12
     mov word [bp+018h], dx                    ; 89 56 18
-    jmp short 09d2bh                          ; eb c2
+    jmp short 09cd6h                          ; eb c2
     mov word [bp+012h], 00102h                ; c7 46 12 02 01
-    jmp short 09d2bh                          ; eb bb
+    jmp short 09cd6h                          ; eb bb
     or ah, 080h                               ; 80 cc 80
-    jmp short 09d61h                          ; eb ec
-pci16_select_reg_:                           ; 0xf9d75 LB 0x24
+    jmp short 09d0ch                          ; eb ec
+pci16_select_reg_:                           ; 0xf9d20 LB 0x24
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15209,5 +15177,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci16_find_device_:                          ; 0xf9d99 LB 0xf7
+pci16_find_device_:                          ; 0xf9d44 LB 0xf7
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15223,8 +15191,8 @@
     mov byte [bp-006h], 000h                  ; c6 46 fa 00
     test bl, 007h                             ; f6 c3 07
-    jne short 09de1h                          ; 75 2d
+    jne short 09d8ch                          ; 75 2d
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, bx                                ; 89 d8
-    call 09d75h                               ; e8 b9 ff
+    call 09d20h                               ; e8 b9 ff
     mov dx, 00cfeh                            ; ba fe 0c
     in AL, DX                                 ; ec
@@ -15233,23 +15201,23 @@
     mov byte [bp-008h], al                    ; 88 46 f8
     cmp AL, strict byte 0ffh                  ; 3c ff
-    jne short 09dcfh                          ; 75 06
+    jne short 09d7ah                          ; 75 06
     add bx, strict byte 00008h                ; 83 c3 08
-    jmp near 09e61h                           ; e9 92 00
+    jmp near 09e0ch                           ; e9 92 00
     test byte [bp-008h], 080h                 ; f6 46 f8 80
-    je short 09ddch                           ; 74 07
+    je short 09d87h                           ; 74 07
     mov word [bp-00eh], strict word 00001h    ; c7 46 f2 01 00
-    jmp short 09de1h                          ; eb 05
+    jmp short 09d8ch                          ; eb 05
     mov word [bp-00eh], strict word 00008h    ; c7 46 f2 08 00
     mov al, byte [bp-008h]                    ; 8a 46 f8
     and AL, strict byte 007h                  ; 24 07
     cmp AL, strict byte 001h                  ; 3c 01
-    jne short 09e08h                          ; 75 1e
+    jne short 09db3h                          ; 75 1e
     mov al, bh                                ; 88 f8
     xor ah, ah                                ; 30 e4
     test ax, ax                               ; 85 c0
-    jne short 09e08h                          ; 75 16
+    jne short 09db3h                          ; 75 16
     mov dx, strict word 0001ah                ; ba 1a 00
     mov ax, bx                                ; 89 d8
-    call 09d75h                               ; e8 7b ff
+    call 09d20h                               ; e8 7b ff
     mov dx, 00cfeh                            ; ba fe 0c
     in AL, DX                                 ; ec
@@ -15257,13 +15225,13 @@
     ; sub ah, ah                                ; 2a e4
     cmp al, byte [bp-006h]                    ; 3a 46 fa
-    jbe short 09e08h                          ; 76 03
+    jbe short 09db3h                          ; 76 03
     mov byte [bp-006h], al                    ; 88 46 fa
     test di, di                               ; 85 ff
-    je short 09e11h                           ; 74 05
+    je short 09dbch                           ; 74 05
     mov dx, strict word 00008h                ; ba 08 00
-    jmp short 09e13h                          ; eb 02
+    jmp short 09dbeh                          ; eb 02
     xor dx, dx                                ; 31 d2
     mov ax, bx                                ; 89 d8
-    call 09d75h                               ; e8 5d ff
+    call 09d20h                               ; e8 5d ff
     mov dx, 00cfch                            ; ba fc 0c
     in eax, DX                                ; 66 ed
@@ -15276,22 +15244,22 @@
     mov word [bp-00ch], strict word 00000h    ; c7 46 f4 00 00
     test di, di                               ; 85 ff
-    je short 09e42h                           ; 74 0f
+    je short 09dedh                           ; 74 0f
     mov cx, strict word 00008h                ; b9 08 00
     shr dx, 1                                 ; d1 ea
     rcr ax, 1                                 ; d1 d8
-    loop 09e36h                               ; e2 fa
+    loop 09de1h                               ; e2 fa
     mov word [bp-00ah], ax                    ; 89 46 f6
     mov word [bp-010h], dx                    ; 89 56 f0
     mov ax, word [bp-010h]                    ; 8b 46 f0
     cmp ax, word [bp-014h]                    ; 3b 46 ec
-    jne short 09e52h                          ; 75 08
+    jne short 09dfdh                          ; 75 08
     mov ax, word [bp-00ah]                    ; 8b 46 f6
     cmp ax, word [bp-012h]                    ; 3b 46 ee
-    je short 09e58h                           ; 74 06
+    je short 09e03h                           ; 74 06
     cmp word [bp-00ch], strict byte 00000h    ; 83 7e f4 00
-    je short 09e5eh                           ; 74 06
+    je short 09e09h                           ; 74 06
     dec si                                    ; 4e
     cmp si, strict byte 0ffffh                ; 83 fe ff
-    je short 09e71h                           ; 74 13
+    je short 09e1ch                           ; 74 13
     add bx, word [bp-00eh]                    ; 03 5e f2
     mov al, bh                                ; 88 f8
@@ -15300,10 +15268,10 @@
     xor dh, dh                                ; 30 f6
     cmp ax, dx                                ; 39 d0
-    jnbe short 09e71h                         ; 77 03
-    jmp near 09dafh                           ; e9 3e ff
+    jnbe short 09e1ch                         ; 77 03
+    jmp near 09d5ah                           ; e9 3e ff
     cmp si, strict byte 0ffffh                ; 83 fe ff
-    jne short 09e7ah                          ; 75 04
+    jne short 09e25h                          ; 75 04
     mov ax, bx                                ; 89 d8
-    jmp short 09e7dh                          ; eb 03
+    jmp short 09e28h                          ; eb 03
     mov ax, strict word 0ffffh                ; b8 ff ff
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -15312,10 +15280,14 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-    jno short 09e25h                          ; 71 9f
-    mov bl, byte [bx-06064h]                  ; 8a 9f 9c 9f
-    mov AL, strict byte 09fh                  ; b0 9f
-    retn 0d59fh                               ; c2 9f d5
+    sbb AL, strict byte 09fh                  ; 1c 9f
+    xor ax, 0479fh                            ; 35 9f 47
     lahf                                      ; 9f
-_pci16_function:                             ; 0xf9e90 LB 0x1d5
+    pop bx                                    ; 5b
+    lahf                                      ; 9f
+    insw                                      ; 6d
+    lahf                                      ; 9f
+    db  080h
+    lahf                                      ; 9f
+_pci16_function:                             ; 0xf9e3b LB 0x1d5
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15331,18 +15303,18 @@
     xor ah, ah                                ; 30 e4
     cmp bx, strict byte 00003h                ; 83 fb 03
-    jc short 09ec2h                           ; 72 13
-    jbe short 09f15h                          ; 76 64
+    jc short 09e6dh                           ; 72 13
+    jbe short 09ec0h                          ; 76 64
     cmp bx, strict byte 0000eh                ; 83 fb 0e
-    je short 09f1dh                           ; 74 67
+    je short 09ec8h                           ; 74 67
     cmp bx, strict byte 00008h                ; 83 fb 08
-    jc short 09ecch                           ; 72 11
+    jc short 09e77h                           ; 72 11
     cmp bx, strict byte 0000dh                ; 83 fb 0d
-    jbe short 09f20h                          ; 76 60
-    jmp short 09ecch                          ; eb 0a
+    jbe short 09ecbh                          ; 76 60
+    jmp short 09e77h                          ; eb 0a
     cmp bx, strict byte 00002h                ; 83 fb 02
-    je short 09eebh                           ; 74 24
+    je short 09e96h                           ; 74 24
     cmp bx, strict byte 00001h                ; 83 fb 01
-    je short 09ecfh                           ; 74 03
-    jmp near 0a02eh                           ; e9 5f 01
+    je short 09e7ah                           ; 74 03
+    jmp near 09fd9h                           ; 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
@@ -15350,52 +15322,52 @@
     mov word [bp+018h], 04350h                ; c7 46 18 50 43
     mov word [bp+01ah], 02049h                ; c7 46 1a 49 20
-    jmp near 0a05eh                           ; e9 73 01
+    jmp near 0a009h                           ; e9 73 01
     cmp word [bp+018h], strict byte 0ffffh    ; 83 7e 18 ff
-    jne short 09ef7h                          ; 75 06
+    jne short 09ea2h                          ; 75 06
     or ah, 083h                               ; 80 cc 83
-    jmp near 0a057h                           ; e9 60 01
+    jmp near 0a002h                           ; e9 60 01
     mov bx, word [bp+008h]                    ; 8b 5e 08
     mov dx, word [bp+01ch]                    ; 8b 56 1c
     mov ax, word [bp+018h]                    ; 8b 46 18
     xor cx, cx                                ; 31 c9
-    call 09d99h                               ; e8 94 fe
+    call 09d44h                               ; e8 94 fe
     cmp ax, strict word 0ffffh                ; 3d ff ff
-    jne short 09f17h                          ; 75 0d
+    jne short 09ec2h                          ; 75 0d
     mov ax, word [bp+020h]                    ; 8b 46 20
     xor ah, ah                                ; 30 e4
     or ah, 086h                               ; 80 cc 86
-    jmp near 0a057h                           ; e9 42 01
-    jmp short 09f22h                          ; eb 0b
+    jmp near 0a002h                           ; e9 42 01
+    jmp short 09ecdh                          ; eb 0b
     mov word [bp+014h], ax                    ; 89 46 14
-    jmp near 0a05eh                           ; e9 41 01
-    jmp near 09fe9h                           ; e9 c9 00
-    jmp short 09f47h                          ; eb 25
+    jmp near 0a009h                           ; e9 41 01
+    jmp near 09f94h                           ; e9 c9 00
+    jmp short 09ef2h                          ; eb 25
     mov bx, word [bp+008h]                    ; 8b 5e 08
     mov ax, word [bp+01ch]                    ; 8b 46 1c
     mov dx, word [bp+01eh]                    ; 8b 56 1e
     mov cx, strict word 00001h                ; b9 01 00
-    call 09d99h                               ; e8 68 fe
+    call 09d44h                               ; e8 68 fe
     cmp ax, strict word 0ffffh                ; 3d ff ff
-    jne short 09f41h                          ; 75 0b
+    jne short 09eech                          ; 75 0b
     mov ax, word [bp+020h]                    ; 8b 46 20
     xor ah, ah                                ; 30 e4
     or ah, 086h                               ; 80 cc 86
-    jmp near 0a057h                           ; e9 16 01
+    jmp near 0a002h                           ; e9 16 01
     mov word [bp+014h], ax                    ; 89 46 14
-    jmp near 0a05eh                           ; e9 17 01
+    jmp near 0a009h                           ; e9 17 01
     cmp word [bp+004h], 00100h                ; 81 7e 04 00 01
-    jc short 09f54h                           ; 72 06
+    jc short 09effh                           ; 72 06
     or ah, 087h                               ; 80 cc 87
-    jmp near 0a057h                           ; e9 03 01
+    jmp near 0a002h                           ; e9 03 01
     mov dx, word [bp+004h]                    ; 8b 56 04
     mov ax, word [bp+014h]                    ; 8b 46 14
-    call 09d75h                               ; e8 18 fe
+    call 09d20h                               ; e8 18 fe
     mov bx, word [bp+020h]                    ; 8b 5e 20
     xor bh, bh                                ; 30 ff
     sub bx, strict byte 00008h                ; 83 eb 08
     cmp bx, strict byte 00005h                ; 83 fb 05
-    jnbe short 09fd2h                         ; 77 68
+    jnbe short 09f7dh                         ; 77 68
     sal bx, 1                                 ; d1 e3
-    jmp word [cs:bx-0617ch]                   ; 2e ff a7 84 9e
+    jmp word [cs:bx-061d1h]                   ; 2e ff a7 2f 9e
     mov bx, word [bp+01ch]                    ; 8b 5e 1c
     xor bl, bl                                ; 30 db
@@ -15408,5 +15380,5 @@
     or bx, ax                                 ; 09 c3
     mov word [bp+01ch], bx                    ; 89 5e 1c
-    jmp short 09fd2h                          ; eb 48
+    jmp short 09f7dh                          ; eb 48
     mov dx, word [bp+004h]                    ; 8b 56 04
     xor dh, dh                                ; 30 f6
@@ -15415,5 +15387,5 @@
     in ax, DX                                 ; ed
     mov word [bp+01ch], ax                    ; 89 46 1c
-    jmp short 09fd2h                          ; eb 36
+    jmp short 09f7dh                          ; eb 36
     mov dx, 00cfch                            ; ba fc 0c
     in eax, DX                                ; 66 ed
@@ -15424,5 +15396,5 @@
     mov word [bp+01ch], ax                    ; 89 46 1c
     mov word [bp+01eh], dx                    ; 89 56 1e
-    jmp short 09fd2h                          ; eb 22
+    jmp short 09f7dh                          ; eb 22
     mov ax, word [bp+01ch]                    ; 8b 46 1c
     mov dx, word [bp+004h]                    ; 8b 56 04
@@ -15431,5 +15403,5 @@
     add dx, 00cfch                            ; 81 c2 fc 0c
     out DX, AL                                ; ee
-    jmp short 09fd2h                          ; eb 10
+    jmp short 09f7dh                          ; eb 10
     mov ax, word [bp+01ch]                    ; 8b 46 1c
     mov dx, word [bp+004h]                    ; 8b 56 04
@@ -15438,5 +15410,5 @@
     add dx, 00cfch                            ; 81 c2 fc 0c
     out DX, ax                                ; ef
-    jmp near 0a05eh                           ; e9 89 00
+    jmp near 0a009h                           ; e9 89 00
     mov ax, word [bp+01ch]                    ; 8b 46 1c
     mov cx, word [bp+01eh]                    ; 8b 4e 1e
@@ -15447,5 +15419,5 @@
     ; mov ax, cx                                ; 8b c1
     out DX, eax                               ; 66 ef
-    jmp short 0a05eh                          ; eb 75
+    jmp short 0a009h                          ; eb 75
     mov bx, word [bp+004h]                    ; 8b 5e 04
     mov es, [bp+026h]                         ; 8e 46 26
@@ -15454,5 +15426,5 @@
     mov cx, word [0f4a0h]                     ; 8b 0e a0 f4
     cmp cx, word [es:bx]                      ; 26 3b 0f
-    jbe short 0a00fh                          ; 76 11
+    jbe short 09fbah                          ; 76 11
     mov ax, word [bp+020h]                    ; 8b 46 20
     xor ah, ah                                ; 30 e4
@@ -15460,5 +15432,5 @@
     mov word [bp+020h], ax                    ; 89 46 20
     or word [bp+02ch], strict byte 00001h     ; 83 4e 2c 01
-    jmp short 0a023h                          ; eb 14
+    jmp short 09fceh                          ; eb 14
     les di, [es:bx+002h]                      ; 26 c4 7f 02
     mov si, 0f2c0h                            ; be c0 f2
@@ -15472,9 +15444,9 @@
     les bx, [bp-008h]                         ; c4 5e f8
     mov word [es:bx], ax                      ; 26 89 07
-    jmp short 0a05eh                          ; eb 30
+    jmp short 0a009h                          ; eb 30
     mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 fa 78
+    call 01933h                               ; e8 4f 79
     mov ax, word [bp+014h]                    ; 8b 46 14
     push ax                                   ; 50
@@ -15485,5 +15457,5 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 2a 79
+    call 01976h                               ; e8 7f 79
     add sp, strict byte 00008h                ; 83 c4 08
     mov ax, word [bp+020h]                    ; 8b 46 20
@@ -15497,29 +15469,11 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_find_classcode_:                         ; 0xfa065 LB 0x2b
+pci_find_classcode_:                         ; 0xfa010 LB 0x8
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    push cx                                   ; 51
-    push si                                   ; 56
-    mov cx, dx                                ; 89 d1
-    xor si, si                                ; 31 f6
-    mov dx, ax                                ; 89 c2
-    mov ax, 0b103h                            ; b8 03 b1
-    sal ecx, 010h                             ; 66 c1 e1 10
-    db  08bh, 0cah
-    ; mov cx, dx                                ; 8b ca
-    int 01ah                                  ; cd 1a
-    cmp ah, 000h                              ; 80 fc 00
-    je near 0a086h                            ; 0f 84 03 00
-    mov bx, strict word 0ffffh                ; bb ff ff
-    mov ax, bx                                ; 89 d8
-    lea sp, [bp-006h]                         ; 8d 66 fa
-    pop si                                    ; 5e
-    pop cx                                    ; 59
-    pop bx                                    ; 5b
+    mov ax, strict word 0ffffh                ; b8 ff ff
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_read_config_byte_:                       ; 0xfa090 LB 0x27
+pci_read_config_byte_:                       ; 0xfa018 LB 0x27
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15544,5 +15498,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_read_config_word_:                       ; 0xfa0b7 LB 0x25
+pci_read_config_word_:                       ; 0xfa03f LB 0x25
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15566,22 +15520,34 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_read_config_dword_:                      ; 0xfa0dc LB 0x27
+pci_read_config_dword_:                      ; 0xfa064 LB 0x3f
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     push cx                                   ; 51
     push di                                   ; 57
+    push ax                                   ; 50
     mov dh, al                                ; 88 c6
-    mov bh, dl                                ; 88 d7
+    mov byte [bp-006h], bl                    ; 88 5e fa
     mov al, bl                                ; 88 d8
     xor ah, ah                                ; 30 e4
-    mov bh, dh                                ; 88 f7
-    mov bl, dl                                ; 88 d3
     mov di, ax                                ; 89 c7
-    mov ax, 0b10ah                            ; b8 0a b1
+    mov bx, dx                                ; 89 d3
+    mov ax, 0b109h                            ; b8 09 b1
     int 01ah                                  ; cd 1a
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    shr ecx, 010h                             ; 66 c1 e9 10
-    mov dx, cx                                ; 89 ca
+    test cx, cx                               ; 85 c9
+    jne short 0a094h                          ; 75 14
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    mov di, ax                                ; 89 c7
+    inc di                                    ; 47
+    inc di                                    ; 47
+    mov bx, dx                                ; 89 d3
+    mov ax, 0b109h                            ; b8 09 b1
+    int 01ah                                  ; cd 1a
+    test cx, cx                               ; 85 c9
+    je short 0a099h                           ; 74 05
+    mov ax, strict word 00001h                ; b8 01 00
+    jmp short 0a09bh                          ; eb 02
+    xor ax, ax                                ; 31 c0
+    cwd                                       ; 99
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop di                                    ; 5f
@@ -15589,5 +15555,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-vds_is_present_:                             ; 0xfa103 LB 0x1d
+vds_is_present_:                             ; 0xfa0a3 LB 0x1d
     push bx                                   ; 53
     push bp                                   ; 55
@@ -15597,5 +15563,5 @@
     mov es, ax                                ; 8e c0
     test byte [es:bx], 020h                   ; 26 f6 07 20
-    je short 0a11bh                           ; 74 06
+    je short 0a0bbh                           ; 74 06
     mov ax, strict word 00001h                ; b8 01 00
     pop bp                                    ; 5d
@@ -15606,5 +15572,5 @@
     pop bx                                    ; 5b
     retn                                      ; c3
-vds_real_to_lin_:                            ; 0xfa120 LB 0x1e
+vds_real_to_lin_:                            ; 0xfa0c0 LB 0x1e
     push bx                                   ; 53
     push cx                                   ; 51
@@ -15617,5 +15583,5 @@
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 0a12eh                               ; e2 fa
+    loop 0a0ceh                               ; e2 fa
     xor cx, cx                                ; 31 c9
     add ax, bx                                ; 01 d8
@@ -15625,5 +15591,5 @@
     pop bx                                    ; 5b
     retn                                      ; c3
-vds_build_sg_list_:                          ; 0xfa13e LB 0x77
+vds_build_sg_list_:                          ; 0xfa0de LB 0x77
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15639,21 +15605,21 @@
     mov bx, word [bp+006h]                    ; 8b 5e 06
     mov word [es:di+002h], bx                 ; 26 89 5d 02
-    call 0a120h                               ; e8 c3 ff
+    call 0a0c0h                               ; e8 c3 ff
     mov es, si                                ; 8e c6
     mov word [es:di+004h], ax                 ; 26 89 45 04
     mov word [es:di+006h], dx                 ; 26 89 55 06
     mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00
-    call 0a103h                               ; e8 93 ff
+    call 0a0a3h                               ; e8 93 ff
     test ax, ax                               ; 85 c0
-    je short 0a185h                           ; 74 11
+    je short 0a125h                           ; 74 11
     mov es, si                                ; 8e c6
     mov ax, 08105h                            ; b8 05 81
     mov dx, strict word 00000h                ; ba 00 00
     int 04bh                                  ; cd 4b
-    jc short 0a182h                           ; 72 02
+    jc short 0a122h                           ; 72 02
     db  032h, 0c0h
     ; xor al, al                                ; 32 c0
     cbw                                       ; 98
-    jmp short 0a1ach                          ; eb 27
+    jmp short 0a14ch                          ; eb 27
     mov es, si                                ; 8e c6
     mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00
@@ -15672,5 +15638,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-vds_free_sg_list_:                           ; 0xfa1b5 LB 0x3b
+vds_free_sg_list_:                           ; 0xfa155 LB 0x3b
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15678,7 +15644,7 @@
     push di                                   ; 57
     mov bx, ax                                ; 89 c3
-    call 0a103h                               ; e8 44 ff
+    call 0a0a3h                               ; e8 44 ff
     test ax, ax                               ; 85 c0
-    je short 0a1d4h                           ; 74 11
+    je short 0a174h                           ; 74 11
     mov di, bx                                ; 89 df
     mov es, dx                                ; 8e c2
@@ -15686,5 +15652,5 @@
     mov dx, strict word 00000h                ; ba 00 00
     int 04bh                                  ; cd 4b
-    jc short 0a1d3h                           ; 72 02
+    jc short 0a173h                           ; 72 02
     db  032h, 0c0h
     ; xor al, al                                ; 32 c0
@@ -15698,5 +15664,5 @@
     retn                                      ; c3
     times 0xd db 0
-__U4D:                                       ; 0xfa1f0 LB 0x39
+__U4D:                                       ; 0xfa190 LB 0x39
     pushfw                                    ; 9c
     push eax                                  ; 66 50
@@ -15728,5 +15694,5 @@
     popfw                                     ; 9d
     retn                                      ; c3
-__U4M:                                       ; 0xfa229 LB 0x31
+__U4M:                                       ; 0xfa1c9 LB 0x31
     pushfw                                    ; 9c
     push eax                                  ; 66 50
@@ -15753,7 +15719,7 @@
     popfw                                     ; 9d
     retn                                      ; c3
-__U8LS:                                      ; 0xfa25a LB 0x10
+__U8LS:                                      ; 0xfa1fa LB 0x10
     test si, si                               ; 85 f6
-    je short 0a269h                           ; 74 0b
+    je short 0a209h                           ; 74 0b
     sal dx, 1                                 ; d1 e2
     rcl cx, 1                                 ; d1 d1
@@ -15761,9 +15727,9 @@
     rcl ax, 1                                 ; d1 d0
     dec si                                    ; 4e
-    jne short 0a25eh                          ; 75 f5
+    jne short 0a1feh                          ; 75 f5
     retn                                      ; c3
-__U8RS:                                      ; 0xfa26a LB 0x10
+__U8RS:                                      ; 0xfa20a LB 0x10
     test si, si                               ; 85 f6
-    je short 0a279h                           ; 74 0b
+    je short 0a219h                           ; 74 0b
     shr ax, 1                                 ; d1 e8
     rcr bx, 1                                 ; d1 db
@@ -15771,7 +15737,7 @@
     rcr dx, 1                                 ; d1 da
     dec si                                    ; 4e
-    jne short 0a26eh                          ; 75 f5
+    jne short 0a20eh                          ; 75 f5
     retn                                      ; c3
-_fmemset_:                                   ; 0xfa27a LB 0xd
+_fmemset_:                                   ; 0xfa21a LB 0xd
     push di                                   ; 57
     mov es, dx                                ; 8e c2
@@ -15783,5 +15749,5 @@
     pop di                                    ; 5f
     retn                                      ; c3
-_fmemcpy_:                                   ; 0xfa287 LB 0x33
+_fmemcpy_:                                   ; 0xfa227 LB 0x33
     push bp                                   ; 55
     db  08bh, 0ech
@@ -15803,16 +15769,17 @@
     leave                                     ; c9
     retn                                      ; c3
-    add al, dl                                ; 00 d0
-    mov byte [0a2d2h], AL                     ; a2 d2 a2
-    db  0d6h
-    mov byte [0a2d6h], AL                     ; a2 d6 a2
-    db  0d6h
-    mov byte [0a2d8h], AL                     ; a2 d8 a2
-    fsub dword [bp+si-05d26h]                 ; d8 a2 da a2
-    fisub word [bp+si-05d22h]                 ; de a2 de a2
-    loopne 0a258h                             ; e0 a2
-    in ax, 0a2h                               ; e5 a2
-    out 0a2h, ax                              ; e7 a2
-apm_worker:                                  ; 0xfa2ba LB 0x3a
+    add byte [bx+si-05eh], dh                 ; 00 70 a2
+    jc short 0a1e6h                           ; 72 a2
+    jbe short 0a1e8h                          ; 76 a2
+    jbe short 0a1eah                          ; 76 a2
+    jbe short 0a1ech                          ; 76 a2
+    js short 0a1eeh                           ; 78 a2
+    js short 0a1f0h                           ; 78 a2
+    jp short 0a1f2h                           ; 7a a2
+    jle short 0a1f4h                          ; 7e a2
+    jle short 0a1f6h                          ; 7e a2
+    and byte [bp+si-05d7bh], 087h             ; 80 a2 85 a2 87
+    db  0a2h
+apm_worker:                                  ; 0xfa25a LB 0x3a
     sti                                       ; fb
     push ax                                   ; 50
@@ -15826,21 +15793,21 @@
     pop ax                                    ; 58
     mov AH, strict byte 053h                  ; b4 53
-    jnc short 0a2f0h                          ; 73 25
-    jmp word [cs:bp-05d60h]                   ; 2e ff a6 a0 a2
-    jmp short 0a2eeh                          ; eb 1c
+    jnc short 0a290h                          ; 73 25
+    jmp word [cs:bp-05dc0h]                   ; 2e ff a6 40 a2
+    jmp short 0a28eh                          ; eb 1c
     sti                                       ; fb
     hlt                                       ; f4
-    jmp short 0a2eeh                          ; eb 18
-    jmp short 0a2eeh                          ; eb 16
-    jmp short 0a2f0h                          ; eb 16
+    jmp short 0a28eh                          ; eb 18
+    jmp short 0a28eh                          ; eb 16
+    jmp short 0a290h                          ; eb 16
     mov AH, strict byte 080h                  ; b4 80
-    jmp short 0a2f2h                          ; eb 14
-    jmp short 0a2f0h                          ; eb 10
+    jmp short 0a292h                          ; eb 14
+    jmp short 0a290h                          ; eb 10
     mov ax, 00102h                            ; b8 02 01
-    jmp short 0a2eeh                          ; eb 09
-    jmp short 0a2eeh                          ; eb 07
+    jmp short 0a28eh                          ; eb 09
+    jmp short 0a28eh                          ; eb 07
     mov BL, strict byte 000h                  ; b3 00
     mov cx, strict word 00000h                ; b9 00 00
-    jmp short 0a2eeh                          ; eb 00
+    jmp short 0a28eh                          ; eb 00
     clc                                       ; f8
     retn                                      ; c3
@@ -15848,5 +15815,5 @@
     stc                                       ; f9
     retn                                      ; c3
-apm_pm16_entry:                              ; 0xfa2f4 LB 0x11
+apm_pm16_entry:                              ; 0xfa294 LB 0x11
     mov AH, strict byte 002h                  ; b4 02
     push DS                                   ; 1e
@@ -15856,11 +15823,11 @@
     add bp, strict byte 00008h                ; 83 c5 08
     mov ds, bp                                ; 8e dd
-    call 0a2bah                               ; e8 b8 ff
+    call 0a25ah                               ; e8 b8 ff
     pop bp                                    ; 5d
     pop DS                                    ; 1f
     retf                                      ; cb
 
-  ; Padding 0x36fb bytes at 0xfa305
-  times 14075 db 0
+  ; Padding 0x375b bytes at 0xfa2a5
+  times 14171 db 0
 
 section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO
@@ -15909,5 +15876,5 @@
     add bp, strict byte 00008h                ; 83 c5 08
     push ebp                                  ; 66 55
-    mov bp, 0a2f6h                            ; bd f6 a2
+    mov bp, 0a296h                            ; bd 96 a2
     add byte [bx+si], al                      ; 00 00
     push ebp                                  ; 66 55
@@ -16297,7 +16264,7 @@
 
 section BIOSSEG progbits vstart=0xe000 align=1 ; size=0x2000 class=CODE group=AUTO
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 058h, 04dh
+biosorg_check_before_or_at_0E02Eh:           ; 0xfe000 LB 0x30
+    times 0x2e db 0
+    db  'XM'
 eoi_both_pics:                               ; 0xfe030 LB 0x4
     mov AL, strict byte 020h                  ; b0 20
@@ -16313,17 +16280,23 @@
     loop 0e039h                               ; e2 f6
     retn                                      ; c3
-eoi_jmp_post:                                ; 0xfe044 LB 0x17
+eoi_jmp_post:                                ; 0xfe044 LB 0x3
     call 0e030h                               ; e8 e9 ff
+no_eoi_jmp_post:                             ; 0xfe047 LB 0x8
     db  033h, 0c0h
     ; xor ax, ax                                ; 33 c0
     mov ds, ax                                ; 8e d8
     jmp far [00467h]                          ; ff 2e 67 04
-    times 0xa db 0
+seg_40_value:                                ; 0xfe04f LB 0x2
+    inc ax                                    ; 40
+    times 0x1 db 0
+biosorg_check_before_or_at_0E059h:           ; 0xfe051 LB 0xa
+    times 0x8 db 0
     db  'XM'
-post:                                        ; 0xfe05b LB 0x61
+post:                                        ; 0xfe05b LB 0x65
     cli                                       ; fa
+    jmp short 0e064h                          ; eb 06
     mov AL, strict byte 001h                  ; b0 01
     out strict byte 092h, AL                  ; e6 92
-    jmp short 0e060h                          ; eb fe
+    jmp short 0e062h                          ; eb fe
     mov AL, strict byte 00fh                  ; b0 0f
     out strict byte 070h, AL                  ; e6 70
@@ -16332,14 +16305,13 @@
     in AL, strict byte 064h                   ; e4 64
     test AL, strict byte 004h                 ; a8 04
-    je short 0e081h                           ; 74 11
+    je short 0e085h                           ; 74 13
     db  08ah, 0c4h
     ; mov al, ah                                ; 8a c4
     db  00ah, 0c0h
     ; or al, al                                 ; 0a c0
-    jne short 0e081h                          ; 75 0b
-    push strict byte 00040h                   ; 6a 40
-    pop DS                                    ; 1f
+    jne short 0e085h                          ; 75 0d
+    mov ds, [cs:0e04fh]                       ; 2e 8e 1e 4f e0
     cmp word [word 00072h], 01234h            ; 81 3e 72 00 34 12
-    jne short 0e05ch                          ; 75 db
+    jne short 0e05eh                          ; 75 d9
     mov AL, strict byte 00fh                  ; b0 0f
     out strict byte 070h, AL                  ; e6 70
@@ -16349,7 +16321,7 @@
     ; mov al, ah                                ; 8a c4
     cmp AL, strict byte 009h                  ; 3c 09
-    je short 0e0a1h                           ; 74 12
+    je short 0e0a5h                           ; 74 12
     cmp AL, strict byte 00ah                  ; 3c 0a
-    je short 0e0a1h                           ; 74 0e
+    je short 0e0a5h                           ; 74 0e
     db  032h, 0c0h
     ; xor al, al                                ; 32 c0
@@ -16363,16 +16335,16 @@
     ; mov al, ah                                ; 8a c4
     cmp AL, strict byte 000h                  ; 3c 00
-    je short 0e0bch                           ; 74 15
+    je short 0e0c0h                           ; 74 15
     cmp AL, strict byte 00dh                  ; 3c 0d
-    jnc short 0e0bch                          ; 73 11
+    jnc short 0e0c0h                          ; 73 11
     cmp AL, strict byte 009h                  ; 3c 09
-    jne short 0e0b2h                          ; 75 03
-    jmp near 0e366h                           ; e9 b4 02
+    jne short 0e0b6h                          ; 75 03
+    jmp near 0e366h                           ; e9 b0 02
     cmp AL, strict byte 005h                  ; 3c 05
-    je short 0e044h                           ; 74 8e
+    je short 0e044h                           ; 74 8a
     cmp AL, strict byte 00ah                  ; 3c 0a
-    je short 0e047h                           ; 74 8d
-    jmp short 0e0bch                          ; eb 00
-normal_post:                                 ; 0xfe0bc LB 0x207
+    je short 0e047h                           ; 74 89
+    jmp short 0e0c0h                          ; eb 00
+normal_post:                                 ; 0xfe0c0 LB 0x1f3
     mov ax, 07800h                            ; b8 00 78
     db  08bh, 0e0h
@@ -16396,5 +16368,5 @@
     add bx, 01000h                            ; 81 c3 00 10
     cmp bx, 09000h                            ; 81 fb 00 90
-    jnc short 0e0efh                          ; 73 0b
+    jnc short 0e0f3h                          ; 73 0b
     mov es, bx                                ; 8e c3
     db  033h, 0ffh
@@ -16402,5 +16374,5 @@
     mov cx, 08000h                            ; b9 00 80
     rep stosw                                 ; f3 ab
-    jmp short 0e0dah                          ; eb eb
+    jmp short 0e0deh                          ; eb eb
     mov es, bx                                ; 8e c3
     db  033h, 0ffh
@@ -16413,5 +16385,5 @@
     pop DS                                    ; 1f
     cld                                       ; fc
-    call 01775h                               ; e8 75 36
+    call 01775h                               ; e8 71 36
     db  033h, 0dbh
     ; xor bx, bx                                ; 33 db
@@ -16420,11 +16392,11 @@
     mov ax, 0ff53h                            ; b8 53 ff
     mov dx, 0f000h                            ; ba 00 f0
-    call 0e039h                               ; e8 29 ff
+    call 0e039h                               ; e8 25 ff
     mov bx, 001a0h                            ; bb a0 01
     mov cx, strict word 00010h                ; b9 10 00
-    call 0e039h                               ; e8 20 ff
+    call 0e039h                               ; e8 1c ff
     mov ax, 0027fh                            ; b8 7f 02
     mov word [00413h], ax                     ; a3 13 04
-    mov ax, 0e9d6h                            ; b8 d6 e9
+    mov ax, 0e9e4h                            ; b8 e4 e9
     mov word [00018h], ax                     ; a3 18 00
     mov ax, 0f000h                            ; b8 00 f0
@@ -16454,9 +16426,9 @@
     mov ax, 0f000h                            ; b8 00 f0
     mov word [00066h], ax                     ; a3 66 00
-    mov ax, 0efedh                            ; b8 ed ef
+    mov ax, 0effbh                            ; b8 fb ef
     mov word [00070h], ax                     ; a3 70 00
     mov ax, 0f000h                            ; b8 00 f0
     mov word [00072h], ax                     ; a3 72 00
-    call 0e778h                               ; e8 f6 05
+    call 0e794h                               ; e8 0e 06
     mov ax, 0fe6eh                            ; b8 6e fe
     mov word [00068h], ax                     ; a3 68 00
@@ -16510,6 +16482,6 @@
     mov ax, 0c000h                            ; b8 00 c0
     mov dx, 0c800h                            ; ba 00 c8
-    call 01600h                               ; e8 f4 33
-    call 04ff1h                               ; e8 e2 6d
+    call 01600h                               ; e8 f0 33
+    call 04faah                               ; e8 97 6d
     pop DS                                    ; 1f
     mov ax, 0ff53h                            ; b8 53 ff
@@ -16524,8 +16496,11 @@
     mov CL, strict byte 014h                  ; b1 14
     mov dx, 00378h                            ; ba 78 03
-    call 0ecedh                               ; e8 c3 0a
+    call 0ed0ah                               ; e8 dc 0a
     mov dx, 00278h                            ; ba 78 02
-    call 0ecedh                               ; e8 bd 0a
-    sal bx, 00eh                              ; c1 e3 0e
+    call 0ed0ah                               ; e8 d6 0a
+    push cx                                   ; 51
+    mov CL, strict byte 00eh                  ; b1 0e
+    sal bx, CL                                ; d3 e3
+    pop cx                                    ; 59
     mov ax, word [00410h]                     ; a1 10 04
     and ax, 03fffh                            ; 25 ff 3f
@@ -16533,9 +16508,9 @@
     ; or ax, bx                                 ; 0b c3
     mov word [00410h], ax                     ; a3 10 04
-    mov ax, 0e746h                            ; b8 46 e7
+    mov ax, 0e754h                            ; b8 54 e7
     mov word [0002ch], ax                     ; a3 2c 00
     mov ax, 0f000h                            ; b8 00 f0
     mov word [0002eh], ax                     ; a3 2e 00
-    mov ax, 0e746h                            ; b8 46 e7
+    mov ax, 0e754h                            ; b8 54 e7
     mov word [00030h], ax                     ; a3 30 00
     mov ax, 0f000h                            ; b8 00 f0
@@ -16549,12 +16524,15 @@
     mov CL, strict byte 00ah                  ; b1 0a
     mov dx, 003f8h                            ; ba f8 03
-    call 0ed0bh                               ; e8 9f 0a
+    call 0ed28h                               ; e8 b5 0a
     mov dx, 002f8h                            ; ba f8 02
-    call 0ed0bh                               ; e8 99 0a
+    call 0ed28h                               ; e8 af 0a
     mov dx, 003e8h                            ; ba e8 03
-    call 0ed0bh                               ; e8 93 0a
+    call 0ed28h                               ; e8 a9 0a
     mov dx, 002e8h                            ; ba e8 02
-    call 0ed0bh                               ; e8 8d 0a
-    sal bx, 009h                              ; c1 e3 09
+    call 0ed28h                               ; e8 a3 0a
+    push cx                                   ; 51
+    mov CL, strict byte 009h                  ; b1 09
+    sal bx, CL                                ; d3 e3
+    pop cx                                    ; 59
     mov ax, word [00410h]                     ; a1 10 04
     and ax, 0f1ffh                            ; 25 ff f1
@@ -16566,11 +16544,12 @@
     mov ax, 0f000h                            ; b8 00 f0
     mov word [0012ah], ax                     ; a3 2a 01
-    mov ax, 0fe7bh                            ; b8 7b fe
+    mov ax, 0f90fh                            ; b8 0f f9
     mov word [001c0h], ax                     ; a3 c0 01
     mov ax, 0f000h                            ; b8 00 f0
     mov word [001c2h], ax                     ; a3 c2 01
-    call 0edbfh                               ; e8 18 0b
-    jmp short 0e31bh                          ; eb 72
-    times 0x18 db 0
+    call 0ede3h                               ; e8 32 0b
+    jmp short 0e31bh                          ; eb 68
+biosorg_check_before_or_at_0E2C1h:           ; 0xfe2b3 LB 0x10
+    times 0xe db 0
     db  'XM'
 nmi:                                         ; 0xfe2c3 LB 0x7
@@ -16585,5 +16564,5 @@
     int 002h                                  ; cd 02
     iret                                      ; cf
-hard_drive_post:                             ; 0xfe2d2 LB 0x12c
+hard_drive_post:                             ; 0xfe2d2 LB 0xbd
     db  033h, 0c0h
     ; xor ax, ax                                ; 33 c0
@@ -16600,5 +16579,5 @@
     mov ax, 0f000h                            ; b8 00 f0
     mov word [0004eh], ax                     ; a3 4e 00
-    mov ax, 0f8d5h                            ; b8 d5 f8
+    mov ax, 0f8fdh                            ; b8 fd f8
     mov word [001d8h], ax                     ; a3 d8 01
     mov ax, 0f000h                            ; b8 00 f0
@@ -16613,5 +16592,5 @@
     mov word [0011ah], ax                     ; a3 1a 01
     retn                                      ; c3
-    mov ax, 0f8a7h                            ; b8 a7 f8
+    mov ax, 0f8c3h                            ; b8 c3 f8
     mov word [001d0h], ax                     ; a3 d0 01
     mov ax, 0f000h                            ; b8 00 f0
@@ -16621,5 +16600,5 @@
     mov ax, 0f000h                            ; b8 00 f0
     mov word [001d6h], ax                     ; a3 d6 01
-    call 0e753h                               ; e8 1d 04
+    call 0e76fh                               ; e8 39 04
     push CS                                   ; 0e
     pop DS                                    ; 1f
@@ -16627,7 +16606,7 @@
     call 01cc5h                               ; e8 89 39
     call 02154h                               ; e8 15 3e
-    call 09b2ch                               ; e8 ea b7
-    call 08991h                               ; e8 4c a6
-    call 0ed2fh                               ; e8 e7 09
+    call 09ad7h                               ; e8 95 b7
+    call 0893ch                               ; e8 f7 a5
+    call 0ed4ch                               ; e8 04 0a
     call 0e2d2h                               ; e8 87 ff
     push CS                                   ; 0e
@@ -16638,5 +16617,5 @@
     call 01600h                               ; e8 a9 32
     call 01799h                               ; e8 3f 34
-    call 03be2h                               ; e8 85 58
+    call 03bc4h                               ; e8 67 58
     sti                                       ; fb
     int 019h                                  ; cd 19
@@ -16653,5 +16632,5 @@
     and AL, strict byte 0fdh                  ; 24 fd
     out strict byte 092h, AL                  ; e6 92
-    lidt [cs:0efe7h]                          ; 2e 0f 01 1e e7 ef
+    lidt [cs:0eff5h]                          ; 2e 0f 01 1e f5 ef
     pop DS                                    ; 1f
     pop ES                                    ; 07
@@ -16665,4 +16644,5 @@
     sti                                       ; fb
     retf 00002h                               ; ca 02 00
+biosorg_check_before_or_at_0E3FCh:           ; 0xfe38f LB 0x6f
     times 0x6d db 0
     db  'XM'
@@ -16720,23 +16700,39 @@
 int19_handler:                               ; 0xfe6f2 LB 0x3
     jmp near 0f0ach                           ; e9 b7 09
-biosorg_check_0E6F5h:                        ; 0xfe6f5 LB 0x34
+biosorg_check_at_0E6F5h:                     ; 0xfe6f5 LB 0xa
     or word [bx+si], ax                       ; 09 00
-    cld                                       ; fc
+    sti                                       ; fb
     add byte [bx+di], al                      ; 00 01
     je short 0e73ch                           ; 74 40
-    times 0x2b db 0
+    times 0x3 db 0
+biosorg_check_before_or_at_0E727h:           ; 0xfe6ff LB 0x2a
+    times 0x28 db 0
     db  'XM'
-biosorg_check_0E729h:                        ; 0xfe729 LB 0x10
+biosorg_check_at_0E729h:                     ; 0xfe729 LB 0x10
     times 0xe db 0
     db  'XM'
-biosorg_check_0E739h:                        ; 0xfe739 LB 0x1a
+biosorg_check_at_0E739h:                     ; 0xfe739 LB 0x36
     push DS                                   ; 1e
     push ES                                   ; 06
-    pushaw                                    ; 60
+    push ax                                   ; 50
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push bx                                   ; 53
+    push sp                                   ; 54
+    push bp                                   ; 55
+    push si                                   ; 56
+    push di                                   ; 57
     push CS                                   ; 0e
     pop DS                                    ; 1f
     cld                                       ; fc
-    call 065bch                               ; e8 7a 7e
-    popaw                                     ; 61
+    call 06565h                               ; e8 1c 7e
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    pop bx                                    ; 5b
+    pop bx                                    ; 5b
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop ax                                    ; 58
     pop ES                                    ; 07
     pop DS                                    ; 1f
@@ -16744,14 +16740,28 @@
     push DS                                   ; 1e
     push ES                                   ; 06
-    pushaw                                    ; 60
+    push ax                                   ; 50
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push bx                                   ; 53
+    push sp                                   ; 54
+    push bp                                   ; 55
+    push si                                   ; 56
+    push di                                   ; 57
     push CS                                   ; 0e
     pop DS                                    ; 1f
     cld                                       ; fc
-    call 016e6h                               ; e8 97 2f
-    popaw                                     ; 61
+    call 016e6h                               ; e8 82 2f
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    pop bx                                    ; 5b
+    pop bx                                    ; 5b
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop ax                                    ; 58
     pop ES                                    ; 07
     pop DS                                    ; 1f
     iret                                      ; cf
-init_pic:                                    ; 0xfe753 LB 0x25
+init_pic:                                    ; 0xfe76f LB 0x25
     mov AL, strict byte 011h                  ; b0 11
     out strict byte 020h, AL                  ; e6 20
@@ -16773,18 +16783,18 @@
     out strict byte 0a1h, AL                  ; e6 a1
     retn                                      ; c3
-ebda_post:                                   ; 0xfe778 LB 0xb6
-    mov ax, 0e746h                            ; b8 46 e7
+ebda_post:                                   ; 0xfe794 LB 0x45
+    mov ax, 0e754h                            ; b8 54 e7
     mov word [00034h], ax                     ; a3 34 00
     mov ax, 0f000h                            ; b8 00 f0
     mov word [00036h], ax                     ; a3 36 00
-    mov ax, 0e746h                            ; b8 46 e7
+    mov ax, 0e754h                            ; b8 54 e7
     mov word [0003ch], ax                     ; a3 3c 00
     mov ax, 0f000h                            ; b8 00 f0
     mov word [0003eh], ax                     ; a3 3e 00
-    mov ax, 0e746h                            ; b8 46 e7
+    mov ax, 0e754h                            ; b8 54 e7
     mov word [001c8h], ax                     ; a3 c8 01
     mov ax, 0f000h                            ; b8 00 f0
     mov word [001cah], ax                     ; a3 ca 01
-    mov ax, 0e746h                            ; b8 46 e7
+    mov ax, 0e754h                            ; b8 54 e7
     mov word [001dch], ax                     ; a3 dc 01
     mov ax, 0f000h                            ; b8 00 f0
@@ -16798,20 +16808,35 @@
     mov word [0040eh], 09fc0h                 ; c7 06 0e 04 c0 9f
     retn                                      ; c3
-    times 0x6f db 0
+biosorg_check_before_or_at_0E82Ch:           ; 0xfe7d9 LB 0x55
+    times 0x53 db 0
     db  'XM'
-biosorg_check_0E82Eh:                        ; 0xfe82e LB 0x159
+biosorg_check_at_0E82Eh:                     ; 0xfe82e LB 0x4b
     sti                                       ; fb
     push ES                                   ; 06
     push DS                                   ; 1e
-    pushaw                                    ; 60
+    push ax                                   ; 50
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push bx                                   ; 53
+    push sp                                   ; 54
+    push bp                                   ; 55
+    push si                                   ; 56
+    push di                                   ; 57
     cmp ah, 000h                              ; 80 fc 00
-    je short 0e846h                           ; 74 0f
+    je short 0e854h                           ; 74 16
     cmp ah, 010h                              ; 80 fc 10
-    je short 0e846h                           ; 74 0a
+    je short 0e854h                           ; 74 11
     push CS                                   ; 0e
     pop DS                                    ; 1f
     cld                                       ; fc
-    call 0585ah                               ; e8 18 70
-    popaw                                     ; 61
+    call 05813h                               ; e8 ca 6f
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    pop bx                                    ; 5b
+    pop bx                                    ; 5b
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop ax                                    ; 58
     pop DS                                    ; 1f
     pop ES                                    ; 07
@@ -16822,19 +16847,27 @@
     mov bx, word [word 0001ah]                ; 8b 1e 1a 00
     cmp bx, word [word 0001ch]                ; 3b 1e 1c 00
-    jne short 0e85ah                          ; 75 04
+    jne short 0e868h                          ; 75 04
     sti                                       ; fb
     nop                                       ; 90
-    jmp short 0e84bh                          ; eb f1
+    jmp short 0e859h                          ; eb f1
     push CS                                   ; 0e
     pop DS                                    ; 1f
     cld                                       ; fc
-    call 0585ah                               ; e8 fa 6f
-    popaw                                     ; 61
+    call 05813h                               ; e8 a5 6f
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    pop bx                                    ; 5b
+    pop bx                                    ; 5b
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop ax                                    ; 58
     pop DS                                    ; 1f
     pop ES                                    ; 07
     iret                                      ; cf
-    times 0x121 db 0
+biosorg_check_before_or_at_0E985h:           ; 0xfe879 LB 0x10e
+    times 0x10c db 0
     db  'XM'
-biosorg_check_0E987h:                        ; 0xfe987 LB 0x2d2
+biosorg_check_at_0E987h:                     ; 0xfe987 LB 0x78
     cli                                       ; fa
     push ax                                   ; 50
@@ -16845,43 +16878,64 @@
     in AL, strict byte 020h                   ; e4 20
     and AL, strict byte 002h                  ; 24 02
-    je short 0e9d0h                           ; 74 39
+    je short 0e9deh                           ; 74 47
     in AL, strict byte 060h                   ; e4 60
     push DS                                   ; 1e
-    pushaw                                    ; 60
+    push ax                                   ; 50
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push bx                                   ; 53
+    push sp                                   ; 54
+    push bp                                   ; 55
+    push si                                   ; 56
+    push di                                   ; 57
     cld                                       ; fc
     mov AH, strict byte 04fh                  ; b4 4f
     stc                                       ; f9
     int 015h                                  ; cd 15
-    jnc short 0e9cah                          ; 73 27
+    jnc short 0e9d1h                          ; 73 27
     sti                                       ; fb
     cmp AL, strict byte 0e0h                  ; 3c e0
-    jne short 0e9b3h                          ; 75 0b
+    jne short 0e9bah                          ; 75 0b
     db  033h, 0c0h
     ; xor ax, ax                                ; 33 c0
     mov ds, ax                                ; 8e d8
     or byte [00496h], 002h                    ; 80 0e 96 04 02
-    jmp short 0e9cah                          ; eb 17
+    jmp short 0e9d1h                          ; eb 17
     cmp AL, strict byte 0e1h                  ; 3c e1
-    jne short 0e9c2h                          ; 75 0b
+    jne short 0e9c9h                          ; 75 0b
     db  033h, 0c0h
     ; xor ax, ax                                ; 33 c0
     mov ds, ax                                ; 8e d8
     or byte [00496h], 001h                    ; 80 0e 96 04 01
-    jmp short 0e9cah                          ; eb 08
+    jmp short 0e9d1h                          ; eb 08
     push ES                                   ; 06
     push CS                                   ; 0e
     pop DS                                    ; 1f
     cld                                       ; fc
-    call 052f9h                               ; e8 30 69
+    call 052b2h                               ; e8 e2 68
     pop ES                                    ; 07
-    popaw                                     ; 61
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    pop bx                                    ; 5b
+    pop bx                                    ; 5b
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop ax                                    ; 58
     pop DS                                    ; 1f
     cli                                       ; fa
-    call 0e034h                               ; e8 64 f6
+    call 0e034h                               ; e8 56 f6
     mov AL, strict byte 0aeh                  ; b0 ae
     out strict byte 064h, AL                  ; e6 64
     pop ax                                    ; 58
     iret                                      ; cf
-    pushaw                                    ; 60
+    push ax                                   ; 50
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push bx                                   ; 53
+    push sp                                   ; 54
+    push bp                                   ; 55
+    push si                                   ; 56
+    push di                                   ; 57
     push ES                                   ; 06
     push DS                                   ; 1e
@@ -16889,19 +16943,34 @@
     pop DS                                    ; 1f
     cld                                       ; fc
-    call 07073h                               ; e8 94 86
+    call 0701ch                               ; e8 28 86
     pop DS                                    ; 1f
     pop ES                                    ; 07
-    popaw                                     ; 61
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    pop bx                                    ; 5b
+    pop bx                                    ; 5b
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop ax                                    ; 58
     iret                                      ; cf
-    times 0x274 db 0
+biosorg_check_before_or_at_0EC57h:           ; 0xfe9ff LB 0x25a
+    times 0x258 db 0
     db  'XM'
-biosorg_check_0EC59h:                        ; 0xfec59 LB 0x2
-    jmp short 0ecb0h                          ; eb 55
-int13_relocated:                             ; 0xfec5b LB 0x55
+biosorg_check_at_0EC59h:                     ; 0xfec59 LB 0x2
+    jmp short 0ecc4h                          ; eb 69
+int13_relocated:                             ; 0xfec5b LB 0x1f
     cmp ah, 04ah                              ; 80 fc 4a
-    jc short 0ec71h                           ; 72 11
+    jc short 0ec7ch                           ; 72 1c
     cmp ah, 04dh                              ; 80 fc 4d
-    jnbe short 0ec71h                         ; 77 0c
-    pushaw                                    ; 60
+    jnbe short 0ec7ch                         ; 77 17
+    push ax                                   ; 50
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push bx                                   ; 53
+    push sp                                   ; 54
+    push bp                                   ; 55
+    push si                                   ; 56
+    push di                                   ; 57
     push ES                                   ; 06
     push DS                                   ; 1e
@@ -16909,6 +16978,9 @@
     pop DS                                    ; 1f
     cld                                       ; fc
-    push 0ece9h                               ; 68 e9 ec
-    jmp near 03c26h                           ; e9 b5 4f
+    push word [cs:0ec7ah]                     ; 2e ff 36 7a ec
+    jmp near 03c08h                           ; e9 8e 4f
+jmp_call_ret_int13_out:                      ; 0xfec7a LB 0x4a
+    db  0ffh
+    in AL, DX                                 ; ec
     push ES                                   ; 06
     push ax                                   ; 50
@@ -16916,13 +16988,13 @@
     push cx                                   ; 51
     push dx                                   ; 52
-    call 03bfah                               ; e8 81 4f
+    call 03bdch                               ; e8 58 4f
     cmp AL, strict byte 000h                  ; 3c 00
-    je short 0ecabh                           ; 74 2e
-    call 03c10h                               ; e8 90 4f
+    je short 0ecbfh                           ; 74 37
+    call 03bf2h                               ; e8 67 4f
     pop dx                                    ; 5a
     push dx                                   ; 52
     db  03ah, 0c2h
     ; cmp al, dl                                ; 3a c2
-    jne short 0ec97h                          ; 75 11
+    jne short 0ecabh                          ; 75 1a
     pop dx                                    ; 5a
     pop cx                                    ; 59
@@ -16930,5 +17002,12 @@
     pop ax                                    ; 58
     pop ES                                    ; 07
-    pushaw                                    ; 60
+    push ax                                   ; 50
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push bx                                   ; 53
+    push sp                                   ; 54
+    push bp                                   ; 55
+    push si                                   ; 56
+    push di                                   ; 57
     push ES                                   ; 06
     push DS                                   ; 1e
@@ -16936,10 +17015,10 @@
     pop DS                                    ; 1f
     cld                                       ; fc
-    push 0ece9h                               ; 68 e9 ec
-    jmp near 04233h                           ; e9 9c 55
+    push word [cs:0ec7ah]                     ; 2e ff 36 7a ec
+    jmp near 04215h                           ; e9 6a 55
     and dl, 0e0h                              ; 80 e2 e0
     db  03ah, 0c2h
     ; cmp al, dl                                ; 3a c2
-    jne short 0ecabh                          ; 75 0d
+    jne short 0ecbfh                          ; 75 0d
     pop dx                                    ; 5a
     pop cx                                    ; 59
@@ -16953,5 +17032,5 @@
     db  0feh, 0cah
     ; dec dl                                    ; fe ca
-    jmp short 0ecb4h                          ; eb 09
+    jmp short 0ecc8h                          ; eb 09
     pop dx                                    ; 5a
     pop cx                                    ; 59
@@ -16959,10 +17038,10 @@
     pop ax                                    ; 58
     pop ES                                    ; 07
-int13_noeltorito:                            ; 0xfecb0 LB 0x4
+int13_noeltorito:                            ; 0xfecc4 LB 0x4
     push ax                                   ; 50
     push cx                                   ; 51
     push dx                                   ; 52
     push bx                                   ; 53
-int13_legacy:                                ; 0xfecb4 LB 0x14
+int13_legacy:                                ; 0xfecc8 LB 0x16
     push dx                                   ; 52
     push bp                                   ; 55
@@ -16975,28 +17054,35 @@
     cld                                       ; fc
     test dl, 080h                             ; f6 c2 80
-    jne short 0ecc8h                          ; 75 06
-    push 0ece9h                               ; 68 e9 ec
-    jmp near 0322dh                           ; e9 65 45
-int13_notfloppy:                             ; 0xfecc8 LB 0x14
+    jne short 0ecdeh                          ; 75 08
+    push word [cs:0ec7ah]                     ; 2e ff 36 7a ec
+    jmp near 0320fh                           ; e9 31 45
+int13_notfloppy:                             ; 0xfecde LB 0x14
     cmp dl, 0e0h                              ; 80 fa e0
-    jc short 0ecdch                           ; 72 0f
+    jc short 0ecf2h                           ; 72 0f
     shr ebx, 010h                             ; 66 c1 eb 10
     push bx                                   ; 53
-    call 04686h                               ; e8 b1 59
+    call 04668h                               ; e8 7d 59
     pop bx                                    ; 5b
     sal ebx, 010h                             ; 66 c1 e3 10
-    jmp short 0ece9h                          ; eb 0d
-int13_disk:                                  ; 0xfecdc LB 0xd
+    jmp short 0ecffh                          ; eb 0d
+int13_disk:                                  ; 0xfecf2 LB 0xd
     cmp ah, 040h                              ; 80 fc 40
-    jnbe short 0ece6h                         ; 77 05
-    call 05c3bh                               ; e8 57 6f
-    jmp short 0ece9h                          ; eb 03
-    call 06081h                               ; e8 98 73
-int13_out:                                   ; 0xfece9 LB 0x4
+    jnbe short 0ecfch                         ; 77 05
+    call 05bf4h                               ; e8 fa 6e
+    jmp short 0ecffh                          ; eb 03
+    call 0603ah                               ; e8 3b 73
+int13_out:                                   ; 0xfecff LB 0xb
     pop DS                                    ; 1f
     pop ES                                    ; 07
-    popaw                                     ; 61
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    pop bx                                    ; 5b
+    pop bx                                    ; 5b
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop ax                                    ; 58
     iret                                      ; cf
-detect_parport:                              ; 0xfeced LB 0x1e
+detect_parport:                              ; 0xfed0a LB 0x1e
     push dx                                   ; 52
     inc dx                                    ; 42
@@ -17010,5 +17096,5 @@
     in AL, DX                                 ; ec
     cmp AL, strict byte 0aah                  ; 3c aa
-    jne short 0ed0ah                          ; 75 0d
+    jne short 0ed27h                          ; 75 0d
     push bx                                   ; 53
     sal bx, 1                                 ; d1 e3
@@ -17018,5 +17104,5 @@
     inc bx                                    ; 43
     retn                                      ; c3
-detect_serial:                               ; 0xfed0b LB 0x24
+detect_serial:                               ; 0xfed28 LB 0x24
     push dx                                   ; 52
     inc dx                                    ; 42
@@ -17025,9 +17111,9 @@
     in AL, DX                                 ; ec
     cmp AL, strict byte 002h                  ; 3c 02
-    jne short 0ed2dh                          ; 75 18
+    jne short 0ed4ah                          ; 75 18
     inc dx                                    ; 42
     in AL, DX                                 ; ec
     cmp AL, strict byte 002h                  ; 3c 02
-    jne short 0ed2dh                          ; 75 12
+    jne short 0ed4ah                          ; 75 12
     dec dx                                    ; 4a
     db  032h, 0c0h
@@ -17043,5 +17129,5 @@
     pop dx                                    ; 5a
     retn                                      ; c3
-floppy_post:                                 ; 0xfed2f LB 0x87
+floppy_post:                                 ; 0xfed4c LB 0x8c
     db  033h, 0c0h
     ; xor ax, ax                                ; 33 c0
@@ -17065,13 +17151,16 @@
     db  08ah, 0e0h
     ; mov ah, al                                ; 8a e0
-    shr al, 004h                              ; c0 e8 04
-    je short 0ed6ah                           ; 74 04
+    shr al, 1                                 ; d0 e8
+    shr al, 1                                 ; d0 e8
+    shr al, 1                                 ; d0 e8
+    shr al, 1                                 ; d0 e8
+    je short 0ed8ch                           ; 74 04
     mov BL, strict byte 007h                  ; b3 07
-    jmp short 0ed6ch                          ; eb 02
+    jmp short 0ed8eh                          ; eb 02
     mov BL, strict byte 000h                  ; b3 00
     db  08ah, 0c4h
     ; mov al, ah                                ; 8a c4
     and AL, strict byte 00fh                  ; 24 0f
-    je short 0ed75h                           ; 74 03
+    je short 0ed97h                           ; 74 03
     or bl, 070h                               ; 80 cb 70
     mov byte [0048fh], bl                     ; 88 1e 8f 04
@@ -17098,14 +17187,17 @@
     mov word [0003ah], ax                     ; a3 3a 00
     retn                                      ; c3
-bcd_to_bin:                                  ; 0xfedb6 LB 0x9
-    sal ax, 004h                              ; c1 e0 04
-    shr al, 004h                              ; c0 e8 04
+bcd_to_bin:                                  ; 0xfedd8 LB 0xb
+    push cx                                   ; 51
+    mov CL, strict byte 004h                  ; b1 04
+    sal ax, CL                                ; d3 e0
+    shr al, CL                                ; d2 e8
+    pop cx                                    ; 59
     aad 00ah                                  ; d5 0a
     retn                                      ; c3
-rtc_post:                                    ; 0xfedbf LB 0x198
+rtc_post:                                    ; 0xfede3 LB 0x5a
     mov AL, strict byte 000h                  ; b0 00
     out strict byte 070h, AL                  ; e6 70
     in AL, strict byte 071h                   ; e4 71
-    call 0edb6h                               ; e8 ee ff
+    call 0edd8h                               ; e8 ec ff
     test al, al                               ; 84 c0
     db  032h, 0e4h
@@ -17118,25 +17210,23 @@
     out strict byte 070h, AL                  ; e6 70
     in AL, strict byte 071h                   ; e4 71
-    call 0edb6h                               ; e8 da ff
+    call 0edd8h                               ; e8 d8 ff
     test al, al                               ; 84 c0
-    je short 0edebh                           ; 74 0b
+    je short 0ee0fh                           ; 74 0b
     add cx, 04463h                            ; 81 c1 63 44
     adc dx, strict byte 00004h                ; 83 d2 04
     db  0feh, 0c8h
     ; dec al                                    ; fe c8
-    jne short 0ede0h                          ; 75 f5
+    jne short 0ee04h                          ; 75 f5
     mov AL, strict byte 004h                  ; b0 04
     out strict byte 070h, AL                  ; e6 70
     in AL, strict byte 071h                   ; e4 71
-    call 0edb6h                               ; e8 c2 ff
+    call 0edd8h                               ; e8 c0 ff
     test al, al                               ; 84 c0
-    je short 0ee0ah                           ; 74 12
+    je short 0ee28h                           ; 74 0c
     add cx, 0076ch                            ; 81 c1 6c 07
     adc dx, 00100h                            ; 81 d2 00 01
     db  0feh, 0c8h
     ; dec al                                    ; fe c8
-    jne short 0edf8h                          ; 75 f4
-    mov ax, 0046ch                            ; b8 6c 04
-    mov dx, 0046eh                            ; ba 6e 04
+    jne short 0ee1ch                          ; 75 f4
     db  08ah, 0cdh
     ; mov cl, ch                                ; 8a cd
@@ -17151,7 +17241,8 @@
     mov byte [00470h], dh                     ; 88 36 70 04
     retn                                      ; c3
-    times 0x136 db 0
+biosorg_check_before_or_at_0EF55h:           ; 0xfee3d LB 0x11a
+    times 0x118 db 0
     db  'XM'
-int0e_handler:                               ; 0xfef57 LB 0x70
+int0e_handler:                               ; 0xfef57 LB 0x3b
     push ax                                   ; 50
     push dx                                   ; 52
@@ -17186,4 +17277,5 @@
     pop ax                                    ; 58
     iret                                      ; cf
+biosorg_check_before_or_at_0EFC5h:           ; 0xfef92 LB 0x35
     times 0x33 db 0
     db  'XM'
@@ -17197,35 +17289,52 @@
     db  0f6h
     invd                                      ; 0f 08
-biosorg_check_0EFD2h:                        ; 0xfefd2 LB 0x2
+biosorg_check_at_0EFD2h:                     ; 0xfefd2 LB 0x2
     jmp short 0efd4h                          ; eb 00
-int17_handler:                               ; 0xfefd4 LB 0xd
+int17_handler:                               ; 0xfefd4 LB 0x1b
     push DS                                   ; 1e
     push ES                                   ; 06
-    pushaw                                    ; 60
+    push ax                                   ; 50
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push bx                                   ; 53
+    push sp                                   ; 54
+    push bp                                   ; 55
+    push si                                   ; 56
+    push di                                   ; 57
     push CS                                   ; 0e
     pop DS                                    ; 1f
     cld                                       ; fc
-    call 07a20h                               ; e8 43 8a
-    popaw                                     ; 61
+    call 079c9h                               ; e8 e5 89
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    pop bx                                    ; 5b
+    pop bx                                    ; 5b
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop ax                                    ; 58
     pop ES                                    ; 07
     pop DS                                    ; 1f
     iret                                      ; cf
-_pmode_IDT:                                  ; 0xfefe1 LB 0x6
+_pmode_IDT:                                  ; 0xfefef LB 0x6
     db  000h, 000h, 000h, 000h, 00fh, 000h
-_rmode_IDT:                                  ; 0xfefe7 LB 0x6
+_rmode_IDT:                                  ; 0xfeff5 LB 0x6
     db  0ffh, 003h, 000h, 000h, 000h, 000h
-int1c_handler:                               ; 0xfefed LB 0x58
+int1c_handler:                               ; 0xfeffb LB 0x1
     iret                                      ; cf
-    times 0x55 db 0
+biosorg_check_before_or_at_0F043h:           ; 0xfeffc LB 0x49
+    times 0x47 db 0
     db  'XM'
-biosorg_check_0F045h:                        ; 0xff045 LB 0x20
+biosorg_check_at_0F045h:                     ; 0xff045 LB 0x1
     iret                                      ; cf
+biosorg_check_before_or_at_0F063h:           ; 0xff046 LB 0x1f
     times 0x1d db 0
     db  'XM'
-int10_handler:                               ; 0xff065 LB 0x3f
+int10_handler:                               ; 0xff065 LB 0x1
     iret                                      ; cf
+biosorg_check_before_or_at_0F0A2h:           ; 0xff066 LB 0x3e
     times 0x3c db 0
     db  'XM'
-biosorg_check_0F0A4h:                        ; 0xff0a4 LB 0x8
+biosorg_check_at_0F0A4h:                     ; 0xff0a4 LB 0x8
     push CS                                   ; 0e
     pop DS                                    ; 1f
@@ -17234,5 +17343,5 @@
     hlt                                       ; f4
     iret                                      ; cf
-int19_relocated:                             ; 0xff0ac LB 0x91
+int19_relocated:                             ; 0xff0ac LB 0x95
     db  08bh, 0ech
     ; mov bp, sp                                ; 8b ec
@@ -17254,32 +17363,35 @@
     mov ax, strict word 00001h                ; b8 01 00
     push ax                                   ; 50
-    call 04d4eh                               ; e8 7e 5c
+    call 04d07h                               ; e8 37 5c
     inc sp                                    ; 44
     inc sp                                    ; 44
     test ax, ax                               ; 85 c0
-    jne short 0f0feh                          ; 75 28
+    jne short 0f0fdh                          ; 75 27
     mov ax, strict word 00002h                ; b8 02 00
     push ax                                   ; 50
-    call 04d4eh                               ; e8 71 5c
+    call 04d07h                               ; e8 2a 5c
     inc sp                                    ; 44
     inc sp                                    ; 44
     test ax, ax                               ; 85 c0
-    jne short 0f0feh                          ; 75 1b
+    jne short 0f0fdh                          ; 75 1a
     mov ax, strict word 00003h                ; b8 03 00
-    push strict byte 00003h                   ; 6a 03
-    call 04d4eh                               ; e8 63 5c
+    push ax                                   ; 50
+    call 04d07h                               ; e8 1d 5c
     inc sp                                    ; 44
     inc sp                                    ; 44
     test ax, ax                               ; 85 c0
-    jne short 0f0feh                          ; 75 0d
+    jne short 0f0fdh                          ; 75 0d
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 04d4eh                               ; e8 56 5c
+    call 04d07h                               ; e8 10 5c
     inc sp                                    ; 44
     inc sp                                    ; 44
     test ax, ax                               ; 85 c0
-    je short 0f0a4h                           ; 74 a6
+    je short 0f0a4h                           ; 74 a7
     mov word [byte bp+000h], ax               ; 89 46 00
-    sal ax, 004h                              ; c1 e0 04
+    sal ax, 1                                 ; d1 e0
+    sal ax, 1                                 ; d1 e0
+    sal ax, 1                                 ; d1 e0
+    sal ax, 1                                 ; d1 e0
     mov word [bp+002h], ax                    ; 89 46 02
     mov ax, word [byte bp+000h]               ; 8b 46 00
@@ -17308,5 +17420,5 @@
     pop eax                                   ; 66 58
     retn                                      ; c3
-pcibios_init_iomem_bases:                    ; 0xff13d LB 0x16
+pcibios_init_iomem_bases:                    ; 0xff141 LB 0x16
     push bp                                   ; 55
     db  08bh, 0ech
@@ -17319,14 +17431,14 @@
     push ax                                   ; 50
     mov bx, strict word 00008h                ; bb 08 00
-pci_init_io_loop1:                           ; 0xff153 LB 0xe
+pci_init_io_loop1:                           ; 0xff157 LB 0xe
     mov DL, strict byte 000h                  ; b2 00
-    call 0f122h                               ; e8 ca ff
+    call 0f126h                               ; e8 ca ff
     mov dx, 00cfch                            ; ba fc 0c
     in ax, DX                                 ; ed
     cmp ax, strict byte 0ffffh                ; 83 f8 ff
-    je short 0f19ah                           ; 74 39
-enable_iomem_space:                          ; 0xff161 LB 0x39
+    je short 0f19eh                           ; 74 39
+enable_iomem_space:                          ; 0xff165 LB 0x39
     mov DL, strict byte 004h                  ; b2 04
-    call 0f122h                               ; e8 bc ff
+    call 0f126h                               ; e8 bc ff
     mov dx, 00cfch                            ; ba fc 0c
     in AL, DX                                 ; ec
@@ -17334,11 +17446,11 @@
     out DX, AL                                ; ee
     mov DL, strict byte 000h                  ; b2 00
-    call 0f122h                               ; e8 b0 ff
+    call 0f126h                               ; e8 b0 ff
     mov dx, 00cfch                            ; ba fc 0c
     in eax, DX                                ; 66 ed
     cmp eax, strict dword 020001022h          ; 66 3d 22 10 00 20
-    jne short 0f19ah                          ; 75 1b
+    jne short 0f19eh                          ; 75 1b
     mov DL, strict byte 010h                  ; b2 10
-    call 0f122h                               ; e8 9e ff
+    call 0f126h                               ; e8 9e ff
     mov dx, 00cfch                            ; ba fc 0c
     in ax, DX                                 ; ed
@@ -17354,22 +17466,22 @@
     add dx, strict byte 00018h                ; 83 c2 18
     in eax, DX                                ; 66 ed
-next_pci_dev:                                ; 0xff19a LB 0xf
+next_pci_dev:                                ; 0xff19e LB 0xf
     mov byte [bp-008h], 010h                  ; c6 46 f8 10
     inc bx                                    ; 43
     cmp bx, 00100h                            ; 81 fb 00 01
-    jne short 0f153h                          ; 75 ae
+    jne short 0f157h                          ; 75 ae
     db  08bh, 0e5h
     ; mov sp, bp                                ; 8b e5
     pop bp                                    ; 5d
     retn                                      ; c3
-pcibios_init_set_elcr:                       ; 0xff1a9 LB 0xc
+pcibios_init_set_elcr:                       ; 0xff1ad LB 0xc
     push ax                                   ; 50
     push cx                                   ; 51
     mov dx, 004d0h                            ; ba d0 04
     test AL, strict byte 008h                 ; a8 08
-    je short 0f1b5h                           ; 74 03
+    je short 0f1b9h                           ; 74 03
     inc dx                                    ; 42
     and AL, strict byte 007h                  ; 24 07
-is_master_pic:                               ; 0xff1b5 LB 0xd
+is_master_pic:                               ; 0xff1b9 LB 0xd
     db  08ah, 0c8h
     ; mov cl, al                                ; 8a c8
@@ -17383,5 +17495,5 @@
     pop ax                                    ; 58
     retn                                      ; c3
-pcibios_init_irqs:                           ; 0xff1c2 LB 0x53
+pcibios_init_irqs:                           ; 0xff1c6 LB 0x53
     push DS                                   ; 1e
     push bp                                   ; 55
@@ -17397,11 +17509,11 @@
     mov bl, byte [si+009h]                    ; 8a 5c 09
     mov DL, strict byte 000h                  ; b2 00
-    call 0f122h                               ; e8 43 ff
+    call 0f126h                               ; e8 43 ff
     mov dx, 00cfch                            ; ba fc 0c
     in eax, DX                                ; 66 ed
     cmp eax, dword [si+00ch]                  ; 66 3b 44 0c
-    jne near 0f292h                           ; 0f 85 a6 00
+    jne near 0f296h                           ; 0f 85 a6 00
     mov dl, byte [si+022h]                    ; 8a 54 22
-    call 0f122h                               ; e8 30 ff
+    call 0f126h                               ; e8 30 ff
     push bx                                   ; 53
     mov dx, 00cfch                            ; ba fc 0c
@@ -17418,29 +17530,29 @@
     db  08bh, 0ech
     ; mov bp, sp                                ; 8b ec
-    mov ax, 0f11eh                            ; b8 1e f1
+    mov ax, 0f122h                            ; b8 22 f1
     push ax                                   ; 50
     db  033h, 0c0h
     ; xor ax, ax                                ; 33 c0
     push ax                                   ; 50
-pci_init_irq_loop1:                          ; 0xff215 LB 0x5
+pci_init_irq_loop1:                          ; 0xff219 LB 0x5
     mov bh, byte [si]                         ; 8a 3c
     mov bl, byte [si+001h]                    ; 8a 5c 01
-pci_init_irq_loop2:                          ; 0xff21a LB 0x15
+pci_init_irq_loop2:                          ; 0xff21e LB 0x15
     mov DL, strict byte 000h                  ; b2 00
-    call 0f122h                               ; e8 03 ff
+    call 0f126h                               ; e8 03 ff
     mov dx, 00cfch                            ; ba fc 0c
     in ax, DX                                 ; ed
     cmp ax, strict byte 0ffffh                ; 83 f8 ff
-    jne short 0f22fh                          ; 75 07
+    jne short 0f233h                          ; 75 07
     test bl, 007h                             ; f6 c3 07
-    je short 0f286h                           ; 74 59
-    jmp short 0f27ch                          ; eb 4d
-pci_test_int_pin:                            ; 0xff22f LB 0x3c
+    je short 0f28ah                           ; 74 59
+    jmp short 0f280h                          ; eb 4d
+pci_test_int_pin:                            ; 0xff233 LB 0x3c
     mov DL, strict byte 03ch                  ; b2 3c
-    call 0f122h                               ; e8 ee fe
+    call 0f126h                               ; e8 ee fe
     mov dx, 00cfdh                            ; ba fd 0c
     in AL, DX                                 ; ec
     and AL, strict byte 007h                  ; 24 07
-    je short 0f27ch                           ; 74 40
+    je short 0f280h                           ; 74 40
     db  0feh, 0c8h
     ; dec al                                    ; fe c8
@@ -17456,5 +17568,5 @@
     ; mov dl, al                                ; 8a d0
     mov bx, word [byte bp+000h]               ; 8b 5e 00
-    call 0f122h                               ; e8 d0 fe
+    call 0f126h                               ; e8 d0 fe
     mov dx, 00cfch                            ; ba fc 0c
     and AL, strict byte 003h                  ; 24 03
@@ -17463,5 +17575,5 @@
     in AL, DX                                 ; ec
     cmp AL, strict byte 080h                  ; 3c 80
-    jc short 0f26bh                           ; 72 0d
+    jc short 0f26fh                           ; 72 0d
     mov bx, word [bp-002h]                    ; 8b 5e fe
     mov al, byte [bx]                         ; 8a 07
@@ -17469,33 +17581,33 @@
     inc bx                                    ; 43
     mov word [bp-002h], bx                    ; 89 5e fe
-    call 0f1a9h                               ; e8 3e ff
-pirq_found:                                  ; 0xff26b LB 0x11
+    call 0f1adh                               ; e8 3e ff
+pirq_found:                                  ; 0xff26f LB 0x11
     mov bh, byte [si]                         ; 8a 3c
     mov bl, byte [si+001h]                    ; 8a 5c 01
     add bl, byte [bp-003h]                    ; 02 5e fd
     mov DL, strict byte 03ch                  ; b2 3c
-    call 0f122h                               ; e8 aa fe
+    call 0f126h                               ; e8 aa fe
     mov dx, 00cfch                            ; ba fc 0c
     out DX, AL                                ; ee
-next_pci_func:                               ; 0xff27c LB 0xa
+next_pci_func:                               ; 0xff280 LB 0xa
     inc byte [bp-003h]                        ; fe 46 fd
     db  0feh, 0c3h
     ; inc bl                                    ; fe c3
     test bl, 007h                             ; f6 c3 07
-    jne short 0f21ah                          ; 75 94
-next_pir_entry:                              ; 0xff286 LB 0xc
+    jne short 0f21eh                          ; 75 94
+next_pir_entry:                              ; 0xff28a LB 0xc
     add si, strict byte 00010h                ; 83 c6 10
     mov byte [bp-003h], 000h                  ; c6 46 fd 00
-    loop 0f215h                               ; e2 86
+    loop 0f219h                               ; e2 86
     db  08bh, 0e5h
     ; mov sp, bp                                ; 8b e5
     pop bx                                    ; 5b
-pci_init_end:                                ; 0xff292 LB 0x2e
+pci_init_end:                                ; 0xff296 LB 0x2a
     pop bp                                    ; 5d
     pop DS                                    ; 1f
     retn                                      ; c3
-    db  089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 0fch, 024h, 050h, 049h, 052h, 000h
-    db  001h, 000h, 002h, 000h, 008h, 000h, 000h, 086h, 080h, 000h, 070h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 031h
+    db  089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 0fch, 024h, 050h, 049h, 052h, 000h, 001h, 000h, 002h, 000h
+    db  008h, 000h, 000h, 086h, 080h, 000h, 070h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 031h
 _pci_routing_table:                          ; 0xff2c0 LB 0x1e0
     db  000h, 008h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 000h, 000h
@@ -17529,6 +17641,7 @@
     db  000h, 0e8h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 01ch, 000h
     db  000h, 0f0h, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 01dh, 000h
-_pci_routing_table_size:                     ; 0xff4a0 LB 0x3a1
+_pci_routing_table_size:                     ; 0xff4a0 LB 0x2
     loopne 0f4a3h                             ; e0 01
+biosorg_check_before_or_at_0F83Fh:           ; 0xff4a2 LB 0x39f
     times 0x39d db 0
     db  'XM'
@@ -17549,5 +17662,5 @@
     pop DS                                    ; 1f
     iret                                      ; cf
-int15_handler:                               ; 0xff859 LB 0x2e
+int15_handler:                               ; 0xff859 LB 0x3c
     pushfw                                    ; 9c
     push DS                                   ; 1e
@@ -17557,32 +17670,60 @@
     cld                                       ; fc
     cmp ah, 086h                              ; 80 fc 86
-    je short 0f88ch                           ; 74 28
+    je short 0f89ah                           ; 74 36
     cmp ah, 0e8h                              ; 80 fc e8
-    je short 0f88ch                           ; 74 23
+    je short 0f89ah                           ; 74 31
     cmp ah, 0d0h                              ; 80 fc d0
-    je short 0f88ch                           ; 74 1e
-    pushaw                                    ; 60
+    je short 0f89ah                           ; 74 2c
+    push ax                                   ; 50
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push bx                                   ; 53
+    push sp                                   ; 54
+    push bp                                   ; 55
+    push si                                   ; 56
+    push di                                   ; 57
     cmp ah, 053h                              ; 80 fc 53
-    je short 0f882h                           ; 74 0e
+    je short 0f890h                           ; 74 15
     cmp ah, 0c2h                              ; 80 fc c2
-    je short 0f887h                           ; 74 0e
-    call 067ceh                               ; e8 52 6f
-    popaw                                     ; 61
+    je short 0f895h                           ; 74 15
+    call 06777h                               ; e8 f4 6e
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    pop bx                                    ; 5b
+    pop bx                                    ; 5b
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop ax                                    ; 58
     pop ES                                    ; 07
     pop DS                                    ; 1f
     popfw                                     ; 9d
-    jmp short 0f893h                          ; eb 11
-    call 09c7fh                               ; e8 fa a3
-    jmp short 0f87ch                          ; eb f5
-int15_handler_mouse:                         ; 0xff887 LB 0x5
-    call 07680h                               ; e8 f6 7d
-    jmp short 0f87ch                          ; eb f0
-int15_handler32:                             ; 0xff88c LB 0x7
-    pushaw                                    ; 60
-    call 06ca4h                               ; e8 14 74
-    popaw                                     ; 61
-    jmp short 0f87dh                          ; eb ea
-iret_modify_cf:                              ; 0xff893 LB 0x14
-    jc short 0f89eh                           ; 72 09
+    jmp short 0f8afh                          ; eb 1f
+    call 09c2ah                               ; e8 97 a3
+    jmp short 0f883h                          ; eb ee
+int15_handler_mouse:                         ; 0xff895 LB 0x5
+    call 07629h                               ; e8 91 7d
+    jmp short 0f883h                          ; eb e9
+int15_handler32:                             ; 0xff89a LB 0x15
+    push ax                                   ; 50
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push bx                                   ; 53
+    push sp                                   ; 54
+    push bp                                   ; 55
+    push si                                   ; 56
+    push di                                   ; 57
+    call 06c4dh                               ; e8 a8 73
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    pop bx                                    ; 5b
+    pop bx                                    ; 5b
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop ax                                    ; 58
+    jmp short 0f88bh                          ; eb dc
+iret_modify_cf:                              ; 0xff8af LB 0x14
+    jc short 0f8bah                           ; 72 09
     push bp                                   ; 55
     db  08bh, 0ech
@@ -17597,21 +17738,32 @@
     pop bp                                    ; 5d
     iret                                      ; cf
-int74_handler:                               ; 0xff8a7 LB 0x2e
+int74_handler:                               ; 0xff8c3 LB 0x3a
     sti                                       ; fb
-    pushaw                                    ; 60
+    push ax                                   ; 50
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push bx                                   ; 53
+    push sp                                   ; 54
+    push bp                                   ; 55
+    push si                                   ; 56
+    push di                                   ; 57
     push ES                                   ; 06
     push DS                                   ; 1e
-    push strict byte 00000h                   ; 6a 00
-    push strict byte 00000h                   ; 6a 00
-    push strict byte 00000h                   ; 6a 00
-    push strict byte 00000h                   ; 6a 00
-    push strict byte 00000h                   ; 6a 00
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    push ax                                   ; 50
+    push ax                                   ; 50
+    push ax                                   ; 50
+    push ax                                   ; 50
+    push ax                                   ; 50
     push CS                                   ; 0e
     pop DS                                    ; 1f
     cld                                       ; fc
-    call 075aeh                               ; e8 f3 7c
+    call 07557h                               ; e8 7c 7c
     pop cx                                    ; 59
-    jcxz 0f8cah                               ; e3 0c
-    push strict byte 00000h                   ; 6a 00
+    jcxz 0f8ebh                               ; e3 0d
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    push ax                                   ; 50
     pop DS                                    ; 1f
     push word [0040eh]                        ; ff 36 0e 04
@@ -17619,11 +17771,18 @@
     call far [word 00022h]                    ; ff 1e 22 00
     cli                                       ; fa
-    call 0e030h                               ; e8 62 e7
+    call 0e030h                               ; e8 41 e7
     add sp, strict byte 00008h                ; 83 c4 08
     pop DS                                    ; 1f
     pop ES                                    ; 07
-    popaw                                     ; 61
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    pop bx                                    ; 5b
+    pop bx                                    ; 5b
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop ax                                    ; 58
     iret                                      ; cf
-int76_handler:                               ; 0xff8d5 LB 0x199
+int76_handler:                               ; 0xff8fd LB 0x12
     push ax                                   ; 50
     push DS                                   ; 1e
@@ -17631,9 +17790,45 @@
     mov ds, ax                                ; 8e d8
     mov byte [0008eh], 0ffh                   ; c6 06 8e 00 ff
-    call 0e030h                               ; e8 4c e7
+    call 0e030h                               ; e8 24 e7
     pop DS                                    ; 1f
     pop ax                                    ; 58
     iret                                      ; cf
-    times 0x185 db 0
+int70_handler:                               ; 0xff90f LB 0x2d
+    push ES                                   ; 06
+    push DS                                   ; 1e
+    push ax                                   ; 50
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push bx                                   ; 53
+    push sp                                   ; 54
+    push bp                                   ; 55
+    push si                                   ; 56
+    push di                                   ; 57
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    call 071f4h                               ; e8 d5 78
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    pop bx                                    ; 5b
+    pop bx                                    ; 5b
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop ax                                    ; 58
+    pop DS                                    ; 1f
+    pop ES                                    ; 07
+    iret                                      ; cf
+    jnbe short 0f931h                         ; 77 05
+    cmp ax, 000b0h                            ; 3d b0 00
+    jc short 0f939h                           ; 72 08
+    db  033h, 0d2h
+    ; xor dx, dx                                ; 33 d2
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    inc byte [word 00070h]                    ; fe 06 70 00
+    jmp near 0fec1h                           ; e9 85 05
+biosorg_check_before_or_at_0FA6Ch:           ; 0xff93c LB 0x132
+    times 0x130 db 0
     db  'XM'
 font8x8:                                     ; 0xffa6e LB 0x400
@@ -17702,34 +17897,36 @@
     db  018h, 018h, 018h, 000h, 018h, 018h, 018h, 000h, 0e0h, 030h, 030h, 01ch, 030h, 030h, 0e0h, 000h
     db  076h, 0dch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 010h, 038h, 06ch, 0c6h, 0c6h, 0feh, 000h
-biosorg_check_0FE6Eh:                        ; 0xffe6e LB 0xd
+biosorg_check_at_0FE6Eh:                     ; 0xffe6e LB 0x1b
     push ES                                   ; 06
     push DS                                   ; 1e
-    pushaw                                    ; 60
+    push ax                                   ; 50
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push bx                                   ; 53
+    push sp                                   ; 54
+    push bp                                   ; 55
+    push si                                   ; 56
+    push di                                   ; 57
     push CS                                   ; 0e
     pop DS                                    ; 1f
     cld                                       ; fc
-    call 0730ah                               ; e8 93 74
-    popaw                                     ; 61
+    call 072b3h                               ; e8 35 74
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    pop bx                                    ; 5b
+    pop bx                                    ; 5b
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop ax                                    ; 58
     pop DS                                    ; 1f
     pop ES                                    ; 07
     iret                                      ; cf
-int70_handler:                               ; 0xffe7b LB 0x2a
-    push ES                                   ; 06
-    push DS                                   ; 1e
-    pushaw                                    ; 60
-    push CS                                   ; 0e
-    pop DS                                    ; 1f
-    cld                                       ; fc
-    call 0724bh                               ; e8 c7 73
-    popaw                                     ; 61
-    pop DS                                    ; 1f
-    pop ES                                    ; 07
-    iret                                      ; cf
-    times 0x1b db 0
+biosorg_check_before_or_at_0FEA3h:           ; 0xffe89 LB 0x1c
+    times 0x1a db 0
     db  'XM'
-int08_handler:                               ; 0xffea5 LB 0x4e
+int08_handler:                               ; 0xffea5 LB 0x42
     sti                                       ; fb
     push ax                                   ; 50
-    push bx                                   ; 53
     push DS                                   ; 1e
     push dx                                   ; 52
@@ -17737,27 +17934,21 @@
     mov ds, ax                                ; 8e d8
     mov ax, word [0006ch]                     ; a1 6c 00
-    mov bx, word [word 0006eh]                ; 8b 1e 6e 00
-    add ax, strict byte 00001h                ; 83 c0 01
-    adc bx, strict byte 00000h                ; 83 d3 00
-    cmp bx, strict byte 00018h                ; 83 fb 18
-    jc short 0fed0h                           ; 72 0f
-    jnbe short 0fec8h                         ; 77 05
-    cmp ax, 000b0h                            ; 3d b0 00
-    jc short 0fed0h                           ; 72 08
-    db  033h, 0c0h
-    ; xor ax, ax                                ; 33 c0
-    db  033h, 0dbh
-    ; xor bx, bx                                ; 33 db
-    inc byte [word 00070h]                    ; fe 06 70 00
+    mov dx, word [word 0006eh]                ; 8b 16 6e 00
+    inc ax                                    ; 40
+    jne short 0feb9h                          ; 75 01
+    inc dx                                    ; 42
+    cmp dx, strict byte 00018h                ; 83 fa 18
+    jc short 0fec1h                           ; 72 03
+    jmp near 0f92ah                           ; e9 69 fa
     mov word [0006ch], ax                     ; a3 6c 00
-    mov word [word 0006eh], bx                ; 89 1e 6e 00
+    mov word [word 0006eh], dx                ; 89 16 6e 00
     mov AL, byte [00040h]                     ; a0 40 00
     db  00ah, 0c0h
     ; or al, al                                 ; 0a c0
-    je short 0feech                           ; 74 0e
+    je short 0feddh                           ; 74 0e
     db  0feh, 0c8h
     ; dec al                                    ; fe c8
     mov byte [00040h], AL                     ; a2 40 00
-    jne short 0feech                          ; 75 07
+    jne short 0feddh                          ; 75 07
     mov dx, 003f2h                            ; ba f2 03
     in AL, DX                                 ; ec
@@ -17766,16 +17957,16 @@
     int 01ch                                  ; cd 1c
     cli                                       ; fa
-    call 05734h                               ; e8 42 58
-    dec bp                                    ; 4d
-biosorg_check_0FEF3h:                        ; 0xffef3 LB 0xd
+    call 0e034h                               ; e8 51 e1
+    pop dx                                    ; 5a
     pop DS                                    ; 1f
-    pop bx                                    ; 5b
     pop ax                                    ; 58
     iret                                      ; cf
-    add byte [bx+si], al                      ; 00 00
-    add byte [bx+si], al                      ; 00 00
-    add byte [bx+si], al                      ; 00 00
-    add byte [bx+si+04dh], bl                 ; 00 58 4d
-biosorg_check_0FF00h:                        ; 0xfff00 LB 0x53
+biosorg_check_before_or_at_0FEF1h:           ; 0xffee7 LB 0xc
+    times 0xa db 0
+    db  'XM'
+biosorg_check_at_0FEF3h:                     ; 0xffef3 LB 0xd
+    times 0xb db 0
+    db  'XM'
+biosorg_check_at_0FF00h:                     ; 0xfff00 LB 0x19
     dec di                                    ; 4f
     jc short 0ff64h                           ; 72 61
@@ -17793,9 +17984,10 @@
     dec di                                    ; 4f
     push bx                                   ; 53
+biosorg_check_before_or_at_0FF51h:           ; 0xfff19 LB 0x3a
     times 0x38 db 0
     db  'XM'
 dummy_iret:                                  ; 0xfff53 LB 0x1
     iret                                      ; cf
-biosorg_check_0FF54h:                        ; 0xfff54 LB 0x9c
+biosorg_check_at_0FF54h:                     ; 0xfff54 LB 0x2c
     iret                                      ; cf
     mov ax, ax                                ; 89 c0
@@ -17825,7 +18017,9 @@
     add byte [bx+si], al                      ; 00 00
     add byte [di], ah                         ; 00 25
-    times 0x6f db 0
+    times 0x1 db 0
+biosorg_check_before_or_at_0FFEEh:           ; 0xfff80 LB 0x70
+    times 0x6e db 0
     db  'XM'
 cpu_reset:                                   ; 0xffff0 LB 0x10
     jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
-    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0eeh
+    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fbh, 096h
Index: /trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.md5sum
===================================================================
--- /trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.md5sum	(revision 60442)
+++ /trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.md5sum	(revision 60443)
@@ -1,1 +1,1 @@
-a9ff9158bb6e580db7ea0148ae4309f9 *VBoxPcBios8086.rom
+2d2a8ffc155d7c59ca2ef255d33488c0 *VBoxPcBios8086.rom
