Index: trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.asm
===================================================================
--- trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.asm	(revision 67805)
+++ trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.asm	(revision 67807)
@@ -988,13 +988,13 @@
     db  001h, 000h, 002h, 002h, 003h, 003h, 004h, 004h, 005h, 005h, 00eh, 006h, 00fh, 006h, 000h
 _pktacc:                                     ; 0xf006a LB 0xc
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 02bh, 080h, 081h, 0e6h, 090h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 02bh, 080h, 081h, 06eh, 091h
 _softrst:                                    ; 0xf0076 LB 0xc
     db  000h, 000h, 000h, 000h, 000h, 000h, 089h, 02dh, 04dh, 03bh, 04dh, 03bh
 _dskacc:                                     ; 0xf0082 LB 0x2e
     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0f0h, 029h, 0a5h, 02ah, 000h, 000h, 000h, 000h
-    db  0c0h, 07fh, 0a0h, 080h, 0b8h, 08fh, 060h, 090h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
+    db  0c0h, 07fh, 0a0h, 080h, 040h, 090h, 0e8h, 090h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
     db  032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h
 
-section CONST progbits vstart=0xb0 align=1 ; size=0xcde class=DATA group=DGROUP
+section CONST progbits vstart=0xb0 align=1 ; size=0xd40 class=DATA group=DGROUP
     db   'NMI Handler called', 00ah, 000h
     db   'INT18: BOOT FAILURE', 00ah, 000h
@@ -1101,5 +1101,8 @@
     db   'Disk %d has an unsupported sector size of %u', 00ah, 000h
     db   'SCSI %d-ID#%d: LCHS=%lu/%u/%u 0x%llx sectors', 00ah, 000h
-    db   'SCSI %d-ID#%d: CD/DVD-ROM', 00ah, 000h, 000h
+    db   'SCSI %d-ID#%d: CD/DVD-ROM', 00ah, 000h
+    db   'scsi_pci_init', 000h
+    db   '%s: Adapter %x:%x not found, how come?!', 00ah, 000h
+    db   '%s: Adapter %x:%x found at %x, enabling BM', 00ah, 000h
     db   'ahci_read_sectors', 000h
     db   '%s: device_id out of range %d', 00ah, 000h
@@ -1114,18 +1117,18 @@
     db   'PCI: Unsupported function AX=%04X BX=%04X called', 00ah, 000h
 
-section CONST2 progbits vstart=0xd8e align=1 ; size=0x3fa class=DATA group=DGROUP
-_bios_cvs_version_string:                    ; 0xf0d8e LB 0x12
+section CONST2 progbits vstart=0xdf0 align=1 ; size=0x3fa class=DATA group=DGROUP
+_bios_cvs_version_string:                    ; 0xf0df0 LB 0x12
     db  'VirtualBox 5.1.51', 000h
-_bios_prefix_string:                         ; 0xf0da0 LB 0x8
+_bios_prefix_string:                         ; 0xf0e02 LB 0x8
     db  'BIOS: ', 000h, 000h
-_isotag:                                     ; 0xf0da8 LB 0x6
+_isotag:                                     ; 0xf0e0a LB 0x6
     db  'CD001', 000h
-_eltorito:                                   ; 0xf0dae LB 0x18
+_eltorito:                                   ; 0xf0e10 LB 0x18
     db  'EL TORITO SPECIFICATION', 000h
-_drivetypes:                                 ; 0xf0dc6 LB 0x28
+_drivetypes:                                 ; 0xf0e28 LB 0x28
     db  046h, 06ch, 06fh, 070h, 070h, 079h, 000h, 000h, 000h, 000h, 048h, 061h, 072h, 064h, 020h, 044h
     db  069h, 073h, 06bh, 000h, 043h, 044h, 02dh, 052h, 04fh, 04dh, 000h, 000h, 000h, 000h, 04ch, 041h
     db  04eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-_scan_to_scanascii:                          ; 0xf0dee LB 0x37a
+_scan_to_scanascii:                          ; 0xf0e50 LB 0x37a
     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 01bh, 001h, 01bh, 001h, 01bh, 001h
     db  000h, 001h, 000h, 000h, 031h, 002h, 021h, 002h, 000h, 000h, 000h, 078h, 000h, 000h, 032h, 003h
@@ -1184,11 +1187,11 @@
     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h, 000h, 087h, 000h, 089h, 000h, 08bh, 000h, 000h
     db  000h, 086h, 000h, 088h, 000h, 08ah, 000h, 08ch, 000h, 000h
-_panic_msg_keyb_buffer_full:                 ; 0xf1168 LB 0x20
+_panic_msg_keyb_buffer_full:                 ; 0xf11ca LB 0x20
     db  '%s: keyboard input buffer full', 00ah, 000h
 
-  ; Padding 0x478 bytes at 0xf1188
-  times 1144 db 0
+  ; Padding 0x416 bytes at 0xf11ea
+  times 1046 db 0
 
-section _TEXT progbits vstart=0x1600 align=1 ; size=0x8d98 class=CODE group=AUTO
+section _TEXT progbits vstart=0x1600 align=1 ; size=0x8e48 class=CODE group=AUTO
 rom_scan_:                                   ; 0xf1600 LB 0x50
     push bp                                   ; 55
@@ -1411,9 +1414,9 @@
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
     call 01923h                               ; e8 a8 01
-    push 00d8eh                               ; 68 8e 0d
+    push 00df0h                               ; 68 f0 0d
     push 000d9h                               ; 68 d9 00
     push strict byte 00004h                   ; 6a 04
@@ -1585,5 +1588,5 @@
     mov bx, strict word 0000ah                ; bb 0a 00
     xor cx, cx                                ; 31 c9
-    call 0a030h                               ; e8 63 87
+    call 0a0e0h                               ; e8 13 88
     mov word [bp-008h], ax                    ; 89 46 f8
     mov cx, dx                                ; 89 d1
@@ -1815,5 +1818,5 @@
     mov dx, word [bp-026h]                    ; 8b 56 da
     mov si, word [bp-01eh]                    ; 8b 76 e2
-    call 0a060h                               ; e8 63 85
+    call 0a110h                               ; e8 13 86
     mov ax, dx                                ; 89 d0
     xor ah, dh                                ; 30 f4
@@ -2254,5 +2257,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00018h                ; be 18 00
-    call 0a060h                               ; e8 10 81
+    call 0a110h                               ; e8 c0 81
     xor dh, dh                                ; 30 f6
     mov word [bp-014h], dx                    ; 89 56 ec
@@ -2264,5 +2267,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00020h                ; be 20 00
-    call 0a060h                               ; e8 f0 80
+    call 0a110h                               ; e8 a0 81
     mov bx, dx                                ; 89 d3
     mov ax, word [bp-01ch]                    ; 8b 46 e4
@@ -2295,5 +2298,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00008h                ; be 08 00
-    call 0a060h                               ; e8 9f 80
+    call 0a110h                               ; e8 4f 81
     mov word [bp-012h], dx                    ; 89 56 ee
     mov bx, word [bp-016h]                    ; 8b 5e ea
@@ -2304,5 +2307,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00018h                ; be 18 00
-    call 0a060h                               ; e8 81 80
+    call 0a110h                               ; e8 31 81
     mov ah, dl                                ; 88 d4
     and ah, 00fh                              ; 80 e4 0f
@@ -2695,5 +2698,5 @@
     lea ax, [bp-03ah]                         ; 8d 46 c6
     call 05a02h                               ; e8 58 36
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -2861,5 +2864,5 @@
     mov dx, word [es:di+036h]                 ; 26 8b 55 36
     mov si, strict word 0000bh                ; be 0b 00
-    call 0a060h                               ; e8 d9 7a
+    call 0a110h                               ; e8 89 7b
     mov word [bp-024h], dx                    ; 89 56 dc
     mov word [bp-032h], cx                    ; 89 4e ce
@@ -3137,5 +3140,5 @@
     mov dx, word [bp-024h]                    ; 8b 56 dc
     mov si, strict word 00018h                ; be 18 00
-    call 0a060h                               ; e8 17 78
+    call 0a110h                               ; e8 c7 78
     xor dh, dh                                ; 30 f6
     mov word [bp-014h], dx                    ; 89 56 ec
@@ -3145,5 +3148,5 @@
     mov dx, word [bp-024h]                    ; 8b 56 dc
     mov si, strict word 00020h                ; be 20 00
-    call 0a060h                               ; e8 00 78
+    call 0a110h                               ; e8 b0 78
     mov bx, dx                                ; 89 d3
     mov ax, word [bp-022h]                    ; 8b 46 de
@@ -3179,5 +3182,5 @@
     mov dx, word [bp-024h]                    ; 8b 56 dc
     mov si, strict word 00008h                ; be 08 00
-    call 0a060h                               ; e8 ac 77
+    call 0a110h                               ; e8 5c 78
     mov word [bp-00ch], ax                    ; 89 46 f4
     mov word [bp-00eh], bx                    ; 89 5e f2
@@ -3186,5 +3189,5 @@
     mov word [bp-018h], dx                    ; 89 56 e8
     mov si, strict word 00010h                ; be 10 00
-    call 0a060h                               ; e8 97 77
+    call 0a110h                               ; e8 47 78
     mov word [bp-024h], dx                    ; 89 56 dc
     mov ax, dx                                ; 89 d0
@@ -3446,5 +3449,5 @@
     cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
     jne short 02b52h                          ; 75 1f
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -4280,5 +4283,5 @@
     cmp bh, 048h                              ; 80 ff 48
     jbe short 03292h                          ; 76 33
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -5183,5 +5186,5 @@
     mov byte [es:bx], 000h                    ; 26 c6 07 00
     jmp near 0348ch                           ; e9 92 f9
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -5281,5 +5284,5 @@
     cmp ax, strict word 0004ah                ; 3d 4a 00
     jne short 03be4h                          ; 75 1f
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -5386,5 +5389,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -5468,5 +5471,5 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-026h]                         ; 8d 46 da
-    call 0a080h                               ; e8 c9 62
+    call 0a130h                               ; e8 79 63
     mov word [bp-026h], strict word 00028h    ; c7 46 da 28 00
     mov ax, strict word 00011h                ; b8 11 00
@@ -5527,5 +5530,5 @@
     jnc short 03e62h                          ; 73 10
     mov al, byte [bp+di-00825h]               ; 8a 83 db f7
-    cmp al, byte [di+00da8h]                  ; 3a 85 a8 0d
+    cmp al, byte [di+00e0ah]                  ; 3a 85 0a 0e
     je short 03e4ch                           ; 74 f0
     mov ax, strict word 00005h                ; b8 05 00
@@ -5537,5 +5540,5 @@
     jnc short 03e7ch                          ; 73 10
     mov al, byte [bp+di-0081fh]               ; 8a 83 e1 f7
-    cmp al, byte [di+00daeh]                  ; 3a 85 ae 0d
+    cmp al, byte [di+00e10h]                  ; 3a 85 10 0e
     je short 03e66h                           ; 74 f0
     mov ax, strict word 00006h                ; b8 06 00
@@ -5829,5 +5832,5 @@
     cmp ax, dx                                ; 39 d0
     je short 04212h                           ; 74 29
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -5941,5 +5944,5 @@
     xor dl, dl                                ; 30 d2
     xor cx, cx                                ; 31 c9
-    call 0a010h                               ; e8 f3 5c
+    call 0a0c0h                               ; e8 a3 5d
     xor bx, bx                                ; 31 db
     add ax, si                                ; 01 f0
@@ -5947,5 +5950,5 @@
     mov bx, di                                ; 89 fb
     xor cx, cx                                ; 31 c9
-    call 0a010h                               ; e8 e6 5c
+    call 0a0c0h                               ; e8 96 5d
     mov bx, ax                                ; 89 c3
     mov ax, word [bp-010h]                    ; 8b 46 f0
@@ -5982,5 +5985,5 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-02eh]                         ; 8d 46 d2
-    call 0a080h                               ; e8 ff 5c
+    call 0a130h                               ; e8 af 5d
     mov word [bp-02eh], strict word 00028h    ; c7 46 d2 28 00
     mov ax, word [bp-014h]                    ; 8b 46 ec
@@ -6049,5 +6052,5 @@
     test al, al                               ; 84 c0
     je short 0446ch                           ; 74 37
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -6146,5 +6149,5 @@
     mov word [bp+016h], bx                    ; 89 5e 16
     jmp near 04470h                           ; e9 38 ff
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -6268,5 +6271,5 @@
     mov word [bp+016h], strict word 00007h    ; c7 46 16 07 00
     jmp near 04afbh                           ; e9 39 04
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -6321,5 +6324,5 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-030h]                         ; 8d 46 d0
-    call 0a080h                               ; e8 22 59
+    call 0a130h                               ; e8 d2 59
     mov word [bp-030h], strict word 00028h    ; c7 46 d0 28 00
     mov ax, word [bp-00eh]                    ; 8b 46 f2
@@ -6377,5 +6380,5 @@
     cmp byte [bp-018h], 000h                  ; 80 7e e8 00
     je short 04846h                           ; 74 53
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -6682,10 +6685,10 @@
     je short 04b96h                           ; 74 21
     mov dx, strict word 00001h                ; ba 01 00
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
     call 01923h                               ; e8 a0 cd
     imul dx, dx, strict byte 0000ah           ; 6b d2 0a
-    add dx, 00dc6h                            ; 81 c2 c6 0d
+    add dx, 00e28h                            ; 81 c2 28 0e
     push dx                                   ; 52
     push 00494h                               ; 68 94 04
@@ -6709,9 +6712,9 @@
     test al, al                               ; 84 c0
     je short 04bcch                           ; 74 1b
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
     call 01923h                               ; e8 67 cd
-    push 00ddah                               ; 68 da 0d
+    push 00e3ch                               ; 68 3c 0e
     push 004a8h                               ; 68 a8 04
     push strict byte 00004h                   ; 6a 04
@@ -6721,25 +6724,25 @@
     test ah, ah                               ; 84 e4
     je short 04be0h                           ; 74 10
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
     call 01923h                               ; e8 48 cd
-    push 00de4h                               ; 68 e4 0d
+    push 00e46h                               ; 68 46 0e
     jmp short 04bbfh                          ; eb df
     test bl, 080h                             ; f6 c3 80
     je short 04bf6h                           ; 74 11
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
     call 01923h                               ; e8 33 cd
     push si                                   ; 56
-    push 00dd0h                               ; 68 d0 0d
+    push 00e32h                               ; 68 32 0e
     jmp short 04c05h                          ; eb 0f
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
     call 01923h                               ; e8 22 cd
     push si                                   ; 56
-    push 00dc6h                               ; 68 c6 0d
+    push 00e28h                               ; 68 28 0e
     push 004bdh                               ; 68 bd 04
     push strict byte 00004h                   ; 6a 04
@@ -6767,5 +6770,5 @@
     push dx                                   ; 52
     mov dx, ax                                ; 89 c2
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -6845,5 +6848,5 @@
     mov byte [bp-008h], al                    ; 88 46 f8
     mov byte [bp-00ah], al                    ; 88 46 f6
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -7409,5 +7412,5 @@
     test al, al                               ; 84 c0
     jne short 0520fh                          ; 75 19
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -7755,5 +7758,5 @@
     cmp byte [bp-00ah], 058h                  ; 80 7e f6 58
     jbe short 0559bh                          ; 76 1f
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -7773,6 +7776,6 @@
     xor ah, ah                                ; 30 e4
     imul bx, ax, strict byte 0000ah           ; 6b d8 0a
-    mov dl, byte [bx+00df4h]                  ; 8a 97 f4 0d
-    mov ax, word [bx+00df4h]                  ; 8b 87 f4 0d
+    mov dl, byte [bx+00e56h]                  ; 8a 97 56 0e
+    mov ax, word [bx+00e56h]                  ; 8b 87 56 0e
     jmp near 05645h                           ; e9 90 00
     test AL, strict byte 004h                 ; a8 04
@@ -7781,6 +7784,6 @@
     xor ah, ah                                ; 30 e4
     imul bx, ax, strict byte 0000ah           ; 6b d8 0a
-    mov dl, byte [bx+00df2h]                  ; 8a 97 f2 0d
-    mov ax, word [bx+00df2h]                  ; 8b 87 f2 0d
+    mov dl, byte [bx+00e54h]                  ; 8a 97 54 0e
+    mov ax, word [bx+00e54h]                  ; 8b 87 54 0e
     jmp near 05645h                           ; e9 79 00
     mov al, byte [bp-00ch]                    ; 8a 46 f4
@@ -7802,14 +7805,14 @@
     xor ah, ah                                ; 30 e4
     imul bx, ax, strict byte 0000ah           ; 6b d8 0a
-    mov al, byte [bx+00df6h]                  ; 8a 87 f6 0d
+    mov al, byte [bx+00e58h]                  ; 8a 87 58 0e
     mov dx, ax                                ; 89 c2
     mov al, byte [bp-00eh]                    ; 8a 46 f2
     test ax, dx                               ; 85 d0
     je short 0560eh                           ; 74 0a
-    mov dl, byte [bx+00deeh]                  ; 8a 97 ee 0d
-    mov ax, word [bx+00deeh]                  ; 8b 87 ee 0d
+    mov dl, byte [bx+00e50h]                  ; 8a 97 50 0e
+    mov ax, word [bx+00e50h]                  ; 8b 87 50 0e
     jmp short 05616h                          ; eb 08
-    mov dl, byte [bx+00df0h]                  ; 8a 97 f0 0d
-    mov ax, word [bx+00df0h]                  ; 8b 87 f0 0d
+    mov dl, byte [bx+00e52h]                  ; 8a 97 52 0e
+    mov ax, word [bx+00e52h]                  ; 8b 87 52 0e
     shr ax, 008h                              ; c1 e8 08
     mov byte [bp-00ah], al                    ; 88 46 f6
@@ -7818,14 +7821,14 @@
     xor ah, ah                                ; 30 e4
     imul bx, ax, strict byte 0000ah           ; 6b d8 0a
-    mov al, byte [bx+00df6h]                  ; 8a 87 f6 0d
+    mov al, byte [bx+00e58h]                  ; 8a 87 58 0e
     mov dx, ax                                ; 89 c2
     mov al, byte [bp-00eh]                    ; 8a 46 f2
     test ax, dx                               ; 85 d0
     je short 0563dh                           ; 74 0a
-    mov dl, byte [bx+00df0h]                  ; 8a 97 f0 0d
-    mov ax, word [bx+00df0h]                  ; 8b 87 f0 0d
+    mov dl, byte [bx+00e52h]                  ; 8a 97 52 0e
+    mov ax, word [bx+00e52h]                  ; 8b 87 52 0e
     jmp short 05645h                          ; eb 08
-    mov dl, byte [bx+00deeh]                  ; 8a 97 ee 0d
-    mov ax, word [bx+00deeh]                  ; 8b 87 ee 0d
+    mov dl, byte [bx+00e50h]                  ; 8a 97 50 0e
+    mov ax, word [bx+00e50h]                  ; 8b 87 50 0e
     shr ax, 008h                              ; c1 e8 08
     mov byte [bp-00ah], al                    ; 88 46 f6
@@ -7834,5 +7837,5 @@
     test dl, dl                               ; 84 d2
     jne short 0566bh                          ; 75 16
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8034,5 +8037,5 @@
     mov word [bp+012h], dx                    ; 89 56 12
     jmp near 05855h                           ; e9 43 00
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8045,5 +8048,5 @@
     call 01966h                               ; e8 3a c1
     add sp, strict byte 00006h                ; 83 c4 06
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8254,5 +8257,5 @@
     mov dx, word [bp+00ch]                    ; 8b 56 0c
     mov si, strict word 00020h                ; be 20 00
-    call 0a060h                               ; e8 31 46
+    call 0a110h                               ; e8 e1 46
     test ax, ax                               ; 85 c0
     jne short 05a3fh                          ; 75 0c
@@ -8292,10 +8295,10 @@
     mov bx, strict word 0003fh                ; bb 3f 00
     xor cx, cx                                ; 31 c9
-    call 0a010h                               ; e8 88 45
+    call 0a0c0h                               ; 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 0a030h                               ; e8 9c 45
+    call 0a0e0h                               ; e8 4c 46
     mov word [es:di+002h], ax                 ; 26 89 45 02
     cmp ax, 00400h                            ; 3d 00 04
@@ -8438,5 +8441,5 @@
     test ax, ax                               ; 85 c0
     jne short 05c16h                          ; 75 26
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8469,5 +8472,5 @@
     cmp ax, dx                                ; 39 d0
     jbe short 05c74h                          ; 76 30
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8511,5 +8514,5 @@
     mov bx, cx                                ; 89 cb
     xor cx, cx                                ; 31 c9
-    call 0a010h                               ; e8 5d 43
+    call 0a0c0h                               ; e8 0d 44
     xor bx, bx                                ; 31 db
     add ax, word [bp-006h]                    ; 03 46 fa
@@ -8517,5 +8520,5 @@
     mov bx, word [bp-008h]                    ; 8b 5e f8
     xor cx, cx                                ; 31 c9
-    call 0a010h                               ; e8 4e 43
+    call 0a0c0h                               ; e8 fe 43
     xor bx, bx                                ; 31 db
     add ax, word [bp-004h]                    ; 03 46 fc
@@ -8574,5 +8577,5 @@
     test dl, dl                               ; 84 d2
     je short 05dbbh                           ; 74 46
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8593,5 +8596,5 @@
     or ah, 00ch                               ; 80 cc 0c
     jmp near 05f01h                           ; e9 5c 01
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8685,8 +8688,8 @@
     mov bx, word [bp-006h]                    ; 8b 5e fa
     xor cx, cx                                ; 31 c9
-    call 0a010h                               ; e8 77 41
+    call 0a0c0h                               ; e8 27 42
     mov bx, word [bp-004h]                    ; 8b 5e fc
     xor cx, cx                                ; 31 c9
-    call 0a010h                               ; e8 6f 41
+    call 0a0c0h                               ; e8 1f 42
     mov word [bp-00eh], ax                    ; 89 46 f2
     mov word [bp-00ah], dx                    ; 89 56 f6
@@ -8698,5 +8701,5 @@
     mov word [bp+016h], ax                    ; 89 46 16
     jmp near 05dbfh                           ; e9 04 ff
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8711,5 +8714,5 @@
     add sp, strict byte 00008h                ; 83 c4 08
     jmp near 05dbbh                           ; e9 dd fe
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8801,5 +8804,5 @@
     mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
     jmp near 06400h                           ; e9 10 04
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8826,5 +8829,5 @@
     xor bx, bx                                ; 31 db
     mov si, strict word 00020h                ; be 20 00
-    call 0a070h                               ; e8 32 40
+    call 0a120h                               ; e8 e2 40
     mov si, ax                                ; 89 c6
     mov word [bp-00ch], bx                    ; 89 5e f4
@@ -8853,5 +8856,5 @@
     cmp dx, word [es:bx+036h]                 ; 26 3b 57 36
     jc short 060abh                           ; 72 23
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8911,5 +8914,5 @@
     test dl, dl                               ; 84 d2
     je short 0618dh                           ; 74 51
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8983,5 +8986,5 @@
     mov bx, word [bp-00ch]                    ; 8b 5e f4
     mov si, strict word 00020h                ; be 20 00
-    call 0a060h                               ; e8 3e 3e
+    call 0a110h                               ; e8 ee 3e
     mov bx, di                                ; 89 fb
     mov word [es:bx+014h], dx                 ; 26 89 57 14
@@ -9339,5 +9342,5 @@
     mov bx, strict word 0000fh                ; bb 0f 00
     xor cx, cx                                ; 31 c9
-    call 0a030h                               ; e8 7b 3a
+    call 0a0e0h                               ; e8 2b 3b
     mov cx, ax                                ; 89 c1
     mov bx, dx                                ; 89 d3
@@ -9500,5 +9503,5 @@
     mov word [bp+00ch], ax                    ; 89 46 0c
     jmp near 0677fh                           ; e9 2b 00
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -9691,5 +9694,5 @@
     retf                                      ; cb
     jmp near 0677fh                           ; e9 49 fe
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -9731,5 +9734,5 @@
     or byte [bp+018h], 001h                   ; 80 4e 18 01
     jmp near 0677fh                           ; e9 d3 fd
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -9924,5 +9927,5 @@
     mov word [bp+014h], strict word 00003h    ; c7 46 14 03 00
     jmp short 06b65h                          ; eb b9
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -10700,5 +10703,5 @@
     je short 0738dh                           ; 74 0e
     push 008eeh                               ; 68 ee 08
-    push 01168h                               ; 68 68 11
+    push 011cah                               ; 68 ca 11
     push strict byte 00007h                   ; 6a 07
     call 01966h                               ; e8 dc a5
@@ -10781,5 +10784,5 @@
     je short 0741eh                           ; 74 0e
     push 008f8h                               ; 68 f8 08
-    push 01168h                               ; 68 68 11
+    push 011cah                               ; 68 ca 11
     push strict byte 00007h                   ; 6a 07
     call 01966h                               ; e8 4b a5
@@ -12290,5 +12293,5 @@
     cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
     jne short 081c7h                          ; 75 1f
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -12448,5 +12451,5 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-046h]                         ; 8d 46 ba
-    call 0a080h                               ; e8 60 1d
+    call 0a130h                               ; e8 10 1e
     mov byte [bp-046h], 09eh                  ; c6 46 ba 9e
     mov byte [bp-045h], 010h                  ; c6 46 bb 10
@@ -12512,5 +12515,5 @@
     cmp bx, 00200h                            ; 81 fb 00 02
     je short 083e9h                           ; 74 20
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -12579,5 +12582,5 @@
     mov dx, word [bp-014h]                    ; 8b 56 ec
     mov si, strict word 0000ch                ; be 0c 00
-    call 0a060h                               ; e8 f9 1b
+    call 0a110h                               ; e8 a9 1c
     mov word [bp-02ah], ax                    ; 89 46 d6
     mov word [bp-016h], bx                    ; 89 5e ea
@@ -12601,5 +12604,5 @@
     mov dx, word [bp-014h]                    ; 8b 56 ec
     mov si, strict word 00006h                ; be 06 00
-    call 0a060h                               ; e8 b8 1b
+    call 0a110h                               ; e8 68 1c
     mov si, word [bp-01eh]                    ; 8b 76 e2
     add si, dx                                ; 01 d6
@@ -12619,5 +12622,5 @@
     mov dx, si                                ; 89 f2
     mov si, strict word 00008h                ; be 08 00
-    call 0a060h                               ; e8 88 1b
+    call 0a110h                               ; e8 38 1c
     mov word [bp-02eh], bx                    ; 89 5e d2
     mov word [bp-030h], cx                    ; 89 4e d0
@@ -12628,5 +12631,5 @@
     mov dx, word [bp-036h]                    ; 8b 56 ca
     mov si, strict word 00010h                ; be 10 00
-    call 0a060h                               ; e8 6d 1b
+    call 0a110h                               ; e8 1d 1c
     mov si, word [bp-032h]                    ; 8b 76 ce
     add si, dx                                ; 01 d6
@@ -12654,5 +12657,5 @@
     mov dx, word [bp-014h]                    ; 8b 56 ec
     mov si, strict word 0000bh                ; be 0b 00
-    call 0a060h                               ; e8 21 1b
+    call 0a110h                               ; e8 d1 1b
     mov si, dx                                ; 89 d6
     mov dx, cx                                ; 89 ca
@@ -12697,5 +12700,5 @@
     mov word [es:bx+02ch], si                 ; 26 89 77 2c
     mov word [es:bx+032h], si                 ; 26 89 77 32
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -12753,5 +12756,5 @@
     inc byte [bp-00ch]                        ; fe 46 f4
     jmp near 086f5h                           ; e9 91 00
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -12859,10 +12862,63 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-_scsi_init:                                  ; 0xf878e LB 0x66
+scsi_pci_init_:                              ; 0xf878e LB 0x6d
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    mov di, ax                                ; 89 c7
+    mov si, dx                                ; 89 d6
+    call 09ee8h                               ; e8 4c 17
+    mov dx, ax                                ; 89 c2
+    cmp ax, strict word 0ffffh                ; 3d ff ff
+    jne short 087c0h                          ; 75 1d
+    mov bx, 00e02h                            ; bb 02 0e
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01923h                               ; e8 75 91
+    push si                                   ; 56
+    push di                                   ; 57
+    push 00c61h                               ; 68 61 0c
+    push 00c6fh                               ; 68 6f 0c
+    push strict byte 00004h                   ; 6a 04
+    call 01966h                               ; e8 ab 91
+    add sp, strict byte 0000ah                ; 83 c4 0a
+    jmp short 087f2h                          ; eb 32
+    mov bx, 00e02h                            ; bb 02 0e
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01923h                               ; e8 58 91
+    push dx                                   ; 52
+    push si                                   ; 56
+    push di                                   ; 57
+    push 00c61h                               ; 68 61 0c
+    push 00c98h                               ; 68 98 0c
+    push strict byte 00004h                   ; 6a 04
+    call 01966h                               ; e8 8d 91
+    add sp, strict byte 0000ch                ; 83 c4 0c
+    mov al, dl                                ; 88 d0
+    xor ah, ah                                ; 30 e4
+    mov si, ax                                ; 89 c6
+    shr dx, 008h                              ; c1 ea 08
+    mov al, dl                                ; 88 d0
+    mov cx, strict word 00007h                ; b9 07 00
+    mov bx, strict word 00004h                ; bb 04 00
+    mov dx, si                                ; 89 f2
+    call 09fb1h                               ; e8 bf 17
+    lea sp, [bp-008h]                         ; 8d 66 f8
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_scsi_init:                                  ; 0xf87fb LB 0x81
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 d2 8e
+    call 0166ch                               ; e8 65 8e
     mov bx, 00122h                            ; bb 22 01
     mov es, ax                                ; 8e c0
@@ -12875,10 +12931,13 @@
     ; sub ah, ah                                ; 2a e4
     cmp AL, strict byte 055h                  ; 3c 55
-    jne short 087beh                          ; 75 0c
+    jne short 08834h                          ; 75 15
     xor al, al                                ; 30 c0
     mov dx, 00433h                            ; ba 33 04
     out DX, AL                                ; ee
     mov ax, 00430h                            ; b8 30 04
-    call 082e8h                               ; e8 2a fb
+    call 082e8h                               ; e8 bd fa
+    mov dx, 01040h                            ; ba 40 10
+    mov ax, 0104bh                            ; b8 4b 10
+    call 0878eh                               ; e8 5a ff
     mov AL, strict byte 055h                  ; b0 55
     mov dx, 00436h                            ; ba 36 04
@@ -12888,10 +12947,13 @@
     ; sub ah, ah                                ; 2a e4
     cmp AL, strict byte 055h                  ; 3c 55
-    jne short 087d7h                          ; 75 0c
+    jne short 08856h                          ; 75 15
     xor al, al                                ; 30 c0
     mov dx, 00437h                            ; ba 37 04
     out DX, AL                                ; ee
     mov ax, 00434h                            ; b8 34 04
-    call 082e8h                               ; e8 11 fb
+    call 082e8h                               ; e8 9b fa
+    mov dx, strict word 00030h                ; ba 30 00
+    mov ax, 01000h                            ; b8 00 10
+    call 0878eh                               ; e8 38 ff
     mov AL, strict byte 055h                  ; b0 55
     mov dx, 0043ah                            ; ba 3a 04
@@ -12901,14 +12963,17 @@
     ; sub ah, ah                                ; 2a e4
     cmp AL, strict byte 055h                  ; 3c 55
-    jne short 087f0h                          ; 75 0c
+    jne short 08878h                          ; 75 15
     xor al, al                                ; 30 c0
     mov dx, 0043bh                            ; ba 3b 04
     out DX, AL                                ; ee
     mov ax, 00438h                            ; b8 38 04
-    call 082e8h                               ; e8 f8 fa
+    call 082e8h                               ; e8 79 fa
+    mov dx, strict word 00054h                ; ba 54 00
+    mov ax, 01000h                            ; b8 00 10
+    call 0878eh                               ; e8 16 ff
     mov sp, bp                                ; 89 ec
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_ctrl_extract_bits_:                     ; 0xf87f4 LB 0x1c
+ahci_ctrl_extract_bits_:                     ; 0xf887c LB 0x1c
     push si                                   ; 56
     push bp                                   ; 55
@@ -12919,12 +12984,12 @@
     mov cl, byte [bp+006h]                    ; 8a 4e 06
     xor ch, ch                                ; 30 ed
-    jcxz 0880bh                               ; e3 06
+    jcxz 08893h                               ; e3 06
     shr dx, 1                                 ; d1 ea
     rcr ax, 1                                 ; d1 d8
-    loop 08805h                               ; e2 fa
+    loop 0888dh                               ; e2 fa
     pop bp                                    ; 5d
     pop si                                    ; 5e
     retn 00002h                               ; c2 02 00
-ahci_addr_to_phys_:                          ; 0xf8810 LB 0x1e
+ahci_addr_to_phys_:                          ; 0xf8898 LB 0x1e
     push bx                                   ; 53
     push cx                                   ; 51
@@ -12937,5 +13002,5 @@
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 0881eh                               ; e2 fa
+    loop 088a6h                               ; e2 fa
     xor cx, cx                                ; 31 c9
     add ax, bx                                ; 01 d8
@@ -12945,5 +13010,5 @@
     pop bx                                    ; 5b
     retn                                      ; c3
-ahci_port_cmd_sync_:                         ; 0xf882e LB 0x156
+ahci_port_cmd_sync_:                         ; 0xf88b6 LB 0x156
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -12960,6 +13025,6 @@
     mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
     cmp AL, strict byte 0ffh                  ; 3c ff
-    jne short 08851h                          ; 75 03
-    jmp near 0897ch                           ; e9 2b 01
+    jne short 088d9h                          ; 75 03
+    jmp near 08a04h                           ; e9 2b 01
     mov al, byte [es:si+00263h]               ; 26 8a 84 63 02
     xor ah, ah                                ; 30 e4
@@ -12974,5 +13039,5 @@
     lea ax, [si+00080h]                       ; 8d 84 80 00
     mov dx, cx                                ; 89 ca
-    call 08810h                               ; e8 92 ff
+    call 08898h                               ; e8 92 ff
     mov es, cx                                ; 8e c1
     mov word [es:si+008h], ax                 ; 26 89 44 08
@@ -13040,12 +13105,12 @@
     xchg dx, ax                               ; 92
     test dh, 040h                             ; f6 c6 40
-    jne short 0890fh                          ; 75 04
+    jne short 08997h                          ; 75 04
     test AL, strict byte 001h                 ; a8 01
-    je short 08913h                           ; 74 04
+    je short 0899bh                           ; 74 04
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 08915h                          ; eb 02
+    jmp short 0899dh                          ; eb 02
     xor al, al                                ; 30 c0
     test al, al                               ; 84 c0
-    je short 088e2h                           ; 74 c9
+    je short 0896ah                           ; 74 c9
     mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
@@ -13103,5 +13168,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_cmd_data_:                              ; 0xf8984 LB 0x267
+ahci_cmd_data_:                              ; 0xf8a0c LB 0x267
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13128,5 +13193,5 @@
     mov ax, 00080h                            ; b8 80 00
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 0a080h                               ; e8 be 16
+    call 0a130h                               ; e8 e6 16
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov word [es:di+00080h], 08027h           ; 26 c7 85 80 00 27 80
@@ -13146,5 +13211,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00008h                ; be 08 00
-    call 0a060h                               ; e8 5a 16
+    call 0a110h                               ; e8 82 16
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov byte [es:di+00085h], dl               ; 26 88 95 85 00
@@ -13157,5 +13222,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00010h                ; be 10 00
-    call 0a060h                               ; e8 34 16
+    call 0a110h                               ; e8 5c 16
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov byte [es:di+00086h], dl               ; 26 88 95 86 00
@@ -13169,5 +13234,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00018h                ; be 18 00
-    call 0a060h                               ; e8 08 16
+    call 0a110h                               ; e8 30 16
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov byte [es:di+00088h], dl               ; 26 88 95 88 00
@@ -13180,5 +13245,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00020h                ; be 20 00
-    call 0a060h                               ; e8 e2 15
+    call 0a110h                               ; e8 0a 16
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov byte [es:di+00089h], dl               ; 26 88 95 89 00
@@ -13191,5 +13256,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00028h                ; be 28 00
-    call 0a060h                               ; e8 bc 15
+    call 0a110h                               ; e8 e4 15
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov byte [es:di+0008ah], dl               ; 26 88 95 8a 00
@@ -13205,5 +13270,5 @@
     mov bx, word [bp-010h]                    ; 8b 5e f0
     xor cx, cx                                ; 31 c9
-    call 0a010h                               ; e8 37 15
+    call 0a0c0h                               ; e8 5f 15
     push dx                                   ; 52
     push ax                                   ; 50
@@ -13215,5 +13280,5 @@
     mov ax, 0026ah                            ; b8 6a 02
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 09f66h                               ; e8 71 14
+    call 0a011h                               ; e8 94 14
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov dx, word [es:di+0027eh]               ; 26 8b 95 7e 02
@@ -13238,5 +13303,5 @@
     mov ax, word [es:bx+020h]                 ; 26 8b 47 20
     test ax, ax                               ; 85 c0
-    je short 08b87h                           ; 74 3b
+    je short 08c0fh                           ; 74 3b
     dec ax                                    ; 48
     mov es, [bp-00ah]                         ; 8e 46 f6
@@ -13256,13 +13321,13 @@
     mov al, byte [bp-008h]                    ; 8a 46 f8
     cmp AL, strict byte 035h                  ; 3c 35
-    jne short 08b94h                          ; 75 06
+    jne short 08c1ch                          ; 75 06
     mov byte [bp-008h], 040h                  ; c6 46 f8 40
-    jmp short 08babh                          ; eb 17
+    jmp short 08c33h                          ; eb 17
     cmp AL, strict byte 0a0h                  ; 3c a0
-    jne short 08ba7h                          ; 75 0f
+    jne short 08c2fh                          ; 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 08babh                          ; eb 04
+    jmp short 08c33h                          ; eb 04
     mov byte [bp-008h], 000h                  ; c6 46 f8 00
     or byte [bp-008h], 005h                   ; 80 4e f8 05
@@ -13271,5 +13336,5 @@
     mov ax, word [bp-00eh]                    ; 8b 46 f2
     mov dx, word [bp-00ch]                    ; 8b 56 f4
-    call 0882eh                               ; e8 71 fc
+    call 088b6h                               ; e8 71 fc
     mov cx, word [bp-00ch]                    ; 8b 4e f4
     mov bx, word [bp-00eh]                    ; 8b 5e f2
@@ -13278,11 +13343,11 @@
     add ax, 0026ah                            ; 05 6a 02
     mov dx, cx                                ; 89 ca
-    call 09fddh                               ; e8 0b 14
+    call 0a088h                               ; e8 2e 14
     mov es, cx                                ; 8e c1
     mov al, byte [es:bx+003h]                 ; 26 8a 47 03
     test al, al                               ; 84 c0
-    je short 08be1h                           ; 74 05
+    je short 08c69h                           ; 74 05
     mov ax, strict word 00004h                ; b8 04 00
-    jmp short 08be3h                          ; eb 02
+    jmp short 08c6bh                          ; eb 02
     xor ah, ah                                ; 30 e4
     lea sp, [bp-006h]                         ; 8d 66 fa
@@ -13292,5 +13357,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_port_deinit_current_:                   ; 0xf8beb LB 0x180
+ahci_port_deinit_current_:                   ; 0xf8c73 LB 0x180
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13307,5 +13372,5 @@
     mov byte [bp-00ah], al                    ; 88 46 f6
     cmp AL, strict byte 0ffh                  ; 3c ff
-    je short 08c6ch                           ; 74 5f
+    je short 08cf4h                           ; 74 5f
     xor ah, ah                                ; 30 e4
     sal ax, 007h                              ; c1 e0 07
@@ -13351,26 +13416,26 @@
     xchg dx, ax                               ; 92
     test ax, 0c011h                           ; a9 11 c0
-    je short 08c6fh                           ; 74 07
+    je short 08cf7h                           ; 74 07
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 08c71h                          ; eb 05
-    jmp near 08d62h                           ; e9 f3 00
+    jmp short 08cf9h                          ; eb 05
+    jmp near 08deah                           ; e9 f3 00
     xor al, al                                ; 30 c0
     cmp AL, strict byte 001h                  ; 3c 01
-    je short 08c3fh                           ; 74 ca
+    je short 08cc7h                           ; 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 0a080h                               ; e8 fe 13
+    call 0a130h                               ; e8 26 14
     lea ax, [di+00080h]                       ; 8d 85 80 00
     mov cx, strict word 00040h                ; b9 40 00
     xor bx, bx                                ; 31 db
     mov dx, word [bp-00eh]                    ; 8b 56 f2
-    call 0a080h                               ; e8 ef 13
+    call 0a130h                               ; e8 17 14
     lea ax, [di+00200h]                       ; 8d 85 00 02
     mov cx, strict word 00060h                ; b9 60 00
     xor bx, bx                                ; 31 db
     mov dx, word [bp-00eh]                    ; 8b 56 f2
-    call 0a080h                               ; e8 e0 13
+    call 0a130h                               ; e8 08 14
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     xor ah, ah                                ; 30 e4
@@ -13477,5 +13542,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_port_init_:                             ; 0xf8d6b LB 0x24d
+ahci_port_init_:                             ; 0xf8df3 LB 0x24d
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13487,5 +13552,5 @@
     mov word [bp-00ah], dx                    ; 89 56 f6
     mov byte [bp-008h], bl                    ; 88 5e f8
-    call 08bebh                               ; e8 6c fe
+    call 08c73h                               ; e8 6c fe
     mov al, bl                                ; 88 d8
     xor ah, ah                                ; 30 e4
@@ -13536,20 +13601,20 @@
     xchg dx, ax                               ; 92
     test ax, 0c011h                           ; a9 11 c0
-    je short 08df0h                           ; 74 04
+    je short 08e78h                           ; 74 04
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 08df2h                          ; eb 02
+    jmp short 08e7ah                          ; eb 02
     xor al, al                                ; 30 c0
     cmp AL, strict byte 001h                  ; 3c 01
-    je short 08dbbh                           ; 74 c5
+    je short 08e43h                           ; 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 0a080h                               ; e8 7d 12
+    call 0a130h                               ; e8 a5 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 0a080h                               ; e8 6e 12
+    call 0a130h                               ; e8 96 12
     lea di, [si+00200h]                       ; 8d bc 00 02
     mov cx, strict word 00060h                ; b9 60 00
@@ -13557,5 +13622,5 @@
     mov ax, di                                ; 89 f8
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 0a080h                               ; e8 5d 12
+    call 0a130h                               ; e8 85 12
     mov bl, byte [bp-008h]                    ; 8a 5e f8
     xor bh, bh                                ; 30 ff
@@ -13575,5 +13640,5 @@
     mov ax, di                                ; 89 f8
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 08810h                               ; e8 bf f9
+    call 08898h                               ; e8 bf f9
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov di, word [es:si+00260h]               ; 26 8b bc 60 02
@@ -13620,5 +13685,5 @@
     mov ax, si                                ; 89 f0
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 08810h                               ; e8 53 f9
+    call 08898h                               ; e8 53 f9
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov di, word [es:si+00260h]               ; 26 8b bc 60 02
@@ -13725,5 +13790,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-@ahci_read_sectors:                          ; 0xf8fb8 LB 0xa8
+@ahci_read_sectors:                          ; 0xf9040 LB 0xa8
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13736,10 +13801,10 @@
     sub bx, strict byte 0000ch                ; 83 eb 0c
     cmp bx, strict byte 00004h                ; 83 fb 04
-    jbe short 08fdeh                          ; 76 0f
+    jbe short 09066h                          ; 76 0f
     push bx                                   ; 53
-    push 00c62h                               ; 68 62 0c
-    push 00c74h                               ; 68 74 0c
+    push 00cc4h                               ; 68 c4 0c
+    push 00cd6h                               ; 68 d6 0c
     push strict byte 00007h                   ; 6a 07
-    call 01966h                               ; e8 8b 89
+    call 01966h                               ; e8 03 89
     add sp, strict byte 00008h                ; 83 c4 08
     xor di, di                                ; 31 ff
@@ -13756,9 +13821,9 @@
     mov dx, word [es:di+00232h]               ; 26 8b 95 32 02
     xor ax, ax                                ; 31 c0
-    call 08d6bh                               ; e8 60 fd
+    call 08df3h                               ; 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 08984h                               ; e8 6e f9
+    call 08a0ch                               ; e8 6e f9
     mov word [bp-006h], ax                    ; 89 46 fa
     mov es, [bp+006h]                         ; 8e 46 06
@@ -13789,5 +13854,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-@ahci_write_sectors:                         ; 0xf9060 LB 0x86
+@ahci_write_sectors:                         ; 0xf90e8 LB 0x86
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13801,10 +13866,10 @@
     sub dx, strict byte 0000ch                ; 83 ea 0c
     cmp dx, strict byte 00004h                ; 83 fa 04
-    jbe short 0908ah                          ; 76 0f
+    jbe short 09112h                          ; 76 0f
     push dx                                   ; 52
-    push 00c93h                               ; 68 93 0c
-    push 00c74h                               ; 68 74 0c
+    push 00cf5h                               ; 68 f5 0c
+    push 00cd6h                               ; 68 d6 0c
     push strict byte 00007h                   ; 6a 07
-    call 01966h                               ; e8 df 88
+    call 01966h                               ; e8 57 88
     add sp, strict byte 00008h                ; 83 c4 08
     xor bx, bx                                ; 31 db
@@ -13821,9 +13886,9 @@
     mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
     xor ax, ax                                ; 31 c0
-    call 08d6bh                               ; e8 b6 fc
+    call 08df3h                               ; e8 b6 fc
     mov bx, strict word 00035h                ; bb 35 00
     mov ax, si                                ; 89 f0
     mov dx, cx                                ; 89 ca
-    call 08984h                               ; e8 c5 f8
+    call 08a0ch                               ; e8 c5 f8
     mov dx, ax                                ; 89 c2
     mov es, cx                                ; 8e c1
@@ -13840,5 +13905,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-ahci_cmd_packet_:                            ; 0xf90e6 LB 0x18a
+ahci_cmd_packet_:                            ; 0xf916e LB 0x18a
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13852,22 +13917,22 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 6b 85
+    call 0166ch                               ; e8 e3 84
     mov si, 00122h                            ; be 22 01
     mov word [bp-008h], ax                    ; 89 46 f8
     cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
-    jne short 0912ch                          ; 75 1f
-    mov bx, 00da0h                            ; bb a0 0d
+    jne short 091b4h                          ; 75 1f
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 0b 88
-    push 00ca6h                               ; 68 a6 0c
-    push 00cb6h                               ; 68 b6 0c
+    call 01923h                               ; e8 83 87
+    push 00d08h                               ; 68 08 0d
+    push 00d18h                               ; 68 18 0d
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 43 88
+    call 01966h                               ; e8 bb 87
     add sp, strict byte 00006h                ; 83 c4 06
     mov ax, strict word 00001h                ; b8 01 00
-    jmp near 09267h                           ; e9 3b 01
+    jmp near 092efh                           ; e9 3b 01
     test byte [bp+004h], 001h                 ; f6 46 04 01
-    jne short 09126h                          ; 75 f4
+    jne short 091aeh                          ; 75 f4
     mov ax, word [bp+006h]                    ; 8b 46 06
     mov dx, word [bp+008h]                    ; 8b 56 08
@@ -13875,5 +13940,5 @@
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 0913bh                               ; e2 fa
+    loop 091c3h                               ; e2 fa
     mov es, [bp-008h]                         ; 8e 46 f8
     mov word [es:si], ax                      ; 26 89 04
@@ -13889,5 +13954,5 @@
     mov dx, word [bp+008h]                    ; 8b 56 08
     xor cx, cx                                ; 31 c9
-    call 0a030h                               ; e8 bc 0e
+    call 0a0e0h                               ; e8 e4 0e
     mov word [es:si+00eh], ax                 ; 26 89 44 0e
     xor di, di                                ; 31 ff
@@ -13908,5 +13973,5 @@
     mov bx, ax                                ; 89 c3
     xor al, al                                ; 30 c0
-    call 08d6bh                               ; e8 b8 fb
+    call 08df3h                               ; e8 b8 fb
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
@@ -13916,5 +13981,5 @@
     mov ax, 000c0h                            ; b8 c0 00
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 0a090h                               ; e8 c8 0e
+    call 0a140h                               ; e8 f0 0e
     mov es, [bp-008h]                         ; 8e 46 f8
     mov word [es:si+018h], di                 ; 26 89 7c 18
@@ -13923,5 +13988,5 @@
     mov ax, word [es:si+01eh]                 ; 26 8b 44 1e
     test ax, ax                               ; 85 c0
-    je short 09206h                           ; 74 27
+    je short 0928eh                           ; 74 27
     dec ax                                    ; 48
     mov es, [bp-00ah]                         ; 8e 46 f6
@@ -13936,5 +14001,5 @@
     mov ax, si                                ; 89 f0
     mov dx, word [bp-008h]                    ; 8b 56 f8
-    call 08984h                               ; e8 73 f7
+    call 08a0ch                               ; e8 73 f7
     les bx, [bp-00eh]                         ; c4 5e f2
     mov dx, word [es:bx+004h]                 ; 26 8b 57 04
@@ -13963,7 +14028,7 @@
     mov ax, word [es:bx+006h]                 ; 26 8b 47 06
     or ax, word [es:bx+004h]                  ; 26 0b 47 04
-    jne short 09265h                          ; 75 05
+    jne short 092edh                          ; 75 05
     mov ax, strict word 00004h                ; b8 04 00
-    jmp short 09267h                          ; eb 02
+    jmp short 092efh                          ; eb 02
     xor ax, ax                                ; 31 c0
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -13972,5 +14037,5 @@
     pop bp                                    ; 5d
     retn 0000ch                               ; c2 0c 00
-ahci_port_detect_device_:                    ; 0xf9270 LB 0x4e3
+ahci_port_detect_device_:                    ; 0xf92f8 LB 0x4e3
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13985,8 +14050,8 @@
     xor ch, ch                                ; 30 ed
     mov bx, cx                                ; 89 cb
-    call 08d6bh                               ; e8 e0 fa
+    call 08df3h                               ; e8 e0 fa
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 d8 83
+    call 0166ch                               ; e8 50 83
     mov word [bp-00eh], 00122h                ; c7 46 f2 22 01
     mov word [bp-016h], ax                    ; 89 46 ea
@@ -14058,8 +14123,8 @@
     mov bx, strict word 0000fh                ; bb 0f 00
     xor cx, cx                                ; 31 c9
-    call 087f4h                               ; e8 b5 f4
+    call 0887ch                               ; e8 b5 f4
     test ax, ax                               ; 85 c0
-    jne short 09346h                          ; 75 03
-    jmp near 0974bh                           ; e9 05 04
+    jne short 093ceh                          ; 75 03
+    jmp near 097d3h                           ; e9 05 04
     mov al, byte [bp-00ch]                    ; 8a 46 f4
     xor ah, ah                                ; 30 e4
@@ -14090,7 +14155,7 @@
     mov bx, strict word 0000fh                ; bb 0f 00
     xor cx, cx                                ; 31 c9
-    call 087f4h                               ; e8 67 f4
+    call 0887ch                               ; e8 67 f4
     cmp ax, strict word 00001h                ; 3d 01 00
-    je short 09346h                           ; 74 b4
+    je short 093ceh                           ; 74 b4
     push strict byte 00000h                   ; 6a 00
     mov bx, strict word 0000fh                ; bb 0f 00
@@ -14098,7 +14163,7 @@
     mov ax, word [bp-01ah]                    ; 8b 46 e6
     mov dx, di                                ; 89 fa
-    call 087f4h                               ; e8 53 f4
+    call 0887ch                               ; e8 53 f4
     cmp ax, strict word 00003h                ; 3d 03 00
-    jne short 09343h                          ; 75 9d
+    jne short 093cbh                          ; 75 9d
     mov ax, word [bp-01ch]                    ; 8b 46 e4
     add ax, 00130h                            ; 05 30 01
@@ -14128,6 +14193,6 @@
     mov byte [bp-008h], al                    ; 88 46 f8
     cmp AL, strict byte 004h                  ; 3c 04
-    jc short 093f0h                           ; 72 03
-    jmp near 0974bh                           ; e9 5b 03
+    jc short 09478h                           ; 72 03
+    jmp near 097d3h                           ; e9 5b 03
     mov ax, word [bp-01ch]                    ; 8b 46 e4
     add ax, 00118h                            ; 05 18 01
@@ -14179,7 +14244,7 @@
     add cl, 00ch                              ; 80 c1 0c
     test dx, dx                               ; 85 d2
-    jne short 094b6h                          ; 75 54
+    jne short 0953eh                          ; 75 54
     cmp ax, 00101h                            ; 3d 01 01
-    jne short 094b6h                          ; 75 4f
+    jne short 0953eh                          ; 75 4f
     mov es, [bp-016h]                         ; 8e 46 ea
     mov bx, word [bp-00eh]                    ; 8b 5e f2
@@ -14196,11 +14261,11 @@
     mov ax, word [bp-00eh]                    ; 8b 46 f2
     mov dx, es                                ; 8c c2
-    call 08984h                               ; e8 dd f4
+    call 08a0ch                               ; e8 dd f4
     mov byte [bp-00ah], cl                    ; 88 4e f6
     test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
-    je short 094b9h                           ; 74 08
+    je short 09541h                           ; 74 08
     mov ax, strict word 00001h                ; b8 01 00
-    jmp short 094bbh                          ; eb 05
-    jmp near 09689h                           ; e9 d0 01
+    jmp short 09543h                          ; eb 05
+    jmp near 09711h                           ; e9 d0 01
     xor ax, ax                                ; 31 c0
     mov dl, al                                ; 88 c2
@@ -14218,7 +14283,7 @@
     mov word [bp-01eh], ax                    ; 89 46 e2
     cmp word [bp-014h], 00fffh                ; 81 7e ec ff 0f
-    jne short 0950ah                          ; 75 1e
+    jne short 09592h                          ; 75 1e
     cmp di, strict byte 0ffffh                ; 83 ff ff
-    jne short 0950ah                          ; 75 19
+    jne short 09592h                          ; 75 19
     mov ax, word [bp-0015ch]                  ; 8b 86 a4 fe
     mov word [bp-01eh], ax                    ; 89 46 e2
@@ -14259,19 +14324,19 @@
     mov al, byte [bp-008h]                    ; 8a 46 f8
     cmp AL, strict byte 001h                  ; 3c 01
-    jc short 09585h                           ; 72 0c
-    jbe short 0958dh                          ; 76 12
+    jc short 0960dh                           ; 72 0c
+    jbe short 09615h                          ; 76 12
     cmp AL, strict byte 003h                  ; 3c 03
-    je short 09595h                           ; 74 16
+    je short 0961dh                           ; 74 16
     cmp AL, strict byte 002h                  ; 3c 02
-    je short 09591h                           ; 74 0e
-    jmp short 095ddh                          ; eb 58
+    je short 09619h                           ; 74 0e
+    jmp short 09665h                          ; eb 58
     test al, al                               ; 84 c0
-    jne short 095ddh                          ; 75 54
+    jne short 09665h                          ; 75 54
     mov DL, strict byte 040h                  ; b2 40
-    jmp short 09597h                          ; eb 0a
+    jmp short 0961fh                          ; eb 0a
     mov DL, strict byte 048h                  ; b2 48
-    jmp short 09597h                          ; eb 06
+    jmp short 0961fh                          ; eb 06
     mov DL, strict byte 050h                  ; b2 50
-    jmp short 09597h                          ; eb 02
+    jmp short 0961fh                          ; eb 02
     mov DL, strict byte 058h                  ; b2 58
     mov bl, dl                                ; 88 d3
@@ -14279,17 +14344,17 @@
     xor bh, bh                                ; 30 ff
     mov ax, bx                                ; 89 d8
-    call 016ach                               ; e8 09 81
+    call 016ach                               ; e8 81 80
     test al, al                               ; 84 c0
-    je short 095ddh                           ; 74 36
+    je short 09665h                           ; 74 36
     mov al, dl                                ; 88 d0
     db  0feh, 0c0h
     ; inc al                                    ; fe c0
     xor ah, ah                                ; 30 e4
-    call 016ach                               ; e8 fc 80
+    call 016ach                               ; e8 74 80
     xor ah, ah                                ; 30 e4
     mov cx, ax                                ; 89 c1
     sal cx, 008h                              ; c1 e1 08
     mov al, dl                                ; 88 d0
-    call 016ach                               ; e8 f0 80
+    call 016ach                               ; e8 68 80
     xor ah, ah                                ; 30 e4
     add ax, cx                                ; 01 c8
@@ -14298,12 +14363,12 @@
     add AL, strict byte 002h                  ; 04 02
     xor ah, ah                                ; 30 e4
-    call 016ach                               ; e8 e0 80
+    call 016ach                               ; e8 58 80
     xor ah, ah                                ; 30 e4
     mov word [bp-02ah], ax                    ; 89 46 d6
     mov ax, bx                                ; 89 d8
-    call 016ach                               ; e8 d6 80
+    call 016ach                               ; e8 4e 80
     xor ah, ah                                ; 30 e4
     mov word [bp-026h], ax                    ; 89 46 da
-    jmp short 095efh                          ; eb 12
+    jmp short 09677h                          ; eb 12
     push word [bp-01eh]                       ; ff 76 e2
     push word [bp-012h]                       ; ff 76 ee
@@ -14312,9 +14377,9 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-02ah]                         ; 8d 46 d6
-    call 05a02h                               ; e8 13 c4
-    mov bx, 00da0h                            ; bb a0 0d
+    call 05a02h                               ; e8 8b c3
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 29 83
+    call 01923h                               ; e8 a1 82
     push word [bp-01eh]                       ; ff 76 e2
     push word [bp-012h]                       ; ff 76 ee
@@ -14335,7 +14400,7 @@
     mov al, byte [bp-008h]                    ; 8a 46 f8
     push ax                                   ; 50
-    push 00cd6h                               ; 68 d6 0c
+    push 00d38h                               ; 68 38 0d
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 3b 83
+    call 01966h                               ; e8 b3 82
     add sp, strict byte 0001ch                ; 83 c4 1c
     mov al, byte [bp-00ah]                    ; 8a 46 f6
@@ -14368,5 +14433,5 @@
     mov dx, strict word 00075h                ; ba 75 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 d9 7f
+    call 01650h                               ; e8 51 7f
     mov bl, al                                ; 88 c3
     db  0feh, 0c3h
@@ -14375,10 +14440,10 @@
     mov dx, strict word 00075h                ; ba 75 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 d8 7f
-    jmp near 0973ah                           ; e9 b1 00
+    call 0165eh                               ; e8 50 7f
+    jmp near 097c2h                           ; e9 b1 00
     cmp dx, 0eb14h                            ; 81 fa 14 eb
-    jne short 096e3h                          ; 75 54
+    jne short 0976bh                          ; 75 54
     cmp ax, 00101h                            ; 3d 01 01
-    jne short 096e3h                          ; 75 4f
+    jne short 0976bh                          ; 75 4f
     mov es, [bp-016h]                         ; 8e 46 ea
     mov bx, word [bp-00eh]                    ; 8b 5e f2
@@ -14395,11 +14460,11 @@
     mov ax, word [bp-00eh]                    ; 8b 46 f2
     mov dx, es                                ; 8c c2
-    call 08984h                               ; e8 b0 f2
+    call 08a0ch                               ; e8 b0 f2
     mov byte [bp-00ah], cl                    ; 88 4e f6
     test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
-    je short 096e5h                           ; 74 07
+    je short 0976dh                           ; 74 07
     mov dx, strict word 00001h                ; ba 01 00
-    jmp short 096e7h                          ; eb 04
-    jmp short 0973ah                          ; eb 55
+    jmp short 0976fh                          ; eb 04
+    jmp short 097c2h                          ; eb 55
     xor dx, dx                                ; 31 d2
     mov bl, byte [bp-008h]                    ; 8a 5e f8
@@ -14440,5 +14505,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_mem_alloc_:                             ; 0xf9753 LB 0x43
+ahci_mem_alloc_:                             ; 0xf97db LB 0x43
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14450,7 +14515,7 @@
     mov dx, 00413h                            ; ba 13 04
     xor ax, ax                                ; 31 c0
-    call 0166ch                               ; e8 09 7f
+    call 0166ch                               ; e8 81 7e
     test ax, ax                               ; 85 c0
-    je short 0978ch                           ; 74 25
+    je short 09814h                           ; 74 25
     dec ax                                    ; 48
     mov bx, ax                                ; 89 c3
@@ -14459,5 +14524,5 @@
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 0976fh                               ; e2 fa
+    loop 097f7h                               ; e2 fa
     mov si, ax                                ; 89 c6
     mov di, dx                                ; 89 d7
@@ -14465,8 +14530,8 @@
     shr di, 1                                 ; d1 ef
     rcr si, 1                                 ; d1 de
-    loop 0977ch                               ; e2 fa
+    loop 09804h                               ; e2 fa
     mov dx, 00413h                            ; ba 13 04
     xor ax, ax                                ; 31 c0
-    call 0167ah                               ; e8 f0 7e
+    call 0167ah                               ; e8 68 7e
     mov ax, si                                ; 89 f0
     lea sp, [bp-00ah]                         ; 8d 66 f6
@@ -14478,5 +14543,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_hba_init_:                              ; 0xf9796 LB 0x16d
+ahci_hba_init_:                              ; 0xf981e LB 0x16d
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14490,5 +14555,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 c0 7e
+    call 0166ch                               ; e8 38 7e
     mov bx, 00122h                            ; bb 22 01
     mov di, ax                                ; 89 c7
@@ -14507,9 +14572,9 @@
     shr eax, 010h                             ; 66 c1 e8 10
     xchg dx, ax                               ; 92
-    call 09753h                               ; e8 83 ff
+    call 097dbh                               ; e8 83 ff
     mov word [bp-010h], ax                    ; 89 46 f0
     test ax, ax                               ; 85 c0
-    jne short 097dah                          ; 75 03
-    jmp near 098e2h                           ; e9 08 01
+    jne short 09862h                          ; 75 03
+    jmp near 0996ah                           ; e9 08 01
     mov ax, word [bp-010h]                    ; 8b 46 f0
     mov es, di                                ; 8e c7
@@ -14561,5 +14626,5 @@
     xchg dx, ax                               ; 92
     test AL, strict byte 001h                 ; a8 01
-    jne short 09834h                          ; 75 de
+    jne short 098bch                          ; 75 de
     xor ax, ax                                ; 31 c0
     xor cx, cx                                ; 31 c9
@@ -14579,31 +14644,31 @@
     mov bx, strict word 0001fh                ; bb 1f 00
     xor cx, cx                                ; 31 c9
-    call 087f4h                               ; e8 7a ef
+    call 0887ch                               ; 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 098a6h                          ; eb 21
+    jmp short 0992eh                          ; eb 21
     xor al, al                                ; 30 c0
     test al, al                               ; 84 c0
-    je short 0989dh                           ; 74 12
+    je short 09925h                           ; 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 09270h                               ; e8 d8 f9
+    call 092f8h                               ; e8 d8 f9
     dec byte [bp-00ch]                        ; fe 4e f4
-    je short 098e0h                           ; 74 43
+    je short 09968h                           ; 74 43
     inc byte [bp-00eh]                        ; fe 46 f2
     cmp byte [bp-00eh], 020h                  ; 80 7e f2 20
-    jnc short 098e0h                          ; 73 3a
+    jnc short 09968h                          ; 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 098b8h                               ; e3 06
+    jcxz 09940h                               ; e3 06
     sal bx, 1                                 ; d1 e3
     rcl di, 1                                 ; d1 d7
-    loop 098b2h                               ; e2 fa
+    loop 0993ah                               ; e2 fa
     mov ax, strict word 0000ch                ; b8 0c 00
     xor cx, cx                                ; 31 c9
@@ -14621,9 +14686,9 @@
     xchg dx, ax                               ; 92
     test dx, di                               ; 85 fa
-    jne short 098dch                          ; 75 04
+    jne short 09964h                          ; 75 04
     test ax, bx                               ; 85 d8
-    je short 09885h                           ; 74 a9
+    je short 0990dh                           ; 74 a9
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 09887h                          ; eb a7
+    jmp short 0990fh                          ; eb a7
     xor ax, ax                                ; 31 c0
     lea sp, [bp-00ah]                         ; 8d 66 f6
@@ -14635,7 +14700,7 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0ech, 099h, 0cah, 099h, 0d0h, 099h, 0d6h, 099h, 0dch
-    db  099h, 0e2h, 099h, 0e8h, 099h, 0ech, 099h
-_ahci_init:                                  ; 0xf9903 LB 0x13a
+    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 074h, 09ah, 052h, 09ah, 058h, 09ah, 05eh, 09ah, 064h
+    db  09ah, 06ah, 09ah, 070h, 09ah, 074h, 09ah
+_ahci_init:                                  ; 0xf998b LB 0x13a
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14645,8 +14710,8 @@
     mov ax, 00601h                            ; b8 01 06
     mov dx, strict word 00001h                ; ba 01 00
-    call 09e58h                               ; e8 44 05
+    call 09ee0h                               ; e8 44 05
     mov dx, ax                                ; 89 c2
     cmp ax, strict word 0ffffh                ; 3d ff ff
-    je short 09967h                           ; 74 4c
+    je short 099efh                           ; 74 4c
     xor al, al                                ; 30 c0
     shr ax, 008h                              ; c1 e8 08
@@ -14656,8 +14721,8 @@
     xor ah, ah                                ; 30 e4
     mov bx, strict word 00034h                ; bb 34 00
-    call 09e60h                               ; e8 30 05
+    call 09f0bh                               ; e8 53 05
     mov cl, al                                ; 88 c1
     test cl, cl                               ; 84 c9
-    je short 0996ah                           ; 74 34
+    je short 099f2h                           ; 74 34
     mov bl, cl                                ; 88 cb
     xor bh, bh                                ; 30 ff
@@ -14670,7 +14735,7 @@
     mov dx, word [bp-00eh]                    ; 8b 56 f2
     mov ax, word [bp-014h]                    ; 8b 46 ec
-    call 09e60h                               ; e8 0b 05
+    call 09f0bh                               ; e8 2e 05
     cmp AL, strict byte 012h                  ; 3c 12
-    je short 0996ah                           ; 74 11
+    je short 099f2h                           ; 74 11
     mov bl, cl                                ; 88 cb
     db  0feh, 0c3h
@@ -14679,8 +14744,8 @@
     mov dx, word [bp-00eh]                    ; 8b 56 f2
     mov ax, word [bp-014h]                    ; 8b 46 ec
-    jmp short 0992dh                          ; eb c6
-    jmp near 09a36h                           ; e9 cc 00
+    jmp short 099b5h                          ; eb c6
+    jmp near 09abeh                           ; e9 cc 00
     test cl, cl                               ; 84 c9
-    je short 09967h                           ; 74 f9
+    je short 099efh                           ; 74 f9
     add cl, 002h                              ; 80 c1 02
     mov bl, cl                                ; 88 cb
@@ -14694,7 +14759,7 @@
     mov dx, word [bp-012h]                    ; 8b 56 ee
     mov ax, word [bp-00ch]                    ; 8b 46 f4
-    call 09e60h                               ; e8 d0 04
+    call 09f0bh                               ; e8 f3 04
     cmp AL, strict byte 010h                  ; 3c 10
-    jne short 09967h                          ; 75 d3
+    jne short 099efh                          ; 75 d3
     mov byte [bp-008h], 000h                  ; c6 46 f8 00
     mov bl, cl                                ; 88 cb
@@ -14703,29 +14768,29 @@
     mov dx, word [bp-012h]                    ; 8b 56 ee
     mov ax, word [bp-00ch]                    ; 8b 46 f4
-    call 09e8eh                               ; e8 e6 04
+    call 09f39h                               ; e8 09 05
     mov dx, ax                                ; 89 c2
     and ax, strict word 0000fh                ; 25 0f 00
     sub ax, strict word 00004h                ; 2d 04 00
     cmp ax, strict word 0000bh                ; 3d 0b 00
-    jnbe short 099ech                         ; 77 37
+    jnbe short 09a74h                         ; 77 37
     push CS                                   ; 0e
     pop ES                                    ; 07
     mov cx, strict word 00008h                ; b9 08 00
-    mov di, 098ech                            ; bf ec 98
+    mov di, 09974h                            ; bf 74 99
     repne scasb                               ; f2 ae
     sal cx, 1                                 ; d1 e1
     mov di, cx                                ; 89 cf
-    mov ax, word [cs:di-0670dh]               ; 2e 8b 85 f3 98
+    mov ax, word [cs:di-06685h]               ; 2e 8b 85 7b 99
     jmp ax                                    ; ff e0
     mov byte [bp-008h], 010h                  ; c6 46 f8 10
-    jmp short 099ech                          ; eb 1c
+    jmp short 09a74h                          ; eb 1c
     mov byte [bp-008h], 014h                  ; c6 46 f8 14
-    jmp short 099ech                          ; eb 16
+    jmp short 09a74h                          ; eb 16
     mov byte [bp-008h], 018h                  ; c6 46 f8 18
-    jmp short 099ech                          ; eb 10
+    jmp short 09a74h                          ; eb 10
     mov byte [bp-008h], 01ch                  ; c6 46 f8 1c
-    jmp short 099ech                          ; eb 0a
+    jmp short 09a74h                          ; eb 0a
     mov byte [bp-008h], 020h                  ; c6 46 f8 20
-    jmp short 099ech                          ; eb 04
+    jmp short 09a74h                          ; eb 04
     mov byte [bp-008h], 024h                  ; c6 46 f8 24
     mov si, dx                                ; 89 d6
@@ -14734,5 +14799,5 @@
     mov al, byte [bp-008h]                    ; 8a 46 f8
     test al, al                               ; 84 c0
-    je short 09a36h                           ; 74 3b
+    je short 09abeh                           ; 74 3b
     mov bl, al                                ; 88 c3
     xor bh, bh                                ; 30 ff
@@ -14745,7 +14810,7 @@
     mov dx, word [bp-010h]                    ; 8b 56 f0
     mov ax, word [bp-016h]                    ; 8b 46 ea
-    call 09eb8h                               ; e8 9e 04
+    call 09f63h                               ; e8 c1 04
     test AL, strict byte 001h                 ; a8 01
-    je short 09a36h                           ; 74 18
+    je short 09abeh                           ; 74 18
     and AL, strict byte 0f0h                  ; 24 f0
     add si, ax                                ; 01 c6
@@ -14754,7 +14819,7 @@
     mov dx, word [bp-010h]                    ; 8b 56 f0
     mov ax, word [bp-016h]                    ; 8b 46 ea
-    call 09f06h                               ; e8 d5 04
+    call 09fb1h                               ; e8 f8 04
     mov ax, si                                ; 89 f0
-    call 09796h                               ; e8 60 fd
+    call 0981eh                               ; e8 60 fd
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop di                                    ; 5f
@@ -14762,5 +14827,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-apm_out_str_:                                ; 0xf9a3d LB 0x39
+apm_out_str_:                                ; 0xf9ac5 LB 0x39
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14768,5 +14833,5 @@
     mov bx, ax                                ; 89 c3
     cmp byte [bx], 000h                       ; 80 3f 00
-    je short 09a52h                           ; 74 0a
+    je short 09adah                           ; 74 0a
     mov al, byte [bx]                         ; 8a 07
     out DX, AL                                ; ee
@@ -14775,21 +14840,30 @@
     db  00ah, 0c0h
     ; or al, al                                 ; 0a c0
-    jne short 09a4ah                          ; 75 f8
+    jne short 09ad2h                          ; 75 f8
     lea sp, [bp-002h]                         ; 8d 66 fe
     pop bx                                    ; 5b
     pop bp                                    ; 5d
     retn                                      ; c3
-    xchg di, ax                               ; 97
-    call far 09aa9h:09b1fh                    ; 9a 1f 9b a9 9a
-    les bx, [bp+si-064e1h]                    ; c4 9a 1f 9b
-    out DX, ax                                ; ef
-    call far 09b25h:09b1fh                    ; 9a 1f 9b 25 9b
-    hlt                                       ; f4
-    call far 09af4h:09af4h                    ; 9a f4 9a f4 9a
-    db  064h, 09bh
-    ; fs wait                                   ; 64 9b
-    hlt                                       ; f4
-    call far 09b5dh:09af4h                    ; 9a f4 9a 5d 9b
-_apm_function:                               ; 0xf9a76 LB 0xf3
+    pop DS                                    ; 1f
+    wait                                      ; 9b
+    cmpsw                                     ; a7
+    wait                                      ; 9b
+    xor word [bp+di-064b4h], bx               ; 31 9b 4c 9b
+    cmpsw                                     ; a7
+    wait                                      ; 9b
+    jnbe short 09a87h                         ; 77 9b
+    cmpsw                                     ; a7
+    wait                                      ; 9b
+    lodsw                                     ; ad
+    wait                                      ; 9b
+    jl short 09a8dh                           ; 7c 9b
+    jl short 09a8fh                           ; 7c 9b
+    jl short 09a91h                           ; 7c 9b
+    in AL, DX                                 ; ec
+    wait                                      ; 9b
+    jl short 09a95h                           ; 7c 9b
+    jl short 09a97h                           ; 7c 9b
+    in ax, 09bh                               ; e5 9b
+_apm_function:                               ; 0xf9afe LB 0xf3
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14799,21 +14873,21 @@
     xor ah, ah                                ; 30 e4
     cmp ax, strict word 0000eh                ; 3d 0e 00
-    jnbe short 09af4h                         ; 77 6c
+    jnbe short 09b7ch                         ; 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-065a8h]                   ; 2e ff a7 58 9a
+    jmp word [cs:bx-06520h]                   ; 2e ff a7 e0 9a
     mov word [bp+012h], 00102h                ; c7 46 12 02 01
     mov word [bp+00ch], 0504dh                ; c7 46 0c 4d 50
     mov word [bp+010h], strict word 00003h    ; c7 46 10 03 00
-    jmp near 09b1fh                           ; e9 76 00
+    jmp near 09ba7h                           ; e9 76 00
     mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
-    mov word [bp+00ch], 0a104h                ; c7 46 0c 04 a1
+    mov word [bp+00ch], 0a1b4h                ; c7 46 0c b4 a1
     mov word [bp+010h], 0f000h                ; c7 46 10 00 f0
     mov ax, strict word 0fff0h                ; b8 f0 ff
     mov word [bp+006h], ax                    ; 89 46 06
     mov word [bp+004h], ax                    ; 89 46 04
-    jmp near 09b1fh                           ; e9 5b 00
+    jmp near 09ba7h                           ; e9 5b 00
     mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
     mov word [bp+00ch], 0da40h                ; c7 46 0c 40 da
@@ -14828,17 +14902,17 @@
     mov si, ax                                ; 89 c6
     sal esi, 010h                             ; 66 c1 e6 10
-    jmp near 09b1fh                           ; e9 30 00
+    jmp near 09ba7h                           ; e9 30 00
     sti                                       ; fb
     hlt                                       ; f4
-    jmp near 09b1fh                           ; e9 2b 00
-    mov bx, 00da0h                            ; bb a0 0d
+    jmp near 09ba7h                           ; e9 2b 00
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 24 7e
+    call 01923h                               ; e8 9c 7d
     push word [bp+00ch]                       ; ff 76 0c
     push word [bp+012h]                       ; ff 76 12
-    push 00d29h                               ; 68 29 0d
+    push 00d8bh                               ; 68 8b 0d
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 59 7e
+    call 01966h                               ; e8 d1 7d
     add sp, strict byte 00008h                ; 83 c4 08
     mov ax, word [bp+012h]                    ; 8b 46 12
@@ -14852,28 +14926,28 @@
     retn                                      ; c3
     cmp word [bp+010h], strict byte 00003h    ; 83 7e 10 03
-    je short 09b4ah                           ; 74 1f
+    je short 09bd2h                           ; 74 1f
     cmp word [bp+010h], strict byte 00002h    ; 83 7e 10 02
-    je short 09b42h                           ; 74 11
+    je short 09bcah                           ; 74 11
     cmp word [bp+010h], strict byte 00001h    ; 83 7e 10 01
-    jne short 09b52h                          ; 75 1b
+    jne short 09bdah                          ; 75 1b
     mov dx, 0040fh                            ; ba 0f 04
-    mov ax, 00d10h                            ; b8 10 0d
-    call 09a3dh                               ; e8 fd fe
-    jmp short 09b1fh                          ; eb dd
+    mov ax, 00d72h                            ; b8 72 0d
+    call 09ac5h                               ; e8 fd fe
+    jmp short 09ba7h                          ; eb dd
     mov dx, 0040fh                            ; ba 0f 04
-    mov ax, 00d18h                            ; b8 18 0d
-    jmp short 09b3dh                          ; eb f3
+    mov ax, 00d7ah                            ; b8 7a 0d
+    jmp short 09bc5h                          ; eb f3
     mov dx, 0040fh                            ; ba 0f 04
-    mov ax, 00d20h                            ; b8 20 0d
-    jmp short 09b3dh                          ; eb eb
+    mov ax, 00d82h                            ; b8 82 0d
+    jmp short 09bc5h                          ; 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 09b1fh                          ; eb c2
+    jmp short 09ba7h                          ; eb c2
     mov word [bp+012h], 00102h                ; c7 46 12 02 01
-    jmp short 09b1fh                          ; eb bb
+    jmp short 09ba7h                          ; eb bb
     or ah, 080h                               ; 80 cc 80
-    jmp short 09b55h                          ; eb ec
-pci16_select_reg_:                           ; 0xf9b69 LB 0x24
+    jmp short 09bddh                          ; eb ec
+pci16_select_reg_:                           ; 0xf9bf1 LB 0x24
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14892,5 +14966,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci16_find_device_:                          ; 0xf9b8d LB 0xf9
+pci16_find_device_:                          ; 0xf9c15 LB 0xf9
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14906,8 +14980,8 @@
     mov byte [bp-008h], 000h                  ; c6 46 f8 00
     test bl, 007h                             ; f6 c3 07
-    jne short 09bd5h                          ; 75 2d
+    jne short 09c5dh                          ; 75 2d
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, bx                                ; 89 d8
-    call 09b69h                               ; e8 b9 ff
+    call 09bf1h                               ; e8 b9 ff
     mov dx, 00cfeh                            ; ba fe 0c
     in AL, DX                                 ; ec
@@ -14916,23 +14990,23 @@
     mov byte [bp-006h], al                    ; 88 46 fa
     cmp AL, strict byte 0ffh                  ; 3c ff
-    jne short 09bc3h                          ; 75 06
+    jne short 09c4bh                          ; 75 06
     add bx, strict byte 00008h                ; 83 c3 08
-    jmp near 09c56h                           ; e9 93 00
+    jmp near 09cdeh                           ; e9 93 00
     test byte [bp-006h], 080h                 ; f6 46 fa 80
-    je short 09bd0h                           ; 74 07
+    je short 09c58h                           ; 74 07
     mov word [bp-010h], strict word 00001h    ; c7 46 f0 01 00
-    jmp short 09bd5h                          ; eb 05
+    jmp short 09c5dh                          ; 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 09bfdh                          ; 75 1f
+    jne short 09c85h                          ; 75 1f
     mov ax, bx                                ; 89 d8
     shr ax, 008h                              ; c1 e8 08
     test ax, ax                               ; 85 c0
-    jne short 09bfdh                          ; 75 16
+    jne short 09c85h                          ; 75 16
     mov dx, strict word 0001ah                ; ba 1a 00
     mov ax, bx                                ; 89 d8
-    call 09b69h                               ; e8 7a ff
+    call 09bf1h                               ; e8 7a ff
     mov dx, 00cfeh                            ; ba fe 0c
     in AL, DX                                 ; ec
@@ -14940,13 +15014,13 @@
     ; sub ah, ah                                ; 2a e4
     cmp al, byte [bp-008h]                    ; 3a 46 f8
-    jbe short 09bfdh                          ; 76 03
+    jbe short 09c85h                          ; 76 03
     mov byte [bp-008h], al                    ; 88 46 f8
     test di, di                               ; 85 ff
-    je short 09c06h                           ; 74 05
+    je short 09c8eh                           ; 74 05
     mov dx, strict word 00008h                ; ba 08 00
-    jmp short 09c08h                          ; eb 02
+    jmp short 09c90h                          ; eb 02
     xor dx, dx                                ; 31 d2
     mov ax, bx                                ; 89 d8
-    call 09b69h                               ; e8 5c ff
+    call 09bf1h                               ; e8 5c ff
     mov dx, 00cfch                            ; ba fc 0c
     in eax, DX                                ; 66 ed
@@ -14959,22 +15033,22 @@
     mov word [bp-00eh], strict word 00000h    ; c7 46 f2 00 00
     test di, di                               ; 85 ff
-    je short 09c37h                           ; 74 0f
+    je short 09cbfh                           ; 74 0f
     mov cx, strict word 00008h                ; b9 08 00
     shr dx, 1                                 ; d1 ea
     rcr ax, 1                                 ; d1 d8
-    loop 09c2bh                               ; e2 fa
+    loop 09cb3h                               ; 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 09c47h                          ; 75 08
+    jne short 09ccfh                          ; 75 08
     mov ax, word [bp-00ah]                    ; 8b 46 f6
     cmp ax, word [bp-012h]                    ; 3b 46 ee
-    je short 09c4dh                           ; 74 06
+    je short 09cd5h                           ; 74 06
     cmp word [bp-00eh], strict byte 00000h    ; 83 7e f2 00
-    je short 09c53h                           ; 74 06
+    je short 09cdbh                           ; 74 06
     dec si                                    ; 4e
     cmp si, strict byte 0ffffh                ; 83 fe ff
-    je short 09c67h                           ; 74 14
+    je short 09cefh                           ; 74 14
     add bx, word [bp-010h]                    ; 03 5e f0
     mov dx, bx                                ; 89 da
@@ -14983,10 +15057,10 @@
     xor ah, ah                                ; 30 e4
     cmp dx, ax                                ; 39 c2
-    jnbe short 09c67h                         ; 77 03
-    jmp near 09ba3h                           ; e9 3c ff
+    jnbe short 09cefh                         ; 77 03
+    jmp near 09c2bh                           ; e9 3c ff
     cmp si, strict byte 0ffffh                ; 83 fe ff
-    jne short 09c70h                          ; 75 04
+    jne short 09cf8h                          ; 75 04
     mov ax, bx                                ; 89 d8
-    jmp short 09c73h                          ; eb 03
+    jmp short 09cfbh                          ; eb 03
     mov ax, strict word 0ffffh                ; b8 ff ff
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -14995,11 +15069,14 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-    db  067h, 09dh
-    ; popfw                                     ; 67 9d
-    sbb byte [di-0626eh], 0a6h                ; 80 9d 92 9d a6
+    out DX, ax                                ; ef
     popfw                                     ; 9d
-    mov ax, 0cb9dh                            ; b8 9d cb
-    popfw                                     ; 9d
-_pci16_function:                             ; 0xf9c86 LB 0x1d2
+    or byte [bp-061e6h], bl                   ; 08 9e 1a 9e
+    db  02eh, 09eh
+    ; cs sahf                                   ; 2e 9e
+    inc ax                                    ; 40
+    sahf                                      ; 9e
+    push bx                                   ; 53
+    sahf                                      ; 9e
+_pci16_function:                             ; 0xf9d0e LB 0x1d2
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15015,18 +15092,18 @@
     xor ah, ah                                ; 30 e4
     cmp bx, strict byte 00003h                ; 83 fb 03
-    jc short 09cb8h                           ; 72 13
-    jbe short 09d0bh                          ; 76 64
+    jc short 09d40h                           ; 72 13
+    jbe short 09d93h                          ; 76 64
     cmp bx, strict byte 0000eh                ; 83 fb 0e
-    je short 09d13h                           ; 74 67
+    je short 09d9bh                           ; 74 67
     cmp bx, strict byte 00008h                ; 83 fb 08
-    jc short 09cc2h                           ; 72 11
+    jc short 09d4ah                           ; 72 11
     cmp bx, strict byte 0000dh                ; 83 fb 0d
-    jbe short 09d16h                          ; 76 60
-    jmp short 09cc2h                          ; eb 0a
+    jbe short 09d9eh                          ; 76 60
+    jmp short 09d4ah                          ; eb 0a
     cmp bx, strict byte 00002h                ; 83 fb 02
-    je short 09ce1h                           ; 74 24
+    je short 09d69h                           ; 74 24
     cmp bx, strict byte 00001h                ; 83 fb 01
-    je short 09cc5h                           ; 74 03
-    jmp near 09e24h                           ; e9 5f 01
+    je short 09d4dh                           ; 74 03
+    jmp near 09each                           ; 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
@@ -15034,52 +15111,52 @@
     mov word [bp+018h], 04350h                ; c7 46 18 50 43
     mov word [bp+01ah], 02049h                ; c7 46 1a 49 20
-    jmp near 09e51h                           ; e9 70 01
+    jmp near 09ed9h                           ; e9 70 01
     cmp word [bp+018h], strict byte 0ffffh    ; 83 7e 18 ff
-    jne short 09cedh                          ; 75 06
+    jne short 09d75h                          ; 75 06
     or ah, 083h                               ; 80 cc 83
-    jmp near 09e4ah                           ; e9 5d 01
+    jmp near 09ed2h                           ; 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 09b8dh                               ; e8 92 fe
+    call 09c15h                               ; e8 92 fe
     cmp ax, strict word 0ffffh                ; 3d ff ff
-    jne short 09d0dh                          ; 75 0d
+    jne short 09d95h                          ; 75 0d
     mov ax, word [bp+020h]                    ; 8b 46 20
     xor ah, ah                                ; 30 e4
     or ah, 086h                               ; 80 cc 86
-    jmp near 09e4ah                           ; e9 3f 01
-    jmp short 09d18h                          ; eb 0b
+    jmp near 09ed2h                           ; e9 3f 01
+    jmp short 09da0h                          ; eb 0b
     mov word [bp+014h], ax                    ; 89 46 14
-    jmp near 09e51h                           ; e9 3e 01
-    jmp near 09ddfh                           ; e9 c9 00
-    jmp short 09d3dh                          ; eb 25
+    jmp near 09ed9h                           ; e9 3e 01
+    jmp near 09e67h                           ; e9 c9 00
+    jmp short 09dc5h                          ; 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 09b8dh                               ; e8 66 fe
+    call 09c15h                               ; e8 66 fe
     cmp ax, strict word 0ffffh                ; 3d ff ff
-    jne short 09d37h                          ; 75 0b
+    jne short 09dbfh                          ; 75 0b
     mov ax, word [bp+020h]                    ; 8b 46 20
     xor ah, ah                                ; 30 e4
     or ah, 086h                               ; 80 cc 86
-    jmp near 09e4ah                           ; e9 13 01
+    jmp near 09ed2h                           ; e9 13 01
     mov word [bp+014h], ax                    ; 89 46 14
-    jmp near 09e51h                           ; e9 14 01
+    jmp near 09ed9h                           ; e9 14 01
     cmp word [bp+004h], 00100h                ; 81 7e 04 00 01
-    jc short 09d4ah                           ; 72 06
+    jc short 09dd2h                           ; 72 06
     or ah, 087h                               ; 80 cc 87
-    jmp near 09e4ah                           ; e9 00 01
+    jmp near 09ed2h                           ; e9 00 01
     mov dx, word [bp+004h]                    ; 8b 56 04
     mov ax, word [bp+014h]                    ; 8b 46 14
-    call 09b69h                               ; e8 16 fe
+    call 09bf1h                               ; 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 09dc8h                         ; 77 68
+    jnbe short 09e50h                         ; 77 68
     add bx, bx                                ; 01 db
-    jmp word [cs:bx-06386h]                   ; 2e ff a7 7a 9c
+    jmp word [cs:bx-062feh]                   ; 2e ff a7 02 9d
     mov bx, word [bp+01ch]                    ; 8b 5e 1c
     xor bl, bl                                ; 30 db
@@ -15092,5 +15169,5 @@
     or bx, ax                                 ; 09 c3
     mov word [bp+01ch], bx                    ; 89 5e 1c
-    jmp short 09dc8h                          ; eb 48
+    jmp short 09e50h                          ; eb 48
     mov dx, word [bp+004h]                    ; 8b 56 04
     xor dh, dh                                ; 30 f6
@@ -15099,5 +15176,5 @@
     in ax, DX                                 ; ed
     mov word [bp+01ch], ax                    ; 89 46 1c
-    jmp short 09dc8h                          ; eb 36
+    jmp short 09e50h                          ; eb 36
     mov dx, 00cfch                            ; ba fc 0c
     in eax, DX                                ; 66 ed
@@ -15108,5 +15185,5 @@
     mov word [bp+01ch], ax                    ; 89 46 1c
     mov word [bp+01eh], dx                    ; 89 56 1e
-    jmp short 09dc8h                          ; eb 22
+    jmp short 09e50h                          ; eb 22
     mov ax, word [bp+01ch]                    ; 8b 46 1c
     mov dx, word [bp+004h]                    ; 8b 56 04
@@ -15115,5 +15192,5 @@
     add dx, 00cfch                            ; 81 c2 fc 0c
     out DX, AL                                ; ee
-    jmp short 09dc8h                          ; eb 10
+    jmp short 09e50h                          ; eb 10
     mov ax, word [bp+01ch]                    ; 8b 46 1c
     mov dx, word [bp+004h]                    ; 8b 56 04
@@ -15122,5 +15199,5 @@
     add dx, 00cfch                            ; 81 c2 fc 0c
     out DX, ax                                ; ef
-    jmp near 09e51h                           ; e9 86 00
+    jmp near 09ed9h                           ; e9 86 00
     mov ax, word [bp+01ch]                    ; 8b 46 1c
     mov cx, word [bp+01eh]                    ; 8b 4e 1e
@@ -15131,5 +15208,5 @@
     ; mov ax, cx                                ; 8b c1
     out DX, eax                               ; 66 ef
-    jmp short 09e51h                          ; eb 72
+    jmp short 09ed9h                          ; eb 72
     mov bx, word [bp+004h]                    ; 8b 5e 04
     mov es, [bp+026h]                         ; 8e 46 26
@@ -15138,5 +15215,5 @@
     mov cx, word [0f380h]                     ; 8b 0e 80 f3
     cmp cx, word [es:bx]                      ; 26 3b 0f
-    jbe short 09e05h                          ; 76 11
+    jbe short 09e8dh                          ; 76 11
     mov ax, word [bp+020h]                    ; 8b 46 20
     xor ah, ah                                ; 30 e4
@@ -15144,5 +15221,5 @@
     mov word [bp+020h], ax                    ; 89 46 20
     or word [bp+02ch], strict byte 00001h     ; 83 4e 2c 01
-    jmp short 09e19h                          ; eb 14
+    jmp short 09ea1h                          ; eb 14
     les di, [es:bx+002h]                      ; 26 c4 7f 02
     mov si, 0f1a0h                            ; be a0 f1
@@ -15156,16 +15233,16 @@
     les bx, [bp-008h]                         ; c4 5e f8
     mov word [es:bx], ax                      ; 26 89 07
-    jmp short 09e51h                          ; eb 2d
-    mov bx, 00da0h                            ; bb a0 0d
+    jmp short 09ed9h                          ; eb 2d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 f4 7a
+    call 01923h                               ; e8 6c 7a
     mov ax, word [bp+014h]                    ; 8b 46 14
     push ax                                   ; 50
     mov ax, word [bp+020h]                    ; 8b 46 20
     push ax                                   ; 50
-    push 00d5ch                               ; 68 5c 0d
+    push 00dbeh                               ; 68 be 0d
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 27 7b
+    call 01966h                               ; e8 9f 7a
     add sp, strict byte 00008h                ; 83 c4 08
     mov ax, word [bp+020h]                    ; 8b 46 20
@@ -15179,5 +15256,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_find_classcode_:                         ; 0xf9e58 LB 0x8
+pci_find_classcode_:                         ; 0xf9ee0 LB 0x8
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15185,5 +15262,26 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_read_config_byte_:                       ; 0xf9e60 LB 0x2e
+pci_find_device_:                            ; 0xf9ee8 LB 0x23
+    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, 0b102h                            ; b8 02 b1
+    int 01ah                                  ; cd 1a
+    cmp ah, 000h                              ; 80 fc 00
+    je short 09f01h                           ; 74 03
+    mov bx, strict word 0ffffh                ; bb ff ff
+    mov ax, bx                                ; 89 d8
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+pci_read_config_byte_:                       ; 0xf9f0b LB 0x2e
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15211,5 +15309,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_read_config_word_:                       ; 0xf9e8e LB 0x2a
+pci_read_config_word_:                       ; 0xf9f39 LB 0x2a
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15235,5 +15333,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_read_config_dword_:                      ; 0xf9eb8 LB 0x4e
+pci_read_config_dword_:                      ; 0xf9f63 LB 0x4e
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15257,5 +15355,5 @@
     int 01ah                                  ; cd 1a
     test cx, cx                               ; 85 c9
-    jne short 09ef7h                          ; 75 14
+    jne short 09fa2h                          ; 75 14
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
@@ -15267,7 +15365,7 @@
     int 01ah                                  ; cd 1a
     test cx, cx                               ; 85 c9
-    je short 09efch                           ; 74 05
+    je short 09fa7h                           ; 74 05
     mov ax, strict word 00001h                ; b8 01 00
-    jmp short 09efeh                          ; eb 02
+    jmp short 09fa9h                          ; eb 02
     xor ax, ax                                ; 31 c0
     cwd                                       ; 99
@@ -15277,5 +15375,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_write_config_word_:                      ; 0xf9f06 LB 0x25
+pci_write_config_word_:                      ; 0xf9fb1 LB 0x25
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15297,5 +15395,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-vds_is_present_:                             ; 0xf9f2b LB 0x1d
+vds_is_present_:                             ; 0xf9fd6 LB 0x1d
     push bx                                   ; 53
     push bp                                   ; 55
@@ -15305,5 +15403,5 @@
     mov es, ax                                ; 8e c0
     test byte [es:bx], 020h                   ; 26 f6 07 20
-    je short 09f43h                           ; 74 06
+    je short 09feeh                           ; 74 06
     mov ax, strict word 00001h                ; b8 01 00
     pop bp                                    ; 5d
@@ -15314,5 +15412,5 @@
     pop bx                                    ; 5b
     retn                                      ; c3
-vds_real_to_lin_:                            ; 0xf9f48 LB 0x1e
+vds_real_to_lin_:                            ; 0xf9ff3 LB 0x1e
     push bx                                   ; 53
     push cx                                   ; 51
@@ -15325,5 +15423,5 @@
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 09f56h                               ; e2 fa
+    loop 0a001h                               ; e2 fa
     xor cx, cx                                ; 31 c9
     add ax, bx                                ; 01 d8
@@ -15333,5 +15431,5 @@
     pop bx                                    ; 5b
     retn                                      ; c3
-vds_build_sg_list_:                          ; 0xf9f66 LB 0x77
+vds_build_sg_list_:                          ; 0xfa011 LB 0x77
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15347,21 +15445,21 @@
     mov bx, word [bp+006h]                    ; 8b 5e 06
     mov word [es:di+002h], bx                 ; 26 89 5d 02
-    call 09f48h                               ; e8 c3 ff
+    call 09ff3h                               ; 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 09f2bh                               ; e8 93 ff
+    call 09fd6h                               ; e8 93 ff
     test ax, ax                               ; 85 c0
-    je short 09fadh                           ; 74 11
+    je short 0a058h                           ; 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 09faah                           ; 72 02
+    jc short 0a055h                           ; 72 02
     db  032h, 0c0h
     ; xor al, al                                ; 32 c0
     cbw                                       ; 98
-    jmp short 09fd4h                          ; eb 27
+    jmp short 0a07fh                          ; eb 27
     mov es, si                                ; 8e c6
     mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00
@@ -15380,5 +15478,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-vds_free_sg_list_:                           ; 0xf9fdd LB 0x33
+vds_free_sg_list_:                           ; 0xfa088 LB 0x38
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15386,7 +15484,7 @@
     push di                                   ; 57
     mov bx, ax                                ; 89 c3
-    call 09f2bh                               ; e8 44 ff
+    call 09fd6h                               ; e8 44 ff
     test ax, ax                               ; 85 c0
-    je short 09ffch                           ; 74 11
+    je short 0a0a7h                           ; 74 11
     mov di, bx                                ; 89 df
     mov es, dx                                ; 8e c2
@@ -15394,5 +15492,5 @@
     mov dx, strict word 00000h                ; ba 00 00
     int 04bh                                  ; cd 4b
-    jc short 09ffbh                           ; 72 02
+    jc short 0a0a6h                           ; 72 02
     db  032h, 0c0h
     ; xor al, al                                ; 32 c0
@@ -15405,6 +15503,6 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-    times 0x5 db 0
-__U4M:                                       ; 0xfa010 LB 0x20
+    times 0xa db 0
+__U4M:                                       ; 0xfa0c0 LB 0x20
     pushfw                                    ; 9c
     push si                                   ; 56
@@ -15433,5 +15531,5 @@
     retn                                      ; c3
     times 0x4 db 0
-__U4D:                                       ; 0xfa030 LB 0x30
+__U4D:                                       ; 0xfa0e0 LB 0x30
     pushfw                                    ; 9c
     push DS                                   ; 1e
@@ -15448,5 +15546,5 @@
     push dx                                   ; 52
     push ax                                   ; 50
-    call 0a115h                               ; e8 d0 00
+    call 0a1c5h                               ; e8 d0 00
     mov cx, word [bp-002h]                    ; 8b 4e fe
     mov bx, word [bp-004h]                    ; 8b 5e fc
@@ -15459,7 +15557,7 @@
     retn                                      ; c3
     times 0xe db 0
-__U8RS:                                      ; 0xfa060 LB 0x10
+__U8RS:                                      ; 0xfa110 LB 0x10
     test si, si                               ; 85 f6
-    je short 0a06fh                           ; 74 0b
+    je short 0a11fh                           ; 74 0b
     shr ax, 1                                 ; d1 e8
     rcr bx, 1                                 ; d1 db
@@ -15467,9 +15565,9 @@
     rcr dx, 1                                 ; d1 da
     dec si                                    ; 4e
-    jne short 0a064h                          ; 75 f5
+    jne short 0a114h                          ; 75 f5
     retn                                      ; c3
-__U8LS:                                      ; 0xfa070 LB 0x10
+__U8LS:                                      ; 0xfa120 LB 0x10
     test si, si                               ; 85 f6
-    je short 0a07fh                           ; 74 0b
+    je short 0a12fh                           ; 74 0b
     sal dx, 1                                 ; d1 e2
     rcl cx, 1                                 ; d1 d1
@@ -15477,7 +15575,7 @@
     rcl ax, 1                                 ; d1 d0
     dec si                                    ; 4e
-    jne short 0a074h                          ; 75 f5
+    jne short 0a124h                          ; 75 f5
     retn                                      ; c3
-_fmemset_:                                   ; 0xfa080 LB 0x10
+_fmemset_:                                   ; 0xfa130 LB 0x10
     push di                                   ; 57
     mov es, dx                                ; 8e c2
@@ -15490,5 +15588,5 @@
     retn                                      ; c3
     times 0x3 db 0
-_fmemcpy_:                                   ; 0xfa090 LB 0x3a
+_fmemcpy_:                                   ; 0xfa140 LB 0x3a
     push bp                                   ; 55
     db  08bh, 0ech
@@ -15512,7 +15610,20 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-    db  000h, 000h, 000h, 000h, 000h, 000h, 0e0h, 0a0h, 0e2h, 0a0h, 0e6h, 0a0h, 0e6h, 0a0h, 0e6h, 0a0h
-    db  0e8h, 0a0h, 0e8h, 0a0h, 0eah, 0a0h, 0eeh, 0a0h, 0eeh, 0a0h, 0f0h, 0a0h, 0f5h, 0a0h, 0f7h, 0a0h
-apm_worker:                                  ; 0xfa0ca LB 0x3a
+    add byte [bx+si], al                      ; 00 00
+    add byte [bx+si], al                      ; 00 00
+    add byte [bx+si], al                      ; 00 00
+    nop                                       ; 90
+    mov ax, word [0a192h]                     ; a1 92 a1
+    xchg si, ax                               ; 96
+    mov ax, word [0a196h]                     ; a1 96 a1
+    xchg si, ax                               ; 96
+    mov ax, word [0a198h]                     ; a1 98 a1
+    cbw                                       ; 98
+    mov ax, word [0a19ah]                     ; a1 9a a1
+    sahf                                      ; 9e
+    mov ax, word [0a19eh]                     ; a1 9e a1
+    mov AL, byte [0a5a1h]                     ; a0 a1 a5
+    mov ax, word [0a1a7h]                     ; a1 a7 a1
+apm_worker:                                  ; 0xfa17a LB 0x3a
     sti                                       ; fb
     push ax                                   ; 50
@@ -15526,21 +15637,21 @@
     pop ax                                    ; 58
     mov AH, strict byte 053h                  ; b4 53
-    jnc short 0a100h                          ; 73 25
-    jmp word [cs:bp-05f50h]                   ; 2e ff a6 b0 a0
-    jmp short 0a0feh                          ; eb 1c
+    jnc short 0a1b0h                          ; 73 25
+    jmp word [cs:bp-05ea0h]                   ; 2e ff a6 60 a1
+    jmp short 0a1aeh                          ; eb 1c
     sti                                       ; fb
     hlt                                       ; f4
-    jmp short 0a0feh                          ; eb 18
-    jmp short 0a0feh                          ; eb 16
-    jmp short 0a100h                          ; eb 16
+    jmp short 0a1aeh                          ; eb 18
+    jmp short 0a1aeh                          ; eb 16
+    jmp short 0a1b0h                          ; eb 16
     mov AH, strict byte 080h                  ; b4 80
-    jmp short 0a102h                          ; eb 14
-    jmp short 0a100h                          ; eb 10
+    jmp short 0a1b2h                          ; eb 14
+    jmp short 0a1b0h                          ; eb 10
     mov ax, 00102h                            ; b8 02 01
-    jmp short 0a0feh                          ; eb 09
-    jmp short 0a0feh                          ; eb 07
+    jmp short 0a1aeh                          ; eb 09
+    jmp short 0a1aeh                          ; eb 07
     mov BL, strict byte 000h                  ; b3 00
     mov cx, strict word 00000h                ; b9 00 00
-    jmp short 0a0feh                          ; eb 00
+    jmp short 0a1aeh                          ; eb 00
     clc                                       ; f8
     retn                                      ; c3
@@ -15548,5 +15659,5 @@
     stc                                       ; f9
     retn                                      ; c3
-apm_pm16_entry:                              ; 0xfa104 LB 0x11
+apm_pm16_entry:                              ; 0xfa1b4 LB 0x11
     mov AH, strict byte 002h                  ; b4 02
     push DS                                   ; 1e
@@ -15556,9 +15667,9 @@
     add bp, strict byte 00008h                ; 83 c5 08
     mov ds, bp                                ; 8e dd
-    call 0a0cah                               ; e8 b8 ff
+    call 0a17ah                               ; e8 b8 ff
     pop bp                                    ; 5d
     pop DS                                    ; 1f
     retf                                      ; cb
-_DoUInt32Div:                                ; 0xfa115 LB 0x26b
+_DoUInt32Div:                                ; 0xfa1c5 LB 0x26b
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15578,10 +15689,10 @@
     mov [bp-006h], ds                         ; 8c 5e fa
     cmp word [bx+002h], strict byte 00000h    ; 83 7f 02 00
-    jne short 0a165h                          ; 75 22
+    jne short 0a215h                          ; 75 22
     mov ax, word [bx]                         ; 8b 07
     test ax, ax                               ; 85 c0
-    je short 0a162h                           ; 74 19
+    je short 0a212h                           ; 74 19
     cmp ax, strict word 00001h                ; 3d 01 00
-    jne short 0a165h                          ; 75 17
+    jne short 0a215h                          ; 75 17
     xor ax, ax                                ; 31 c0
     mov word [bp+00ah], ax                    ; 89 46 0a
@@ -15591,35 +15702,35 @@
     mov ax, word [bp-01ah]                    ; 8b 46 e6
     mov word [bp+006h], ax                    ; 89 46 06
-    jmp near 0a36dh                           ; e9 08 02
+    jmp near 0a41dh                           ; e9 08 02
     lds bx, [bp-00ch]                         ; c5 5e f4
     mov ax, word [bx+002h]                    ; 8b 47 02
     mov ds, [bp-006h]                         ; 8e 5e fa
     cmp ax, word [si+002h]                    ; 3b 44 02
-    je short 0a18bh                           ; 74 18
+    je short 0a23bh                           ; 74 18
     mov ds, [bp-00ah]                         ; 8e 5e f6
     mov ax, word [bx+002h]                    ; 8b 47 02
     mov ds, [bp-006h]                         ; 8e 5e fa
     cmp ax, word [si+002h]                    ; 3b 44 02
-    jbe short 0a186h                          ; 76 05
+    jbe short 0a236h                          ; 76 05
     mov ax, strict word 00001h                ; b8 01 00
-    jmp short 0a1ach                          ; eb 26
+    jmp short 0a25ch                          ; eb 26
     mov ax, strict word 0ffffh                ; b8 ff ff
-    jmp short 0a1ach                          ; eb 21
+    jmp short 0a25ch                          ; eb 21
     mov ds, [bp-00ah]                         ; 8e 5e f6
     mov ax, word [bx]                         ; 8b 07
     mov ds, [bp-006h]                         ; 8e 5e fa
     cmp ax, word [si]                         ; 3b 04
-    je short 0a1aah                           ; 74 13
+    je short 0a25ah                           ; 74 13
     mov ds, [bp-00ah]                         ; 8e 5e f6
     mov ax, word [bx]                         ; 8b 07
     mov ds, [bp-006h]                         ; 8e 5e fa
     cmp ax, word [si]                         ; 3b 04
-    jbe short 0a1a5h                          ; 76 02
-    jmp short 0a181h                          ; eb dc
+    jbe short 0a255h                          ; 76 02
+    jmp short 0a231h                          ; eb dc
     mov ax, strict word 0ffffh                ; b8 ff ff
-    jmp short 0a1ach                          ; eb 02
+    jmp short 0a25ch                          ; eb 02
     xor ax, ax                                ; 31 c0
     test ax, ax                               ; 85 c0
-    jnl short 0a1ceh                          ; 7d 1e
+    jnl short 0a27eh                          ; 7d 1e
     lds bx, [bp-00ch]                         ; c5 5e f4
     mov ax, word [bx]                         ; 8b 07
@@ -15631,6 +15742,6 @@
     mov word [bx+002h], strict word 00000h    ; c7 47 02 00 00
     mov word [bx], strict word 00000h         ; c7 07 00 00
-    jmp short 0a162h                          ; eb 94
-    jne short 0a1e5h                          ; 75 15
+    jmp short 0a212h                          ; eb 94
+    jne short 0a295h                          ; 75 15
     mov ds, [bp-008h]                         ; 8e 5e f8
     mov word [di+002h], ax                    ; 89 45 02
@@ -15639,20 +15750,20 @@
     mov word [bx], strict word 00001h         ; c7 07 01 00
     mov word [bx+002h], ax                    ; 89 47 02
-    jmp near 0a36dh                           ; e9 88 01
+    jmp near 0a41dh                           ; e9 88 01
     lds bx, [bp-00ch]                         ; c5 5e f4
     mov ax, word [bx+002h]                    ; 8b 47 02
     test ax, ax                               ; 85 c0
-    je short 0a200h                           ; 74 11
+    je short 0a2b0h                           ; 74 11
     push ax                                   ; 50
     mov ax, 0f000h                            ; b8 00 f0
     mov ds, ax                                ; 8e d8
-    call 0a380h                               ; e8 88 01
+    call 0a430h                               ; e8 88 01
     add sp, strict byte 00002h                ; 83 c4 02
     add ax, strict word 00010h                ; 05 10 00
-    jmp short 0a20dh                          ; eb 0d
+    jmp short 0a2bdh                          ; eb 0d
     push word [bx]                            ; ff 37
     mov ax, 0f000h                            ; b8 00 f0
     mov ds, ax                                ; 8e d8
-    call 0a380h                               ; e8 76 01
+    call 0a430h                               ; e8 76 01
     add sp, strict byte 00002h                ; 83 c4 02
     mov word [bp-014h], ax                    ; 89 46 ec
@@ -15660,16 +15771,16 @@
     mov ax, word [si+002h]                    ; 8b 44 02
     test ax, ax                               ; 85 c0
-    je short 0a22bh                           ; 74 11
+    je short 0a2dbh                           ; 74 11
     push ax                                   ; 50
     mov ax, 0f000h                            ; b8 00 f0
     mov ds, ax                                ; 8e d8
-    call 0a380h                               ; e8 5d 01
+    call 0a430h                               ; e8 5d 01
     add sp, strict byte 00002h                ; 83 c4 02
     add ax, strict word 00010h                ; 05 10 00
-    jmp short 0a238h                          ; eb 0d
+    jmp short 0a2e8h                          ; eb 0d
     push word [si]                            ; ff 34
     mov ax, 0f000h                            ; b8 00 f0
     mov ds, ax                                ; 8e d8
-    call 0a380h                               ; e8 4b 01
+    call 0a430h                               ; e8 4b 01
     add sp, strict byte 00002h                ; 83 c4 02
     mov dx, word [bp-014h]                    ; 8b 56 ec
@@ -15682,5 +15793,5 @@
     mov word [bp-016h], ax                    ; 89 46 ea
     test dx, dx                               ; 85 d2
-    je short 0a2a8h                           ; 74 56
+    je short 0a358h                           ; 74 56
     mov cx, dx                                ; 89 d1
     xor ch, dh                                ; 30 f5
@@ -15688,8 +15799,8 @@
     mov ax, word [si]                         ; 8b 04
     mov dx, word [si+002h]                    ; 8b 54 02
-    jcxz 0a266h                               ; e3 06
+    jcxz 0a316h                               ; e3 06
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 0a260h                               ; e2 fa
+    loop 0a310h                               ; e2 fa
     mov word [bp-018h], ax                    ; 89 46 e8
     mov word [bp-016h], dx                    ; 89 56 ea
@@ -15697,25 +15808,25 @@
     lds bx, [bp-00ch]                         ; c5 5e f4
     cmp ax, word [bx+002h]                    ; 3b 47 02
-    jnbe short 0a286h                         ; 77 0f
+    jnbe short 0a336h                         ; 77 0f
     mov ax, word [bp-016h]                    ; 8b 46 ea
     cmp ax, word [bx+002h]                    ; 3b 47 02
-    jne short 0a28ah                          ; 75 0b
+    jne short 0a33ah                          ; 75 0b
     mov ax, word [bp-018h]                    ; 8b 46 e8
     cmp ax, word [bx]                         ; 3b 07
-    jbe short 0a28ah                          ; 76 04
+    jbe short 0a33ah                          ; 76 04
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 0a28ch                          ; eb 02
+    jmp short 0a33ch                          ; eb 02
     xor al, al                                ; 30 c0
     test al, al                               ; 84 c0
-    je short 0a2b3h                           ; 74 23
+    je short 0a363h                           ; 74 23
     shr word [bp-016h], 1                     ; d1 6e ea
     rcr word [bp-018h], 1                     ; d1 5e e8
     dec word [bp-012h]                        ; ff 4e ee
-    jmp short 0a2b3h                          ; eb 18
+    jmp short 0a363h                          ; eb 18
     mov cx, strict word 0001fh                ; b9 1f 00
     sal word [bp-018h], 1                     ; d1 66 e8
     rcl word [bp-016h], 1                     ; d1 56 ea
-    loop 0a29eh                               ; e2 f8
-    jmp short 0a296h                          ; eb ee
+    loop 0a34eh                               ; e2 f8
+    jmp short 0a346h                          ; eb ee
     mov ax, word [si]                         ; 8b 04
     mov word [bp-018h], ax                    ; 89 46 e8
@@ -15734,27 +15845,27 @@
     mov ds, [bp-006h]                         ; 8e 5e fa
     cmp ax, word [si+002h]                    ; 3b 44 02
-    jnbe short 0a2dfh                         ; 77 06
-    jne short 0a2e3h                          ; 75 08
+    jnbe short 0a38fh                         ; 77 06
+    jne short 0a393h                          ; 75 08
     cmp dx, word [si]                         ; 3b 14
-    jc short 0a2e3h                           ; 72 04
+    jc short 0a393h                           ; 72 04
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 0a2e5h                          ; eb 02
+    jmp short 0a395h                          ; eb 02
     xor al, al                                ; 30 c0
     test al, al                               ; 84 c0
-    je short 0a34ah                           ; 74 61
+    je short 0a3fah                           ; 74 61
     mov ds, [bp-008h]                         ; 8e 5e f8
     mov ax, word [di+002h]                    ; 8b 45 02
     cmp ax, word [bp-016h]                    ; 3b 46 ea
-    jnbe short 0a300h                         ; 77 0c
+    jnbe short 0a3b0h                         ; 77 0c
     cmp ax, word [bp-016h]                    ; 3b 46 ea
-    jne short 0a304h                          ; 75 0b
+    jne short 0a3b4h                          ; 75 0b
     mov ax, word [di]                         ; 8b 05
     cmp ax, word [bp-018h]                    ; 3b 46 e8
-    jc short 0a304h                           ; 72 04
+    jc short 0a3b4h                           ; 72 04
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 0a306h                          ; eb 02
+    jmp short 0a3b6h                          ; eb 02
     xor al, al                                ; 30 c0
     test al, al                               ; 84 c0
-    je short 0a330h                           ; 74 26
+    je short 0a3e0h                           ; 74 26
     mov ax, word [bp-018h]                    ; 8b 46 e8
     mov ds, [bp-008h]                         ; 8e 5e f8
@@ -15765,8 +15876,8 @@
     xor dx, dx                                ; 31 d2
     mov cx, word [bp-012h]                    ; 8b 4e ee
-    jcxz 0a328h                               ; e3 06
+    jcxz 0a3d8h                               ; e3 06
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 0a322h                               ; e2 fa
+    loop 0a3d2h                               ; e2 fa
     lds bx, [bp-010h]                         ; c5 5e f0
     or word [bx], ax                          ; 09 07
@@ -15777,24 +15888,24 @@
     mov ds, [bp-006h]                         ; 8e 5e fa
     cmp ax, word [si+002h]                    ; 3b 44 02
-    jc short 0a346h                           ; 72 06
-    jne short 0a34ch                          ; 75 0a
+    jc short 0a3f6h                           ; 72 06
+    jne short 0a3fch                          ; 75 0a
     cmp dx, word [si]                         ; 3b 14
-    jnc short 0a34ch                          ; 73 06
+    jnc short 0a3fch                          ; 73 06
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 0a34eh                          ; eb 04
-    jmp short 0a36dh                          ; eb 21
+    jmp short 0a3feh                          ; eb 04
+    jmp short 0a41dh                          ; eb 21
     xor al, al                                ; 30 c0
     test al, al                               ; 84 c0
-    je short 0a361h                           ; 74 0f
-    jmp short 0a36dh                          ; eb 19
+    je short 0a411h                           ; 74 0f
+    jmp short 0a41dh                          ; eb 19
     mov cx, strict word 0001fh                ; b9 1f 00
     sal word [bp-018h], 1                     ; d1 66 e8
     rcl word [bp-016h], 1                     ; d1 56 ea
-    loop 0a357h                               ; e2 f8
-    jmp short 0a367h                          ; eb 06
+    loop 0a407h                               ; e2 f8
+    jmp short 0a417h                          ; eb 06
     shr word [bp-016h], 1                     ; d1 6e ea
     rcr word [bp-018h], 1                     ; d1 5e e8
     dec word [bp-012h]                        ; ff 4e ee
-    jmp near 0a2e9h                           ; e9 7c ff
+    jmp near 0a399h                           ; e9 7c ff
     mov ax, word [bp-01ch]                    ; 8b 46 e4
     mov dx, word [bp-01ah]                    ; 8b 56 e6
@@ -15805,5 +15916,5 @@
     retn                                      ; c3
     times 0x6 db 0
-_ASMBitLastSetU16:                           ; 0xfa380 LB 0x18
+_ASMBitLastSetU16:                           ; 0xfa430 LB 0x18
     push bp                                   ; 55
     db  08bh, 0ech
@@ -15811,10 +15922,10 @@
     mov cx, word [bp+004h]                    ; 8b 4e 04
     test cx, cx                               ; 85 c9
-    je short 0a394h                           ; 74 0a
+    je short 0a444h                           ; 74 0a
     mov ax, strict word 00010h                ; b8 10 00
     sal cx, 1                                 ; d1 e1
-    jc short 0a396h                           ; 72 05
+    jc short 0a446h                           ; 72 05
     dec ax                                    ; 48
-    jmp short 0a38dh                          ; eb f9
+    jmp short 0a43dh                          ; eb f9
     db  033h, 0c0h
     ; xor ax, ax                                ; 33 c0
@@ -15822,6 +15933,6 @@
     retn                                      ; c3
 
-  ; Padding 0x3668 bytes at 0xfa398
-  times 13928 db 0
+  ; Padding 0x35b8 bytes at 0xfa448
+  times 13752 db 0
 
 section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO
@@ -15870,5 +15981,5 @@
     add bp, strict byte 00008h                ; 83 c5 08
     push ebp                                  ; 66 55
-    mov bp, 0a106h                            ; bd 06 a1
+    mov bp, 0a1b6h                            ; bd b6 a1
     add byte [bx+si], al                      ; 00 00
     push ebp                                  ; 66 55
@@ -16596,6 +16707,6 @@
     call 01c9fh                               ; e8 63 39
     call 02118h                               ; e8 d9 3d
-    call 09903h                               ; e8 c1 b5
-    call 0878eh                               ; e8 49 a4
+    call 0998bh                               ; e8 49 b6
+    call 087fbh                               ; e8 b6 a4
     call 0ed2fh                               ; e8 e7 09
     call 0e2d2h                               ; e8 87 ff
@@ -17430,5 +17541,5 @@
     popfw                                     ; 9d
     jmp short 0f8a5h                          ; eb 11
-    call 09a76h                               ; e8 df a1
+    call 09afeh                               ; e8 67 a2
     jmp short 0f88eh                          ; eb f5
 int15_handler_mouse:                         ; 0xff899 LB 0x5
@@ -17696,3 +17807,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, 013h
+    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 00fh
Index: trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.md5sum
===================================================================
--- trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.md5sum	(revision 67805)
+++ trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.md5sum	(revision 67807)
@@ -1,1 +1,1 @@
-d3d502baf2c64ff733ee5125cf3b3e97 *VBoxPcBios286.rom
+0aa9c82df689a029ef3c0dd6eb7cfba6 *VBoxPcBios286.rom
Index: trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.asm
===================================================================
--- trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.asm	(revision 67805)
+++ trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.asm	(revision 67807)
@@ -951,13 +951,13 @@
     db  001h, 000h, 002h, 002h, 003h, 003h, 004h, 004h, 005h, 005h, 00eh, 006h, 00fh, 006h, 000h
 _pktacc:                                     ; 0xf006a LB 0xc
-    db  000h, 000h, 000h, 000h, 000h, 000h, 05dh, 02ch, 01ah, 082h, 041h, 091h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 05dh, 02ch, 01ah, 082h, 0c8h, 091h
 _softrst:                                    ; 0xf0076 LB 0xc
     db  000h, 000h, 000h, 000h, 000h, 000h, 045h, 02fh, 0b6h, 03ch, 0b6h, 03ch
 _dskacc:                                     ; 0xf0082 LB 0x2e
     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 04dh, 02bh, 002h, 02ch, 000h, 000h, 000h, 000h
-    db  064h, 080h, 03fh, 081h, 017h, 090h, 0bdh, 090h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
+    db  064h, 080h, 03fh, 081h, 09eh, 090h, 044h, 091h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
     db  032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h
 
-section CONST progbits vstart=0xb0 align=1 ; size=0xcf0 class=DATA group=DGROUP
+section CONST progbits vstart=0xb0 align=1 ; size=0xd52 class=DATA group=DGROUP
     db   'CPUID EDX: 0x%lx', 00ah, 000h
     db   'NMI Handler called', 00ah, 000h
@@ -1065,5 +1065,8 @@
     db   'Disk %d has an unsupported sector size of %u', 00ah, 000h
     db   'SCSI %d-ID#%d: LCHS=%lu/%u/%u 0x%llx sectors', 00ah, 000h
-    db   'SCSI %d-ID#%d: CD/DVD-ROM', 00ah, 000h, 000h
+    db   'SCSI %d-ID#%d: CD/DVD-ROM', 00ah, 000h
+    db   'scsi_pci_init', 000h
+    db   '%s: Adapter %x:%x not found, how come?!', 00ah, 000h
+    db   '%s: Adapter %x:%x found at %x, enabling BM', 00ah, 000h
     db   'ahci_read_sectors', 000h
     db   '%s: device_id out of range %d', 00ah, 000h
@@ -1078,18 +1081,18 @@
     db   'PCI: Unsupported function AX=%04X BX=%04X called', 00ah, 000h
 
-section CONST2 progbits vstart=0xda0 align=1 ; size=0x3fa class=DATA group=DGROUP
-_bios_cvs_version_string:                    ; 0xf0da0 LB 0x12
+section CONST2 progbits vstart=0xe02 align=1 ; size=0x3fa class=DATA group=DGROUP
+_bios_cvs_version_string:                    ; 0xf0e02 LB 0x12
     db  'VirtualBox 5.1.51', 000h
-_bios_prefix_string:                         ; 0xf0db2 LB 0x8
+_bios_prefix_string:                         ; 0xf0e14 LB 0x8
     db  'BIOS: ', 000h, 000h
-_isotag:                                     ; 0xf0dba LB 0x6
+_isotag:                                     ; 0xf0e1c LB 0x6
     db  'CD001', 000h
-_eltorito:                                   ; 0xf0dc0 LB 0x18
+_eltorito:                                   ; 0xf0e22 LB 0x18
     db  'EL TORITO SPECIFICATION', 000h
-_drivetypes:                                 ; 0xf0dd8 LB 0x28
+_drivetypes:                                 ; 0xf0e3a LB 0x28
     db  046h, 06ch, 06fh, 070h, 070h, 079h, 000h, 000h, 000h, 000h, 048h, 061h, 072h, 064h, 020h, 044h
     db  069h, 073h, 06bh, 000h, 043h, 044h, 02dh, 052h, 04fh, 04dh, 000h, 000h, 000h, 000h, 04ch, 041h
     db  04eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-_scan_to_scanascii:                          ; 0xf0e00 LB 0x37a
+_scan_to_scanascii:                          ; 0xf0e62 LB 0x37a
     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 01bh, 001h, 01bh, 001h, 01bh, 001h
     db  000h, 001h, 000h, 000h, 031h, 002h, 021h, 002h, 000h, 000h, 000h, 078h, 000h, 000h, 032h, 003h
@@ -1148,11 +1151,11 @@
     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h, 000h, 087h, 000h, 089h, 000h, 08bh, 000h, 000h
     db  000h, 086h, 000h, 088h, 000h, 08ah, 000h, 08ch, 000h, 000h
-_panic_msg_keyb_buffer_full:                 ; 0xf117a LB 0x20
+_panic_msg_keyb_buffer_full:                 ; 0xf11dc LB 0x20
     db  '%s: keyboard input buffer full', 00ah, 000h
 
-  ; Padding 0x466 bytes at 0xf119a
-  times 1126 db 0
+  ; Padding 0x404 bytes at 0xf11fc
+  times 1028 db 0
 
-section _TEXT progbits vstart=0x1600 align=1 ; size=0x8b25 class=CODE group=AUTO
+section _TEXT progbits vstart=0x1600 align=1 ; size=0x8bd5 class=CODE group=AUTO
 rom_scan_:                                   ; 0xf1600 LB 0x50
     push bp                                   ; 55
@@ -1501,9 +1504,9 @@
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
-    mov bx, 00db2h                            ; bb b2 0d
+    mov bx, 00e14h                            ; bb 14 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
     call 01a2ah                               ; e8 ac 01
-    push 00da0h                               ; 68 a0 0d
+    push 00e02h                               ; 68 02 0e
     push 000ebh                               ; 68 eb 00
     push strict byte 00004h                   ; 6a 04
@@ -1676,5 +1679,5 @@
     mov bx, strict word 0000ah                ; bb 0a 00
     xor cx, cx                                ; 31 c9
-    call 0a030h                               ; e8 5e 86
+    call 0a0e0h                               ; e8 0e 87
     mov word [bp-008h], ax                    ; 89 46 f8
     mov cx, dx                                ; 89 d1
@@ -1902,5 +1905,5 @@
     mov dx, word [bp-026h]                    ; 8b 56 da
     mov si, word [bp-01eh]                    ; 8b 76 e2
-    call 0a070h                               ; e8 6c 84
+    call 0a120h                               ; e8 1c 85
     mov ax, dx                                ; 89 d0
     xor ah, dh                                ; 30 f4
@@ -2344,5 +2347,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00018h                ; be 18 00
-    call 0a070h                               ; e8 10 80
+    call 0a120h                               ; e8 c0 80
     xor dh, dh                                ; 30 f6
     mov word [bp-016h], dx                    ; 89 56 ea
@@ -2354,5 +2357,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00020h                ; be 20 00
-    call 0a070h                               ; e8 f0 7f
+    call 0a120h                               ; e8 a0 80
     mov bx, dx                                ; 89 d3
     mov ax, word [bp-01eh]                    ; 8b 46 e2
@@ -2385,5 +2388,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00008h                ; be 08 00
-    call 0a070h                               ; e8 9f 7f
+    call 0a120h                               ; e8 4f 80
     mov word [bp-014h], dx                    ; 89 56 ec
     mov bx, word [bp-018h]                    ; 8b 5e e8
@@ -2394,5 +2397,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00018h                ; be 18 00
-    call 0a070h                               ; e8 81 7f
+    call 0a120h                               ; e8 31 80
     and dx, strict byte 0000fh                ; 83 e2 0f
     or dl, 040h                               ; 80 ca 40
@@ -2788,5 +2791,5 @@
     lea ax, [bp-03ah]                         ; 8d 46 c6
     call 05ad0h                               ; e8 ff 35
-    mov bx, 00db2h                            ; bb b2 0d
+    mov bx, 00e14h                            ; bb 14 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -2950,5 +2953,5 @@
     mov dx, word [es:si+036h]                 ; 26 8b 54 36
     mov si, strict word 0000bh                ; be 0b 00
-    call 0a070h                               ; e8 b9 79
+    call 0a120h                               ; e8 69 7a
     mov word [bp-030h], dx                    ; 89 56 d0
     mov word [bp-02eh], cx                    ; 89 4e d2
@@ -3221,5 +3224,5 @@
     mov dx, word [bp-01eh]                    ; 8b 56 e2
     mov si, strict word 00018h                ; be 18 00
-    call 0a070h                               ; e8 e3 76
+    call 0a120h                               ; e8 93 77
     xor dh, dh                                ; 30 f6
     mov word [bp-01ch], dx                    ; 89 56 e4
@@ -3229,5 +3232,5 @@
     mov dx, word [bp-01eh]                    ; 8b 56 e2
     mov si, strict word 00020h                ; be 20 00
-    call 0a070h                               ; e8 cc 76
+    call 0a120h                               ; e8 7c 77
     mov bx, dx                                ; 89 d3
     mov ax, word [bp-01ah]                    ; 8b 46 e6
@@ -3263,5 +3266,5 @@
     mov dx, word [bp-01eh]                    ; 8b 56 e2
     mov si, strict word 00008h                ; be 08 00
-    call 0a070h                               ; e8 78 76
+    call 0a120h                               ; e8 28 77
     mov word [bp-010h], ax                    ; 89 46 f0
     mov word [bp-014h], bx                    ; 89 5e ec
@@ -3270,5 +3273,5 @@
     mov word [bp-026h], dx                    ; 89 56 da
     mov si, strict word 00010h                ; be 10 00
-    call 0a070h                               ; e8 63 76
+    call 0a120h                               ; e8 13 77
     mov word [bp-01eh], dx                    ; 89 56 e2
     mov ax, dx                                ; 89 d0
@@ -3539,5 +3542,5 @@
     cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
     jne short 02cafh                          ; 75 1f
-    mov bx, 00db2h                            ; bb b2 0d
+    mov bx, 00e14h                            ; bb 14 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -4410,5 +4413,5 @@
     cmp bh, 048h                              ; 80 ff 48
     jbe short 03443h                          ; 76 33
-    mov bx, 00db2h                            ; bb b2 0d
+    mov bx, 00e14h                            ; bb 14 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -5252,5 +5255,5 @@
     mov byte [es:bx], 000h                    ; 26 c6 07 00
     jmp near 03612h                           ; e9 ae f9
-    mov bx, 00db2h                            ; bb b2 0d
+    mov bx, 00e14h                            ; bb 14 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -5349,5 +5352,5 @@
     cmp ax, strict word 0004ah                ; 3d 4a 00
     jne near 03e4eh                           ; 0f 85 1e 01
-    mov bx, 00db2h                            ; bb b2 0d
+    mov bx, 00e14h                            ; bb 14 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -5447,5 +5450,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-    mov bx, 00db2h                            ; bb b2 0d
+    mov bx, 00e14h                            ; bb 14 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -5528,5 +5531,5 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-026h]                         ; 8d 46 da
-    call 0a090h                               ; e8 78 61
+    call 0a140h                               ; e8 28 62
     mov word [bp-026h], strict word 00028h    ; c7 46 da 28 00
     mov ax, strict word 00011h                ; b8 11 00
@@ -5582,5 +5585,5 @@
     jnc short 03fb7h                          ; 73 10
     mov al, byte [bp+di-00825h]               ; 8a 83 db f7
-    cmp al, byte [di+00dbah]                  ; 3a 85 ba 0d
+    cmp al, byte [di+00e1ch]                  ; 3a 85 1c 0e
     je short 03fa1h                           ; 74 f0
     mov ax, strict word 00005h                ; b8 05 00
@@ -5592,5 +5595,5 @@
     jnc short 03fd1h                          ; 73 10
     mov al, byte [bp+di-0081fh]               ; 8a 83 e1 f7
-    cmp al, byte [di+00dc0h]                  ; 3a 85 c0 0d
+    cmp al, byte [di+00e22h]                  ; 3a 85 22 0e
     je short 03fbbh                           ; 74 f0
     mov ax, strict word 00006h                ; b8 06 00
@@ -5871,5 +5874,5 @@
     cmp dx, ax                                ; 39 c2
     je short 04355h                           ; 74 29
-    mov bx, 00db2h                            ; bb b2 0d
+    mov bx, 00e14h                            ; bb 14 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -5988,5 +5991,5 @@
     xor dl, dl                                ; 30 d2
     xor cx, cx                                ; 31 c9
-    call 09ff0h                               ; e8 76 5b
+    call 0a0a0h                               ; e8 26 5c
     xor bx, bx                                ; 31 db
     add ax, si                                ; 01 f0
@@ -5994,5 +5997,5 @@
     mov bx, di                                ; 89 fb
     xor cx, cx                                ; 31 c9
-    call 09ff0h                               ; e8 69 5b
+    call 0a0a0h                               ; e8 19 5c
     mov bx, ax                                ; 89 c3
     mov ax, word [bp-010h]                    ; 8b 46 f0
@@ -6029,5 +6032,5 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-02eh]                         ; 8d 46 d2
-    call 0a090h                               ; e8 b2 5b
+    call 0a140h                               ; e8 62 5c
     mov word [bp-02eh], strict word 00028h    ; c7 46 d2 28 00
     mov ax, word [bp-014h]                    ; 8b 46 ec
@@ -6093,5 +6096,5 @@
     test al, al                               ; 84 c0
     je near 043a1h                            ; 0f 84 13 fe
-    mov bx, 00db2h                            ; bb b2 0d
+    mov bx, 00e14h                            ; bb 14 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -6174,5 +6177,5 @@
     mov word [bp+016h], bx                    ; 89 5e 16
     jmp near 043a5h                           ; e9 37 fd
-    mov bx, 00db2h                            ; bb b2 0d
+    mov bx, 00e14h                            ; bb 14 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -6336,5 +6339,5 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-02ch]                         ; 8d 46 d4
-    call 0a090h                               ; e8 17 58
+    call 0a140h                               ; e8 c7 58
     mov word [bp-02ch], strict word 00028h    ; c7 46 d4 28 00
     mov ax, word [bp-018h]                    ; 8b 46 e8
@@ -6385,5 +6388,5 @@
     test dl, dl                               ; 84 d2
     je near 049cbh                            ; 0f 84 cb 00
-    mov bx, 00db2h                            ; bb b2 0d
+    mov bx, 00e14h                            ; bb 14 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -6669,5 +6672,5 @@
     or byte [bp+01eh], 001h                   ; 80 4e 1e 01
     jmp near 049deh                           ; e9 8f fd
-    mov bx, 00db2h                            ; bb b2 0d
+    mov bx, 00e14h                            ; bb 14 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -6699,10 +6702,10 @@
     je short 04cb1h                           ; 74 21
     mov dx, strict word 00001h                ; ba 01 00
-    mov bx, 00db2h                            ; bb b2 0d
+    mov bx, 00e14h                            ; bb 14 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
     call 01a2ah                               ; e8 8c cd
     imul dx, dx, strict byte 0000ah           ; 6b d2 0a
-    add dx, 00dd8h                            ; 81 c2 d8 0d
+    add dx, 00e3ah                            ; 81 c2 3a 0e
     push dx                                   ; 52
     push 004a6h                               ; 68 a6 04
@@ -6724,9 +6727,9 @@
     test al, al                               ; 84 c0
     je short 04ce4h                           ; 74 1b
-    mov bx, 00db2h                            ; bb b2 0d
+    mov bx, 00e14h                            ; bb 14 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
     call 01a2ah                               ; e8 56 cd
-    push 00dech                               ; 68 ec 0d
+    push 00e4eh                               ; 68 4e 0e
     push 004bah                               ; 68 ba 04
     push strict byte 00004h                   ; 6a 04
@@ -6736,25 +6739,25 @@
     test dl, dl                               ; 84 d2
     je short 04cf8h                           ; 74 10
-    mov bx, 00db2h                            ; bb b2 0d
+    mov bx, 00e14h                            ; bb 14 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
     call 01a2ah                               ; e8 37 cd
-    push 00df6h                               ; 68 f6 0d
+    push 00e58h                               ; 68 58 0e
     jmp short 04cd7h                          ; eb df
     test bl, 080h                             ; f6 c3 80
     je short 04d0eh                           ; 74 11
-    mov bx, 00db2h                            ; bb b2 0d
+    mov bx, 00e14h                            ; bb 14 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
     call 01a2ah                               ; e8 22 cd
     push si                                   ; 56
-    push 00de2h                               ; 68 e2 0d
+    push 00e44h                               ; 68 44 0e
     jmp short 04d1dh                          ; eb 0f
-    mov bx, 00db2h                            ; bb b2 0d
+    mov bx, 00e14h                            ; bb 14 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
     call 01a2ah                               ; e8 11 cd
     push si                                   ; 56
-    push 00dd8h                               ; 68 d8 0d
+    push 00e3ah                               ; 68 3a 0e
     push 004cfh                               ; 68 cf 04
     push strict byte 00004h                   ; 6a 04
@@ -6782,5 +6785,5 @@
     push dx                                   ; 52
     mov dx, ax                                ; 89 c2
-    mov bx, 00db2h                            ; bb b2 0d
+    mov bx, 00e14h                            ; bb 14 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -6857,5 +6860,5 @@
     mov byte [bp-00ah], al                    ; 88 46 f6
     mov byte [bp-00ch], al                    ; 88 46 f4
-    mov bx, 00db2h                            ; bb b2 0d
+    mov bx, 00e14h                            ; bb 14 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -7396,5 +7399,5 @@
     test al, al                               ; 84 c0
     jne short 05307h                          ; 75 19
-    mov bx, 00db2h                            ; bb b2 0d
+    mov bx, 00e14h                            ; bb 14 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -7713,5 +7716,5 @@
     cmp byte [bp-00ch], 058h                  ; 80 7e f4 58
     jbe short 0567bh                          ; 76 1e
-    mov bx, 00db2h                            ; bb b2 0d
+    mov bx, 00e14h                            ; bb 14 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -7729,6 +7732,6 @@
     movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
     imul bx, bx, strict byte 0000ah           ; 6b db 0a
-    mov dl, byte [bx+00e06h]                  ; 8a 97 06 0e
-    mov ax, word [bx+00e06h]                  ; 8b 87 06 0e
+    mov dl, byte [bx+00e68h]                  ; 8a 97 68 0e
+    mov ax, word [bx+00e68h]                  ; 8b 87 68 0e
     jmp near 05722h                           ; e9 8e 00
     test AL, strict byte 004h                 ; a8 04
@@ -7736,6 +7739,6 @@
     movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
     imul bx, bx, strict byte 0000ah           ; 6b db 0a
-    mov dl, byte [bx+00e04h]                  ; 8a 97 04 0e
-    mov ax, word [bx+00e04h]                  ; 8b 87 04 0e
+    mov dl, byte [bx+00e66h]                  ; 8a 97 66 0e
+    mov ax, word [bx+00e66h]                  ; 8b 87 66 0e
     jmp near 05722h                           ; e9 78 00
     mov al, byte [bp-004h]                    ; 8a 46 fc
@@ -7756,13 +7759,13 @@
     movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
     imul bx, bx, strict byte 0000ah           ; 6b db 0a
-    movzx ax, byte [bx+00e08h]                ; 0f b6 87 08 0e
+    movzx ax, byte [bx+00e6ah]                ; 0f b6 87 6a 0e
     movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
     test dx, ax                               ; 85 c2
     je short 056ech                           ; 74 0a
-    mov dl, byte [bx+00e00h]                  ; 8a 97 00 0e
-    mov ax, word [bx+00e00h]                  ; 8b 87 00 0e
+    mov dl, byte [bx+00e62h]                  ; 8a 97 62 0e
+    mov ax, word [bx+00e62h]                  ; 8b 87 62 0e
     jmp short 056f4h                          ; eb 08
-    mov dl, byte [bx+00e02h]                  ; 8a 97 02 0e
-    mov ax, word [bx+00e02h]                  ; 8b 87 02 0e
+    mov dl, byte [bx+00e64h]                  ; 8a 97 64 0e
+    mov ax, word [bx+00e64h]                  ; 8b 87 64 0e
     shr ax, 008h                              ; c1 e8 08
     mov byte [bp-00ch], al                    ; 88 46 f4
@@ -7770,13 +7773,13 @@
     movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
     imul bx, bx, strict byte 0000ah           ; 6b db 0a
-    movzx ax, byte [bx+00e08h]                ; 0f b6 87 08 0e
+    movzx ax, byte [bx+00e6ah]                ; 0f b6 87 6a 0e
     movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
     test dx, ax                               ; 85 c2
     je short 0571ah                           ; 74 0a
-    mov dl, byte [bx+00e02h]                  ; 8a 97 02 0e
-    mov ax, word [bx+00e02h]                  ; 8b 87 02 0e
+    mov dl, byte [bx+00e64h]                  ; 8a 97 64 0e
+    mov ax, word [bx+00e64h]                  ; 8b 87 64 0e
     jmp short 05722h                          ; eb 08
-    mov dl, byte [bx+00e00h]                  ; 8a 97 00 0e
-    mov ax, word [bx+00e00h]                  ; 8b 87 00 0e
+    mov dl, byte [bx+00e62h]                  ; 8a 97 62 0e
+    mov ax, word [bx+00e62h]                  ; 8b 87 62 0e
     shr ax, 008h                              ; c1 e8 08
     mov byte [bp-00ch], al                    ; 88 46 f4
@@ -7785,5 +7788,5 @@
     test dl, dl                               ; 84 d2
     jne short 05748h                          ; 75 16
-    mov bx, 00db2h                            ; bb b2 0d
+    mov bx, 00e14h                            ; bb 14 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8139,5 +8142,5 @@
     or ah, 080h                               ; 80 cc 80
     jmp near 0595bh                           ; e9 d4 fe
-    mov bx, 00db2h                            ; bb b2 0d
+    mov bx, 00e14h                            ; bb 14 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8150,5 +8153,5 @@
     call 01a6bh                               ; e8 ca bf
     add sp, strict byte 00006h                ; 83 c4 06
-    mov bx, 00db2h                            ; bb b2 0d
+    mov bx, 00e14h                            ; bb 14 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8185,5 +8188,5 @@
     mov dx, word [bp+00ch]                    ; 8b 56 0c
     mov si, strict word 00020h                ; be 20 00
-    call 0a070h                               ; e8 75 45
+    call 0a120h                               ; e8 25 46
     test ax, ax                               ; 85 c0
     jne short 05b0bh                          ; 75 0c
@@ -8223,10 +8226,10 @@
     mov bx, strict word 0003fh                ; bb 3f 00
     xor cx, cx                                ; 31 c9
-    call 09ff0h                               ; e8 9c 44
+    call 0a0a0h                               ; e8 4c 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 0a030h                               ; e8 d0 44
+    call 0a0e0h                               ; e8 80 45
     mov word [es:di+002h], ax                 ; 26 89 45 02
     cmp ax, 00400h                            ; 3d 00 04
@@ -8385,5 +8388,5 @@
     test ax, ax                               ; 85 c0
     jne short 05cf4h                          ; 75 23
-    mov bx, 00db2h                            ; bb b2 0d
+    mov bx, 00e14h                            ; bb 14 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8414,5 +8417,5 @@
     cmp ax, dx                                ; 39 d0
     jbe short 05d4fh                          ; 76 2e
-    mov bx, 00db2h                            ; bb b2 0d
+    mov bx, 00e14h                            ; bb 14 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8452,5 +8455,5 @@
     mov bx, cx                                ; 89 cb
     xor cx, cx                                ; 31 c9
-    call 09ff0h                               ; e8 67 42
+    call 0a0a0h                               ; e8 17 43
     xor bx, bx                                ; 31 db
     add ax, word [bp-008h]                    ; 03 46 f8
@@ -8458,5 +8461,5 @@
     mov bx, word [bp-00ah]                    ; 8b 5e f6
     xor cx, cx                                ; 31 c9
-    call 09ff0h                               ; e8 58 42
+    call 0a0a0h                               ; e8 08 43
     xor bx, bx                                ; 31 db
     add ax, word [bp-006h]                    ; 03 46 fa
@@ -8514,5 +8517,5 @@
     test dl, dl                               ; 84 d2
     je near 05c52h                            ; 0f 84 0a fe
-    mov bx, 00db2h                            ; bb b2 0d
+    mov bx, 00e14h                            ; bb 14 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8532,5 +8535,5 @@
     or ah, 00ch                               ; 80 cc 0c
     jmp near 05fc8h                           ; e9 51 01
-    mov bx, 00db2h                            ; bb b2 0d
+    mov bx, 00e14h                            ; bb 14 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8618,8 +8621,8 @@
     mov bx, word [bp-008h]                    ; 8b 5e f8
     xor cx, cx                                ; 31 c9
-    call 09ff0h                               ; e8 90 40
+    call 0a0a0h                               ; e8 40 41
     mov bx, word [bp-006h]                    ; 8b 5e fa
     xor cx, cx                                ; 31 c9
-    call 09ff0h                               ; e8 88 40
+    call 0a0a0h                               ; e8 38 41
     mov word [bp-010h], ax                    ; 89 46 f0
     mov word [bp-00eh], dx                    ; 89 56 f2
@@ -8631,5 +8634,5 @@
     mov word [bp+016h], ax                    ; 89 46 16
     jmp near 05c56h                           ; e9 d4 fc
-    mov bx, 00db2h                            ; bb b2 0d
+    mov bx, 00e14h                            ; bb 14 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8644,5 +8647,5 @@
     add sp, strict byte 00008h                ; 83 c4 08
     jmp near 05c52h                           ; e9 ad fc
-    mov bx, 00db2h                            ; bb b2 0d
+    mov bx, 00e14h                            ; bb 14 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8758,5 +8761,5 @@
     xor bx, bx                                ; 31 db
     mov si, strict word 00020h                ; be 20 00
-    call 0a080h                               ; e8 94 3f
+    call 0a130h                               ; e8 44 40
     mov word [bp-00eh], bx                    ; 89 5e f2
     mov bx, word [es:di+008h]                 ; 26 8b 5d 08
@@ -8783,5 +8786,5 @@
     cmp dx, word [es:di+036h]                 ; 26 3b 55 36
     jc short 06156h                           ; 72 23
-    mov bx, 00db2h                            ; bb b2 0d
+    mov bx, 00e14h                            ; bb 14 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8839,5 +8842,5 @@
     test dl, dl                               ; 84 d2
     je near 0648dh                            ; 0f 84 a8 02
-    mov bx, 00db2h                            ; bb b2 0d
+    mov bx, 00e14h                            ; bb 14 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8909,5 +8912,5 @@
     mov bx, word [bp-00eh]                    ; 8b 5e f2
     mov si, strict word 00020h                ; be 20 00
-    call 0a070h                               ; e8 aa 3d
+    call 0a120h                               ; e8 5a 3e
     mov bx, di                                ; 89 fb
     mov word [es:bx+014h], dx                 ; 26 89 57 14
@@ -9085,5 +9088,5 @@
     or byte [bp+01ch], 001h                   ; 80 4e 1c 01
     jmp short 064a0h                          ; eb c4
-    mov bx, 00db2h                            ; bb b2 0d
+    mov bx, 00e14h                            ; bb 14 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -9266,5 +9269,5 @@
     mov bx, strict word 0000fh                ; bb 0f 00
     xor cx, cx                                ; 31 c9
-    call 0a030h                               ; e8 d1 39
+    call 0a0e0h                               ; e8 81 3a
     mov cx, ax                                ; 89 c1
     mov bx, dx                                ; 89 d3
@@ -9424,5 +9427,5 @@
     mov word [bp+00ch], ax                    ; 89 46 0c
     jmp near 06827h                           ; e9 2b 00
-    mov bx, 00db2h                            ; bb b2 0d
+    mov bx, 00e14h                            ; bb 14 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -9611,5 +9614,5 @@
     retf                                      ; cb
     jmp near 06827h                           ; e9 50 fe
-    mov bx, 00db2h                            ; bb b2 0d
+    mov bx, 00e14h                            ; bb 14 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -9651,5 +9654,5 @@
     or byte [bp+018h], 001h                   ; 80 4e 18 01
     jmp near 06827h                           ; e9 da fd
-    mov bx, 00db2h                            ; bb b2 0d
+    mov bx, 00e14h                            ; bb 14 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -9967,5 +9970,5 @@
     mov word [bp+014h], dx                    ; 89 56 14
     jmp short 06e0fh                          ; eb 2a
-    mov bx, 00db2h                            ; bb b2 0d
+    mov bx, 00e14h                            ; bb 14 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -10587,5 +10590,5 @@
     je short 07443h                           ; 74 0e
     push 00900h                               ; 68 00 09
-    push 0117ah                               ; 68 7a 11
+    push 011dch                               ; 68 dc 11
     push strict byte 00007h                   ; 6a 07
     call 01a6bh                               ; e8 2b a6
@@ -10667,5 +10670,5 @@
     je short 074d3h                           ; 74 0e
     push 0090ah                               ; 68 0a 09
-    push 0117ah                               ; 68 7a 11
+    push 011dch                               ; 68 dc 11
     push strict byte 00007h                   ; 6a 07
     call 01a6bh                               ; e8 9b a5
@@ -12121,5 +12124,5 @@
     cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
     jne short 08261h                          ; 75 1f
-    mov bx, 00db2h                            ; bb b2 0d
+    mov bx, 00e14h                            ; bb 14 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -12276,5 +12279,5 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-046h]                         ; 8d 46 ba
-    call 0a090h                               ; e8 d9 1c
+    call 0a140h                               ; e8 89 1d
     mov byte [bp-046h], 09eh                  ; c6 46 ba 9e
     mov byte [bp-045h], 010h                  ; c6 46 bb 10
@@ -12335,5 +12338,5 @@
     cmp bx, 00200h                            ; 81 fb 00 02
     je short 0847ch                           ; 74 20
-    mov bx, 00db2h                            ; bb b2 0d
+    mov bx, 00e14h                            ; bb 14 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -12401,5 +12404,5 @@
     mov dx, word [bp-016h]                    ; 8b 56 ea
     mov si, strict word 0000ch                ; be 0c 00
-    call 0a070h                               ; e8 76 1b
+    call 0a120h                               ; e8 26 1c
     mov word [bp-018h], ax                    ; 89 46 e8
     mov word [bp-014h], bx                    ; 89 5e ec
@@ -12421,5 +12424,5 @@
     mov dx, word [bp-016h]                    ; 8b 56 ea
     mov si, strict word 00006h                ; be 06 00
-    call 0a070h                               ; e8 36 1b
+    call 0a120h                               ; e8 e6 1b
     mov si, word [bp-020h]                    ; 8b 76 e0
     add si, dx                                ; 01 d6
@@ -12439,5 +12442,5 @@
     mov dx, si                                ; 89 f2
     mov si, strict word 00008h                ; be 08 00
-    call 0a070h                               ; e8 06 1b
+    call 0a120h                               ; e8 b6 1b
     mov word [bp-022h], bx                    ; 89 5e de
     mov word [bp-02ch], cx                    ; 89 4e d4
@@ -12448,5 +12451,5 @@
     mov dx, word [bp-02ah]                    ; 8b 56 d6
     mov si, strict word 00010h                ; be 10 00
-    call 0a070h                               ; e8 eb 1a
+    call 0a120h                               ; e8 9b 1b
     mov si, word [bp-01ah]                    ; 8b 76 e6
     add si, dx                                ; 01 d6
@@ -12472,5 +12475,5 @@
     mov dx, word [bp-016h]                    ; 8b 56 ea
     mov si, strict word 0000bh                ; be 0b 00
-    call 0a070h                               ; e8 a3 1a
+    call 0a120h                               ; e8 53 1b
     mov si, dx                                ; 89 d6
     mov dx, cx                                ; 89 ca
@@ -12513,5 +12516,5 @@
     mov word [es:bx+02ch], si                 ; 26 89 77 2c
     mov word [es:bx+032h], si                 ; 26 89 77 32
-    mov bx, 00db2h                            ; bb b2 0d
+    mov bx, 00e14h                            ; bb 14 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -12563,5 +12566,5 @@
     inc byte [bp-00ch]                        ; fe 46 f4
     jmp near 08770h                           ; e9 8b 00
-    mov bx, 00db2h                            ; bb b2 0d
+    mov bx, 00e14h                            ; bb 14 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -12660,10 +12663,62 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-_scsi_init:                                  ; 0xf8802 LB 0x66
+scsi_pci_init_:                              ; 0xf8802 LB 0x6c
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    mov si, ax                                ; 89 c6
+    mov di, dx                                ; 89 d7
+    call 09f06h                               ; e8 f6 16
+    mov dx, ax                                ; 89 c2
+    cmp ax, strict word 0ffffh                ; 3d ff ff
+    jne short 08834h                          ; 75 1d
+    mov bx, 00e14h                            ; bb 14 0e
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01a2ah                               ; e8 08 92
+    push di                                   ; 57
+    push si                                   ; 56
+    push 00c73h                               ; 68 73 0c
+    push 00c81h                               ; 68 81 0c
+    push strict byte 00004h                   ; 6a 04
+    call 01a6bh                               ; e8 3c 92
+    add sp, strict byte 0000ah                ; 83 c4 0a
+    jmp short 08865h                          ; eb 31
+    mov bx, 00e14h                            ; bb 14 0e
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01a2ah                               ; e8 eb 91
+    push dx                                   ; 52
+    push di                                   ; 57
+    push si                                   ; 56
+    push 00c73h                               ; 68 73 0c
+    push 00caah                               ; 68 aa 0c
+    push strict byte 00004h                   ; 6a 04
+    call 01a6bh                               ; e8 1e 92
+    add sp, strict byte 0000ch                ; 83 c4 0c
+    movzx si, dl                              ; 0f b6 f2
+    mov ax, dx                                ; 89 d0
+    shr ax, 008h                              ; c1 e8 08
+    xor ah, ah                                ; 30 e4
+    mov cx, strict word 00007h                ; b9 07 00
+    mov bx, strict word 00004h                ; bb 04 00
+    mov dx, si                                ; 89 f2
+    call 09f98h                               ; e8 33 17
+    lea sp, [bp-008h]                         ; 8d 66 f8
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_scsi_init:                                  ; 0xf886e LB 0x81
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01765h                               ; e8 57 8f
+    call 01765h                               ; e8 eb 8e
     mov bx, 00122h                            ; bb 22 01
     mov es, ax                                ; 8e c0
@@ -12676,10 +12731,13 @@
     ; sub ah, ah                                ; 2a e4
     cmp AL, strict byte 055h                  ; 3c 55
-    jne short 08832h                          ; 75 0c
+    jne short 088a7h                          ; 75 15
     xor al, al                                ; 30 c0
     mov dx, 00433h                            ; ba 33 04
     out DX, AL                                ; ee
     mov ax, 00430h                            ; b8 30 04
-    call 08380h                               ; e8 4e fb
+    call 08380h                               ; e8 e2 fa
+    mov dx, 01040h                            ; ba 40 10
+    mov ax, 0104bh                            ; b8 4b 10
+    call 08802h                               ; e8 5b ff
     mov AL, strict byte 055h                  ; b0 55
     mov dx, 00436h                            ; ba 36 04
@@ -12689,10 +12747,13 @@
     ; sub ah, ah                                ; 2a e4
     cmp AL, strict byte 055h                  ; 3c 55
-    jne short 0884bh                          ; 75 0c
+    jne short 088c9h                          ; 75 15
     xor al, al                                ; 30 c0
     mov dx, 00437h                            ; ba 37 04
     out DX, AL                                ; ee
     mov ax, 00434h                            ; b8 34 04
-    call 08380h                               ; e8 35 fb
+    call 08380h                               ; e8 c0 fa
+    mov dx, strict word 00030h                ; ba 30 00
+    mov ax, 01000h                            ; b8 00 10
+    call 08802h                               ; e8 39 ff
     mov AL, strict byte 055h                  ; b0 55
     mov dx, 0043ah                            ; ba 3a 04
@@ -12702,14 +12763,17 @@
     ; sub ah, ah                                ; 2a e4
     cmp AL, strict byte 055h                  ; 3c 55
-    jne short 08864h                          ; 75 0c
+    jne short 088ebh                          ; 75 15
     xor al, al                                ; 30 c0
     mov dx, 0043bh                            ; ba 3b 04
     out DX, AL                                ; ee
     mov ax, 00438h                            ; b8 38 04
-    call 08380h                               ; e8 1c fb
+    call 08380h                               ; e8 9e fa
+    mov dx, strict word 00054h                ; ba 54 00
+    mov ax, 01000h                            ; b8 00 10
+    call 08802h                               ; e8 17 ff
     mov sp, bp                                ; 89 ec
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_ctrl_extract_bits_:                     ; 0xf8868 LB 0x1b
+ahci_ctrl_extract_bits_:                     ; 0xf88ef LB 0x1b
     push si                                   ; 56
     push bp                                   ; 55
@@ -12719,12 +12783,12 @@
     and dx, cx                                ; 21 ca
     movzx cx, byte [bp+006h]                  ; 0f b6 4e 06
-    jcxz 0887eh                               ; e3 06
+    jcxz 08905h                               ; e3 06
     shr dx, 1                                 ; d1 ea
     rcr ax, 1                                 ; d1 d8
-    loop 08878h                               ; e2 fa
+    loop 088ffh                               ; e2 fa
     pop bp                                    ; 5d
     pop si                                    ; 5e
     retn 00002h                               ; c2 02 00
-ahci_addr_to_phys_:                          ; 0xf8883 LB 0x1e
+ahci_addr_to_phys_:                          ; 0xf890a LB 0x1e
     push bx                                   ; 53
     push cx                                   ; 51
@@ -12737,5 +12801,5 @@
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 08891h                               ; e2 fa
+    loop 08918h                               ; e2 fa
     xor cx, cx                                ; 31 c9
     add ax, bx                                ; 01 d8
@@ -12745,5 +12809,5 @@
     pop bx                                    ; 5b
     retn                                      ; c3
-ahci_port_cmd_sync_:                         ; 0xf88a1 LB 0x14b
+ahci_port_cmd_sync_:                         ; 0xf8928 LB 0x14b
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -12760,5 +12824,5 @@
     mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
     cmp ah, 0ffh                              ; 80 fc ff
-    je near 089e4h                            ; 0f 84 20 01
+    je near 08a6bh                            ; 0f 84 20 01
     movzx dx, byte [es:si+00263h]             ; 26 0f b6 94 63 02
     xor di, di                                ; 31 ff
@@ -12772,5 +12836,5 @@
     lea ax, [si+00080h]                       ; 8d 84 80 00
     mov dx, cx                                ; 89 ca
-    call 08883h                               ; e8 96 ff
+    call 0890ah                               ; e8 96 ff
     mov es, cx                                ; 8e c1
     mov word [es:si+008h], ax                 ; 26 89 44 08
@@ -12835,12 +12899,12 @@
     xchg dx, ax                               ; 92
     test dh, 040h                             ; f6 c6 40
-    jne short 0897ah                          ; 75 04
+    jne short 08a01h                          ; 75 04
     test AL, strict byte 001h                 ; a8 01
-    je short 0897eh                           ; 74 04
+    je short 08a05h                           ; 74 04
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 08980h                          ; eb 02
+    jmp short 08a07h                          ; eb 02
     xor al, al                                ; 30 c0
     test al, al                               ; 84 c0
-    je short 0894eh                           ; 74 ca
+    je short 089d5h                           ; 74 ca
     movzx di, byte [bp-008h]                  ; 0f b6 7e f8
     sal di, 007h                              ; c1 e7 07
@@ -12896,5 +12960,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_cmd_data_:                              ; 0xf89ec LB 0x262
+ahci_cmd_data_:                              ; 0xf8a73 LB 0x262
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -12921,5 +12985,5 @@
     mov ax, 00080h                            ; b8 80 00
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 0a090h                               ; e8 66 16
+    call 0a140h                               ; e8 8f 16
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov word [es:di+00080h], 08027h           ; 26 c7 85 80 00 27 80
@@ -12939,5 +13003,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00008h                ; be 08 00
-    call 0a070h                               ; e8 02 16
+    call 0a120h                               ; e8 2b 16
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov byte [es:di+00085h], dl               ; 26 88 95 85 00
@@ -12950,5 +13014,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00010h                ; be 10 00
-    call 0a070h                               ; e8 dc 15
+    call 0a120h                               ; e8 05 16
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov byte [es:di+00086h], dl               ; 26 88 95 86 00
@@ -12962,5 +13026,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00018h                ; be 18 00
-    call 0a070h                               ; e8 b0 15
+    call 0a120h                               ; e8 d9 15
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov byte [es:di+00088h], dl               ; 26 88 95 88 00
@@ -12973,5 +13037,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00020h                ; be 20 00
-    call 0a070h                               ; e8 8a 15
+    call 0a120h                               ; e8 b3 15
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov byte [es:di+00089h], dl               ; 26 88 95 89 00
@@ -12984,5 +13048,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00028h                ; be 28 00
-    call 0a070h                               ; e8 64 15
+    call 0a120h                               ; e8 8d 15
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov byte [es:di+0008ah], dl               ; 26 88 95 8a 00
@@ -12998,5 +13062,5 @@
     mov bx, word [bp-010h]                    ; 8b 5e f0
     xor cx, cx                                ; 31 c9
-    call 09ff0h                               ; e8 af 14
+    call 0a0a0h                               ; e8 d8 14
     push dx                                   ; 52
     push ax                                   ; 50
@@ -13008,5 +13072,5 @@
     mov ax, 0026ah                            ; b8 6a 02
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 09f43h                               ; e8 e6 13
+    call 09fefh                               ; e8 0b 14
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov ax, word [es:di+0027eh]               ; 26 8b 85 7e 02
@@ -13029,5 +13093,5 @@
     mov ax, word [es:bx+020h]                 ; 26 8b 47 20
     test ax, ax                               ; 85 c0
-    je short 08bebh                           ; 74 39
+    je short 08c72h                           ; 74 39
     dec ax                                    ; 48
     mov es, [bp-00ah]                         ; 8e 46 f6
@@ -13045,13 +13109,13 @@
     mov al, byte [bp-008h]                    ; 8a 46 f8
     cmp AL, strict byte 035h                  ; 3c 35
-    jne short 08bf8h                          ; 75 06
+    jne short 08c7fh                          ; 75 06
     mov byte [bp-008h], 040h                  ; c6 46 f8 40
-    jmp short 08c0fh                          ; eb 17
+    jmp short 08c96h                          ; eb 17
     cmp AL, strict byte 0a0h                  ; 3c a0
-    jne short 08c0bh                          ; 75 0f
+    jne short 08c92h                          ; 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 08c0fh                          ; eb 04
+    jmp short 08c96h                          ; eb 04
     mov byte [bp-008h], 000h                  ; c6 46 f8 00
     or byte [bp-008h], 005h                   ; 80 4e f8 05
@@ -13059,5 +13123,5 @@
     mov ax, word [bp-00eh]                    ; 8b 46 f2
     mov dx, word [bp-00ch]                    ; 8b 56 f4
-    call 088a1h                               ; e8 81 fc
+    call 08928h                               ; e8 81 fc
     mov cx, word [bp-00ch]                    ; 8b 4e f4
     mov bx, word [bp-00eh]                    ; 8b 5e f2
@@ -13066,11 +13130,11 @@
     add ax, 0026ah                            ; 05 6a 02
     mov dx, cx                                ; 89 ca
-    call 09fbch                               ; e8 87 13
+    call 0a068h                               ; e8 ac 13
     mov es, cx                                ; 8e c1
     mov al, byte [es:bx+003h]                 ; 26 8a 47 03
     test al, al                               ; 84 c0
-    je short 08c44h                           ; 74 05
+    je short 08ccbh                           ; 74 05
     mov ax, strict word 00004h                ; b8 04 00
-    jmp short 08c46h                          ; eb 02
+    jmp short 08ccdh                          ; eb 02
     xor ah, ah                                ; 30 e4
     lea sp, [bp-006h]                         ; 8d 66 fa
@@ -13080,5 +13144,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_port_deinit_current_:                   ; 0xf8c4e LB 0x17f
+ahci_port_deinit_current_:                   ; 0xf8cd5 LB 0x17f
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13095,5 +13159,5 @@
     mov byte [bp-00ah], al                    ; 88 46 f6
     cmp AL, strict byte 0ffh                  ; 3c ff
-    je near 08dc4h                            ; 0f 84 52 01
+    je near 08e4bh                            ; 0f 84 52 01
     movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     sal ax, 007h                              ; c1 e0 07
@@ -13138,25 +13202,25 @@
     xchg dx, ax                               ; 92
     test ax, 0c011h                           ; a9 11 c0
-    je short 08cd2h                           ; 74 04
+    je short 08d59h                           ; 74 04
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 08cd4h                          ; eb 02
+    jmp short 08d5bh                          ; eb 02
     xor al, al                                ; 30 c0
     cmp AL, strict byte 001h                  ; 3c 01
-    je short 08ca6h                           ; 74 ce
+    je short 08d2dh                           ; 74 ce
     mov cx, strict word 00020h                ; b9 20 00
     xor bx, bx                                ; 31 db
     mov ax, di                                ; 89 f8
     mov dx, word [bp-00ch]                    ; 8b 56 f4
-    call 0a090h                               ; e8 ab 13
+    call 0a140h                               ; e8 d4 13
     lea ax, [di+00080h]                       ; 8d 85 80 00
     mov cx, strict word 00040h                ; b9 40 00
     xor bx, bx                                ; 31 db
     mov dx, word [bp-00ch]                    ; 8b 56 f4
-    call 0a090h                               ; e8 9c 13
+    call 0a140h                               ; e8 c5 13
     lea ax, [di+00200h]                       ; 8d 85 00 02
     mov cx, strict word 00060h                ; b9 60 00
     xor bx, bx                                ; 31 db
     mov dx, word [bp-00ch]                    ; 8b 56 f4
-    call 0a090h                               ; e8 8d 13
+    call 0a140h                               ; e8 b6 13
     movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     sal ax, 007h                              ; c1 e0 07
@@ -13262,5 +13326,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_port_init_:                             ; 0xf8dcd LB 0x24a
+ahci_port_init_:                             ; 0xf8e54 LB 0x24a
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13272,5 +13336,5 @@
     mov word [bp-00ah], dx                    ; 89 56 f6
     mov byte [bp-008h], bl                    ; 88 5e f8
-    call 08c4eh                               ; e8 6d fe
+    call 08cd5h                               ; e8 6d fe
     movzx ax, bl                              ; 0f b6 c3
     sal ax, 007h                              ; c1 e0 07
@@ -13319,20 +13383,20 @@
     xchg dx, ax                               ; 92
     test ax, 0c011h                           ; a9 11 c0
-    je short 08e50h                           ; 74 04
+    je short 08ed7h                           ; 74 04
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 08e52h                          ; eb 02
+    jmp short 08ed9h                          ; eb 02
     xor al, al                                ; 30 c0
     cmp AL, strict byte 001h                  ; 3c 01
-    je short 08e1ch                           ; 74 c6
+    je short 08ea3h                           ; 74 c6
     mov cx, strict word 00020h                ; b9 20 00
     xor bx, bx                                ; 31 db
     mov ax, si                                ; 89 f0
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 0a090h                               ; e8 2d 12
+    call 0a140h                               ; e8 56 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 0a090h                               ; e8 1e 12
+    call 0a140h                               ; e8 47 12
     lea di, [si+00200h]                       ; 8d bc 00 02
     mov cx, strict word 00060h                ; b9 60 00
@@ -13340,5 +13404,5 @@
     mov ax, di                                ; 89 f8
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 0a090h                               ; e8 0d 12
+    call 0a140h                               ; e8 36 12
     movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
     sal bx, 007h                              ; c1 e3 07
@@ -13357,5 +13421,5 @@
     mov ax, di                                ; 89 f8
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 08883h                               ; e8 d3 f9
+    call 0890ah                               ; e8 d3 f9
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov di, word [es:si+00260h]               ; 26 8b bc 60 02
@@ -13402,5 +13466,5 @@
     mov ax, si                                ; 89 f0
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 08883h                               ; e8 67 f9
+    call 0890ah                               ; e8 67 f9
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov di, word [es:si+00260h]               ; 26 8b bc 60 02
@@ -13507,5 +13571,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-@ahci_read_sectors:                          ; 0xf9017 LB 0xa6
+@ahci_read_sectors:                          ; 0xf909e LB 0xa6
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13517,10 +13581,10 @@
     sub di, strict byte 0000ch                ; 83 ef 0c
     cmp di, strict byte 00004h                ; 83 ff 04
-    jbe short 0903ch                          ; 76 0f
+    jbe short 090c3h                          ; 76 0f
     push di                                   ; 57
-    push 00c74h                               ; 68 74 0c
-    push 00c86h                               ; 68 86 0c
+    push 00cd6h                               ; 68 d6 0c
+    push 00ce8h                               ; 68 e8 0c
     push strict byte 00007h                   ; 6a 07
-    call 01a6bh                               ; e8 32 8a
+    call 01a6bh                               ; e8 ab 89
     add sp, strict byte 00008h                ; 83 c4 08
     xor bx, bx                                ; 31 db
@@ -13536,9 +13600,9 @@
     mov dx, word [es:di+00232h]               ; 26 8b 95 32 02
     xor ax, ax                                ; 31 c0
-    call 08dcdh                               ; e8 65 fd
+    call 08e54h                               ; e8 65 fd
     mov bx, strict word 00025h                ; bb 25 00
     mov ax, si                                ; 89 f0
     mov dx, word [bp+006h]                    ; 8b 56 06
-    call 089ech                               ; e8 79 f9
+    call 08a73h                               ; e8 79 f9
     mov word [bp-006h], ax                    ; 89 46 fa
     mov es, [bp+006h]                         ; 8e 46 06
@@ -13569,5 +13633,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-@ahci_write_sectors:                         ; 0xf90bd LB 0x84
+@ahci_write_sectors:                         ; 0xf9144 LB 0x84
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13580,10 +13644,10 @@
     sub dx, strict byte 0000ch                ; 83 ea 0c
     cmp dx, strict byte 00004h                ; 83 fa 04
-    jbe short 090e6h                          ; 76 0f
+    jbe short 0916dh                          ; 76 0f
     push dx                                   ; 52
-    push 00ca5h                               ; 68 a5 0c
-    push 00c86h                               ; 68 86 0c
+    push 00d07h                               ; 68 07 0d
+    push 00ce8h                               ; 68 e8 0c
     push strict byte 00007h                   ; 6a 07
-    call 01a6bh                               ; e8 88 89
+    call 01a6bh                               ; e8 01 89
     add sp, strict byte 00008h                ; 83 c4 08
     xor bx, bx                                ; 31 db
@@ -13599,9 +13663,9 @@
     mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
     xor ax, ax                                ; 31 c0
-    call 08dcdh                               ; e8 bd fc
+    call 08e54h                               ; e8 bd fc
     mov bx, strict word 00035h                ; bb 35 00
     mov ax, si                                ; 89 f0
     mov dx, cx                                ; 89 ca
-    call 089ech                               ; e8 d2 f8
+    call 08a73h                               ; e8 d2 f8
     mov dx, ax                                ; 89 c2
     mov es, cx                                ; 8e c1
@@ -13618,5 +13682,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-ahci_cmd_packet_:                            ; 0xf9141 LB 0x183
+ahci_cmd_packet_:                            ; 0xf91c8 LB 0x183
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13630,22 +13694,22 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01765h                               ; e8 09 86
+    call 01765h                               ; e8 82 85
     mov si, 00122h                            ; be 22 01
     mov word [bp-008h], ax                    ; 89 46 f8
     cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
-    jne short 09187h                          ; 75 1f
-    mov bx, 00db2h                            ; bb b2 0d
+    jne short 0920eh                          ; 75 1f
+    mov bx, 00e14h                            ; bb 14 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01a2ah                               ; e8 b7 88
-    push 00cb8h                               ; 68 b8 0c
-    push 00cc8h                               ; 68 c8 0c
+    call 01a2ah                               ; e8 30 88
+    push 00d1ah                               ; 68 1a 0d
+    push 00d2ah                               ; 68 2a 0d
     push strict byte 00004h                   ; 6a 04
-    call 01a6bh                               ; e8 ed 88
+    call 01a6bh                               ; e8 66 88
     add sp, strict byte 00006h                ; 83 c4 06
     mov ax, strict word 00001h                ; b8 01 00
-    jmp near 092bbh                           ; e9 34 01
+    jmp near 09342h                           ; e9 34 01
     test byte [bp+004h], 001h                 ; f6 46 04 01
-    jne short 09181h                          ; 75 f4
+    jne short 09208h                          ; 75 f4
     mov ax, word [bp+006h]                    ; 8b 46 06
     mov dx, word [bp+008h]                    ; 8b 56 08
@@ -13653,5 +13717,5 @@
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 09196h                               ; e2 fa
+    loop 0921dh                               ; e2 fa
     mov es, [bp-008h]                         ; 8e 46 f8
     mov word [es:si], ax                      ; 26 89 04
@@ -13667,5 +13731,5 @@
     mov dx, word [bp+008h]                    ; 8b 56 08
     xor cx, cx                                ; 31 c9
-    call 0a030h                               ; e8 64 0e
+    call 0a0e0h                               ; e8 8d 0e
     mov word [es:si+00eh], ax                 ; 26 89 44 0e
     xor di, di                                ; 31 ff
@@ -13684,5 +13748,5 @@
     mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
     xor ax, ax                                ; 31 c0
-    call 08dcdh                               ; e8 c5 fb
+    call 08e54h                               ; e8 c5 fb
     movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
     push ax                                   ; 50
@@ -13691,5 +13755,5 @@
     mov ax, 000c0h                            ; b8 c0 00
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 0a0a0h                               ; e8 84 0e
+    call 0a150h                               ; e8 ad 0e
     mov es, [bp-008h]                         ; 8e 46 f8
     mov word [es:si+018h], di                 ; 26 89 7c 18
@@ -13698,5 +13762,5 @@
     mov ax, word [es:si+01eh]                 ; 26 8b 44 1e
     test ax, ax                               ; 85 c0
-    je short 0925ah                           ; 74 27
+    je short 092e1h                           ; 74 27
     dec ax                                    ; 48
     mov es, [bp-00ah]                         ; 8e 46 f6
@@ -13711,5 +13775,5 @@
     mov ax, si                                ; 89 f0
     mov dx, word [bp-008h]                    ; 8b 56 f8
-    call 089ech                               ; e8 87 f7
+    call 08a73h                               ; e8 87 f7
     les bx, [bp-00eh]                         ; c4 5e f2
     mov ax, word [es:bx+004h]                 ; 26 8b 47 04
@@ -13738,7 +13802,7 @@
     mov ax, word [es:bx+006h]                 ; 26 8b 47 06
     or ax, word [es:bx+004h]                  ; 26 0b 47 04
-    jne short 092b9h                          ; 75 05
+    jne short 09340h                          ; 75 05
     mov ax, strict word 00004h                ; b8 04 00
-    jmp short 092bbh                          ; eb 02
+    jmp short 09342h                          ; eb 02
     xor ax, ax                                ; 31 c0
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -13747,5 +13811,5 @@
     pop bp                                    ; 5d
     retn 0000ch                               ; c2 0c 00
-ahci_port_detect_device_:                    ; 0xf92c4 LB 0x4b1
+ahci_port_detect_device_:                    ; 0xf934b LB 0x4b1
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13759,8 +13823,8 @@
     movzx di, bl                              ; 0f b6 fb
     mov bx, di                                ; 89 fb
-    call 08dcdh                               ; e8 ef fa
+    call 08e54h                               ; e8 ef fa
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01765h                               ; e8 7e 84
+    call 01765h                               ; e8 f7 83
     mov word [bp-010h], 00122h                ; c7 46 f0 22 01
     mov word [bp-00eh], ax                    ; 89 46 f2
@@ -13831,7 +13895,7 @@
     mov bx, strict word 0000fh                ; bb 0f 00
     xor cx, cx                                ; 31 c9
-    call 08868h                               ; e8 d7 f4
+    call 088efh                               ; e8 d7 f4
     test ax, ax                               ; 85 c0
-    je near 0976dh                            ; 0f 84 d6 03
+    je near 097f4h                            ; 0f 84 d6 03
     movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     sal ax, 007h                              ; c1 e0 07
@@ -13861,7 +13925,7 @@
     mov bx, strict word 0000fh                ; bb 0f 00
     xor cx, cx                                ; 31 c9
-    call 08868h                               ; e8 8b f4
+    call 088efh                               ; e8 8b f4
     cmp ax, strict word 00001h                ; 3d 01 00
-    je short 09397h                           ; 74 b5
+    je short 0941eh                           ; 74 b5
     push strict byte 00000h                   ; 6a 00
     mov bx, strict word 0000fh                ; bb 0f 00
@@ -13869,7 +13933,7 @@
     mov ax, di                                ; 89 f8
     mov dx, word [bp-022h]                    ; 8b 56 de
-    call 08868h                               ; e8 77 f4
+    call 088efh                               ; e8 77 f4
     cmp ax, strict word 00003h                ; 3d 03 00
-    jne near 0976dh                           ; 0f 85 75 03
+    jne near 097f4h                           ; 0f 85 75 03
     mov ax, word [bp-018h]                    ; 8b 46 e8
     add ax, 00130h                            ; 05 30 01
@@ -13898,5 +13962,5 @@
     mov byte [bp-008h], al                    ; 88 46 f8
     cmp AL, strict byte 004h                  ; 3c 04
-    jnc near 0976dh                           ; 0f 83 2f 03
+    jnc near 097f4h                           ; 0f 83 2f 03
     mov ax, word [bp-018h]                    ; 8b 46 e8
     add ax, 00118h                            ; 05 18 01
@@ -13950,7 +14014,7 @@
     add cl, 00ch                              ; 80 c1 0c
     test dx, dx                               ; 85 d2
-    jne near 096c3h                           ; 0f 85 0d 02
+    jne near 0974ah                           ; 0f 85 0d 02
     cmp di, 00101h                            ; 81 ff 01 01
-    jne near 096c3h                           ; 0f 85 05 02
+    jne near 0974ah                           ; 0f 85 05 02
     les bx, [bp-010h]                         ; c4 5e f0
     db  066h, 026h, 0c7h, 047h, 004h, 000h, 000h, 000h, 000h
@@ -13966,5 +14030,5 @@
     mov ax, word [bp-010h]                    ; 8b 46 f0
     mov dx, es                                ; 8c c2
-    call 089ech                               ; e8 fa f4
+    call 08a73h                               ; e8 fa f4
     mov byte [bp-00ch], cl                    ; 88 4e f4
     test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
@@ -13983,7 +14047,7 @@
     mov dword [bp-016h], strict dword 000000000h ; 66 c7 46 ea 00 00 00 00
     cmp di, 00fffh                            ; 81 ff ff 0f
-    jne short 0954bh                          ; 75 1e
+    jne short 095d2h                          ; 75 1e
     cmp dx, strict byte 0ffffh                ; 83 fa ff
-    jne short 0954bh                          ; 75 19
+    jne short 095d2h                          ; 75 19
     mov dx, word [bp-0015ch]                  ; 8b 96 a4 fe
     mov word [bp-014h], dx                    ; 89 56 ec
@@ -14022,19 +14086,19 @@
     mov al, byte [bp-008h]                    ; 8a 46 f8
     cmp AL, strict byte 001h                  ; 3c 01
-    jc short 095c4h                           ; 72 0c
-    jbe short 095cch                          ; 76 12
+    jc short 0964bh                           ; 72 0c
+    jbe short 09653h                          ; 76 12
     cmp AL, strict byte 003h                  ; 3c 03
-    je short 095d4h                           ; 74 16
+    je short 0965bh                           ; 74 16
     cmp AL, strict byte 002h                  ; 3c 02
-    je short 095d0h                           ; 74 0e
-    jmp short 0961dh                          ; eb 59
+    je short 09657h                           ; 74 0e
+    jmp short 096a4h                          ; eb 59
     test al, al                               ; 84 c0
-    jne short 0961dh                          ; 75 55
+    jne short 096a4h                          ; 75 55
     mov DL, strict byte 040h                  ; b2 40
-    jmp short 095d6h                          ; eb 0a
+    jmp short 0965dh                          ; eb 0a
     mov DL, strict byte 048h                  ; b2 48
-    jmp short 095d6h                          ; eb 06
+    jmp short 0965dh                          ; eb 06
     mov DL, strict byte 050h                  ; b2 50
-    jmp short 095d6h                          ; eb 02
+    jmp short 0965dh                          ; eb 02
     mov DL, strict byte 058h                  ; b2 58
     mov al, dl                                ; 88 d0
@@ -14042,17 +14106,17 @@
     movzx bx, al                              ; 0f b6 d8
     mov ax, bx                                ; 89 d8
-    call 017a5h                               ; e8 c3 81
+    call 017a5h                               ; e8 3c 81
     test al, al                               ; 84 c0
-    je short 0961dh                           ; 74 37
+    je short 096a4h                           ; 74 37
     mov al, dl                                ; 88 d0
     db  0feh, 0c0h
     ; inc al                                    ; fe c0
     xor ah, ah                                ; 30 e4
-    call 017a5h                               ; e8 b6 81
+    call 017a5h                               ; e8 2f 81
     xor ah, ah                                ; 30 e4
     mov si, ax                                ; 89 c6
     sal si, 008h                              ; c1 e6 08
     movzx ax, dl                              ; 0f b6 c2
-    call 017a5h                               ; e8 a9 81
+    call 017a5h                               ; e8 22 81
     xor ah, ah                                ; 30 e4
     add ax, si                                ; 01 f0
@@ -14061,12 +14125,12 @@
     add AL, strict byte 002h                  ; 04 02
     xor ah, ah                                ; 30 e4
-    call 017a5h                               ; e8 99 81
+    call 017a5h                               ; e8 12 81
     xor ah, ah                                ; 30 e4
     mov word [bp-02ah], ax                    ; 89 46 d6
     mov ax, bx                                ; 89 d8
-    call 017a5h                               ; e8 8f 81
+    call 017a5h                               ; e8 08 81
     xor ah, ah                                ; 30 e4
     mov word [bp-026h], ax                    ; 89 46 da
-    jmp short 0962dh                          ; eb 10
+    jmp short 096b4h                          ; eb 10
     push dword [bp-016h]                      ; 66 ff 76 ea
     push di                                   ; 57
@@ -14074,9 +14138,9 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-02ah]                         ; 8d 46 d6
-    call 05ad0h                               ; e8 a3 c4
-    mov bx, 00db2h                            ; bb b2 0d
+    call 05ad0h                               ; e8 1c c4
+    mov bx, 00e14h                            ; bb 14 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01a2ah                               ; e8 f2 83
+    call 01a2ah                               ; e8 6b 83
     push dword [bp-016h]                      ; 66 ff 76 ea
     push di                                   ; 57
@@ -14095,7 +14159,7 @@
     movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
     push ax                                   ; 50
-    push 00ce8h                               ; 68 e8 0c
+    push 00d4ah                               ; 68 4a 0d
     push strict byte 00004h                   ; 6a 04
-    call 01a6bh                               ; e8 04 84
+    call 01a6bh                               ; e8 7d 83
     add sp, strict byte 0001ch                ; 83 c4 1c
     movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
@@ -14126,5 +14190,5 @@
     mov dx, strict word 00075h                ; ba 75 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01749h                               ; e8 97 80
+    call 01749h                               ; e8 10 80
     db  0feh, 0c0h
     ; inc al                                    ; fe c0
@@ -14132,10 +14196,10 @@
     mov dx, strict word 00075h                ; ba 75 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01757h                               ; e8 97 80
-    jmp near 0975fh                           ; e9 9c 00
+    call 01757h                               ; e8 10 80
+    jmp near 097e6h                           ; e9 9c 00
     cmp dx, 0eb14h                            ; 81 fa 14 eb
-    jne near 0975fh                           ; 0f 85 94 00
+    jne near 097e6h                           ; 0f 85 94 00
     cmp di, 00101h                            ; 81 ff 01 01
-    jne near 0975fh                           ; 0f 85 8c 00
+    jne near 097e6h                           ; 0f 85 8c 00
     les bx, [bp-010h]                         ; c4 5e f0
     db  066h, 026h, 0c7h, 047h, 004h, 000h, 000h, 000h, 000h
@@ -14151,5 +14215,5 @@
     mov ax, word [bp-010h]                    ; 8b 46 f0
     mov dx, es                                ; 8c c2
-    call 089ech                               ; e8 e5 f2
+    call 08a73h                               ; e8 e5 f2
     test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
     db  00fh, 095h, 0c0h
@@ -14188,5 +14252,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_mem_alloc_:                             ; 0xf9775 LB 0x43
+ahci_mem_alloc_:                             ; 0xf97fc LB 0x43
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14198,7 +14262,7 @@
     mov dx, 00413h                            ; ba 13 04
     xor ax, ax                                ; 31 c0
-    call 01765h                               ; e8 e0 7f
+    call 01765h                               ; e8 59 7f
     test ax, ax                               ; 85 c0
-    je short 097aeh                           ; 74 25
+    je short 09835h                           ; 74 25
     dec ax                                    ; 48
     mov bx, ax                                ; 89 c3
@@ -14207,5 +14271,5 @@
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 09791h                               ; e2 fa
+    loop 09818h                               ; e2 fa
     mov si, ax                                ; 89 c6
     mov di, dx                                ; 89 d7
@@ -14213,8 +14277,8 @@
     shr di, 1                                 ; d1 ef
     rcr si, 1                                 ; d1 de
-    loop 0979eh                               ; e2 fa
+    loop 09825h                               ; e2 fa
     mov dx, 00413h                            ; ba 13 04
     xor ax, ax                                ; 31 c0
-    call 01773h                               ; e8 c7 7f
+    call 01773h                               ; e8 40 7f
     mov ax, si                                ; 89 f0
     lea sp, [bp-00ah]                         ; 8d 66 f6
@@ -14226,5 +14290,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_hba_init_:                              ; 0xf97b8 LB 0x166
+ahci_hba_init_:                              ; 0xf983f LB 0x166
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14238,5 +14302,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01765h                               ; e8 97 7f
+    call 01765h                               ; e8 10 7f
     mov bx, 00122h                            ; bb 22 01
     mov di, ax                                ; 89 c7
@@ -14255,8 +14319,8 @@
     shr eax, 010h                             ; 66 c1 e8 10
     xchg dx, ax                               ; 92
-    call 09775h                               ; e8 83 ff
+    call 097fch                               ; e8 83 ff
     mov word [bp-010h], ax                    ; 89 46 f0
     test ax, ax                               ; 85 c0
-    je near 098fdh                            ; 0f 84 02 01
+    je near 09984h                            ; 0f 84 02 01
     mov ax, word [bp-010h]                    ; 8b 46 f0
     mov es, di                                ; 8e c7
@@ -14308,5 +14372,5 @@
     xchg dx, ax                               ; 92
     test AL, strict byte 001h                 ; a8 01
-    jne short 09851h                          ; 75 de
+    jne short 098d8h                          ; 75 de
     xor ax, ax                                ; 31 c0
     xor cx, cx                                ; 31 c9
@@ -14326,29 +14390,29 @@
     mov bx, strict word 0001fh                ; bb 1f 00
     xor cx, cx                                ; 31 c9
-    call 08868h                               ; e8 d1 ef
+    call 088efh                               ; e8 d1 ef
     db  0feh, 0c0h
     ; inc al                                    ; fe c0
     mov byte [bp-00eh], al                    ; 88 46 f2
     mov byte [bp-00ch], 000h                  ; c6 46 f4 00
-    jmp short 098c2h                          ; eb 20
+    jmp short 09949h                          ; eb 20
     xor al, al                                ; 30 c0
     test al, al                               ; 84 c0
-    je short 098b9h                           ; 74 11
+    je short 09940h                           ; 74 11
     movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
     xor ax, ax                                ; 31 c0
     mov dx, word [bp-010h]                    ; 8b 56 f0
-    call 092c4h                               ; e8 10 fa
+    call 0934bh                               ; e8 10 fa
     dec byte [bp-00eh]                        ; fe 4e f2
-    je short 098fbh                           ; 74 42
+    je short 09982h                           ; 74 42
     inc byte [bp-00ch]                        ; fe 46 f4
     cmp byte [bp-00ch], 020h                  ; 80 7e f4 20
-    jnc short 098fbh                          ; 73 39
+    jnc short 09982h                          ; 73 39
     movzx cx, byte [bp-00ch]                  ; 0f b6 4e f4
     mov bx, strict word 00001h                ; bb 01 00
     xor di, di                                ; 31 ff
-    jcxz 098d3h                               ; e3 06
+    jcxz 0995ah                               ; e3 06
     sal bx, 1                                 ; d1 e3
     rcl di, 1                                 ; d1 d7
-    loop 098cdh                               ; e2 fa
+    loop 09954h                               ; e2 fa
     mov ax, strict word 0000ch                ; b8 0c 00
     xor cx, cx                                ; 31 c9
@@ -14366,9 +14430,9 @@
     xchg dx, ax                               ; 92
     test dx, di                               ; 85 fa
-    jne short 098f7h                          ; 75 04
+    jne short 0997eh                          ; 75 04
     test ax, bx                               ; 85 d8
-    je short 098a2h                           ; 74 ab
+    je short 09929h                           ; 74 ab
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 098a4h                          ; eb a9
+    jmp short 0992bh                          ; eb a9
     xor ax, ax                                ; 31 c0
     lea sp, [bp-00ah]                         ; 8d 66 f6
@@ -14380,7 +14444,7 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0eeh, 099h, 0cch, 099h, 0d2h, 099h, 0d8h, 099h, 0deh
-    db  099h, 0e4h, 099h, 0eah, 099h, 0eeh, 099h
-_ahci_init:                                  ; 0xf991e LB 0x116
+    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 075h, 09ah, 053h, 09ah, 059h, 09ah, 05fh, 09ah, 065h
+    db  09ah, 06bh, 09ah, 071h, 09ah, 075h, 09ah
+_ahci_init:                                  ; 0xf99a5 LB 0x116
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14390,8 +14454,8 @@
     mov ax, 00601h                            ; b8 01 06
     mov dx, strict word 00001h                ; ba 01 00
-    call 09e54h                               ; e8 25 05
+    call 09edbh                               ; e8 25 05
     mov bx, ax                                ; 89 c3
     cmp ax, strict word 0ffffh                ; 3d ff ff
-    je near 09a2dh                            ; 0f 84 f5 00
+    je near 09ab4h                            ; 0f 84 f5 00
     xor al, al                                ; 30 c0
     shr ax, 008h                              ; c1 e8 08
@@ -14401,8 +14465,8 @@
     xor ah, ah                                ; 30 e4
     mov bx, strict word 00034h                ; bb 34 00
-    call 09e7fh                               ; e8 31 05
+    call 09f2bh                               ; e8 56 05
     mov cl, al                                ; 88 c1
     test cl, cl                               ; 84 c9
-    je short 09977h                           ; 74 23
+    je short 099feh                           ; 74 23
     movzx bx, cl                              ; 0f b6 d9
     movzx di, byte [bp-008h]                  ; 0f b6 7e f8
@@ -14410,7 +14474,7 @@
     mov dx, di                                ; 89 fa
     mov ax, si                                ; 89 f0
-    call 09e7fh                               ; e8 19 05
+    call 09f2bh                               ; e8 3e 05
     cmp AL, strict byte 012h                  ; 3c 12
-    je short 09977h                           ; 74 0d
+    je short 099feh                           ; 74 0d
     mov al, cl                                ; 88 c8
     db  0feh, 0c0h
@@ -14419,7 +14483,7 @@
     mov dx, di                                ; 89 fa
     mov ax, si                                ; 89 f0
-    jmp short 0994bh                          ; eb d4
+    jmp short 099d2h                          ; eb d4
     test cl, cl                               ; 84 c9
-    je near 09a2dh                            ; 0f 84 b0 00
+    je near 09ab4h                            ; 0f 84 b0 00
     add cl, 002h                              ; 80 c1 02
     movzx bx, cl                              ; 0f b6 d9
@@ -14428,7 +14492,7 @@
     mov dx, si                                ; 89 f2
     mov ax, di                                ; 89 f8
-    call 09e7fh                               ; e8 ed 04
+    call 09f2bh                               ; e8 12 05
     cmp AL, strict byte 010h                  ; 3c 10
-    jne near 09a2dh                           ; 0f 85 95 00
+    jne near 09ab4h                           ; 0f 85 95 00
     mov byte [bp-006h], 000h                  ; c6 46 fa 00
     mov al, cl                                ; 88 c8
@@ -14437,29 +14501,29 @@
     mov dx, si                                ; 89 f2
     mov ax, di                                ; 89 f8
-    call 09ea3h                               ; e8 f9 04
+    call 09f4fh                               ; e8 1e 05
     mov dx, ax                                ; 89 c2
     and ax, strict word 0000fh                ; 25 0f 00
     sub ax, strict word 00004h                ; 2d 04 00
     cmp ax, strict word 0000bh                ; 3d 0b 00
-    jnbe short 099eeh                         ; 77 37
+    jnbe short 09a75h                         ; 77 37
     push CS                                   ; 0e
     pop ES                                    ; 07
     mov cx, strict word 00008h                ; b9 08 00
-    mov di, 09907h                            ; bf 07 99
+    mov di, 0998eh                            ; bf 8e 99
     repne scasb                               ; f2 ae
     sal cx, 1                                 ; d1 e1
     mov di, cx                                ; 89 cf
-    mov ax, word [cs:di-066f2h]               ; 2e 8b 85 0e 99
+    mov ax, word [cs:di-0666bh]               ; 2e 8b 85 95 99
     jmp ax                                    ; ff e0
     mov byte [bp-006h], 010h                  ; c6 46 fa 10
-    jmp short 099eeh                          ; eb 1c
+    jmp short 09a75h                          ; eb 1c
     mov byte [bp-006h], 014h                  ; c6 46 fa 14
-    jmp short 099eeh                          ; eb 16
+    jmp short 09a75h                          ; eb 16
     mov byte [bp-006h], 018h                  ; c6 46 fa 18
-    jmp short 099eeh                          ; eb 10
+    jmp short 09a75h                          ; eb 10
     mov byte [bp-006h], 01ch                  ; c6 46 fa 1c
-    jmp short 099eeh                          ; eb 0a
+    jmp short 09a75h                          ; eb 0a
     mov byte [bp-006h], 020h                  ; c6 46 fa 20
-    jmp short 099eeh                          ; eb 04
+    jmp short 09a75h                          ; eb 04
     mov byte [bp-006h], 024h                  ; c6 46 fa 24
     mov cx, dx                                ; 89 d1
@@ -14468,5 +14532,5 @@
     mov al, byte [bp-006h]                    ; 8a 46 fa
     test al, al                               ; 84 c0
-    je short 09a2dh                           ; 74 30
+    je short 09ab4h                           ; 74 30
     movzx bx, al                              ; 0f b6 d8
     movzx di, byte [bp-008h]                  ; 0f b6 7e f8
@@ -14474,7 +14538,7 @@
     mov dx, di                                ; 89 fa
     mov ax, si                                ; 89 f0
-    call 09ec5h                               ; e8 b6 04
+    call 09f71h                               ; e8 db 04
     test AL, strict byte 001h                 ; a8 01
-    je short 09a2dh                           ; 74 1a
+    je short 09ab4h                           ; 74 1a
     and AL, strict byte 0f0h                  ; 24 f0
     add ax, cx                                ; 01 c8
@@ -14484,7 +14548,7 @@
     mov dx, di                                ; 89 fa
     mov ax, si                                ; 89 f0
-    call 09eech                               ; e8 c5 04
+    call 09f98h                               ; e8 ea 04
     mov ax, word [bp-00ch]                    ; 8b 46 f4
-    call 097b8h                               ; e8 8b fd
+    call 0983fh                               ; e8 8b fd
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop di                                    ; 5f
@@ -14492,5 +14556,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-apm_out_str_:                                ; 0xf9a34 LB 0x39
+apm_out_str_:                                ; 0xf9abb LB 0x39
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14498,5 +14562,5 @@
     mov bx, ax                                ; 89 c3
     cmp byte [bx], 000h                       ; 80 3f 00
-    je short 09a49h                           ; 74 0a
+    je short 09ad0h                           ; 74 0a
     mov al, byte [bx]                         ; 8a 07
     out DX, AL                                ; ee
@@ -14505,22 +14569,27 @@
     db  00ah, 0c0h
     ; or al, al                                 ; 0a c0
-    jne short 09a41h                          ; 75 f8
+    jne short 09ac8h                          ; 75 f8
     lea sp, [bp-002h]                         ; 8d 66 fe
     pop bx                                    ; 5b
     pop bp                                    ; 5d
     retn                                      ; c3
-    nop                                       ; 90
-    call far 09aa2h:09b5ch                    ; 9a 5c 9b a2 9a
-    mov bp, 05c9ah                            ; bd 9a 5c
+    pop SS                                    ; 17
     wait                                      ; 9b
-    call 0f6f6h                               ; e8 9a 5c
+    jcxz 09a75h                               ; e3 9b
+    sub word [bp+di-064bch], bx               ; 29 9b 44 9b
+    jcxz 09a7bh                               ; e3 9b
+    outsw                                     ; 6f
     wait                                      ; 9b
-    in ax, DX                                 ; ed
-    call far 09b31h:09b31h                    ; 9a 31 9b 31 9b
-    xor word [bp+di-064d4h], bx               ; 31 9b 2c 9b
-    xor word [bp+di-064cfh], bx               ; 31 9b 31 9b
-    db  025h
+    jcxz 09a7fh                               ; e3 9b
+    je short 09a81h                           ; 74 9b
+    mov ax, 0b89bh                            ; b8 9b b8
     wait                                      ; 9b
-_apm_function:                               ; 0xf9a6d LB 0xf5
+    mov ax, 0b39bh                            ; b8 9b b3
+    wait                                      ; 9b
+    mov ax, 0b89bh                            ; b8 9b b8
+    wait                                      ; 9b
+    lodsb                                     ; ac
+    wait                                      ; 9b
+_apm_function:                               ; 0xf9af4 LB 0xf5
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14530,21 +14599,21 @@
     xor ah, ah                                ; 30 e4
     cmp ax, strict word 0000eh                ; 3d 0e 00
-    jnbe near 09b31h                          ; 0f 87 b0 00
+    jnbe near 09bb8h                          ; 0f 87 b0 00
     mov bx, ax                                ; 89 c3
     add bx, ax                                ; 01 c3
     mov dx, word [bp+018h]                    ; 8b 56 18
     or dl, 001h                               ; 80 ca 01
-    jmp word [cs:bx-065b1h]                   ; 2e ff a7 4f 9a
+    jmp word [cs:bx-0652ah]                   ; 2e ff a7 d6 9a
     mov word [bp+012h], 00102h                ; c7 46 12 02 01
     mov word [bp+00ch], 0504dh                ; c7 46 0c 4d 50
     mov word [bp+010h], strict word 00003h    ; c7 46 10 03 00
-    jmp near 09b5ch                           ; e9 ba 00
+    jmp near 09be3h                           ; e9 ba 00
     mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
-    mov word [bp+00ch], 0a114h                ; c7 46 0c 14 a1
+    mov word [bp+00ch], 0a1c4h                ; c7 46 0c c4 a1
     mov word [bp+010h], 0f000h                ; c7 46 10 00 f0
     mov ax, strict word 0fff0h                ; b8 f0 ff
     mov word [bp+006h], ax                    ; 89 46 06
     mov word [bp+004h], ax                    ; 89 46 04
-    jmp near 09b5ch                           ; e9 9f 00
+    jmp near 09be3h                           ; e9 9f 00
     mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
     mov word [bp+00ch], 0da40h                ; c7 46 0c 40 da
@@ -14559,41 +14628,41 @@
     mov si, ax                                ; 89 c6
     sal esi, 010h                             ; 66 c1 e6 10
-    jmp near 09b5ch                           ; e9 74 00
+    jmp near 09be3h                           ; e9 74 00
     sti                                       ; fb
     hlt                                       ; f4
-    jmp near 09b5ch                           ; e9 6f 00
+    jmp near 09be3h                           ; e9 6f 00
     cmp word [bp+010h], strict byte 00003h    ; 83 7e 10 03
-    je short 09b12h                           ; 74 1f
+    je short 09b99h                           ; 74 1f
     cmp word [bp+010h], strict byte 00002h    ; 83 7e 10 02
-    je short 09b0ah                           ; 74 11
+    je short 09b91h                           ; 74 11
     cmp word [bp+010h], strict byte 00001h    ; 83 7e 10 01
-    jne short 09b1ah                          ; 75 1b
+    jne short 09ba1h                          ; 75 1b
     mov dx, 0040fh                            ; ba 0f 04
-    mov ax, 00d22h                            ; b8 22 0d
-    call 09a34h                               ; e8 2c ff
-    jmp short 09b5ch                          ; eb 52
+    mov ax, 00d84h                            ; b8 84 0d
+    call 09abbh                               ; e8 2c ff
+    jmp short 09be3h                          ; eb 52
     mov dx, 0040fh                            ; ba 0f 04
-    mov ax, 00d2ah                            ; b8 2a 0d
-    jmp short 09b05h                          ; eb f3
+    mov ax, 00d8ch                            ; b8 8c 0d
+    jmp short 09b8ch                          ; eb f3
     mov dx, 0040fh                            ; ba 0f 04
-    mov ax, 00d32h                            ; b8 32 0d
-    jmp short 09b05h                          ; eb eb
+    mov ax, 00d94h                            ; b8 94 0d
+    jmp short 09b8ch                          ; 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 09b5ch                          ; eb 37
+    jmp short 09be3h                          ; eb 37
     mov word [bp+012h], 00102h                ; c7 46 12 02 01
-    jmp short 09b5ch                          ; eb 30
+    jmp short 09be3h                          ; eb 30
     or ah, 080h                               ; 80 cc 80
-    jmp short 09b1dh                          ; eb ec
-    mov bx, 00db2h                            ; bb b2 0d
+    jmp short 09ba4h                          ; eb ec
+    mov bx, 00e14h                            ; bb 14 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01a2ah                               ; e8 ee 7e
+    call 01a2ah                               ; e8 67 7e
     push word [bp+00ch]                       ; ff 76 0c
     push word [bp+012h]                       ; ff 76 12
-    push 00d3bh                               ; 68 3b 0d
+    push 00d9dh                               ; 68 9d 0d
     push strict byte 00004h                   ; 6a 04
-    call 01a6bh                               ; e8 21 7f
+    call 01a6bh                               ; e8 9a 7e
     add sp, strict byte 00008h                ; 83 c4 08
     mov ax, word [bp+012h]                    ; 8b 46 12
@@ -14606,5 +14675,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci16_select_reg_:                           ; 0xf9b62 LB 0x24
+pci16_select_reg_:                           ; 0xf9be9 LB 0x24
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14623,5 +14692,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci16_find_device_:                          ; 0xf9b86 LB 0xf7
+pci16_find_device_:                          ; 0xf9c0d LB 0xf7
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14637,8 +14706,8 @@
     mov byte [bp-008h], 000h                  ; c6 46 f8 00
     test bl, 007h                             ; f6 c3 07
-    jne short 09bceh                          ; 75 2d
+    jne short 09c55h                          ; 75 2d
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, bx                                ; 89 d8
-    call 09b62h                               ; e8 b9 ff
+    call 09be9h                               ; e8 b9 ff
     mov dx, 00cfeh                            ; ba fe 0c
     in AL, DX                                 ; ec
@@ -14647,23 +14716,23 @@
     mov byte [bp-006h], al                    ; 88 46 fa
     cmp AL, strict byte 0ffh                  ; 3c ff
-    jne short 09bbch                          ; 75 06
+    jne short 09c43h                          ; 75 06
     add bx, strict byte 00008h                ; 83 c3 08
-    jmp near 09c4fh                           ; e9 93 00
+    jmp near 09cd6h                           ; e9 93 00
     test byte [bp-006h], 080h                 ; f6 46 fa 80
-    je short 09bc9h                           ; 74 07
+    je short 09c50h                           ; 74 07
     mov word [bp-00ah], strict word 00001h    ; c7 46 f6 01 00
-    jmp short 09bceh                          ; eb 05
+    jmp short 09c55h                          ; eb 05
     mov word [bp-00ah], strict word 00008h    ; c7 46 f6 08 00
     mov al, byte [bp-006h]                    ; 8a 46 fa
     and AL, strict byte 007h                  ; 24 07
     cmp AL, strict byte 001h                  ; 3c 01
-    jne short 09bf6h                          ; 75 1f
+    jne short 09c7dh                          ; 75 1f
     mov ax, bx                                ; 89 d8
     shr ax, 008h                              ; c1 e8 08
     test ax, ax                               ; 85 c0
-    jne short 09bf6h                          ; 75 16
+    jne short 09c7dh                          ; 75 16
     mov dx, strict word 0001ah                ; ba 1a 00
     mov ax, bx                                ; 89 d8
-    call 09b62h                               ; e8 7a ff
+    call 09be9h                               ; e8 7a ff
     mov dx, 00cfeh                            ; ba fe 0c
     in AL, DX                                 ; ec
@@ -14671,13 +14740,13 @@
     ; sub ah, ah                                ; 2a e4
     cmp al, byte [bp-008h]                    ; 3a 46 f8
-    jbe short 09bf6h                          ; 76 03
+    jbe short 09c7dh                          ; 76 03
     mov byte [bp-008h], al                    ; 88 46 f8
     test di, di                               ; 85 ff
-    je short 09bffh                           ; 74 05
+    je short 09c86h                           ; 74 05
     mov dx, strict word 00008h                ; ba 08 00
-    jmp short 09c01h                          ; eb 02
+    jmp short 09c88h                          ; eb 02
     xor dx, dx                                ; 31 d2
     mov ax, bx                                ; 89 d8
-    call 09b62h                               ; e8 5c ff
+    call 09be9h                               ; e8 5c ff
     mov dx, 00cfch                            ; ba fc 0c
     in eax, DX                                ; 66 ed
@@ -14690,22 +14759,22 @@
     mov word [bp-010h], strict word 00000h    ; c7 46 f0 00 00
     test di, di                               ; 85 ff
-    je short 09c30h                           ; 74 0f
+    je short 09cb7h                           ; 74 0f
     mov cx, strict word 00008h                ; b9 08 00
     shr dx, 1                                 ; d1 ea
     rcr ax, 1                                 ; d1 d8
-    loop 09c24h                               ; e2 fa
+    loop 09cabh                               ; e2 fa
     mov word [bp-00eh], ax                    ; 89 46 f2
     mov word [bp-00ch], dx                    ; 89 56 f4
     mov ax, word [bp-00ch]                    ; 8b 46 f4
     cmp ax, word [bp-014h]                    ; 3b 46 ec
-    jne short 09c40h                          ; 75 08
+    jne short 09cc7h                          ; 75 08
     mov ax, word [bp-00eh]                    ; 8b 46 f2
     cmp ax, word [bp-012h]                    ; 3b 46 ee
-    je short 09c46h                           ; 74 06
+    je short 09ccdh                           ; 74 06
     cmp word [bp-010h], strict byte 00000h    ; 83 7e f0 00
-    je short 09c4ch                           ; 74 06
+    je short 09cd3h                           ; 74 06
     dec si                                    ; 4e
     cmp si, strict byte 0ffffh                ; 83 fe ff
-    je short 09c5eh                           ; 74 12
+    je short 09ce5h                           ; 74 12
     add bx, word [bp-00ah]                    ; 03 5e f6
     mov dx, bx                                ; 89 da
@@ -14713,9 +14782,9 @@
     movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
     cmp dx, ax                                ; 39 c2
-    jbe near 09b9ch                           ; 0f 86 3e ff
+    jbe near 09c23h                           ; 0f 86 3e ff
     cmp si, strict byte 0ffffh                ; 83 fe ff
-    jne short 09c67h                          ; 75 04
+    jne short 09ceeh                          ; 75 04
     mov ax, bx                                ; 89 d8
-    jmp short 09c6ah                          ; eb 03
+    jmp short 09cf1h                          ; eb 03
     mov ax, strict word 0ffffh                ; b8 ff ff
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -14724,12 +14793,10 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-    pop di                                    ; 5f
-    popfw                                     ; 9d
-    jns short 09c12h                          ; 79 9d
-    mov [di-0625fh], ds                       ; 8c 9d a1 9d
-    mov AH, strict byte 09dh                  ; b4 9d
-    db  0c7h
-    popfw                                     ; 9d
-_pci16_function:                             ; 0xf9c7d LB 0x1d7
+    out strict byte 09dh, AL                  ; e6 9d
+    add byte [bp-061edh], bl                  ; 00 9e 13 9e
+    sub byte [bp-061c5h], bl                  ; 28 9e 3b 9e
+    dec si                                    ; 4e
+    sahf                                      ; 9e
+_pci16_function:                             ; 0xf9d04 LB 0x1d7
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14745,17 +14812,17 @@
     xor ah, ah                                ; 30 e4
     cmp bx, strict byte 00003h                ; 83 fb 03
-    jc short 09cb6h                           ; 72 1a
-    jbe short 09d0eh                          ; 76 70
+    jc short 09d3dh                           ; 72 1a
+    jbe short 09d95h                          ; 76 70
     cmp bx, strict byte 0000eh                ; 83 fb 0e
-    je near 09ddbh                            ; 0f 84 36 01
+    je near 09e62h                            ; 0f 84 36 01
     cmp bx, strict byte 00008h                ; 83 fb 08
-    jc near 09e20h                            ; 0f 82 74 01
+    jc near 09ea7h                            ; 0f 82 74 01
     cmp bx, strict byte 0000dh                ; 83 fb 0d
-    jbe near 09d33h                           ; 0f 86 80 00
-    jmp near 09e20h                           ; e9 6a 01
+    jbe near 09dbah                           ; 0f 86 80 00
+    jmp near 09ea7h                           ; e9 6a 01
     cmp bx, strict byte 00002h                ; 83 fb 02
-    je short 09cdeh                           ; 74 23
+    je short 09d65h                           ; 74 23
     cmp bx, strict byte 00001h                ; 83 fb 01
-    jne near 09e20h                           ; 0f 85 5e 01
+    jne near 09ea7h                           ; 0f 85 5e 01
     mov word [bp+020h], strict word 00001h    ; c7 46 20 01 00
     mov word [bp+014h], 00210h                ; c7 46 14 10 02
@@ -14763,49 +14830,49 @@
     mov word [bp+018h], 04350h                ; c7 46 18 50 43
     mov word [bp+01ah], 02049h                ; c7 46 1a 49 20
-    jmp near 09e4dh                           ; e9 6f 01
+    jmp near 09ed4h                           ; e9 6f 01
     cmp word [bp+018h], strict byte 0ffffh    ; 83 7e 18 ff
-    jne short 09ceah                          ; 75 06
+    jne short 09d71h                          ; 75 06
     or ah, 083h                               ; 80 cc 83
-    jmp near 09e46h                           ; e9 5c 01
+    jmp near 09ecdh                           ; e9 5c 01
     mov bx, word [bp+008h]                    ; 8b 5e 08
     mov dx, word [bp+01ch]                    ; 8b 56 1c
     mov ax, word [bp+018h]                    ; 8b 46 18
     xor cx, cx                                ; 31 c9
-    call 09b86h                               ; e8 8e fe
+    call 09c0dh                               ; e8 8e fe
     cmp ax, strict word 0ffffh                ; 3d ff ff
-    jne short 09d08h                          ; 75 0b
+    jne short 09d8fh                          ; 75 0b
     mov ax, word [bp+020h]                    ; 8b 46 20
     xor ah, ah                                ; 30 e4
     or ah, 086h                               ; 80 cc 86
-    jmp near 09e46h                           ; e9 3e 01
+    jmp near 09ecdh                           ; e9 3e 01
     mov word [bp+014h], ax                    ; 89 46 14
-    jmp near 09e4dh                           ; e9 3f 01
+    jmp near 09ed4h                           ; e9 3f 01
     mov bx, word [bp+008h]                    ; 8b 5e 08
     mov ax, word [bp+01ch]                    ; 8b 46 1c
     mov dx, word [bp+01eh]                    ; 8b 56 1e
     mov cx, strict word 00001h                ; b9 01 00
-    call 09b86h                               ; e8 69 fe
+    call 09c0dh                               ; e8 69 fe
     cmp ax, strict word 0ffffh                ; 3d ff ff
-    jne short 09d2dh                          ; 75 0b
+    jne short 09db4h                          ; 75 0b
     mov ax, word [bp+020h]                    ; 8b 46 20
     xor ah, ah                                ; 30 e4
     or ah, 086h                               ; 80 cc 86
-    jmp near 09e46h                           ; e9 19 01
+    jmp near 09ecdh                           ; e9 19 01
     mov word [bp+014h], ax                    ; 89 46 14
-    jmp near 09e4dh                           ; e9 1a 01
+    jmp near 09ed4h                           ; e9 1a 01
     cmp word [bp+004h], 00100h                ; 81 7e 04 00 01
-    jc short 09d40h                           ; 72 06
+    jc short 09dc7h                           ; 72 06
     or ah, 087h                               ; 80 cc 87
-    jmp near 09e46h                           ; e9 06 01
+    jmp near 09ecdh                           ; e9 06 01
     mov dx, word [bp+004h]                    ; 8b 56 04
     mov ax, word [bp+014h]                    ; 8b 46 14
-    call 09b62h                               ; e8 19 fe
+    call 09be9h                               ; e8 19 fe
     mov bx, word [bp+020h]                    ; 8b 5e 20
     xor bh, bh                                ; 30 ff
     sub bx, strict byte 00008h                ; 83 eb 08
     cmp bx, strict byte 00005h                ; 83 fb 05
-    jnbe near 09e4dh                          ; 0f 87 f5 00
+    jnbe near 09ed4h                          ; 0f 87 f5 00
     add bx, bx                                ; 01 db
-    jmp word [cs:bx-0638fh]                   ; 2e ff a7 71 9c
+    jmp word [cs:bx-06308h]                   ; 2e ff a7 f8 9c
     mov bx, word [bp+01ch]                    ; 8b 5e 1c
     xor bl, bl                                ; 30 db
@@ -14818,5 +14885,5 @@
     or bx, ax                                 ; 09 c3
     mov word [bp+01ch], bx                    ; 89 5e 1c
-    jmp near 09e4dh                           ; e9 d4 00
+    jmp near 09ed4h                           ; e9 d4 00
     mov dx, word [bp+004h]                    ; 8b 56 04
     xor dh, dh                                ; 30 f6
@@ -14825,5 +14892,5 @@
     in ax, DX                                 ; ed
     mov word [bp+01ch], ax                    ; 89 46 1c
-    jmp near 09e4dh                           ; e9 c1 00
+    jmp near 09ed4h                           ; e9 c1 00
     mov dx, 00cfch                            ; ba fc 0c
     in eax, DX                                ; 66 ed
@@ -14834,5 +14901,5 @@
     mov word [bp+01ch], ax                    ; 89 46 1c
     mov word [bp+01eh], dx                    ; 89 56 1e
-    jmp near 09e4dh                           ; e9 ac 00
+    jmp near 09ed4h                           ; e9 ac 00
     mov ax, word [bp+01ch]                    ; 8b 46 1c
     mov dx, word [bp+004h]                    ; 8b 56 04
@@ -14841,5 +14908,5 @@
     add dx, 00cfch                            ; 81 c2 fc 0c
     out DX, AL                                ; ee
-    jmp near 09e4dh                           ; e9 99 00
+    jmp near 09ed4h                           ; e9 99 00
     mov ax, word [bp+01ch]                    ; 8b 46 1c
     mov dx, word [bp+004h]                    ; 8b 56 04
@@ -14848,5 +14915,5 @@
     add dx, 00cfch                            ; 81 c2 fc 0c
     out DX, ax                                ; ef
-    jmp near 09e4dh                           ; e9 86 00
+    jmp near 09ed4h                           ; e9 86 00
     mov ax, word [bp+01ch]                    ; 8b 46 1c
     mov cx, word [bp+01eh]                    ; 8b 4e 1e
@@ -14857,5 +14924,5 @@
     ; mov ax, cx                                ; 8b c1
     out DX, eax                               ; 66 ef
-    jmp short 09e4dh                          ; eb 72
+    jmp short 09ed4h                          ; eb 72
     mov bx, word [bp+004h]                    ; 8b 5e 04
     mov es, [bp+026h]                         ; 8e 46 26
@@ -14864,5 +14931,5 @@
     mov cx, word [0f370h]                     ; 8b 0e 70 f3
     cmp cx, word [es:bx]                      ; 26 3b 0f
-    jbe short 09e01h                          ; 76 11
+    jbe short 09e88h                          ; 76 11
     mov ax, word [bp+020h]                    ; 8b 46 20
     xor ah, ah                                ; 30 e4
@@ -14870,5 +14937,5 @@
     mov word [bp+020h], ax                    ; 89 46 20
     or word [bp+02ch], strict byte 00001h     ; 83 4e 2c 01
-    jmp short 09e15h                          ; eb 14
+    jmp short 09e9ch                          ; eb 14
     les di, [es:bx+002h]                      ; 26 c4 7f 02
     mov si, 0f190h                            ; be 90 f1
@@ -14882,16 +14949,16 @@
     les bx, [bp-008h]                         ; c4 5e f8
     mov word [es:bx], ax                      ; 26 89 07
-    jmp short 09e4dh                          ; eb 2d
-    mov bx, 00db2h                            ; bb b2 0d
+    jmp short 09ed4h                          ; eb 2d
+    mov bx, 00e14h                            ; bb 14 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01a2ah                               ; e8 ff 7b
+    call 01a2ah                               ; e8 78 7b
     mov ax, word [bp+014h]                    ; 8b 46 14
     push ax                                   ; 50
     mov ax, word [bp+020h]                    ; 8b 46 20
     push ax                                   ; 50
-    push 00d6eh                               ; 68 6e 0d
+    push 00dd0h                               ; 68 d0 0d
     push strict byte 00004h                   ; 6a 04
-    call 01a6bh                               ; e8 30 7c
+    call 01a6bh                               ; e8 a9 7b
     add sp, strict byte 00008h                ; 83 c4 08
     mov ax, word [bp+020h]                    ; 8b 46 20
@@ -14905,5 +14972,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_find_classcode_:                         ; 0xf9e54 LB 0x2b
+pci_find_classcode_:                         ; 0xf9edb LB 0x2b
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14920,5 +14987,5 @@
     int 01ah                                  ; cd 1a
     cmp ah, 000h                              ; 80 fc 00
-    je near 09e75h                            ; 0f 84 03 00
+    je near 09efch                            ; 0f 84 03 00
     mov bx, strict word 0ffffh                ; bb ff ff
     mov ax, bx                                ; 89 d8
@@ -14929,5 +14996,26 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_read_config_byte_:                       ; 0xf9e7f LB 0x24
+pci_find_device_:                            ; 0xf9f06 LB 0x25
+    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, 0b102h                            ; b8 02 b1
+    int 01ah                                  ; cd 1a
+    cmp ah, 000h                              ; 80 fc 00
+    je near 09f21h                            ; 0f 84 03 00
+    mov bx, strict word 0ffffh                ; bb ff ff
+    mov ax, bx                                ; 89 d8
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+pci_read_config_byte_:                       ; 0xf9f2b LB 0x24
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14948,5 +15036,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_read_config_word_:                       ; 0xf9ea3 LB 0x22
+pci_read_config_word_:                       ; 0xf9f4f LB 0x22
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14967,5 +15055,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_read_config_dword_:                      ; 0xf9ec5 LB 0x27
+pci_read_config_dword_:                      ; 0xf9f71 LB 0x27
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14988,5 +15076,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_write_config_word_:                      ; 0xf9eec LB 0x1c
+pci_write_config_word_:                      ; 0xf9f98 LB 0x1c
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15003,5 +15091,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-vds_is_present_:                             ; 0xf9f08 LB 0x1d
+vds_is_present_:                             ; 0xf9fb4 LB 0x1d
     push bx                                   ; 53
     push bp                                   ; 55
@@ -15011,5 +15099,5 @@
     mov es, ax                                ; 8e c0
     test byte [es:bx], 020h                   ; 26 f6 07 20
-    je short 09f20h                           ; 74 06
+    je short 09fcch                           ; 74 06
     mov ax, strict word 00001h                ; b8 01 00
     pop bp                                    ; 5d
@@ -15020,5 +15108,5 @@
     pop bx                                    ; 5b
     retn                                      ; c3
-vds_real_to_lin_:                            ; 0xf9f25 LB 0x1e
+vds_real_to_lin_:                            ; 0xf9fd1 LB 0x1e
     push bx                                   ; 53
     push cx                                   ; 51
@@ -15031,5 +15119,5 @@
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 09f33h                               ; e2 fa
+    loop 09fdfh                               ; e2 fa
     xor cx, cx                                ; 31 c9
     add ax, bx                                ; 01 d8
@@ -15039,5 +15127,5 @@
     pop bx                                    ; 5b
     retn                                      ; c3
-vds_build_sg_list_:                          ; 0xf9f43 LB 0x79
+vds_build_sg_list_:                          ; 0xf9fef LB 0x79
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15053,21 +15141,21 @@
     mov bx, word [bp+006h]                    ; 8b 5e 06
     mov word [es:di+002h], bx                 ; 26 89 5d 02
-    call 09f25h                               ; e8 c3 ff
+    call 09fd1h                               ; 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 09f08h                               ; e8 93 ff
+    call 09fb4h                               ; e8 93 ff
     test ax, ax                               ; 85 c0
-    je short 09f8ch                           ; 74 13
+    je short 0a038h                           ; 74 13
     mov es, si                                ; 8e c6
     mov ax, 08105h                            ; b8 05 81
     mov dx, strict word 00000h                ; ba 00 00
     int 04bh                                  ; cd 4b
-    jc near 09f89h                            ; 0f 82 02 00
+    jc near 0a035h                            ; 0f 82 02 00
     db  032h, 0c0h
     ; xor al, al                                ; 32 c0
     cbw                                       ; 98
-    jmp short 09fb3h                          ; eb 27
+    jmp short 0a05fh                          ; eb 27
     mov es, si                                ; 8e c6
     mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00
@@ -15086,5 +15174,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-vds_free_sg_list_:                           ; 0xf9fbc LB 0x34
+vds_free_sg_list_:                           ; 0xfa068 LB 0x38
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15092,7 +15180,7 @@
     push di                                   ; 57
     mov bx, ax                                ; 89 c3
-    call 09f08h                               ; e8 42 ff
+    call 09fb4h                               ; e8 42 ff
     test ax, ax                               ; 85 c0
-    je short 09fddh                           ; 74 13
+    je short 0a089h                           ; 74 13
     mov di, bx                                ; 89 df
     mov es, dx                                ; 8e c2
@@ -15100,5 +15188,5 @@
     mov dx, strict word 00000h                ; ba 00 00
     int 04bh                                  ; cd 4b
-    jc near 09fdch                            ; 0f 82 02 00
+    jc near 0a088h                            ; 0f 82 02 00
     db  032h, 0c0h
     ; xor al, al                                ; 32 c0
@@ -15111,6 +15199,6 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-    times 0x4 db 0
-__U4M:                                       ; 0xf9ff0 LB 0x40
+    times 0x8 db 0
+__U4M:                                       ; 0xfa0a0 LB 0x40
     pushfw                                    ; 9c
     push eax                                  ; 66 50
@@ -15138,5 +15226,5 @@
     retn                                      ; c3
     times 0xf db 0
-__U4D:                                       ; 0xfa030 LB 0x40
+__U4D:                                       ; 0xfa0e0 LB 0x40
     pushfw                                    ; 9c
     push eax                                  ; 66 50
@@ -15169,7 +15257,7 @@
     retn                                      ; c3
     times 0x7 db 0
-__U8RS:                                      ; 0xfa070 LB 0x10
+__U8RS:                                      ; 0xfa120 LB 0x10
     test si, si                               ; 85 f6
-    je short 0a07fh                           ; 74 0b
+    je short 0a12fh                           ; 74 0b
     shr ax, 1                                 ; d1 e8
     rcr bx, 1                                 ; d1 db
@@ -15177,9 +15265,9 @@
     rcr dx, 1                                 ; d1 da
     dec si                                    ; 4e
-    jne short 0a074h                          ; 75 f5
+    jne short 0a124h                          ; 75 f5
     retn                                      ; c3
-__U8LS:                                      ; 0xfa080 LB 0x10
+__U8LS:                                      ; 0xfa130 LB 0x10
     test si, si                               ; 85 f6
-    je short 0a08fh                           ; 74 0b
+    je short 0a13fh                           ; 74 0b
     sal dx, 1                                 ; d1 e2
     rcl cx, 1                                 ; d1 d1
@@ -15187,7 +15275,7 @@
     rcl ax, 1                                 ; d1 d0
     dec si                                    ; 4e
-    jne short 0a084h                          ; 75 f5
+    jne short 0a134h                          ; 75 f5
     retn                                      ; c3
-_fmemset_:                                   ; 0xfa090 LB 0x10
+_fmemset_:                                   ; 0xfa140 LB 0x10
     push di                                   ; 57
     mov es, dx                                ; 8e c2
@@ -15200,5 +15288,5 @@
     retn                                      ; c3
     times 0x3 db 0
-_fmemcpy_:                                   ; 0xfa0a0 LB 0x3a
+_fmemcpy_:                                   ; 0xfa150 LB 0x3a
     push bp                                   ; 55
     db  08bh, 0ech
@@ -15225,7 +15313,17 @@
     add byte [bx+si], al                      ; 00 00
     add byte [bx+si], al                      ; 00 00
-    db  0f0h, 0a0h, 0f2h, 0a0h, 0f6h, 0a0h, 0f6h, 0a0h, 0f6h, 0a0h, 0f8h, 0a0h, 0f8h, 0a0h, 0fah, 0a0h
-    db  0feh, 0a0h, 0feh, 0a0h, 000h, 0a1h, 005h, 0a1h, 007h, 0a1h
-apm_worker:                                  ; 0xfa0da LB 0x3a
+    mov AL, byte [0a2a1h]                     ; a0 a1 a2
+    mov ax, word [0a1a6h]                     ; a1 a6 a1
+    cmpsb                                     ; a6
+    mov ax, word [0a1a6h]                     ; a1 a6 a1
+    test AL, strict byte 0a1h                 ; a8 a1
+    test AL, strict byte 0a1h                 ; a8 a1
+    stosb                                     ; aa
+    mov ax, word [0a1aeh]                     ; a1 ae a1
+    scasb                                     ; ae
+    mov ax, word [0a1b0h]                     ; a1 b0 a1
+    mov CH, strict byte 0a1h                  ; b5 a1
+    mov BH, strict byte 0a1h                  ; b7 a1
+apm_worker:                                  ; 0xfa18a LB 0x3a
     sti                                       ; fb
     push ax                                   ; 50
@@ -15239,21 +15337,21 @@
     pop ax                                    ; 58
     mov AH, strict byte 053h                  ; b4 53
-    jnc short 0a110h                          ; 73 25
-    jmp word [cs:bp-05f40h]                   ; 2e ff a6 c0 a0
-    jmp short 0a10eh                          ; eb 1c
+    jnc short 0a1c0h                          ; 73 25
+    jmp word [cs:bp-05e90h]                   ; 2e ff a6 70 a1
+    jmp short 0a1beh                          ; eb 1c
     sti                                       ; fb
     hlt                                       ; f4
-    jmp short 0a10eh                          ; eb 18
-    jmp short 0a10eh                          ; eb 16
-    jmp short 0a110h                          ; eb 16
+    jmp short 0a1beh                          ; eb 18
+    jmp short 0a1beh                          ; eb 16
+    jmp short 0a1c0h                          ; eb 16
     mov AH, strict byte 080h                  ; b4 80
-    jmp short 0a112h                          ; eb 14
-    jmp short 0a110h                          ; eb 10
+    jmp short 0a1c2h                          ; eb 14
+    jmp short 0a1c0h                          ; eb 10
     mov ax, 00102h                            ; b8 02 01
-    jmp short 0a10eh                          ; eb 09
-    jmp short 0a10eh                          ; eb 07
+    jmp short 0a1beh                          ; eb 09
+    jmp short 0a1beh                          ; eb 07
     mov BL, strict byte 000h                  ; b3 00
     mov cx, strict word 00000h                ; b9 00 00
-    jmp short 0a10eh                          ; eb 00
+    jmp short 0a1beh                          ; eb 00
     clc                                       ; f8
     retn                                      ; c3
@@ -15261,5 +15359,5 @@
     stc                                       ; f9
     retn                                      ; c3
-apm_pm16_entry:                              ; 0xfa114 LB 0x11
+apm_pm16_entry:                              ; 0xfa1c4 LB 0x11
     mov AH, strict byte 002h                  ; b4 02
     push DS                                   ; 1e
@@ -15269,11 +15367,11 @@
     add bp, strict byte 00008h                ; 83 c5 08
     mov ds, bp                                ; 8e dd
-    call 0a0dah                               ; e8 b8 ff
+    call 0a18ah                               ; e8 b8 ff
     pop bp                                    ; 5d
     pop DS                                    ; 1f
     retf                                      ; cb
 
-  ; Padding 0x38db bytes at 0xfa125
-  times 14555 db 0
+  ; Padding 0x382b bytes at 0xfa1d5
+  times 14379 db 0
 
 section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO
@@ -15322,5 +15420,5 @@
     add bp, strict byte 00008h                ; 83 c5 08
     push ebp                                  ; 66 55
-    mov bp, 0a116h                            ; bd 16 a1
+    mov bp, 0a1c6h                            ; bd c6 a1
     add byte [bx+si], al                      ; 00 00
     push ebp                                  ; 66 55
@@ -16057,6 +16155,6 @@
     call 01da8h                               ; e8 65 3a
     call 02235h                               ; e8 ef 3e
-    call 0991eh                               ; e8 d5 b5
-    call 08802h                               ; e8 b6 a4
+    call 099a5h                               ; e8 5c b6
+    call 0886eh                               ; e8 22 a5
     call 0ed2fh                               ; e8 e0 09
     call 0e2d2h                               ; e8 80 ff
@@ -16946,5 +17044,5 @@
     popfw                                     ; 9d
     jmp short 0f8a7h                          ; eb 13
-    call 09a6dh                               ; e8 d6 a1
+    call 09af4h                               ; e8 5d a2
     jmp short 0f88eh                          ; eb f5
 int15_handler_mouse:                         ; 0xff899 LB 0x5
@@ -17100,5 +17198,5 @@
     cld                                       ; fc
     pushad                                    ; 66 60
-    call 09c7dh                               ; e8 00 9e
+    call 09d04h                               ; e8 87 9e
     popad                                     ; 66 61
     pop DS                                    ; 1f
@@ -17214,3 +17312,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, 0cah
+    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 037h
Index: trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.md5sum
===================================================================
--- trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.md5sum	(revision 67805)
+++ trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.md5sum	(revision 67807)
@@ -1,1 +1,1 @@
-da1ff89ad5a9af36b6b7a00f1397d543 *VBoxPcBios386.rom
+f85d1e93260947edc3616ca0a94b2b5f *VBoxPcBios386.rom
Index: trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.asm
===================================================================
--- trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.asm	(revision 67805)
+++ trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.asm	(revision 67807)
@@ -988,13 +988,13 @@
     db  001h, 000h, 002h, 002h, 003h, 003h, 004h, 004h, 005h, 005h, 00eh, 006h, 00fh, 006h, 000h
 _pktacc:                                     ; 0xf006a LB 0xc
-    db  000h, 000h, 000h, 000h, 000h, 000h, 0a1h, 02bh, 00bh, 082h, 0a6h, 091h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 0a1h, 02bh, 00bh, 082h, 033h, 092h
 _softrst:                                    ; 0xf0076 LB 0xc
     db  000h, 000h, 000h, 000h, 000h, 000h, 02ch, 02eh, 02eh, 03ch, 02eh, 03ch
 _dskacc:                                     ; 0xf0082 LB 0x2e
     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h, 02ah, 046h, 02bh, 000h, 000h, 000h, 000h
-    db  039h, 080h, 022h, 081h, 074h, 090h, 01eh, 091h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
+    db  039h, 080h, 022h, 081h, 001h, 091h, 0abh, 091h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
     db  032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h
 
-section CONST progbits vstart=0xb0 align=1 ; size=0xcde class=DATA group=DGROUP
+section CONST progbits vstart=0xb0 align=1 ; size=0xd40 class=DATA group=DGROUP
     db   'NMI Handler called', 00ah, 000h
     db   'INT18: BOOT FAILURE', 00ah, 000h
@@ -1101,5 +1101,8 @@
     db   'Disk %d has an unsupported sector size of %u', 00ah, 000h
     db   'SCSI %d-ID#%d: LCHS=%lu/%u/%u 0x%llx sectors', 00ah, 000h
-    db   'SCSI %d-ID#%d: CD/DVD-ROM', 00ah, 000h, 000h
+    db   'SCSI %d-ID#%d: CD/DVD-ROM', 00ah, 000h
+    db   'scsi_pci_init', 000h
+    db   '%s: Adapter %x:%x not found, how come?!', 00ah, 000h
+    db   '%s: Adapter %x:%x found at %x, enabling BM', 00ah, 000h
     db   'ahci_read_sectors', 000h
     db   '%s: device_id out of range %d', 00ah, 000h
@@ -1114,18 +1117,18 @@
     db   'PCI: Unsupported function AX=%04X BX=%04X called', 00ah, 000h
 
-section CONST2 progbits vstart=0xd8e align=1 ; size=0x3fa class=DATA group=DGROUP
-_bios_cvs_version_string:                    ; 0xf0d8e LB 0x12
+section CONST2 progbits vstart=0xdf0 align=1 ; size=0x3fa class=DATA group=DGROUP
+_bios_cvs_version_string:                    ; 0xf0df0 LB 0x12
     db  'VirtualBox 5.1.51', 000h
-_bios_prefix_string:                         ; 0xf0da0 LB 0x8
+_bios_prefix_string:                         ; 0xf0e02 LB 0x8
     db  'BIOS: ', 000h, 000h
-_isotag:                                     ; 0xf0da8 LB 0x6
+_isotag:                                     ; 0xf0e0a LB 0x6
     db  'CD001', 000h
-_eltorito:                                   ; 0xf0dae LB 0x18
+_eltorito:                                   ; 0xf0e10 LB 0x18
     db  'EL TORITO SPECIFICATION', 000h
-_drivetypes:                                 ; 0xf0dc6 LB 0x28
+_drivetypes:                                 ; 0xf0e28 LB 0x28
     db  046h, 06ch, 06fh, 070h, 070h, 079h, 000h, 000h, 000h, 000h, 048h, 061h, 072h, 064h, 020h, 044h
     db  069h, 073h, 06bh, 000h, 043h, 044h, 02dh, 052h, 04fh, 04dh, 000h, 000h, 000h, 000h, 04ch, 041h
     db  04eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-_scan_to_scanascii:                          ; 0xf0dee LB 0x37a
+_scan_to_scanascii:                          ; 0xf0e50 LB 0x37a
     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 01bh, 001h, 01bh, 001h, 01bh, 001h
     db  000h, 001h, 000h, 000h, 031h, 002h, 021h, 002h, 000h, 000h, 000h, 078h, 000h, 000h, 032h, 003h
@@ -1184,11 +1187,11 @@
     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h, 000h, 087h, 000h, 089h, 000h, 08bh, 000h, 000h
     db  000h, 086h, 000h, 088h, 000h, 08ah, 000h, 08ch, 000h, 000h
-_panic_msg_keyb_buffer_full:                 ; 0xf1168 LB 0x20
+_panic_msg_keyb_buffer_full:                 ; 0xf11ca LB 0x20
     db  '%s: keyboard input buffer full', 00ah, 000h
 
-  ; Padding 0x478 bytes at 0xf1188
-  times 1144 db 0
+  ; Padding 0x416 bytes at 0xf11ea
+  times 1046 db 0
 
-section _TEXT progbits vstart=0x1600 align=1 ; size=0x8e58 class=CODE group=AUTO
+section _TEXT progbits vstart=0x1600 align=1 ; size=0x8f08 class=CODE group=AUTO
 rom_scan_:                                   ; 0xf1600 LB 0x52
     push bp                                   ; 55
@@ -1418,9 +1421,9 @@
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
     call 01933h                               ; e8 b0 01
-    mov ax, 00d8eh                            ; b8 8e 0d
+    mov ax, 00df0h                            ; b8 f0 0d
     push ax                                   ; 50
     mov ax, 000d9h                            ; b8 d9 00
@@ -1596,5 +1599,5 @@
     mov bx, strict word 0000ah                ; bb 0a 00
     xor cx, cx                                ; 31 c9
-    call 0a0f0h                               ; e8 13 88
+    call 0a1a0h                               ; e8 c3 88
     mov word [bp-008h], ax                    ; 89 46 f8
     mov cx, dx                                ; 89 d1
@@ -1833,5 +1836,5 @@
     mov dx, word [bp-026h]                    ; 8b 56 da
     mov si, word [bp-01eh]                    ; 8b 76 e2
-    call 0a120h                               ; e8 08 86
+    call 0a1d0h                               ; e8 b8 86
     mov ax, dx                                ; 89 d0
     xor ah, dh                                ; 30 f4
@@ -2294,5 +2297,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00018h                ; be 18 00
-    call 0a120h                               ; e8 8e 81
+    call 0a1d0h                               ; e8 3e 82
     xor dh, dh                                ; 30 f6
     mov word [bp-014h], dx                    ; 89 56 ec
@@ -2304,5 +2307,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00020h                ; be 20 00
-    call 0a120h                               ; e8 6e 81
+    call 0a1d0h                               ; e8 1e 82
     mov bx, dx                                ; 89 d3
     mov word [bp-010h], dx                    ; 89 56 f0
@@ -2336,5 +2339,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00008h                ; be 08 00
-    call 0a120h                               ; e8 1b 81
+    call 0a1d0h                               ; e8 cb 81
     mov word [bp-010h], dx                    ; 89 56 f0
     mov bx, word [bp-016h]                    ; 8b 5e ea
@@ -2345,5 +2348,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00018h                ; be 18 00
-    call 0a120h                               ; e8 fd 80
+    call 0a1d0h                               ; e8 ad 81
     mov bl, dl                                ; 88 d3
     and bl, 00fh                              ; 80 e3 0f
@@ -2742,5 +2745,5 @@
     lea ax, [bp-03eh]                         ; 8d 46 c2
     call 05b7fh                               ; e8 7e 37
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -2923,5 +2926,5 @@
     mov dx, word [es:di+036h]                 ; 26 8b 55 36
     mov si, strict word 0000bh                ; be 0b 00
-    call 0a120h                               ; e8 21 7b
+    call 0a1d0h                               ; e8 d1 7b
     mov word [bp-02ah], dx                    ; 89 56 d6
     mov word [bp-026h], cx                    ; 89 4e da
@@ -3215,5 +3218,5 @@
     mov dx, word [bp-022h]                    ; 8b 56 de
     mov si, strict word 00018h                ; be 18 00
-    call 0a120h                               ; e8 44 78
+    call 0a1d0h                               ; e8 f4 78
     xor dh, dh                                ; 30 f6
     mov word [bp-014h], dx                    ; 89 56 ec
@@ -3223,5 +3226,5 @@
     mov dx, word [bp-022h]                    ; 8b 56 de
     mov si, strict word 00020h                ; be 20 00
-    call 0a120h                               ; e8 2d 78
+    call 0a1d0h                               ; e8 dd 78
     mov bx, dx                                ; 89 d3
     mov word [bp-024h], dx                    ; 89 56 dc
@@ -3257,5 +3260,5 @@
     mov dx, word [bp-022h]                    ; 8b 56 de
     mov si, strict word 00008h                ; be 08 00
-    call 0a120h                               ; e8 d9 77
+    call 0a1d0h                               ; e8 89 78
     mov word [bp-00ch], ax                    ; 89 46 f4
     mov word [bp-020h], bx                    ; 89 5e e0
@@ -3264,5 +3267,5 @@
     mov word [bp-024h], dx                    ; 89 56 dc
     mov si, strict word 00010h                ; be 10 00
-    call 0a120h                               ; e8 c4 77
+    call 0a1d0h                               ; e8 74 78
     mov word [bp-022h], dx                    ; 89 56 de
     mov ax, dx                                ; 89 d0
@@ -3531,5 +3534,5 @@
     cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
     jne short 02bf6h                          ; 75 23
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -4379,5 +4382,5 @@
     cmp bh, 048h                              ; 80 ff 48
     jbe short 0333ch                          ; 76 37
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -5315,5 +5318,5 @@
     mov byte [es:bx], 000h                    ; 26 c6 07 00
     jmp near 03533h                           ; e9 5d f9
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -5417,5 +5420,5 @@
     cmp ax, strict word 0004ah                ; 3d 4a 00
     jne short 03cc8h                          ; 75 23
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -5525,5 +5528,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -5613,5 +5616,5 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-026h]                         ; 8d 46 da
-    call 0a140h                               ; e8 9d 62
+    call 0a1f0h                               ; e8 4d 63
     mov word [bp-026h], strict word 00028h    ; c7 46 da 28 00
     mov ax, strict word 00011h                ; b8 11 00
@@ -5676,5 +5679,5 @@
     jnc short 03f51h                          ; 73 10
     mov al, byte [bp+di-00825h]               ; 8a 83 db f7
-    cmp al, byte [di+00da8h]                  ; 3a 85 a8 0d
+    cmp al, byte [di+00e0ah]                  ; 3a 85 0a 0e
     je short 03f3bh                           ; 74 f0
     mov ax, strict word 00005h                ; b8 05 00
@@ -5686,5 +5689,5 @@
     jnc short 03f6bh                          ; 73 10
     mov al, byte [bp+di-0081fh]               ; 8a 83 e1 f7
-    cmp al, byte [di+00daeh]                  ; 3a 85 ae 0d
+    cmp al, byte [di+00e10h]                  ; 3a 85 10 0e
     je short 03f55h                           ; 74 f0
     mov ax, strict word 00006h                ; b8 06 00
@@ -5987,5 +5990,5 @@
     cmp ax, dx                                ; 39 d0
     je short 04308h                           ; 74 2a
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -6105,5 +6108,5 @@
     xor dl, dl                                ; 30 d2
     xor cx, cx                                ; 31 c9
-    call 0a0d0h                               ; e8 b8 5c
+    call 0a180h                               ; e8 68 5d
     xor bx, bx                                ; 31 db
     add ax, si                                ; 01 f0
@@ -6111,5 +6114,5 @@
     mov bx, di                                ; 89 fb
     xor cx, cx                                ; 31 c9
-    call 0a0d0h                               ; e8 ab 5c
+    call 0a180h                               ; e8 5b 5d
     mov bx, ax                                ; 89 c3
     mov ax, word [bp-00ah]                    ; 8b 46 f6
@@ -6146,5 +6149,5 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-030h]                         ; 8d 46 d0
-    call 0a140h                               ; e8 c4 5c
+    call 0a1f0h                               ; e8 74 5d
     mov word [bp-030h], strict word 00028h    ; c7 46 d0 28 00
     mov ax, word [bp-00eh]                    ; 8b 46 f2
@@ -6216,5 +6219,5 @@
     test al, al                               ; 84 c0
     je short 0456dh                           ; 74 38
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -6318,5 +6321,5 @@
     mov word [bp+016h], bx                    ; 89 5e 16
     jmp near 04571h                           ; e9 33 ff
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -6442,5 +6445,5 @@
     mov word [bp+016h], strict word 00007h    ; c7 46 16 07 00
     jmp near 04c0ch                           ; e9 49 04
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -6500,5 +6503,5 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-02eh]                         ; 8d 46 d2
-    call 0a140h                               ; e8 dc 58
+    call 0a1f0h                               ; e8 8c 59
     mov word [bp-02eh], strict word 00028h    ; c7 46 d2 28 00
     mov ax, word [bp-014h]                    ; 8b 46 ec
@@ -6557,5 +6560,5 @@
     cmp byte [bp-016h], 000h                  ; 80 7e ea 00
     je short 04950h                           ; 74 57
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -6867,5 +6870,5 @@
     je short 04caah                           ; 74 27
     mov dx, strict word 00001h                ; ba 01 00
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -6874,5 +6877,5 @@
     mov dx, strict word 0000ah                ; ba 0a 00
     imul dx                                   ; f7 ea
-    add ax, 00dc6h                            ; 05 c6 0d
+    add ax, 00e28h                            ; 05 28 0e
     push ax                                   ; 50
     mov ax, 00494h                            ; b8 94 04
@@ -6897,9 +6900,9 @@
     test al, al                               ; 84 c0
     je short 04ce2h                           ; 74 1f
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
     call 01933h                               ; e8 65 cc
-    mov cx, 00ddah                            ; b9 da 0d
+    mov cx, 00e3ch                            ; b9 3c 0e
     push cx                                   ; 51
     mov cx, 004a8h                            ; b9 a8 04
@@ -6912,25 +6915,25 @@
     test dl, dl                               ; 84 d2
     je short 04cf6h                           ; 74 10
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
     call 01933h                               ; e8 42 cc
-    mov cx, 00de4h                            ; b9 e4 0d
+    mov cx, 00e46h                            ; b9 46 0e
     jmp short 04cd1h                          ; eb db
     test bl, 080h                             ; f6 c3 80
     je short 04d0ch                           ; 74 11
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
     call 01933h                               ; e8 2d cc
     push si                                   ; 56
-    mov cx, 00dd0h                            ; b9 d0 0d
+    mov cx, 00e32h                            ; b9 32 0e
     jmp short 04d1bh                          ; eb 0f
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
     call 01933h                               ; e8 1c cc
     push si                                   ; 56
-    mov cx, 00dc6h                            ; b9 c6 0d
+    mov cx, 00e28h                            ; b9 28 0e
     push cx                                   ; 51
     mov cx, 004bdh                            ; b9 bd 04
@@ -6963,5 +6966,5 @@
     push dx                                   ; 52
     mov dx, ax                                ; 89 c2
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -7053,5 +7056,5 @@
     mov byte [bp-008h], al                    ; 88 46 f8
     mov byte [bp-00ah], al                    ; 88 46 f6
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -7621,5 +7624,5 @@
     test al, al                               ; 84 c0
     jne short 05351h                          ; 75 1c
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -7973,5 +7976,5 @@
     cmp byte [bp-004h], 058h                  ; 80 7e fc 58
     jbe short 056e7h                          ; 76 22
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -7995,7 +7998,7 @@
     imul bx                                   ; f7 eb
     mov bx, ax                                ; 89 c3
-    mov al, byte [bx+00df4h]                  ; 8a 87 f4 0d
+    mov al, byte [bx+00e56h]                  ; 8a 87 56 0e
     mov byte [bp-012h], al                    ; 88 46 ee
-    mov al, byte [bx+00df5h]                  ; 8a 87 f5 0d
+    mov al, byte [bx+00e57h]                  ; 8a 87 57 0e
     jmp near 057bah                           ; e9 b2 00
     test AL, strict byte 004h                 ; a8 04
@@ -8006,7 +8009,7 @@
     imul dx                                   ; f7 ea
     mov bx, ax                                ; 89 c3
-    mov al, byte [bx+00df2h]                  ; 8a 87 f2 0d
+    mov al, byte [bx+00e54h]                  ; 8a 87 54 0e
     mov byte [bp-012h], al                    ; 88 46 ee
-    mov al, byte [bx+00df3h]                  ; 8a 87 f3 0d
+    mov al, byte [bx+00e55h]                  ; 8a 87 55 0e
     jmp near 057bah                           ; e9 94 00
     mov al, byte [bp-010h]                    ; 8a 46 f0
@@ -8032,5 +8035,5 @@
     imul dx                                   ; f7 ea
     mov bx, ax                                ; 89 c3
-    mov al, byte [bx+00df6h]                  ; 8a 87 f6 0d
+    mov al, byte [bx+00e58h]                  ; 8a 87 58 0e
     xor ah, ah                                ; 30 e4
     mov dx, ax                                ; 89 c2
@@ -8038,11 +8041,11 @@
     test ax, dx                               ; 85 d0
     je short 05777h                           ; 74 0d
-    mov al, byte [bx+00deeh]                  ; 8a 87 ee 0d
+    mov al, byte [bx+00e50h]                  ; 8a 87 50 0e
     mov byte [bp-012h], al                    ; 88 46 ee
-    mov al, byte [bx+00defh]                  ; 8a 87 ef 0d
+    mov al, byte [bx+00e51h]                  ; 8a 87 51 0e
     jmp short 05782h                          ; eb 0b
-    mov al, byte [bx+00df0h]                  ; 8a 87 f0 0d
+    mov al, byte [bx+00e52h]                  ; 8a 87 52 0e
     mov byte [bp-012h], al                    ; 88 46 ee
-    mov al, byte [bx+00df1h]                  ; 8a 87 f1 0d
+    mov al, byte [bx+00e53h]                  ; 8a 87 53 0e
     mov byte [bp-004h], al                    ; 88 46 fc
     jmp short 057bdh                          ; eb 36
@@ -8052,5 +8055,5 @@
     imul bx                                   ; f7 eb
     mov bx, ax                                ; 89 c3
-    mov al, byte [bx+00df6h]                  ; 8a 87 f6 0d
+    mov al, byte [bx+00e58h]                  ; 8a 87 58 0e
     xor ah, ah                                ; 30 e4
     mov dx, ax                                ; 89 c2
@@ -8058,11 +8061,11 @@
     test ax, dx                               ; 85 d0
     je short 057afh                           ; 74 0d
-    mov al, byte [bx+00df0h]                  ; 8a 87 f0 0d
+    mov al, byte [bx+00e52h]                  ; 8a 87 52 0e
     mov byte [bp-012h], al                    ; 88 46 ee
-    mov al, byte [bx+00df1h]                  ; 8a 87 f1 0d
+    mov al, byte [bx+00e53h]                  ; 8a 87 53 0e
     jmp short 057bah                          ; eb 0b
-    mov al, byte [bx+00deeh]                  ; 8a 87 ee 0d
+    mov al, byte [bx+00e50h]                  ; 8a 87 50 0e
     mov byte [bp-012h], al                    ; 88 46 ee
-    mov al, byte [bx+00defh]                  ; 8a 87 ef 0d
+    mov al, byte [bx+00e51h]                  ; 8a 87 51 0e
     mov byte [bp-004h], al                    ; 88 46 fc
     cmp byte [bp-004h], 000h                  ; 80 7e fc 00
@@ -8070,5 +8073,5 @@
     cmp byte [bp-012h], 000h                  ; 80 7e ee 00
     jne short 057e2h                          ; 75 19
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8273,5 +8276,5 @@
     mov word [bp+012h], ax                    ; 89 46 12
     jmp near 059d7h                           ; e9 4a 00
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8287,5 +8290,5 @@
     call 01976h                               ; e8 cb bf
     add sp, strict byte 00006h                ; 83 c4 06
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8501,5 +8504,5 @@
     mov dx, word [bp+00ch]                    ; 8b 56 0c
     mov si, strict word 00020h                ; be 20 00
-    call 0a120h                               ; e8 72 45
+    call 0a1d0h                               ; e8 22 46
     test ax, ax                               ; 85 c0
     jne short 05bbeh                          ; 75 0c
@@ -8539,10 +8542,10 @@
     mov bx, strict word 0003fh                ; bb 3f 00
     xor cx, cx                                ; 31 c9
-    call 0a0d0h                               ; e8 c9 44
+    call 0a180h                               ; e8 79 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 0a0f0h                               ; e8 dd 44
+    call 0a1a0h                               ; e8 8d 45
     mov word [es:di+002h], ax                 ; 26 89 45 02
     cmp ax, 00400h                            ; 3d 00 04
@@ -8695,5 +8698,5 @@
     test ax, ax                               ; 85 c0
     jne short 05d8eh                          ; 75 29
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8729,5 +8732,5 @@
     cmp di, dx                                ; 39 d7
     jbe short 05dedh                          ; 76 31
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8773,5 +8776,5 @@
     mov bx, cx                                ; 89 cb
     xor cx, cx                                ; 31 c9
-    call 0a0d0h                               ; e8 a4 42
+    call 0a180h                               ; e8 54 43
     xor bx, bx                                ; 31 db
     add ax, word [bp-008h]                    ; 03 46 f8
@@ -8779,5 +8782,5 @@
     mov bx, word [bp-00eh]                    ; 8b 5e f2
     xor cx, cx                                ; 31 c9
-    call 0a0d0h                               ; e8 95 42
+    call 0a180h                               ; e8 45 43
     xor bx, bx                                ; 31 db
     add ax, di                                ; 01 f8
@@ -8837,5 +8840,5 @@
     test dl, dl                               ; 84 d2
     je short 05f36h                           ; 74 4a
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8858,5 +8861,5 @@
     or ah, 00ch                               ; 80 cc 0c
     jmp near 0607ch                           ; e9 5f 01
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8953,8 +8956,8 @@
     mov bx, word [bp-008h]                    ; 8b 5e f8
     xor cx, cx                                ; 31 c9
-    call 0a0d0h                               ; e8 be 40
+    call 0a180h                               ; e8 6e 41
     mov bx, di                                ; 89 fb
     xor cx, cx                                ; 31 c9
-    call 0a0d0h                               ; e8 b7 40
+    call 0a180h                               ; e8 67 41
     mov word [bp-010h], ax                    ; 89 46 f0
     mov word [bp-004h], dx                    ; 89 56 fc
@@ -8966,5 +8969,5 @@
     mov word [bp+016h], ax                    ; 89 46 16
     jmp near 05f3ah                           ; e9 07 ff
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8982,5 +8985,5 @@
     add sp, strict byte 00008h                ; 83 c4 08
     jmp near 05f36h                           ; e9 dd fe
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -9089,5 +9092,5 @@
     mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
     jmp near 06597h                           ; e9 31 04
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -9115,5 +9118,5 @@
     xor bx, bx                                ; 31 db
     mov si, strict word 00020h                ; be 20 00
-    call 0a130h                               ; e8 7c 3f
+    call 0a1e0h                               ; e8 2c 40
     mov word [bp-00eh], ax                    ; 89 46 f2
     mov word [bp-010h], bx                    ; 89 5e f0
@@ -9145,5 +9148,5 @@
     cmp si, word [es:bx+036h]                 ; 26 3b 77 36
     jc short 0622ch                           ; 72 26
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -9207,5 +9210,5 @@
     test dl, dl                               ; 84 d2
     je short 0631ah                           ; 74 54
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -9280,5 +9283,5 @@
     mov dx, si                                ; 89 f2
     mov si, strict word 00020h                ; be 20 00
-    call 0a120h                               ; e8 75 3d
+    call 0a1d0h                               ; e8 25 3e
     mov bx, di                                ; 89 fb
     mov word [es:bx+014h], dx                 ; 26 89 57 14
@@ -9644,5 +9647,5 @@
     mov bx, strict word 0000fh                ; bb 0f 00
     xor cx, cx                                ; 31 c9
-    call 0a0f0h                               ; e8 a7 39
+    call 0a1a0h                               ; e8 57 3a
     mov cx, ax                                ; 89 c1
     mov bx, dx                                ; 89 d3
@@ -9808,5 +9811,5 @@
     mov word [bp+00ch], ax                    ; 89 46 0c
     jmp near 0691bh                           ; e9 2e 00
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -9997,5 +10000,5 @@
     retf                                      ; cb
     jmp near 0691bh                           ; e9 53 fe
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -10040,5 +10043,5 @@
     or byte [bp+018h], 001h                   ; 80 4e 18 01
     jmp near 0691bh                           ; e9 d8 fd
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -10232,5 +10235,5 @@
     mov word [bp+014h], strict word 00002h    ; c7 46 14 02 00
     jmp short 06d04h                          ; eb d3
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -10879,5 +10882,5 @@
     mov ax, 008eeh                            ; b8 ee 08
     push ax                                   ; 50
-    mov ax, 01168h                            ; b8 68 11
+    mov ax, 011cah                            ; b8 ca 11
     push ax                                   ; 50
     mov ax, strict word 00007h                ; b8 07 00
@@ -10963,5 +10966,5 @@
     mov ax, 008f8h                            ; b8 f8 08
     push ax                                   ; 50
-    mov ax, 01168h                            ; b8 68 11
+    mov ax, 011cah                            ; b8 ca 11
     push ax                                   ; 50
     mov ax, strict word 00007h                ; b8 07 00
@@ -12526,5 +12529,5 @@
     cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
     jne short 08256h                          ; 75 23
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -12689,5 +12692,5 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-048h]                         ; 8d 46 b8
-    call 0a140h                               ; e8 8d 1d
+    call 0a1f0h                               ; e8 3d 1e
     mov byte [bp-048h], 09eh                  ; c6 46 b8 9e
     mov byte [bp-047h], 010h                  ; c6 46 b9 10
@@ -12759,5 +12762,5 @@
     cmp bx, 00200h                            ; 81 fb 00 02
     je short 08487h                           ; 74 23
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -12827,5 +12830,5 @@
     mov dx, word [bp-024h]                    ; 8b 56 dc
     mov si, strict word 0000ch                ; be 0c 00
-    call 0a120h                               ; e8 1d 1c
+    call 0a1d0h                               ; e8 cd 1c
     mov word [bp-02ah], ax                    ; 89 46 d6
     mov word [bp-02ch], bx                    ; 89 5e d4
@@ -12849,5 +12852,5 @@
     mov dx, word [bp-024h]                    ; 8b 56 dc
     mov si, strict word 00006h                ; be 06 00
-    call 0a120h                               ; e8 dc 1b
+    call 0a1d0h                               ; e8 8c 1c
     mov si, word [bp-018h]                    ; 8b 76 e8
     add si, dx                                ; 01 d6
@@ -12867,5 +12870,5 @@
     mov dx, si                                ; 89 f2
     mov si, strict word 00008h                ; be 08 00
-    call 0a120h                               ; e8 ac 1b
+    call 0a1d0h                               ; e8 5c 1c
     mov word [bp-02eh], bx                    ; 89 5e d2
     mov word [bp-030h], cx                    ; 89 4e d0
@@ -12876,5 +12879,5 @@
     mov dx, word [bp-01eh]                    ; 8b 56 e2
     mov si, strict word 00010h                ; be 10 00
-    call 0a120h                               ; e8 91 1b
+    call 0a1d0h                               ; e8 41 1c
     mov si, word [bp-032h]                    ; 8b 76 ce
     add si, dx                                ; 01 d6
@@ -12901,5 +12904,5 @@
     mov dx, word [bp-024h]                    ; 8b 56 dc
     mov si, strict word 0000bh                ; be 0b 00
-    call 0a120h                               ; e8 47 1b
+    call 0a1d0h                               ; e8 f7 1b
     mov si, dx                                ; 89 d6
     mov word [bp-026h], cx                    ; 89 4e da
@@ -12946,5 +12949,5 @@
     mov word [es:bx+02ch], si                 ; 26 89 77 2c
     mov word [es:bx+032h], si                 ; 26 89 77 32
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -13005,5 +13008,5 @@
     inc byte [bp-00ch]                        ; fe 46 f4
     jmp near 087a2h                           ; e9 97 00
-    mov bx, 00da0h                            ; bb a0 0d
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -13122,10 +13125,68 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-_scsi_init:                                  ; 0xf8846 LB 0x66
+scsi_pci_init_:                              ; 0xf8846 LB 0x72
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    mov di, ax                                ; 89 c7
+    mov si, dx                                ; 89 d6
+    call 09fceh                               ; e8 7a 17
+    mov dx, ax                                ; 89 c2
+    cmp ax, strict word 0ffffh                ; 3d ff ff
+    jne short 0887ch                          ; 75 21
+    mov bx, 00e02h                            ; bb 02 0e
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01933h                               ; e8 cd 90
+    push si                                   ; 56
+    push di                                   ; 57
+    mov ax, 00c61h                            ; b8 61 0c
+    push ax                                   ; 50
+    mov ax, 00c6fh                            ; b8 6f 0c
+    push ax                                   ; 50
+    mov ax, strict word 00004h                ; b8 04 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 ff 90
+    add sp, strict byte 0000ah                ; 83 c4 0a
+    jmp short 088afh                          ; eb 33
+    mov bx, 00e02h                            ; bb 02 0e
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01933h                               ; e8 ac 90
+    push dx                                   ; 52
+    push si                                   ; 56
+    push di                                   ; 57
+    mov ax, 00c61h                            ; b8 61 0c
+    push ax                                   ; 50
+    mov ax, 00c98h                            ; b8 98 0c
+    push ax                                   ; 50
+    mov ax, strict word 00004h                ; b8 04 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 dd 90
+    add sp, strict byte 0000ch                ; 83 c4 0c
+    mov al, dl                                ; 88 d0
+    xor ah, ah                                ; 30 e4
+    mov si, ax                                ; 89 c6
+    mov al, dh                                ; 88 f0
+    mov cx, strict word 00007h                ; b9 07 00
+    mov bx, strict word 00004h                ; bb 04 00
+    mov dx, si                                ; 89 f2
+    call 0a07ch                               ; e8 cd 17
+    lea sp, [bp-008h]                         ; 8d 66 f8
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_scsi_init:                                  ; 0xf88b8 LB 0x81
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 1c 8e
+    call 0166eh                               ; e8 aa 8d
     mov bx, 00122h                            ; bb 22 01
     mov es, ax                                ; 8e c0
@@ -13138,10 +13199,13 @@
     ; sub ah, ah                                ; 2a e4
     cmp AL, strict byte 055h                  ; 3c 55
-    jne short 08876h                          ; 75 0c
+    jne short 088f1h                          ; 75 15
     xor al, al                                ; 30 c0
     mov dx, 00433h                            ; ba 33 04
     out DX, AL                                ; ee
     mov ax, 00430h                            ; b8 30 04
-    call 0837bh                               ; e8 05 fb
+    call 0837bh                               ; e8 93 fa
+    mov dx, 01040h                            ; ba 40 10
+    mov ax, 0104bh                            ; b8 4b 10
+    call 08846h                               ; e8 55 ff
     mov AL, strict byte 055h                  ; b0 55
     mov dx, 00436h                            ; ba 36 04
@@ -13151,10 +13215,13 @@
     ; sub ah, ah                                ; 2a e4
     cmp AL, strict byte 055h                  ; 3c 55
-    jne short 0888fh                          ; 75 0c
+    jne short 08913h                          ; 75 15
     xor al, al                                ; 30 c0
     mov dx, 00437h                            ; ba 37 04
     out DX, AL                                ; ee
     mov ax, 00434h                            ; b8 34 04
-    call 0837bh                               ; e8 ec fa
+    call 0837bh                               ; e8 71 fa
+    mov dx, strict word 00030h                ; ba 30 00
+    mov ax, 01000h                            ; b8 00 10
+    call 08846h                               ; e8 33 ff
     mov AL, strict byte 055h                  ; b0 55
     mov dx, 0043ah                            ; ba 3a 04
@@ -13164,14 +13231,17 @@
     ; sub ah, ah                                ; 2a e4
     cmp AL, strict byte 055h                  ; 3c 55
-    jne short 088a8h                          ; 75 0c
+    jne short 08935h                          ; 75 15
     xor al, al                                ; 30 c0
     mov dx, 0043bh                            ; ba 3b 04
     out DX, AL                                ; ee
     mov ax, 00438h                            ; b8 38 04
-    call 0837bh                               ; e8 d3 fa
+    call 0837bh                               ; e8 4f fa
+    mov dx, strict word 00054h                ; ba 54 00
+    mov ax, 01000h                            ; b8 00 10
+    call 08846h                               ; e8 11 ff
     mov sp, bp                                ; 89 ec
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_ctrl_extract_bits_:                     ; 0xf88ac LB 0x1c
+ahci_ctrl_extract_bits_:                     ; 0xf8939 LB 0x1c
     push si                                   ; 56
     push bp                                   ; 55
@@ -13182,12 +13252,12 @@
     mov cl, byte [bp+006h]                    ; 8a 4e 06
     xor ch, ch                                ; 30 ed
-    jcxz 088c3h                               ; e3 06
+    jcxz 08950h                               ; e3 06
     shr dx, 1                                 ; d1 ea
     rcr ax, 1                                 ; d1 d8
-    loop 088bdh                               ; e2 fa
+    loop 0894ah                               ; e2 fa
     pop bp                                    ; 5d
     pop si                                    ; 5e
     retn 00002h                               ; c2 02 00
-ahci_addr_to_phys_:                          ; 0xf88c8 LB 0x1e
+ahci_addr_to_phys_:                          ; 0xf8955 LB 0x1e
     push bx                                   ; 53
     push cx                                   ; 51
@@ -13200,5 +13270,5 @@
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 088d6h                               ; e2 fa
+    loop 08963h                               ; e2 fa
     xor cx, cx                                ; 31 c9
     add ax, bx                                ; 01 d8
@@ -13208,5 +13278,5 @@
     pop bx                                    ; 5b
     retn                                      ; c3
-ahci_port_cmd_sync_:                         ; 0xf88e6 LB 0x159
+ahci_port_cmd_sync_:                         ; 0xf8973 LB 0x159
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13223,6 +13293,6 @@
     mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
     cmp AL, strict byte 0ffh                  ; 3c ff
-    jne short 08909h                          ; 75 03
-    jmp near 08a37h                           ; e9 2e 01
+    jne short 08996h                          ; 75 03
+    jmp near 08ac4h                           ; e9 2e 01
     mov al, byte [es:si+00263h]               ; 26 8a 84 63 02
     xor ah, ah                                ; 30 e4
@@ -13237,5 +13307,5 @@
     lea ax, [si+00080h]                       ; 8d 84 80 00
     mov dx, cx                                ; 89 ca
-    call 088c8h                               ; e8 92 ff
+    call 08955h                               ; e8 92 ff
     mov es, cx                                ; 8e c1
     mov word [es:si+008h], ax                 ; 26 89 44 08
@@ -13305,12 +13375,12 @@
     xchg dx, ax                               ; 92
     test dh, 040h                             ; f6 c6 40
-    jne short 089c9h                          ; 75 04
+    jne short 08a56h                          ; 75 04
     test AL, strict byte 001h                 ; a8 01
-    je short 089cdh                           ; 74 04
+    je short 08a5ah                           ; 74 04
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 089cfh                          ; eb 02
+    jmp short 08a5ch                          ; eb 02
     xor al, al                                ; 30 c0
     test al, al                               ; 84 c0
-    je short 0899bh                           ; 74 c8
+    je short 08a28h                           ; 74 c8
     mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
@@ -13369,5 +13439,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_cmd_data_:                              ; 0xf8a3f LB 0x262
+ahci_cmd_data_:                              ; 0xf8acc LB 0x262
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13394,5 +13464,5 @@
     mov ax, 00080h                            ; b8 80 00
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 0a140h                               ; e8 c3 16
+    call 0a1f0h                               ; e8 e6 16
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov word [es:di+00080h], 08027h           ; 26 c7 85 80 00 27 80
@@ -13412,5 +13482,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00008h                ; be 08 00
-    call 0a120h                               ; e8 5f 16
+    call 0a1d0h                               ; e8 82 16
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov byte [es:di+00085h], dl               ; 26 88 95 85 00
@@ -13423,5 +13493,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00010h                ; be 10 00
-    call 0a120h                               ; e8 39 16
+    call 0a1d0h                               ; e8 5c 16
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov byte [es:di+00086h], dl               ; 26 88 95 86 00
@@ -13435,5 +13505,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00018h                ; be 18 00
-    call 0a120h                               ; e8 0d 16
+    call 0a1d0h                               ; e8 30 16
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov byte [es:di+00088h], dl               ; 26 88 95 88 00
@@ -13446,5 +13516,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00020h                ; be 20 00
-    call 0a120h                               ; e8 e7 15
+    call 0a1d0h                               ; e8 0a 16
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov byte [es:di+00089h], dl               ; 26 88 95 89 00
@@ -13457,5 +13527,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00028h                ; be 28 00
-    call 0a120h                               ; e8 c1 15
+    call 0a1d0h                               ; e8 e4 15
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov byte [es:di+0008ah], dl               ; 26 88 95 8a 00
@@ -13470,5 +13540,5 @@
     mov bx, word [bp-012h]                    ; 8b 5e ee
     xor cx, cx                                ; 31 c9
-    call 0a0d0h                               ; e8 3f 15
+    call 0a180h                               ; e8 62 15
     push dx                                   ; 52
     push ax                                   ; 50
@@ -13480,5 +13550,5 @@
     mov ax, 0026ah                            ; b8 6a 02
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 0a025h                               ; e8 78 14
+    call 0a0d5h                               ; e8 9b 14
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov dx, word [es:di+0027eh]               ; 26 8b 95 7e 02
@@ -13504,5 +13574,5 @@
     mov ax, word [es:bx+020h]                 ; 26 8b 47 20
     test ax, ax                               ; 85 c0
-    je short 08c3dh                           ; 74 39
+    je short 08ccah                           ; 74 39
     dec ax                                    ; 48
     mov es, [bp-00ah]                         ; 8e 46 f6
@@ -13522,13 +13592,13 @@
     mov al, byte [bp-008h]                    ; 8a 46 f8
     cmp AL, strict byte 035h                  ; 3c 35
-    jne short 08c4ah                          ; 75 06
+    jne short 08cd7h                          ; 75 06
     mov byte [bp-008h], 040h                  ; c6 46 f8 40
-    jmp short 08c61h                          ; eb 17
+    jmp short 08ceeh                          ; eb 17
     cmp AL, strict byte 0a0h                  ; 3c a0
-    jne short 08c5dh                          ; 75 0f
+    jne short 08ceah                          ; 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 08c61h                          ; eb 04
+    jmp short 08ceeh                          ; eb 04
     mov byte [bp-008h], 000h                  ; c6 46 f8 00
     or byte [bp-008h], 005h                   ; 80 4e f8 05
@@ -13537,5 +13607,5 @@
     mov ax, word [bp-00eh]                    ; 8b 46 f2
     mov dx, word [bp-00ch]                    ; 8b 56 f4
-    call 088e6h                               ; e8 73 fc
+    call 08973h                               ; e8 73 fc
     mov cx, word [bp-00ch]                    ; 8b 4e f4
     mov bx, word [bp-00eh]                    ; 8b 5e f2
@@ -13544,11 +13614,11 @@
     add ax, 0026ah                            ; 05 6a 02
     mov dx, cx                                ; 89 ca
-    call 0a09ch                               ; e8 14 14
+    call 0a14ch                               ; e8 37 14
     mov es, cx                                ; 8e c1
     mov al, byte [es:bx+003h]                 ; 26 8a 47 03
     test al, al                               ; 84 c0
-    je short 08c97h                           ; 74 05
+    je short 08d24h                           ; 74 05
     mov ax, strict word 00004h                ; b8 04 00
-    jmp short 08c99h                          ; eb 02
+    jmp short 08d26h                          ; eb 02
     xor ah, ah                                ; 30 e4
     lea sp, [bp-006h]                         ; 8d 66 fa
@@ -13558,5 +13628,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_port_deinit_current_:                   ; 0xf8ca1 LB 0x183
+ahci_port_deinit_current_:                   ; 0xf8d2e LB 0x183
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13573,5 +13643,5 @@
     mov byte [bp-00ah], al                    ; 88 46 f6
     cmp AL, strict byte 0ffh                  ; 3c ff
-    je short 08d24h                           ; 74 61
+    je short 08db1h                           ; 74 61
     xor ah, ah                                ; 30 e4
     mov CL, strict byte 007h                  ; b1 07
@@ -13619,26 +13689,26 @@
     xchg dx, ax                               ; 92
     test ax, 0c011h                           ; a9 11 c0
-    je short 08d27h                           ; 74 07
+    je short 08db4h                           ; 74 07
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 08d29h                          ; eb 05
-    jmp near 08e1bh                           ; e9 f4 00
+    jmp short 08db6h                          ; eb 05
+    jmp near 08ea8h                           ; e9 f4 00
     xor al, al                                ; 30 c0
     cmp AL, strict byte 001h                  ; 3c 01
-    je short 08cf6h                           ; 74 c9
+    je short 08d83h                           ; 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 0a140h                               ; e8 06 14
+    call 0a1f0h                               ; e8 29 14
     lea ax, [di+00080h]                       ; 8d 85 80 00
     mov cx, strict word 00040h                ; b9 40 00
     xor bx, bx                                ; 31 db
     mov dx, word [bp-00eh]                    ; 8b 56 f2
-    call 0a140h                               ; e8 f7 13
+    call 0a1f0h                               ; e8 1a 14
     lea ax, [di+00200h]                       ; 8d 85 00 02
     mov cx, strict word 00060h                ; b9 60 00
     xor bx, bx                                ; 31 db
     mov dx, word [bp-00eh]                    ; 8b 56 f2
-    call 0a140h                               ; e8 e8 13
+    call 0a1f0h                               ; e8 0b 14
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     xor ah, ah                                ; 30 e4
@@ -13746,5 +13816,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_port_init_:                             ; 0xf8e24 LB 0x250
+ahci_port_init_:                             ; 0xf8eb1 LB 0x250
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13756,5 +13826,5 @@
     mov word [bp-00ah], dx                    ; 89 56 f6
     mov byte [bp-008h], bl                    ; 88 5e f8
-    call 08ca1h                               ; e8 69 fe
+    call 08d2eh                               ; e8 69 fe
     mov al, bl                                ; 88 d8
     xor ah, ah                                ; 30 e4
@@ -13807,20 +13877,20 @@
     xchg dx, ax                               ; 92
     test ax, 0c011h                           ; a9 11 c0
-    je short 08eabh                           ; 74 04
+    je short 08f38h                           ; 74 04
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 08eadh                          ; eb 02
+    jmp short 08f3ah                          ; eb 02
     xor al, al                                ; 30 c0
     cmp AL, strict byte 001h                  ; 3c 01
-    je short 08e75h                           ; 74 c4
+    je short 08f02h                           ; 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 0a140h                               ; e8 82 12
+    call 0a1f0h                               ; e8 a5 12
     lea ax, [si+00080h]                       ; 8d 84 80 00
     mov cx, strict word 00040h                ; b9 40 00
     xor bx, bx                                ; 31 db
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 0a140h                               ; e8 73 12
+    call 0a1f0h                               ; e8 96 12
     lea di, [si+00200h]                       ; 8d bc 00 02
     mov cx, strict word 00060h                ; b9 60 00
@@ -13828,5 +13898,5 @@
     mov ax, di                                ; 89 f8
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 0a140h                               ; e8 62 12
+    call 0a1f0h                               ; e8 85 12
     mov bl, byte [bp-008h]                    ; 8a 5e f8
     xor bh, bh                                ; 30 ff
@@ -13847,5 +13917,5 @@
     mov ax, di                                ; 89 f8
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 088c8h                               ; e8 bb f9
+    call 08955h                               ; e8 bb f9
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov di, word [es:si+00260h]               ; 26 8b bc 60 02
@@ -13892,5 +13962,5 @@
     mov ax, si                                ; 89 f0
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 088c8h                               ; e8 4f f9
+    call 08955h                               ; e8 4f f9
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov di, word [es:si+00260h]               ; 26 8b bc 60 02
@@ -13997,5 +14067,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-@ahci_read_sectors:                          ; 0xf9074 LB 0xaa
+@ahci_read_sectors:                          ; 0xf9101 LB 0xaa
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14008,13 +14078,13 @@
     sub di, strict byte 0000ch                ; 83 ef 0c
     cmp di, strict byte 00004h                ; 83 ff 04
-    jbe short 0909fh                          ; 76 13
+    jbe short 0912ch                          ; 76 13
     push di                                   ; 57
-    mov ax, 00c62h                            ; b8 62 0c
-    push ax                                   ; 50
-    mov ax, 00c74h                            ; b8 74 0c
+    mov ax, 00cc4h                            ; b8 c4 0c
+    push ax                                   ; 50
+    mov ax, 00cd6h                            ; b8 d6 0c
     push ax                                   ; 50
     mov ax, strict word 00007h                ; b8 07 00
     push ax                                   ; 50
-    call 01976h                               ; e8 da 88
+    call 01976h                               ; e8 4d 88
     add sp, strict byte 00008h                ; 83 c4 08
     xor bx, bx                                ; 31 db
@@ -14030,9 +14100,9 @@
     mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
     xor ax, ax                                ; 31 c0
-    call 08e24h                               ; e8 5a fd
+    call 08eb1h                               ; 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 08a3fh                               ; e8 6a f9
+    call 08acch                               ; e8 6a f9
     mov bx, ax                                ; 89 c3
     mov es, [bp+006h]                         ; 8e 46 06
@@ -14064,5 +14134,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-@ahci_write_sectors:                         ; 0xf911e LB 0x88
+@ahci_write_sectors:                         ; 0xf91ab LB 0x88
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14076,13 +14146,13 @@
     sub bx, strict byte 0000ch                ; 83 eb 0c
     cmp bx, strict byte 00004h                ; 83 fb 04
-    jbe short 0914ch                          ; 76 13
+    jbe short 091d9h                          ; 76 13
     push bx                                   ; 53
-    mov ax, 00c93h                            ; b8 93 0c
-    push ax                                   ; 50
-    mov ax, 00c74h                            ; b8 74 0c
+    mov ax, 00cf5h                            ; b8 f5 0c
+    push ax                                   ; 50
+    mov ax, 00cd6h                            ; b8 d6 0c
     push ax                                   ; 50
     mov ax, strict word 00007h                ; b8 07 00
     push ax                                   ; 50
-    call 01976h                               ; e8 2d 88
+    call 01976h                               ; e8 a0 87
     add sp, strict byte 00008h                ; 83 c4 08
     xor di, di                                ; 31 ff
@@ -14098,9 +14168,9 @@
     mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
     xor ax, ax                                ; 31 c0
-    call 08e24h                               ; e8 af fc
+    call 08eb1h                               ; e8 af fc
     mov bx, strict word 00035h                ; bb 35 00
     mov ax, si                                ; 89 f0
     mov dx, cx                                ; 89 ca
-    call 08a3fh                               ; e8 c0 f8
+    call 08acch                               ; e8 c0 f8
     mov dx, ax                                ; 89 c2
     mov es, cx                                ; 8e c1
@@ -14117,5 +14187,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-ahci_cmd_packet_:                            ; 0xf91a6 LB 0x18c
+ahci_cmd_packet_:                            ; 0xf9233 LB 0x18c
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14129,25 +14199,25 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 ad 84
+    call 0166eh                               ; e8 20 84
     mov si, 00122h                            ; be 22 01
     mov word [bp-008h], ax                    ; 89 46 f8
     cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
-    jne short 091f0h                          ; 75 23
-    mov bx, 00da0h                            ; bb a0 0d
+    jne short 0927dh                          ; 75 23
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 5b 87
-    mov ax, 00ca6h                            ; b8 a6 0c
-    push ax                                   ; 50
-    mov ax, 00cb6h                            ; b8 b6 0c
+    call 01933h                               ; e8 ce 86
+    mov ax, 00d08h                            ; b8 08 0d
+    push ax                                   ; 50
+    mov ax, 00d18h                            ; b8 18 0d
     push ax                                   ; 50
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 8f 87
+    call 01976h                               ; e8 02 87
     add sp, strict byte 00006h                ; 83 c4 06
     mov ax, strict word 00001h                ; b8 01 00
-    jmp near 09329h                           ; e9 39 01
+    jmp near 093b6h                           ; e9 39 01
     test byte [bp+004h], 001h                 ; f6 46 04 01
-    jne short 091eah                          ; 75 f4
+    jne short 09277h                          ; 75 f4
     mov bx, word [bp+006h]                    ; 8b 5e 06
     mov di, word [bp+008h]                    ; 8b 7e 08
@@ -14155,5 +14225,5 @@
     sal bx, 1                                 ; d1 e3
     rcl di, 1                                 ; d1 d7
-    loop 091ffh                               ; e2 fa
+    loop 0928ch                               ; e2 fa
     mov es, [bp-008h]                         ; 8e 46 f8
     mov word [es:si], bx                      ; 26 89 1c
@@ -14169,5 +14239,5 @@
     mov dx, word [bp+008h]                    ; 8b 56 08
     xor cx, cx                                ; 31 c9
-    call 0a0f0h                               ; e8 b8 0e
+    call 0a1a0h                               ; e8 db 0e
     mov word [es:si+00eh], ax                 ; 26 89 44 0e
     xor di, di                                ; 31 ff
@@ -14187,5 +14257,5 @@
     mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
     xor ax, ax                                ; 31 c0
-    call 08e24h                               ; e8 af fb
+    call 08eb1h                               ; e8 af fb
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
@@ -14195,5 +14265,5 @@
     mov ax, 000c0h                            ; b8 c0 00
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 0a150h                               ; e8 c6 0e
+    call 0a200h                               ; e8 e9 0e
     mov es, [bp-008h]                         ; 8e 46 f8
     mov word [es:si+018h], di                 ; 26 89 7c 18
@@ -14202,5 +14272,5 @@
     mov ax, word [es:si+01eh]                 ; 26 8b 44 1e
     test ax, ax                               ; 85 c0
-    je short 092c8h                           ; 74 27
+    je short 09355h                           ; 74 27
     dec ax                                    ; 48
     mov es, [bp-00ah]                         ; 8e 46 f6
@@ -14215,5 +14285,5 @@
     mov ax, si                                ; 89 f0
     mov dx, word [bp-008h]                    ; 8b 56 f8
-    call 08a3fh                               ; e8 6c f7
+    call 08acch                               ; e8 6c f7
     les bx, [bp-00eh]                         ; c4 5e f2
     mov dx, word [es:bx+004h]                 ; 26 8b 57 04
@@ -14242,7 +14312,7 @@
     mov ax, word [es:bx+006h]                 ; 26 8b 47 06
     or ax, word [es:bx+004h]                  ; 26 0b 47 04
-    jne short 09327h                          ; 75 05
+    jne short 093b4h                          ; 75 05
     mov ax, strict word 00004h                ; b8 04 00
-    jmp short 09329h                          ; eb 02
+    jmp short 093b6h                          ; eb 02
     xor ax, ax                                ; 31 c0
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -14251,5 +14321,5 @@
     pop bp                                    ; 5d
     retn 0000ch                               ; c2 0c 00
-ahci_port_detect_device_:                    ; 0xf9332 LB 0x4fe
+ahci_port_detect_device_:                    ; 0xf93bf LB 0x4fe
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14267,8 +14337,8 @@
     mov bx, word [bp-020h]                    ; 8b 5e e0
     mov ax, si                                ; 89 f0
-    call 08e24h                               ; e8 ce fa
+    call 08eb1h                               ; e8 ce fa
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 0f 83
+    call 0166eh                               ; e8 82 82
     mov word [bp-01ah], 00122h                ; c7 46 e6 22 01
     mov word [bp-00eh], ax                    ; 89 46 f2
@@ -14342,8 +14412,8 @@
     mov bx, strict word 0000fh                ; bb 0f 00
     xor cx, cx                                ; 31 c9
-    call 088ach                               ; e8 9f f4
+    call 08939h                               ; e8 9f f4
     test ax, ax                               ; 85 c0
-    jne short 09414h                          ; 75 03
-    jmp near 09828h                           ; e9 14 04
+    jne short 094a1h                          ; 75 03
+    jmp near 098b5h                           ; e9 14 04
     mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
@@ -14377,7 +14447,7 @@
     xor cx, cx                                ; 31 c9
     mov ax, di                                ; 89 f8
-    call 088ach                               ; e8 4d f4
+    call 08939h                               ; e8 4d f4
     cmp ax, strict word 00001h                ; 3d 01 00
-    je short 09414h                           ; 74 b0
+    je short 094a1h                           ; 74 b0
     xor ax, ax                                ; 31 c0
     push ax                                   ; 50
@@ -14386,7 +14456,7 @@
     mov ax, di                                ; 89 f8
     mov dx, word [bp-01ch]                    ; 8b 56 e4
-    call 088ach                               ; e8 38 f4
+    call 08939h                               ; e8 38 f4
     cmp ax, strict word 00003h                ; 3d 03 00
-    jne short 09411h                          ; 75 98
+    jne short 0949eh                          ; 75 98
     mov ax, word [bp-016h]                    ; 8b 46 ea
     add ax, 00130h                            ; 05 30 01
@@ -14416,6 +14486,6 @@
     mov byte [bp-00ch], al                    ; 88 46 f4
     cmp AL, strict byte 004h                  ; 3c 04
-    jc short 094c3h                           ; 72 03
-    jmp near 09828h                           ; e9 65 03
+    jc short 09550h                           ; 72 03
+    jmp near 098b5h                           ; e9 65 03
     mov ax, word [bp-016h]                    ; 8b 46 ea
     add ax, 00118h                            ; 05 18 01
@@ -14469,7 +14539,7 @@
     add cl, 00ch                              ; 80 c1 0c
     test dx, dx                               ; 85 d2
-    jne short 0958eh                          ; 75 55
+    jne short 0961bh                          ; 75 55
     cmp bx, 00101h                            ; 81 fb 01 01
-    jne short 0958eh                          ; 75 4f
+    jne short 0961bh                          ; 75 4f
     mov es, [bp-00eh]                         ; 8e 46 f2
     mov bx, word [bp-01ah]                    ; 8b 5e e6
@@ -14486,11 +14556,11 @@
     mov ax, word [bp-01ah]                    ; 8b 46 e6
     mov dx, es                                ; 8c c2
-    call 08a3fh                               ; e8 c0 f4
+    call 08acch                               ; e8 c0 f4
     mov byte [bp-00ah], cl                    ; 88 4e f6
     test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
-    je short 09591h                           ; 74 08
+    je short 0961eh                           ; 74 08
     mov ax, strict word 00001h                ; b8 01 00
-    jmp short 09593h                          ; eb 05
-    jmp near 09763h                           ; e9 d2 01
+    jmp short 09620h                          ; eb 05
+    jmp near 097f0h                           ; e9 d2 01
     xor ax, ax                                ; 31 c0
     mov cl, al                                ; 88 c1
@@ -14508,7 +14578,7 @@
     mov word [bp-012h], ax                    ; 89 46 ee
     cmp di, 00fffh                            ; 81 ff ff 0f
-    jne short 095e2h                          ; 75 1f
+    jne short 0966fh                          ; 75 1f
     cmp word [bp-014h], strict byte 0ffffh    ; 83 7e ec ff
-    jne short 095e2h                          ; 75 19
+    jne short 0966fh                          ; 75 19
     mov ax, word [bp-0015ch]                  ; 8b 86 a4 fe
     mov word [bp-012h], ax                    ; 89 46 ee
@@ -14550,19 +14620,19 @@
     mov al, byte [bp-00ch]                    ; 8a 46 f4
     cmp AL, strict byte 001h                  ; 3c 01
-    jc short 0965fh                           ; 72 0c
-    jbe short 09667h                          ; 76 12
+    jc short 096ech                           ; 72 0c
+    jbe short 096f4h                          ; 76 12
     cmp AL, strict byte 003h                  ; 3c 03
-    je short 0966fh                           ; 74 16
+    je short 096fch                           ; 74 16
     cmp AL, strict byte 002h                  ; 3c 02
-    je short 0966bh                           ; 74 0e
-    jmp short 096b2h                          ; eb 53
+    je short 096f8h                           ; 74 0e
+    jmp short 0973fh                          ; eb 53
     test al, al                               ; 84 c0
-    jne short 096b2h                          ; 75 4f
+    jne short 0973fh                          ; 75 4f
     mov DL, strict byte 040h                  ; b2 40
-    jmp short 09671h                          ; eb 0a
+    jmp short 096feh                          ; eb 0a
     mov DL, strict byte 048h                  ; b2 48
-    jmp short 09671h                          ; eb 06
+    jmp short 096feh                          ; eb 06
     mov DL, strict byte 050h                  ; b2 50
-    jmp short 09671h                          ; eb 02
+    jmp short 096feh                          ; eb 02
     mov DL, strict byte 058h                  ; b2 58
     mov bl, dl                                ; 88 d3
@@ -14570,16 +14640,16 @@
     xor bh, bh                                ; 30 ff
     mov ax, bx                                ; 89 d8
-    call 016aeh                               ; e8 31 80
+    call 016aeh                               ; e8 a4 7f
     test al, al                               ; 84 c0
-    je short 096b2h                           ; 74 31
+    je short 0973fh                           ; 74 31
     mov al, dl                                ; 88 d0
     db  0feh, 0c0h
     ; inc al                                    ; fe c0
     xor ah, ah                                ; 30 e4
-    call 016aeh                               ; e8 24 80
+    call 016aeh                               ; e8 97 7f
     mov ch, al                                ; 88 c5
     mov al, dl                                ; 88 d0
     xor ah, ah                                ; 30 e4
-    call 016aeh                               ; e8 1b 80
+    call 016aeh                               ; e8 8e 7f
     mov ah, ch                                ; 88 ec
     mov word [bp-028h], ax                    ; 89 46 d8
@@ -14587,12 +14657,12 @@
     add AL, strict byte 002h                  ; 04 02
     xor ah, ah                                ; 30 e4
-    call 016aeh                               ; e8 0d 80
+    call 016aeh                               ; e8 80 7f
     xor ah, ah                                ; 30 e4
     mov word [bp-02ah], ax                    ; 89 46 d6
     mov ax, bx                                ; 89 d8
-    call 016aeh                               ; e8 03 80
+    call 016aeh                               ; e8 76 7f
     xor ah, ah                                ; 30 e4
     mov word [bp-026h], ax                    ; 89 46 da
-    jmp short 096c4h                          ; eb 12
+    jmp short 09751h                          ; eb 12
     push word [bp-012h]                       ; ff 76 ee
     push word [bp-01eh]                       ; ff 76 e2
@@ -14601,9 +14671,9 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-02ah]                         ; 8d 46 d6
-    call 05b7fh                               ; e8 bb c4
-    mov bx, 00da0h                            ; bb a0 0d
+    call 05b7fh                               ; e8 2e c4
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 64 82
+    call 01933h                               ; e8 d7 81
     push word [bp-012h]                       ; ff 76 ee
     push word [bp-01eh]                       ; ff 76 e2
@@ -14624,9 +14694,9 @@
     mov al, byte [bp-00ch]                    ; 8a 46 f4
     push ax                                   ; 50
-    mov ax, 00cd6h                            ; b8 d6 0c
+    mov ax, 00d38h                            ; b8 38 0d
     push ax                                   ; 50
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 73 82
+    call 01976h                               ; e8 e6 81
     add sp, strict byte 0001ch                ; 83 c4 1c
     mov al, byte [bp-00ah]                    ; 8a 46 f6
@@ -14660,5 +14730,5 @@
     mov dx, strict word 00075h                ; ba 75 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01652h                               ; e8 01 7f
+    call 01652h                               ; e8 74 7e
     mov bl, al                                ; 88 c3
     db  0feh, 0c3h
@@ -14667,10 +14737,10 @@
     mov dx, strict word 00075h                ; ba 75 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 00 7f
-    jmp near 09817h                           ; e9 b4 00
+    call 01660h                               ; e8 73 7e
+    jmp near 098a4h                           ; e9 b4 00
     cmp dx, 0eb14h                            ; 81 fa 14 eb
-    jne short 097beh                          ; 75 55
+    jne short 0984bh                          ; 75 55
     cmp bx, 00101h                            ; 81 fb 01 01
-    jne short 097beh                          ; 75 4f
+    jne short 0984bh                          ; 75 4f
     mov es, [bp-00eh]                         ; 8e 46 f2
     mov bx, word [bp-01ah]                    ; 8b 5e e6
@@ -14687,11 +14757,11 @@
     mov ax, word [bp-01ah]                    ; 8b 46 e6
     mov dx, es                                ; 8c c2
-    call 08a3fh                               ; e8 90 f2
+    call 08acch                               ; e8 90 f2
     mov byte [bp-00ah], cl                    ; 88 4e f6
     test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
-    je short 097c0h                           ; 74 07
+    je short 0984dh                           ; 74 07
     mov cx, strict word 00001h                ; b9 01 00
-    jmp short 097c2h                          ; eb 04
-    jmp short 09817h                          ; eb 57
+    jmp short 0984fh                          ; eb 04
+    jmp short 098a4h                          ; eb 57
     xor cx, cx                                ; 31 c9
     mov bl, byte [bp-00ch]                    ; 8a 5e f4
@@ -14733,5 +14803,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_mem_alloc_:                             ; 0xf9830 LB 0x43
+ahci_mem_alloc_:                             ; 0xf98bd LB 0x43
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14743,7 +14813,7 @@
     mov dx, 00413h                            ; ba 13 04
     xor ax, ax                                ; 31 c0
-    call 0166eh                               ; e8 2e 7e
+    call 0166eh                               ; e8 a1 7d
     test ax, ax                               ; 85 c0
-    je short 09869h                           ; 74 25
+    je short 098f6h                           ; 74 25
     dec ax                                    ; 48
     mov bx, ax                                ; 89 c3
@@ -14752,5 +14822,5 @@
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 0984ch                               ; e2 fa
+    loop 098d9h                               ; e2 fa
     mov si, ax                                ; 89 c6
     mov di, dx                                ; 89 d7
@@ -14758,8 +14828,8 @@
     shr di, 1                                 ; d1 ef
     rcr si, 1                                 ; d1 de
-    loop 09859h                               ; e2 fa
+    loop 098e6h                               ; e2 fa
     mov dx, 00413h                            ; ba 13 04
     xor ax, ax                                ; 31 c0
-    call 0167ch                               ; e8 15 7e
+    call 0167ch                               ; e8 88 7d
     mov ax, si                                ; 89 f0
     lea sp, [bp-00ah]                         ; 8d 66 f6
@@ -14771,5 +14841,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_hba_init_:                              ; 0xf9873 LB 0x16e
+ahci_hba_init_:                              ; 0xf9900 LB 0x16e
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14783,5 +14853,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 e5 7d
+    call 0166eh                               ; e8 58 7d
     mov bx, 00122h                            ; bb 22 01
     mov di, ax                                ; 89 c7
@@ -14800,9 +14870,9 @@
     shr eax, 010h                             ; 66 c1 e8 10
     xchg dx, ax                               ; 92
-    call 09830h                               ; e8 83 ff
+    call 098bdh                               ; e8 83 ff
     mov word [bp-010h], ax                    ; 89 46 f0
     test ax, ax                               ; 85 c0
-    jne short 098b7h                          ; 75 03
-    jmp near 099c0h                           ; e9 09 01
+    jne short 09944h                          ; 75 03
+    jmp near 09a4dh                           ; e9 09 01
     mov ax, word [bp-010h]                    ; 8b 46 f0
     mov es, di                                ; 8e c7
@@ -14854,5 +14924,5 @@
     xchg dx, ax                               ; 92
     test AL, strict byte 001h                 ; a8 01
-    jne short 09911h                          ; 75 de
+    jne short 0999eh                          ; 75 de
     xor ax, ax                                ; 31 c0
     xor cx, cx                                ; 31 c9
@@ -14873,31 +14943,31 @@
     mov bx, strict word 0001fh                ; bb 1f 00
     xor cx, cx                                ; 31 c9
-    call 088ach                               ; e8 54 ef
+    call 08939h                               ; 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 09984h                          ; eb 21
+    jmp short 09a11h                          ; eb 21
     xor al, al                                ; 30 c0
     test al, al                               ; 84 c0
-    je short 0997bh                           ; 74 12
+    je short 09a08h                           ; 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 09332h                               ; e8 bc f9
+    call 093bfh                               ; e8 bc f9
     dec byte [bp-00eh]                        ; fe 4e f2
-    je short 099beh                           ; 74 43
+    je short 09a4bh                           ; 74 43
     inc byte [bp-00ch]                        ; fe 46 f4
     cmp byte [bp-00ch], 020h                  ; 80 7e f4 20
-    jnc short 099beh                          ; 73 3a
+    jnc short 09a4bh                          ; 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 09996h                               ; e3 06
+    jcxz 09a23h                               ; e3 06
     sal bx, 1                                 ; d1 e3
     rcl di, 1                                 ; d1 d7
-    loop 09990h                               ; e2 fa
+    loop 09a1dh                               ; e2 fa
     mov ax, strict word 0000ch                ; b8 0c 00
     xor cx, cx                                ; 31 c9
@@ -14915,9 +14985,9 @@
     xchg dx, ax                               ; 92
     test dx, di                               ; 85 fa
-    jne short 099bah                          ; 75 04
+    jne short 09a47h                          ; 75 04
     test ax, bx                               ; 85 d8
-    je short 09963h                           ; 74 a9
+    je short 099f0h                           ; 74 a9
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 09965h                          ; eb a7
+    jmp short 099f2h                          ; eb a7
     xor ax, ax                                ; 31 c0
     lea sp, [bp-00ah]                         ; 8d 66 f6
@@ -14929,7 +14999,7 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0c7h, 09ah, 0a5h, 09ah, 0abh, 09ah, 0b1h, 09ah, 0b7h
-    db  09ah, 0bdh, 09ah, 0c3h, 09ah, 0c7h, 09ah
-_ahci_init:                                  ; 0xf99e1 LB 0x139
+    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 054h, 09bh, 032h, 09bh, 038h, 09bh, 03eh, 09bh, 044h
+    db  09bh, 04ah, 09bh, 050h, 09bh, 054h, 09bh
+_ahci_init:                                  ; 0xf9a6e LB 0x139
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14939,8 +15009,8 @@
     mov ax, 00601h                            ; b8 01 06
     mov dx, strict word 00001h                ; ba 01 00
-    call 09f39h                               ; e8 47 05
+    call 09fc6h                               ; e8 47 05
     mov dx, ax                                ; 89 c2
     cmp ax, strict word 0ffffh                ; 3d ff ff
-    je short 09a42h                           ; 74 49
+    je short 09acfh                           ; 74 49
     mov al, ah                                ; 88 e0
     mov byte [bp-008h], ah                    ; 88 66 f8
@@ -14949,8 +15019,8 @@
     xor ah, ah                                ; 30 e4
     mov bx, strict word 00034h                ; bb 34 00
-    call 09f41h                               ; e8 36 05
+    call 09ff1h                               ; e8 59 05
     mov cl, al                                ; 88 c1
     test cl, cl                               ; 84 c9
-    je short 09a45h                           ; 74 34
+    je short 09ad2h                           ; 74 34
     mov bl, cl                                ; 88 cb
     xor bh, bh                                ; 30 ff
@@ -14963,7 +15033,7 @@
     mov dx, word [bp-00ch]                    ; 8b 56 f4
     mov ax, word [bp-012h]                    ; 8b 46 ee
-    call 09f41h                               ; e8 11 05
+    call 09ff1h                               ; e8 34 05
     cmp AL, strict byte 012h                  ; 3c 12
-    je short 09a45h                           ; 74 11
+    je short 09ad2h                           ; 74 11
     mov bl, cl                                ; 88 cb
     db  0feh, 0c3h
@@ -14972,8 +15042,8 @@
     mov dx, word [bp-00ch]                    ; 8b 56 f4
     mov ax, word [bp-012h]                    ; 8b 46 ee
-    jmp short 09a08h                          ; eb c6
-    jmp near 09b13h                           ; e9 ce 00
+    jmp short 09a95h                          ; eb c6
+    jmp near 09ba0h                           ; e9 ce 00
     test cl, cl                               ; 84 c9
-    je short 09a42h                           ; 74 f9
+    je short 09acfh                           ; 74 f9
     add cl, 002h                              ; 80 c1 02
     mov bl, cl                                ; 88 cb
@@ -14987,7 +15057,7 @@
     mov dx, word [bp-00eh]                    ; 8b 56 f2
     mov ax, word [bp-014h]                    ; 8b 46 ec
-    call 09f41h                               ; e8 d6 04
+    call 09ff1h                               ; e8 f9 04
     cmp AL, strict byte 010h                  ; 3c 10
-    jne short 09a42h                          ; 75 d3
+    jne short 09acfh                          ; 75 d3
     mov byte [bp-006h], 000h                  ; c6 46 fa 00
     mov bl, cl                                ; 88 cb
@@ -14996,29 +15066,29 @@
     mov dx, word [bp-00eh]                    ; 8b 56 f2
     mov ax, word [bp-014h]                    ; 8b 46 ec
-    call 09f68h                               ; e8 e5 04
+    call 0a018h                               ; e8 08 05
     mov dx, ax                                ; 89 c2
     and ax, strict word 0000fh                ; 25 0f 00
     sub ax, strict word 00004h                ; 2d 04 00
     cmp ax, strict word 0000bh                ; 3d 0b 00
-    jnbe short 09ac7h                         ; 77 37
+    jnbe short 09b54h                         ; 77 37
     push CS                                   ; 0e
     pop ES                                    ; 07
     mov cx, strict word 00008h                ; b9 08 00
-    mov di, 099cah                            ; bf ca 99
+    mov di, 09a57h                            ; bf 57 9a
     repne scasb                               ; f2 ae
     sal cx, 1                                 ; d1 e1
     mov di, cx                                ; 89 cf
-    mov ax, word [cs:di-0662fh]               ; 2e 8b 85 d1 99
+    mov ax, word [cs:di-065a2h]               ; 2e 8b 85 5e 9a
     jmp ax                                    ; ff e0
     mov byte [bp-006h], 010h                  ; c6 46 fa 10
-    jmp short 09ac7h                          ; eb 1c
+    jmp short 09b54h                          ; eb 1c
     mov byte [bp-006h], 014h                  ; c6 46 fa 14
-    jmp short 09ac7h                          ; eb 16
+    jmp short 09b54h                          ; eb 16
     mov byte [bp-006h], 018h                  ; c6 46 fa 18
-    jmp short 09ac7h                          ; eb 10
+    jmp short 09b54h                          ; eb 10
     mov byte [bp-006h], 01ch                  ; c6 46 fa 1c
-    jmp short 09ac7h                          ; eb 0a
+    jmp short 09b54h                          ; eb 0a
     mov byte [bp-006h], 020h                  ; c6 46 fa 20
-    jmp short 09ac7h                          ; eb 04
+    jmp short 09b54h                          ; eb 04
     mov byte [bp-006h], 024h                  ; c6 46 fa 24
     mov CL, strict byte 004h                  ; b1 04
@@ -15029,5 +15099,5 @@
     mov al, byte [bp-006h]                    ; 8a 46 fa
     test al, al                               ; 84 c0
-    je short 09b13h                           ; 74 3b
+    je short 09ba0h                           ; 74 3b
     mov bl, al                                ; 88 c3
     xor bh, bh                                ; 30 ff
@@ -15040,7 +15110,7 @@
     mov dx, word [bp-010h]                    ; 8b 56 f0
     mov ax, word [bp-016h]                    ; 8b 46 ea
-    call 09f8dh                               ; e8 96 04
+    call 0a03dh                               ; e8 b9 04
     test AL, strict byte 001h                 ; a8 01
-    je short 09b13h                           ; 74 18
+    je short 09ba0h                           ; 74 18
     and AL, strict byte 0f0h                  ; 24 f0
     add si, ax                                ; 01 c6
@@ -15049,7 +15119,7 @@
     mov dx, word [bp-010h]                    ; 8b 56 f0
     mov ax, word [bp-016h]                    ; 8b 46 ea
-    call 09fcch                               ; e8 be 04
+    call 0a07ch                               ; e8 e1 04
     mov ax, si                                ; 89 f0
-    call 09873h                               ; e8 60 fd
+    call 09900h                               ; e8 60 fd
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop di                                    ; 5f
@@ -15057,5 +15127,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-apm_out_str_:                                ; 0xf9b1a LB 0x39
+apm_out_str_:                                ; 0xf9ba7 LB 0x39
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15063,5 +15133,5 @@
     mov bx, ax                                ; 89 c3
     cmp byte [bx], 000h                       ; 80 3f 00
-    je short 09b2fh                           ; 74 0a
+    je short 09bbch                           ; 74 0a
     mov al, byte [bx]                         ; 8a 07
     out DX, AL                                ; ee
@@ -15070,22 +15140,25 @@
     db  00ah, 0c0h
     ; or al, al                                 ; 0a c0
-    jne short 09b27h                          ; 75 f8
+    jne short 09bb4h                          ; 75 f8
     lea sp, [bp-002h]                         ; 8d 66 fe
     pop bx                                    ; 5b
     pop bp                                    ; 5d
     retn                                      ; c3
-    je short 09ad2h                           ; 74 9b
-    call far [bp+di-0647ah]                   ; ff 9b 86 9b
-    mov ax, word [0ff9bh]                     ; a1 9b ff
-    wait                                      ; 9b
-    int3                                      ; cc
-    wait                                      ; 9b
-    call far [bp+di-063fbh]                   ; ff 9b 05 9c
-    rcr word [bp+di-0642fh], 1                ; d1 9b d1 9b
-    rcr word [bp+di-063bch], 1                ; d1 9b 44 9c
-    rcr word [bp+di-0642fh], 1                ; d1 9b d1 9b
-    db  03dh
+    add word [si-06374h], bx                  ; 01 9c 8c 9c
+    adc bx, word [si-063d2h]                  ; 13 9c 2e 9c
+    mov [si-063a7h], ds                       ; 8c 9c 59 9c
+    mov [si-0636eh], ds                       ; 8c 9c 92 9c
+    pop si                                    ; 5e
     pushfw                                    ; 9c
-_apm_function:                               ; 0xf9b53 LB 0xf6
+    pop si                                    ; 5e
+    pushfw                                    ; 9c
+    pop si                                    ; 5e
+    pushfw                                    ; 9c
+    rcr word [si-063a2h], 1                   ; d1 9c 5e 9c
+    pop si                                    ; 5e
+    pushfw                                    ; 9c
+    db  0cah
+    pushfw                                    ; 9c
+_apm_function:                               ; 0xf9be0 LB 0xf6
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15095,21 +15168,21 @@
     xor ah, ah                                ; 30 e4
     cmp ax, strict word 0000eh                ; 3d 0e 00
-    jnbe short 09bd1h                         ; 77 6c
+    jnbe short 09c5eh                         ; 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-064cbh]                   ; 2e ff a7 35 9b
+    jmp word [cs:bx-0643eh]                   ; 2e ff a7 c2 9b
     mov word [bp+012h], 00102h                ; c7 46 12 02 01
     mov word [bp+00ch], 0504dh                ; c7 46 0c 4d 50
     mov word [bp+010h], strict word 00003h    ; c7 46 10 03 00
-    jmp near 09bffh                           ; e9 79 00
+    jmp near 09c8ch                           ; e9 79 00
     mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
-    mov word [bp+00ch], 0a1c4h                ; c7 46 0c c4 a1
+    mov word [bp+00ch], 0a274h                ; c7 46 0c 74 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 09bffh                           ; e9 5e 00
+    jmp near 09c8ch                           ; e9 5e 00
     mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
     mov word [bp+00ch], 0da40h                ; c7 46 0c 40 da
@@ -15124,19 +15197,19 @@
     mov si, ax                                ; 89 c6
     sal esi, 010h                             ; 66 c1 e6 10
-    jmp near 09bffh                           ; e9 33 00
+    jmp near 09c8ch                           ; e9 33 00
     sti                                       ; fb
     hlt                                       ; f4
-    jmp near 09bffh                           ; e9 2e 00
-    mov bx, 00da0h                            ; bb a0 0d
+    jmp near 09c8ch                           ; e9 2e 00
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 57 7d
+    call 01933h                               ; e8 ca 7c
     push word [bp+00ch]                       ; ff 76 0c
     push word [bp+012h]                       ; ff 76 12
-    mov ax, 00d29h                            ; b8 29 0d
+    mov ax, 00d8bh                            ; b8 8b 0d
     push ax                                   ; 50
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 89 7d
+    call 01976h                               ; e8 fc 7c
     add sp, strict byte 00008h                ; 83 c4 08
     mov ax, word [bp+012h]                    ; 8b 46 12
@@ -15150,28 +15223,28 @@
     retn                                      ; c3
     cmp word [bp+010h], strict byte 00003h    ; 83 7e 10 03
-    je short 09c2ah                           ; 74 1f
+    je short 09cb7h                           ; 74 1f
     cmp word [bp+010h], strict byte 00002h    ; 83 7e 10 02
-    je short 09c22h                           ; 74 11
+    je short 09cafh                           ; 74 11
     cmp word [bp+010h], strict byte 00001h    ; 83 7e 10 01
-    jne short 09c32h                          ; 75 1b
+    jne short 09cbfh                          ; 75 1b
     mov dx, 0040fh                            ; ba 0f 04
-    mov ax, 00d10h                            ; b8 10 0d
-    call 09b1ah                               ; e8 fa fe
-    jmp short 09bffh                          ; eb dd
+    mov ax, 00d72h                            ; b8 72 0d
+    call 09ba7h                               ; e8 fa fe
+    jmp short 09c8ch                          ; eb dd
     mov dx, 0040fh                            ; ba 0f 04
-    mov ax, 00d18h                            ; b8 18 0d
-    jmp short 09c1dh                          ; eb f3
+    mov ax, 00d7ah                            ; b8 7a 0d
+    jmp short 09caah                          ; eb f3
     mov dx, 0040fh                            ; ba 0f 04
-    mov ax, 00d20h                            ; b8 20 0d
-    jmp short 09c1dh                          ; eb eb
+    mov ax, 00d82h                            ; b8 82 0d
+    jmp short 09caah                          ; 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 09bffh                          ; eb c2
+    jmp short 09c8ch                          ; eb c2
     mov word [bp+012h], 00102h                ; c7 46 12 02 01
-    jmp short 09bffh                          ; eb bb
+    jmp short 09c8ch                          ; eb bb
     or ah, 080h                               ; 80 cc 80
-    jmp short 09c35h                          ; eb ec
-pci16_select_reg_:                           ; 0xf9c49 LB 0x24
+    jmp short 09cc2h                          ; eb ec
+pci16_select_reg_:                           ; 0xf9cd6 LB 0x24
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15190,5 +15263,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci16_find_device_:                          ; 0xf9c6d LB 0xf7
+pci16_find_device_:                          ; 0xf9cfa LB 0xf7
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15204,8 +15277,8 @@
     mov byte [bp-006h], 000h                  ; c6 46 fa 00
     test bl, 007h                             ; f6 c3 07
-    jne short 09cb5h                          ; 75 2d
+    jne short 09d42h                          ; 75 2d
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, bx                                ; 89 d8
-    call 09c49h                               ; e8 b9 ff
+    call 09cd6h                               ; e8 b9 ff
     mov dx, 00cfeh                            ; ba fe 0c
     in AL, DX                                 ; ec
@@ -15214,23 +15287,23 @@
     mov byte [bp-008h], al                    ; 88 46 f8
     cmp AL, strict byte 0ffh                  ; 3c ff
-    jne short 09ca3h                          ; 75 06
+    jne short 09d30h                          ; 75 06
     add bx, strict byte 00008h                ; 83 c3 08
-    jmp near 09d35h                           ; e9 92 00
+    jmp near 09dc2h                           ; e9 92 00
     test byte [bp-008h], 080h                 ; f6 46 f8 80
-    je short 09cb0h                           ; 74 07
+    je short 09d3dh                           ; 74 07
     mov word [bp-00eh], strict word 00001h    ; c7 46 f2 01 00
-    jmp short 09cb5h                          ; eb 05
+    jmp short 09d42h                          ; 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 09cdch                          ; 75 1e
+    jne short 09d69h                          ; 75 1e
     mov al, bh                                ; 88 f8
     xor ah, ah                                ; 30 e4
     test ax, ax                               ; 85 c0
-    jne short 09cdch                          ; 75 16
+    jne short 09d69h                          ; 75 16
     mov dx, strict word 0001ah                ; ba 1a 00
     mov ax, bx                                ; 89 d8
-    call 09c49h                               ; e8 7b ff
+    call 09cd6h                               ; e8 7b ff
     mov dx, 00cfeh                            ; ba fe 0c
     in AL, DX                                 ; ec
@@ -15238,13 +15311,13 @@
     ; sub ah, ah                                ; 2a e4
     cmp al, byte [bp-006h]                    ; 3a 46 fa
-    jbe short 09cdch                          ; 76 03
+    jbe short 09d69h                          ; 76 03
     mov byte [bp-006h], al                    ; 88 46 fa
     test di, di                               ; 85 ff
-    je short 09ce5h                           ; 74 05
+    je short 09d72h                           ; 74 05
     mov dx, strict word 00008h                ; ba 08 00
-    jmp short 09ce7h                          ; eb 02
+    jmp short 09d74h                          ; eb 02
     xor dx, dx                                ; 31 d2
     mov ax, bx                                ; 89 d8
-    call 09c49h                               ; e8 5d ff
+    call 09cd6h                               ; e8 5d ff
     mov dx, 00cfch                            ; ba fc 0c
     in eax, DX                                ; 66 ed
@@ -15257,22 +15330,22 @@
     mov word [bp-00ch], strict word 00000h    ; c7 46 f4 00 00
     test di, di                               ; 85 ff
-    je short 09d16h                           ; 74 0f
+    je short 09da3h                           ; 74 0f
     mov cx, strict word 00008h                ; b9 08 00
     shr dx, 1                                 ; d1 ea
     rcr ax, 1                                 ; d1 d8
-    loop 09d0ah                               ; e2 fa
+    loop 09d97h                               ; 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 09d26h                          ; 75 08
+    jne short 09db3h                          ; 75 08
     mov ax, word [bp-00ah]                    ; 8b 46 f6
     cmp ax, word [bp-012h]                    ; 3b 46 ee
-    je short 09d2ch                           ; 74 06
+    je short 09db9h                           ; 74 06
     cmp word [bp-00ch], strict byte 00000h    ; 83 7e f4 00
-    je short 09d32h                           ; 74 06
+    je short 09dbfh                           ; 74 06
     dec si                                    ; 4e
     cmp si, strict byte 0ffffh                ; 83 fe ff
-    je short 09d45h                           ; 74 13
+    je short 09dd2h                           ; 74 13
     add bx, word [bp-00eh]                    ; 03 5e f2
     mov al, bh                                ; 88 f8
@@ -15281,10 +15354,10 @@
     xor dh, dh                                ; 30 f6
     cmp ax, dx                                ; 39 d0
-    jnbe short 09d45h                         ; 77 03
-    jmp near 09c83h                           ; e9 3e ff
+    jnbe short 09dd2h                         ; 77 03
+    jmp near 09d10h                           ; e9 3e ff
     cmp si, strict byte 0ffffh                ; 83 fe ff
-    jne short 09d4eh                          ; 75 04
+    jne short 09ddbh                          ; 75 04
     mov ax, bx                                ; 89 d8
-    jmp short 09d51h                          ; eb 03
+    jmp short 09ddeh                          ; eb 03
     mov ax, strict word 0ffffh                ; b8 ff ff
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -15293,13 +15366,11 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-    inc bp                                    ; 45
+    rcr byte [bp-06115h], CL                  ; d2 9e eb 9e
+    std                                       ; fd
     sahf                                      ; 9e
-    pop si                                    ; 5e
-    sahf                                      ; 9e
-    jo short 09cfch                           ; 70 9e
-    test byte [bp-0616ah], bl                 ; 84 9e 96 9e
-    db  0a9h
-    sahf                                      ; 9e
-_pci16_function:                             ; 0xf9d64 LB 0x1d5
+    adc word [bx-060ddh], bx                  ; 11 9f 23 9f
+    db  036h, 09fh
+    ; ss lahf                                   ; 36 9f
+_pci16_function:                             ; 0xf9df1 LB 0x1d5
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15315,18 +15386,18 @@
     xor ah, ah                                ; 30 e4
     cmp bx, strict byte 00003h                ; 83 fb 03
-    jc short 09d96h                           ; 72 13
-    jbe short 09de9h                          ; 76 64
+    jc short 09e23h                           ; 72 13
+    jbe short 09e76h                          ; 76 64
     cmp bx, strict byte 0000eh                ; 83 fb 0e
-    je short 09df1h                           ; 74 67
+    je short 09e7eh                           ; 74 67
     cmp bx, strict byte 00008h                ; 83 fb 08
-    jc short 09da0h                           ; 72 11
+    jc short 09e2dh                           ; 72 11
     cmp bx, strict byte 0000dh                ; 83 fb 0d
-    jbe short 09df4h                          ; 76 60
-    jmp short 09da0h                          ; eb 0a
+    jbe short 09e81h                          ; 76 60
+    jmp short 09e2dh                          ; eb 0a
     cmp bx, strict byte 00002h                ; 83 fb 02
-    je short 09dbfh                           ; 74 24
+    je short 09e4ch                           ; 74 24
     cmp bx, strict byte 00001h                ; 83 fb 01
-    je short 09da3h                           ; 74 03
-    jmp near 09f02h                           ; e9 5f 01
+    je short 09e30h                           ; 74 03
+    jmp near 09f8fh                           ; 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
@@ -15334,52 +15405,52 @@
     mov word [bp+018h], 04350h                ; c7 46 18 50 43
     mov word [bp+01ah], 02049h                ; c7 46 1a 49 20
-    jmp near 09f32h                           ; e9 73 01
+    jmp near 09fbfh                           ; e9 73 01
     cmp word [bp+018h], strict byte 0ffffh    ; 83 7e 18 ff
-    jne short 09dcbh                          ; 75 06
+    jne short 09e58h                          ; 75 06
     or ah, 083h                               ; 80 cc 83
-    jmp near 09f2bh                           ; e9 60 01
+    jmp near 09fb8h                           ; 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 09c6dh                               ; e8 94 fe
+    call 09cfah                               ; e8 94 fe
     cmp ax, strict word 0ffffh                ; 3d ff ff
-    jne short 09debh                          ; 75 0d
+    jne short 09e78h                          ; 75 0d
     mov ax, word [bp+020h]                    ; 8b 46 20
     xor ah, ah                                ; 30 e4
     or ah, 086h                               ; 80 cc 86
-    jmp near 09f2bh                           ; e9 42 01
-    jmp short 09df6h                          ; eb 0b
+    jmp near 09fb8h                           ; e9 42 01
+    jmp short 09e83h                          ; eb 0b
     mov word [bp+014h], ax                    ; 89 46 14
-    jmp near 09f32h                           ; e9 41 01
-    jmp near 09ebdh                           ; e9 c9 00
-    jmp short 09e1bh                          ; eb 25
+    jmp near 09fbfh                           ; e9 41 01
+    jmp near 09f4ah                           ; e9 c9 00
+    jmp short 09ea8h                          ; 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 09c6dh                               ; e8 68 fe
+    call 09cfah                               ; e8 68 fe
     cmp ax, strict word 0ffffh                ; 3d ff ff
-    jne short 09e15h                          ; 75 0b
+    jne short 09ea2h                          ; 75 0b
     mov ax, word [bp+020h]                    ; 8b 46 20
     xor ah, ah                                ; 30 e4
     or ah, 086h                               ; 80 cc 86
-    jmp near 09f2bh                           ; e9 16 01
+    jmp near 09fb8h                           ; e9 16 01
     mov word [bp+014h], ax                    ; 89 46 14
-    jmp near 09f32h                           ; e9 17 01
+    jmp near 09fbfh                           ; e9 17 01
     cmp word [bp+004h], 00100h                ; 81 7e 04 00 01
-    jc short 09e28h                           ; 72 06
+    jc short 09eb5h                           ; 72 06
     or ah, 087h                               ; 80 cc 87
-    jmp near 09f2bh                           ; e9 03 01
+    jmp near 09fb8h                           ; e9 03 01
     mov dx, word [bp+004h]                    ; 8b 56 04
     mov ax, word [bp+014h]                    ; 8b 46 14
-    call 09c49h                               ; e8 18 fe
+    call 09cd6h                               ; 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 09ea6h                         ; 77 68
+    jnbe short 09f33h                         ; 77 68
     sal bx, 1                                 ; d1 e3
-    jmp word [cs:bx-062a8h]                   ; 2e ff a7 58 9d
+    jmp word [cs:bx-0621bh]                   ; 2e ff a7 e5 9d
     mov bx, word [bp+01ch]                    ; 8b 5e 1c
     xor bl, bl                                ; 30 db
@@ -15392,5 +15463,5 @@
     or bx, ax                                 ; 09 c3
     mov word [bp+01ch], bx                    ; 89 5e 1c
-    jmp short 09ea6h                          ; eb 48
+    jmp short 09f33h                          ; eb 48
     mov dx, word [bp+004h]                    ; 8b 56 04
     xor dh, dh                                ; 30 f6
@@ -15399,5 +15470,5 @@
     in ax, DX                                 ; ed
     mov word [bp+01ch], ax                    ; 89 46 1c
-    jmp short 09ea6h                          ; eb 36
+    jmp short 09f33h                          ; eb 36
     mov dx, 00cfch                            ; ba fc 0c
     in eax, DX                                ; 66 ed
@@ -15408,5 +15479,5 @@
     mov word [bp+01ch], ax                    ; 89 46 1c
     mov word [bp+01eh], dx                    ; 89 56 1e
-    jmp short 09ea6h                          ; eb 22
+    jmp short 09f33h                          ; eb 22
     mov ax, word [bp+01ch]                    ; 8b 46 1c
     mov dx, word [bp+004h]                    ; 8b 56 04
@@ -15415,5 +15486,5 @@
     add dx, 00cfch                            ; 81 c2 fc 0c
     out DX, AL                                ; ee
-    jmp short 09ea6h                          ; eb 10
+    jmp short 09f33h                          ; eb 10
     mov ax, word [bp+01ch]                    ; 8b 46 1c
     mov dx, word [bp+004h]                    ; 8b 56 04
@@ -15422,5 +15493,5 @@
     add dx, 00cfch                            ; 81 c2 fc 0c
     out DX, ax                                ; ef
-    jmp near 09f32h                           ; e9 89 00
+    jmp near 09fbfh                           ; e9 89 00
     mov ax, word [bp+01ch]                    ; 8b 46 1c
     mov cx, word [bp+01eh]                    ; 8b 4e 1e
@@ -15431,5 +15502,5 @@
     ; mov ax, cx                                ; 8b c1
     out DX, eax                               ; 66 ef
-    jmp short 09f32h                          ; eb 75
+    jmp short 09fbfh                          ; eb 75
     mov bx, word [bp+004h]                    ; 8b 5e 04
     mov es, [bp+026h]                         ; 8e 46 26
@@ -15438,5 +15509,5 @@
     mov cx, word [0f380h]                     ; 8b 0e 80 f3
     cmp cx, word [es:bx]                      ; 26 3b 0f
-    jbe short 09ee3h                          ; 76 11
+    jbe short 09f70h                          ; 76 11
     mov ax, word [bp+020h]                    ; 8b 46 20
     xor ah, ah                                ; 30 e4
@@ -15444,5 +15515,5 @@
     mov word [bp+020h], ax                    ; 89 46 20
     or word [bp+02ch], strict byte 00001h     ; 83 4e 2c 01
-    jmp short 09ef7h                          ; eb 14
+    jmp short 09f84h                          ; eb 14
     les di, [es:bx+002h]                      ; 26 c4 7f 02
     mov si, 0f1a0h                            ; be a0 f1
@@ -15456,18 +15527,18 @@
     les bx, [bp-008h]                         ; c4 5e f8
     mov word [es:bx], ax                      ; 26 89 07
-    jmp short 09f32h                          ; eb 30
-    mov bx, 00da0h                            ; bb a0 0d
+    jmp short 09fbfh                          ; eb 30
+    mov bx, 00e02h                            ; bb 02 0e
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 26 7a
+    call 01933h                               ; e8 99 79
     mov ax, word [bp+014h]                    ; 8b 46 14
     push ax                                   ; 50
     mov ax, word [bp+020h]                    ; 8b 46 20
     push ax                                   ; 50
-    mov ax, 00d5ch                            ; b8 5c 0d
+    mov ax, 00dbeh                            ; b8 be 0d
     push ax                                   ; 50
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 56 7a
+    call 01976h                               ; e8 c9 79
     add sp, strict byte 00008h                ; 83 c4 08
     mov ax, word [bp+020h]                    ; 8b 46 20
@@ -15481,5 +15552,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_find_classcode_:                         ; 0xf9f39 LB 0x8
+pci_find_classcode_:                         ; 0xf9fc6 LB 0x8
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15487,5 +15558,26 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_read_config_byte_:                       ; 0xf9f41 LB 0x27
+pci_find_device_:                            ; 0xf9fce LB 0x23
+    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, 0b102h                            ; b8 02 b1
+    int 01ah                                  ; cd 1a
+    cmp ah, 000h                              ; 80 fc 00
+    je short 09fe7h                           ; 74 03
+    mov bx, strict word 0ffffh                ; bb ff ff
+    mov ax, bx                                ; 89 d8
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+pci_read_config_byte_:                       ; 0xf9ff1 LB 0x27
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15510,5 +15602,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_read_config_word_:                       ; 0xf9f68 LB 0x25
+pci_read_config_word_:                       ; 0xfa018 LB 0x25
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15532,5 +15624,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_read_config_dword_:                      ; 0xf9f8d LB 0x3f
+pci_read_config_dword_:                      ; 0xfa03d LB 0x3f
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15547,5 +15639,5 @@
     int 01ah                                  ; cd 1a
     test cx, cx                               ; 85 c9
-    jne short 09fbdh                          ; 75 14
+    jne short 0a06dh                          ; 75 14
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
@@ -15557,7 +15649,7 @@
     int 01ah                                  ; cd 1a
     test cx, cx                               ; 85 c9
-    je short 09fc2h                           ; 74 05
+    je short 0a072h                           ; 74 05
     mov ax, strict word 00001h                ; b8 01 00
-    jmp short 09fc4h                          ; eb 02
+    jmp short 0a074h                          ; eb 02
     xor ax, ax                                ; 31 c0
     cwd                                       ; 99
@@ -15567,5 +15659,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_write_config_word_:                      ; 0xf9fcc LB 0x1e
+pci_write_config_word_:                      ; 0xfa07c LB 0x1e
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15584,5 +15676,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-vds_is_present_:                             ; 0xf9fea LB 0x1d
+vds_is_present_:                             ; 0xfa09a LB 0x1d
     push bx                                   ; 53
     push bp                                   ; 55
@@ -15592,5 +15684,5 @@
     mov es, ax                                ; 8e c0
     test byte [es:bx], 020h                   ; 26 f6 07 20
-    je short 0a002h                           ; 74 06
+    je short 0a0b2h                           ; 74 06
     mov ax, strict word 00001h                ; b8 01 00
     pop bp                                    ; 5d
@@ -15601,5 +15693,5 @@
     pop bx                                    ; 5b
     retn                                      ; c3
-vds_real_to_lin_:                            ; 0xfa007 LB 0x1e
+vds_real_to_lin_:                            ; 0xfa0b7 LB 0x1e
     push bx                                   ; 53
     push cx                                   ; 51
@@ -15612,5 +15704,5 @@
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 0a015h                               ; e2 fa
+    loop 0a0c5h                               ; e2 fa
     xor cx, cx                                ; 31 c9
     add ax, bx                                ; 01 d8
@@ -15620,5 +15712,5 @@
     pop bx                                    ; 5b
     retn                                      ; c3
-vds_build_sg_list_:                          ; 0xfa025 LB 0x77
+vds_build_sg_list_:                          ; 0xfa0d5 LB 0x77
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15634,21 +15726,21 @@
     mov bx, word [bp+006h]                    ; 8b 5e 06
     mov word [es:di+002h], bx                 ; 26 89 5d 02
-    call 0a007h                               ; e8 c3 ff
+    call 0a0b7h                               ; 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 09feah                               ; e8 93 ff
+    call 0a09ah                               ; e8 93 ff
     test ax, ax                               ; 85 c0
-    je short 0a06ch                           ; 74 11
+    je short 0a11ch                           ; 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 0a069h                           ; 72 02
+    jc short 0a119h                           ; 72 02
     db  032h, 0c0h
     ; xor al, al                                ; 32 c0
     cbw                                       ; 98
-    jmp short 0a093h                          ; eb 27
+    jmp short 0a143h                          ; eb 27
     mov es, si                                ; 8e c6
     mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00
@@ -15667,5 +15759,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-vds_free_sg_list_:                           ; 0xfa09c LB 0x34
+vds_free_sg_list_:                           ; 0xfa14c LB 0x34
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15673,7 +15765,7 @@
     push di                                   ; 57
     mov bx, ax                                ; 89 c3
-    call 09feah                               ; e8 44 ff
+    call 0a09ah                               ; e8 44 ff
     test ax, ax                               ; 85 c0
-    je short 0a0bbh                           ; 74 11
+    je short 0a16bh                           ; 74 11
     mov di, bx                                ; 89 df
     mov es, dx                                ; 8e c2
@@ -15681,5 +15773,5 @@
     mov dx, strict word 00000h                ; ba 00 00
     int 04bh                                  ; cd 4b
-    jc short 0a0bah                           ; 72 02
+    jc short 0a16ah                           ; 72 02
     db  032h, 0c0h
     ; xor al, al                                ; 32 c0
@@ -15693,5 +15785,5 @@
     retn                                      ; c3
     times 0x6 db 0
-__U4M:                                       ; 0xfa0d0 LB 0x20
+__U4M:                                       ; 0xfa180 LB 0x20
     pushfw                                    ; 9c
     push si                                   ; 56
@@ -15720,5 +15812,5 @@
     retn                                      ; c3
     times 0x4 db 0
-__U4D:                                       ; 0xfa0f0 LB 0x30
+__U4D:                                       ; 0xfa1a0 LB 0x30
     pushfw                                    ; 9c
     push DS                                   ; 1e
@@ -15735,5 +15827,5 @@
     push dx                                   ; 52
     push ax                                   ; 50
-    call 0a1d5h                               ; e8 d0 00
+    call 0a285h                               ; e8 d0 00
     mov cx, word [bp-002h]                    ; 8b 4e fe
     mov bx, word [bp-004h]                    ; 8b 5e fc
@@ -15746,7 +15838,7 @@
     retn                                      ; c3
     times 0xe db 0
-__U8RS:                                      ; 0xfa120 LB 0x10
+__U8RS:                                      ; 0xfa1d0 LB 0x10
     test si, si                               ; 85 f6
-    je short 0a12fh                           ; 74 0b
+    je short 0a1dfh                           ; 74 0b
     shr ax, 1                                 ; d1 e8
     rcr bx, 1                                 ; d1 db
@@ -15754,9 +15846,9 @@
     rcr dx, 1                                 ; d1 da
     dec si                                    ; 4e
-    jne short 0a124h                          ; 75 f5
+    jne short 0a1d4h                          ; 75 f5
     retn                                      ; c3
-__U8LS:                                      ; 0xfa130 LB 0x10
+__U8LS:                                      ; 0xfa1e0 LB 0x10
     test si, si                               ; 85 f6
-    je short 0a13fh                           ; 74 0b
+    je short 0a1efh                           ; 74 0b
     sal dx, 1                                 ; d1 e2
     rcl cx, 1                                 ; d1 d1
@@ -15764,7 +15856,7 @@
     rcl ax, 1                                 ; d1 d0
     dec si                                    ; 4e
-    jne short 0a134h                          ; 75 f5
+    jne short 0a1e4h                          ; 75 f5
     retn                                      ; c3
-_fmemset_:                                   ; 0xfa140 LB 0x10
+_fmemset_:                                   ; 0xfa1f0 LB 0x10
     push di                                   ; 57
     mov es, dx                                ; 8e c2
@@ -15777,5 +15869,5 @@
     retn                                      ; c3
     times 0x3 db 0
-_fmemcpy_:                                   ; 0xfa150 LB 0x3a
+_fmemcpy_:                                   ; 0xfa200 LB 0x3a
     push bp                                   ; 55
     db  08bh, 0ech
@@ -15802,17 +15894,19 @@
     add byte [bx+si], al                      ; 00 00
     add byte [bx+si], al                      ; 00 00
-    mov AL, byte [0a2a1h]                     ; a0 a1 a2
-    mov ax, word [0a1a6h]                     ; a1 a6 a1
-    cmpsb                                     ; a6
-    mov ax, word [0a1a6h]                     ; a1 a6 a1
-    test AL, strict byte 0a1h                 ; a8 a1
-    test AL, strict byte 0a1h                 ; a8 a1
-    stosb                                     ; aa
-    mov ax, word [0a1aeh]                     ; a1 ae a1
-    scasb                                     ; ae
-    mov ax, word [0a1b0h]                     ; a1 b0 a1
-    mov CH, strict byte 0a1h                  ; b5 a1
-    mov BH, strict byte 0a1h                  ; b7 a1
-apm_worker:                                  ; 0xfa18a LB 0x3a
+    push ax                                   ; 50
+    mov byte [0a252h], AL                     ; a2 52 a2
+    push si                                   ; 56
+    mov byte [0a256h], AL                     ; a2 56 a2
+    push si                                   ; 56
+    mov byte [0a258h], AL                     ; a2 58 a2
+    pop ax                                    ; 58
+    mov byte [0a25ah], AL                     ; a2 5a a2
+    pop si                                    ; 5e
+    mov byte [0a25eh], AL                     ; a2 5e a2
+    pushaw                                    ; 60
+    mov byte [0a265h], AL                     ; a2 65 a2
+    db  067h
+    db  0a2h
+apm_worker:                                  ; 0xfa23a LB 0x3a
     sti                                       ; fb
     push ax                                   ; 50
@@ -15826,21 +15920,21 @@
     pop ax                                    ; 58
     mov AH, strict byte 053h                  ; b4 53
-    jnc short 0a1c0h                          ; 73 25
-    jmp word [cs:bp-05e90h]                   ; 2e ff a6 70 a1
-    jmp short 0a1beh                          ; eb 1c
+    jnc short 0a270h                          ; 73 25
+    jmp word [cs:bp-05de0h]                   ; 2e ff a6 20 a2
+    jmp short 0a26eh                          ; eb 1c
     sti                                       ; fb
     hlt                                       ; f4
-    jmp short 0a1beh                          ; eb 18
-    jmp short 0a1beh                          ; eb 16
-    jmp short 0a1c0h                          ; eb 16
+    jmp short 0a26eh                          ; eb 18
+    jmp short 0a26eh                          ; eb 16
+    jmp short 0a270h                          ; eb 16
     mov AH, strict byte 080h                  ; b4 80
-    jmp short 0a1c2h                          ; eb 14
-    jmp short 0a1c0h                          ; eb 10
+    jmp short 0a272h                          ; eb 14
+    jmp short 0a270h                          ; eb 10
     mov ax, 00102h                            ; b8 02 01
-    jmp short 0a1beh                          ; eb 09
-    jmp short 0a1beh                          ; eb 07
+    jmp short 0a26eh                          ; eb 09
+    jmp short 0a26eh                          ; eb 07
     mov BL, strict byte 000h                  ; b3 00
     mov cx, strict word 00000h                ; b9 00 00
-    jmp short 0a1beh                          ; eb 00
+    jmp short 0a26eh                          ; eb 00
     clc                                       ; f8
     retn                                      ; c3
@@ -15848,5 +15942,5 @@
     stc                                       ; f9
     retn                                      ; c3
-apm_pm16_entry:                              ; 0xfa1c4 LB 0x11
+apm_pm16_entry:                              ; 0xfa274 LB 0x11
     mov AH, strict byte 002h                  ; b4 02
     push DS                                   ; 1e
@@ -15856,9 +15950,9 @@
     add bp, strict byte 00008h                ; 83 c5 08
     mov ds, bp                                ; 8e dd
-    call 0a18ah                               ; e8 b8 ff
+    call 0a23ah                               ; e8 b8 ff
     pop bp                                    ; 5d
     pop DS                                    ; 1f
     retf                                      ; cb
-_DoUInt32Div:                                ; 0xfa1d5 LB 0x26b
+_DoUInt32Div:                                ; 0xfa285 LB 0x26b
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15878,10 +15972,10 @@
     mov [bp-006h], ds                         ; 8c 5e fa
     cmp word [bx+002h], strict byte 00000h    ; 83 7f 02 00
-    jne short 0a225h                          ; 75 22
+    jne short 0a2d5h                          ; 75 22
     mov ax, word [bx]                         ; 8b 07
     test ax, ax                               ; 85 c0
-    je short 0a222h                           ; 74 19
+    je short 0a2d2h                           ; 74 19
     cmp ax, strict word 00001h                ; 3d 01 00
-    jne short 0a225h                          ; 75 17
+    jne short 0a2d5h                          ; 75 17
     xor ax, ax                                ; 31 c0
     mov word [bp+00ah], ax                    ; 89 46 0a
@@ -15891,35 +15985,35 @@
     mov ax, word [bp-01ah]                    ; 8b 46 e6
     mov word [bp+006h], ax                    ; 89 46 06
-    jmp near 0a42dh                           ; e9 08 02
+    jmp near 0a4ddh                           ; e9 08 02
     lds bx, [bp-00ch]                         ; c5 5e f4
     mov ax, word [bx+002h]                    ; 8b 47 02
     mov ds, [bp-006h]                         ; 8e 5e fa
     cmp ax, word [si+002h]                    ; 3b 44 02
-    je short 0a24bh                           ; 74 18
+    je short 0a2fbh                           ; 74 18
     mov ds, [bp-00ah]                         ; 8e 5e f6
     mov ax, word [bx+002h]                    ; 8b 47 02
     mov ds, [bp-006h]                         ; 8e 5e fa
     cmp ax, word [si+002h]                    ; 3b 44 02
-    jbe short 0a246h                          ; 76 05
+    jbe short 0a2f6h                          ; 76 05
     mov ax, strict word 00001h                ; b8 01 00
-    jmp short 0a26ch                          ; eb 26
+    jmp short 0a31ch                          ; eb 26
     mov ax, strict word 0ffffh                ; b8 ff ff
-    jmp short 0a26ch                          ; eb 21
+    jmp short 0a31ch                          ; eb 21
     mov ds, [bp-00ah]                         ; 8e 5e f6
     mov ax, word [bx]                         ; 8b 07
     mov ds, [bp-006h]                         ; 8e 5e fa
     cmp ax, word [si]                         ; 3b 04
-    je short 0a26ah                           ; 74 13
+    je short 0a31ah                           ; 74 13
     mov ds, [bp-00ah]                         ; 8e 5e f6
     mov ax, word [bx]                         ; 8b 07
     mov ds, [bp-006h]                         ; 8e 5e fa
     cmp ax, word [si]                         ; 3b 04
-    jbe short 0a265h                          ; 76 02
-    jmp short 0a241h                          ; eb dc
+    jbe short 0a315h                          ; 76 02
+    jmp short 0a2f1h                          ; eb dc
     mov ax, strict word 0ffffh                ; b8 ff ff
-    jmp short 0a26ch                          ; eb 02
+    jmp short 0a31ch                          ; eb 02
     xor ax, ax                                ; 31 c0
     test ax, ax                               ; 85 c0
-    jnl short 0a28eh                          ; 7d 1e
+    jnl short 0a33eh                          ; 7d 1e
     lds bx, [bp-00ch]                         ; c5 5e f4
     mov ax, word [bx]                         ; 8b 07
@@ -15931,6 +16025,6 @@
     mov word [bx+002h], strict word 00000h    ; c7 47 02 00 00
     mov word [bx], strict word 00000h         ; c7 07 00 00
-    jmp short 0a222h                          ; eb 94
-    jne short 0a2a5h                          ; 75 15
+    jmp short 0a2d2h                          ; eb 94
+    jne short 0a355h                          ; 75 15
     mov ds, [bp-008h]                         ; 8e 5e f8
     mov word [di+002h], ax                    ; 89 45 02
@@ -15939,20 +16033,20 @@
     mov word [bx], strict word 00001h         ; c7 07 01 00
     mov word [bx+002h], ax                    ; 89 47 02
-    jmp near 0a42dh                           ; e9 88 01
+    jmp near 0a4ddh                           ; e9 88 01
     lds bx, [bp-00ch]                         ; c5 5e f4
     mov ax, word [bx+002h]                    ; 8b 47 02
     test ax, ax                               ; 85 c0
-    je short 0a2c0h                           ; 74 11
+    je short 0a370h                           ; 74 11
     push ax                                   ; 50
     mov ax, 0f000h                            ; b8 00 f0
     mov ds, ax                                ; 8e d8
-    call 0a440h                               ; e8 88 01
+    call 0a4f0h                               ; e8 88 01
     add sp, strict byte 00002h                ; 83 c4 02
     add ax, strict word 00010h                ; 05 10 00
-    jmp short 0a2cdh                          ; eb 0d
+    jmp short 0a37dh                          ; eb 0d
     push word [bx]                            ; ff 37
     mov ax, 0f000h                            ; b8 00 f0
     mov ds, ax                                ; 8e d8
-    call 0a440h                               ; e8 76 01
+    call 0a4f0h                               ; e8 76 01
     add sp, strict byte 00002h                ; 83 c4 02
     mov word [bp-014h], ax                    ; 89 46 ec
@@ -15960,16 +16054,16 @@
     mov ax, word [si+002h]                    ; 8b 44 02
     test ax, ax                               ; 85 c0
-    je short 0a2ebh                           ; 74 11
+    je short 0a39bh                           ; 74 11
     push ax                                   ; 50
     mov ax, 0f000h                            ; b8 00 f0
     mov ds, ax                                ; 8e d8
-    call 0a440h                               ; e8 5d 01
+    call 0a4f0h                               ; e8 5d 01
     add sp, strict byte 00002h                ; 83 c4 02
     add ax, strict word 00010h                ; 05 10 00
-    jmp short 0a2f8h                          ; eb 0d
+    jmp short 0a3a8h                          ; eb 0d
     push word [si]                            ; ff 34
     mov ax, 0f000h                            ; b8 00 f0
     mov ds, ax                                ; 8e d8
-    call 0a440h                               ; e8 4b 01
+    call 0a4f0h                               ; e8 4b 01
     add sp, strict byte 00002h                ; 83 c4 02
     mov dx, word [bp-014h]                    ; 8b 56 ec
@@ -15982,5 +16076,5 @@
     mov word [bp-016h], ax                    ; 89 46 ea
     test dx, dx                               ; 85 d2
-    je short 0a368h                           ; 74 56
+    je short 0a418h                           ; 74 56
     mov cx, dx                                ; 89 d1
     xor ch, dh                                ; 30 f5
@@ -15988,8 +16082,8 @@
     mov ax, word [si]                         ; 8b 04
     mov dx, word [si+002h]                    ; 8b 54 02
-    jcxz 0a326h                               ; e3 06
+    jcxz 0a3d6h                               ; e3 06
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 0a320h                               ; e2 fa
+    loop 0a3d0h                               ; e2 fa
     mov word [bp-018h], ax                    ; 89 46 e8
     mov word [bp-016h], dx                    ; 89 56 ea
@@ -15997,25 +16091,25 @@
     lds bx, [bp-00ch]                         ; c5 5e f4
     cmp ax, word [bx+002h]                    ; 3b 47 02
-    jnbe short 0a346h                         ; 77 0f
+    jnbe short 0a3f6h                         ; 77 0f
     mov ax, word [bp-016h]                    ; 8b 46 ea
     cmp ax, word [bx+002h]                    ; 3b 47 02
-    jne short 0a34ah                          ; 75 0b
+    jne short 0a3fah                          ; 75 0b
     mov ax, word [bp-018h]                    ; 8b 46 e8
     cmp ax, word [bx]                         ; 3b 07
-    jbe short 0a34ah                          ; 76 04
+    jbe short 0a3fah                          ; 76 04
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 0a34ch                          ; eb 02
+    jmp short 0a3fch                          ; eb 02
     xor al, al                                ; 30 c0
     test al, al                               ; 84 c0
-    je short 0a373h                           ; 74 23
+    je short 0a423h                           ; 74 23
     shr word [bp-016h], 1                     ; d1 6e ea
     rcr word [bp-018h], 1                     ; d1 5e e8
     dec word [bp-012h]                        ; ff 4e ee
-    jmp short 0a373h                          ; eb 18
+    jmp short 0a423h                          ; eb 18
     mov cx, strict word 0001fh                ; b9 1f 00
     sal word [bp-018h], 1                     ; d1 66 e8
     rcl word [bp-016h], 1                     ; d1 56 ea
-    loop 0a35eh                               ; e2 f8
-    jmp short 0a356h                          ; eb ee
+    loop 0a40eh                               ; e2 f8
+    jmp short 0a406h                          ; eb ee
     mov ax, word [si]                         ; 8b 04
     mov word [bp-018h], ax                    ; 89 46 e8
@@ -16034,27 +16128,27 @@
     mov ds, [bp-006h]                         ; 8e 5e fa
     cmp ax, word [si+002h]                    ; 3b 44 02
-    jnbe short 0a39fh                         ; 77 06
-    jne short 0a3a3h                          ; 75 08
+    jnbe short 0a44fh                         ; 77 06
+    jne short 0a453h                          ; 75 08
     cmp dx, word [si]                         ; 3b 14
-    jc short 0a3a3h                           ; 72 04
+    jc short 0a453h                           ; 72 04
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 0a3a5h                          ; eb 02
+    jmp short 0a455h                          ; eb 02
     xor al, al                                ; 30 c0
     test al, al                               ; 84 c0
-    je short 0a40ah                           ; 74 61
+    je short 0a4bah                           ; 74 61
     mov ds, [bp-008h]                         ; 8e 5e f8
     mov ax, word [di+002h]                    ; 8b 45 02
     cmp ax, word [bp-016h]                    ; 3b 46 ea
-    jnbe short 0a3c0h                         ; 77 0c
+    jnbe short 0a470h                         ; 77 0c
     cmp ax, word [bp-016h]                    ; 3b 46 ea
-    jne short 0a3c4h                          ; 75 0b
+    jne short 0a474h                          ; 75 0b
     mov ax, word [di]                         ; 8b 05
     cmp ax, word [bp-018h]                    ; 3b 46 e8
-    jc short 0a3c4h                           ; 72 04
+    jc short 0a474h                           ; 72 04
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 0a3c6h                          ; eb 02
+    jmp short 0a476h                          ; eb 02
     xor al, al                                ; 30 c0
     test al, al                               ; 84 c0
-    je short 0a3f0h                           ; 74 26
+    je short 0a4a0h                           ; 74 26
     mov ax, word [bp-018h]                    ; 8b 46 e8
     mov ds, [bp-008h]                         ; 8e 5e f8
@@ -16065,8 +16159,8 @@
     xor dx, dx                                ; 31 d2
     mov cx, word [bp-012h]                    ; 8b 4e ee
-    jcxz 0a3e8h                               ; e3 06
+    jcxz 0a498h                               ; e3 06
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 0a3e2h                               ; e2 fa
+    loop 0a492h                               ; e2 fa
     lds bx, [bp-010h]                         ; c5 5e f0
     or word [bx], ax                          ; 09 07
@@ -16077,24 +16171,24 @@
     mov ds, [bp-006h]                         ; 8e 5e fa
     cmp ax, word [si+002h]                    ; 3b 44 02
-    jc short 0a406h                           ; 72 06
-    jne short 0a40ch                          ; 75 0a
+    jc short 0a4b6h                           ; 72 06
+    jne short 0a4bch                          ; 75 0a
     cmp dx, word [si]                         ; 3b 14
-    jnc short 0a40ch                          ; 73 06
+    jnc short 0a4bch                          ; 73 06
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 0a40eh                          ; eb 04
-    jmp short 0a42dh                          ; eb 21
+    jmp short 0a4beh                          ; eb 04
+    jmp short 0a4ddh                          ; eb 21
     xor al, al                                ; 30 c0
     test al, al                               ; 84 c0
-    je short 0a421h                           ; 74 0f
-    jmp short 0a42dh                          ; eb 19
+    je short 0a4d1h                           ; 74 0f
+    jmp short 0a4ddh                          ; eb 19
     mov cx, strict word 0001fh                ; b9 1f 00
     sal word [bp-018h], 1                     ; d1 66 e8
     rcl word [bp-016h], 1                     ; d1 56 ea
-    loop 0a417h                               ; e2 f8
-    jmp short 0a427h                          ; eb 06
+    loop 0a4c7h                               ; e2 f8
+    jmp short 0a4d7h                          ; eb 06
     shr word [bp-016h], 1                     ; d1 6e ea
     rcr word [bp-018h], 1                     ; d1 5e e8
     dec word [bp-012h]                        ; ff 4e ee
-    jmp near 0a3a9h                           ; e9 7c ff
+    jmp near 0a459h                           ; e9 7c ff
     mov ax, word [bp-01ch]                    ; 8b 46 e4
     mov dx, word [bp-01ah]                    ; 8b 56 e6
@@ -16105,5 +16199,5 @@
     retn                                      ; c3
     times 0x6 db 0
-_ASMBitLastSetU16:                           ; 0xfa440 LB 0x18
+_ASMBitLastSetU16:                           ; 0xfa4f0 LB 0x18
     push bp                                   ; 55
     db  08bh, 0ech
@@ -16111,10 +16205,10 @@
     mov cx, word [bp+004h]                    ; 8b 4e 04
     test cx, cx                               ; 85 c9
-    je short 0a454h                           ; 74 0a
+    je short 0a504h                           ; 74 0a
     mov ax, strict word 00010h                ; b8 10 00
     sal cx, 1                                 ; d1 e1
-    jc short 0a456h                           ; 72 05
+    jc short 0a506h                           ; 72 05
     dec ax                                    ; 48
-    jmp short 0a44dh                          ; eb f9
+    jmp short 0a4fdh                          ; eb f9
     db  033h, 0c0h
     ; xor ax, ax                                ; 33 c0
@@ -16122,6 +16216,6 @@
     retn                                      ; c3
 
-  ; Padding 0x35a8 bytes at 0xfa458
-  times 13736 db 0
+  ; Padding 0x34f8 bytes at 0xfa508
+  times 13560 db 0
 
 section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO
@@ -16170,5 +16264,5 @@
     add bp, strict byte 00008h                ; 83 c5 08
     push ebp                                  ; 66 55
-    mov bp, 0a1c6h                            ; bd c6 a1
+    mov bp, 0a276h                            ; bd 76 a2
     add byte [bx+si], al                      ; 00 00
     push ebp                                  ; 66 55
@@ -16900,6 +16994,6 @@
     call 01cc5h                               ; e8 89 39
     call 02154h                               ; e8 15 3e
-    call 099e1h                               ; e8 9f b6
-    call 08846h                               ; e8 01 a5
+    call 09a6eh                               ; e8 2c b7
+    call 088b8h                               ; e8 73 a5
     call 0ed4ch                               ; e8 04 0a
     call 0e2d2h                               ; e8 87 ff
@@ -17856,5 +17950,5 @@
     popfw                                     ; 9d
     jmp short 0f8afh                          ; eb 1f
-    call 09b53h                               ; e8 c0 a2
+    call 09be0h                               ; e8 4d a3
     jmp short 0f883h                          ; eb ee
 int15_handler_mouse:                         ; 0xff895 LB 0x5
@@ -18180,3 +18274,3 @@
 cpu_reset:                                   ; 0xffff0 LB 0x10
     jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
-    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fbh, 0bah
+    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fbh, 023h
Index: trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.md5sum
===================================================================
--- trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.md5sum	(revision 67805)
+++ trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.md5sum	(revision 67807)
@@ -1,1 +1,1 @@
-79b54de42c733672f60fe280b4b26581 *VBoxPcBios8086.rom
+269f62de83976f5a734bb5219dc89ba4 *VBoxPcBios8086.rom
