VirtualBox

Changeset 55260 in vbox


Ignore:
Timestamp:
Apr 14, 2015 6:21:00 PM (10 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
99573
Message:

5.0.0 Beta 2

Location:
trunk
Files:
1 added
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/Config.kmk

    r55128 r55260  
    221221#       publisher so that RTStrVersionCompare have a chance of comparing
    222222#       prerelease from different publishers correctly.
    223 VBOX_VERSION_STRING = $(VBOX_VERSION_STRING_RAW)_BETA1$(VBOX_BUILD_PUBLISHER)
     223VBOX_VERSION_STRING = $(VBOX_VERSION_STRING_RAW)_BETA2$(VBOX_BUILD_PUBLISHER)
    224224
    225225# Force the additions.sh script to get an exact additions build when we're doing the release.
  • trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative.asm

    r51255 r55260  
    165165
    166166
    167 section VGAROM progbits vstart=0x0 align=1 ; size=0x93e class=CODE group=AUTO
     167section VGAROM progbits vstart=0x0 align=1 ; size=0x994 class=CODE group=AUTO
    168168    db  055h, 0aah, 040h, 0e9h, 062h, 00ah, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    169169    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 049h, 042h
    170170    db  04dh, 000h
    171 vgabios_int10_handler:                       ; 0xc0022 LB 0x585
     171vgabios_int10_handler:                       ; 0xc0022 LB 0x54e
    172172    pushfw                                    ; 9c
    173173    cmp ah, 00fh                              ; 80 fc 0f
     
    223223    cmp AL, strict byte 003h                  ; 3c 03
    224224    jne short 000afh                          ; 75 05
    225     call 007b7h                               ; e8 0a 07
     225    call 0080dh                               ; e8 60 07
    226226    jmp short 000f3h                          ; eb 44
    227227    cmp AL, strict byte 005h                  ; 3c 05
    228228    jne short 000b8h                          ; 75 05
    229     call 007dch                               ; e8 26 07
     229    call 00832h                               ; e8 7c 07
    230230    jmp short 000f3h                          ; eb 3b
    231231    cmp AL, strict byte 006h                  ; 3c 06
    232232    jne short 000c1h                          ; 75 05
    233     call 00809h                               ; e8 4a 07
     233    call 0085fh                               ; e8 a0 07
    234234    jmp short 000f3h                          ; eb 32
    235235    cmp AL, strict byte 007h                  ; 3c 07
    236236    jne short 000cah                          ; 75 05
    237     call 00856h                               ; e8 8e 07
     237    call 008ach                               ; e8 e4 07
    238238    jmp short 000f3h                          ; eb 29
    239239    cmp AL, strict byte 008h                  ; 3c 08
    240240    jne short 000d3h                          ; 75 05
    241     call 0088ah                               ; e8 b9 07
     241    call 008e0h                               ; e8 0f 08
    242242    jmp short 000f3h                          ; eb 20
    243243    cmp AL, strict byte 009h                  ; 3c 09
    244244    jne short 000dch                          ; 75 05
    245     call 008c1h                               ; e8 e7 07
     245    call 00917h                               ; e8 3d 08
    246246    jmp short 000f3h                          ; eb 17
    247247    cmp AL, strict byte 00ah                  ; 3c 0a
    248248    jne short 000e5h                          ; 75 05
    249     call 00925h                               ; e8 42 08
     249    call 0097bh                               ; e8 98 08
    250250    jmp short 000f3h                          ; eb 0e
    251251    push ES                                   ; 06
     
    948948    pop DS                                    ; 1f
    949949    retn                                      ; c3
    950     add byte [bx+si], al                      ; 00 00
    951     add byte [bx+si], al                      ; 00 00
    952     add byte [bx+si+052h], dl                 ; 00 50 52
     950    times 0x5 db 0
     951do_out_dx_ax:                                ; 0xc0570 LB 0x7
     952    xchg ah, al                               ; 86 c4
     953    out DX, AL                                ; ee
     954    xchg ah, al                               ; 86 c4
     955    out DX, AL                                ; ee
     956    retn                                      ; c3
     957do_in_ax_dx:                                 ; 0xc0577 LB 0x40
     958    in AL, DX                                 ; ec
     959    xchg ah, al                               ; 86 c4
     960    in AL, DX                                 ; ec
     961    retn                                      ; c3
     962    push ax                                   ; 50
     963    push dx                                   ; 52
    953964    mov dx, 003dah                            ; ba da 03
    954965    in AL, DX                                 ; ec
    955966    test AL, strict byte 008h                 ; a8 08
    956     je short 00575h                           ; 74 fb
     967    je short 00581h                           ; 74 fb
    957968    pop dx                                    ; 5a
    958969    pop ax                                    ; 58
     
    963974    in AL, DX                                 ; ec
    964975    test AL, strict byte 008h                 ; a8 08
    965     jne short 00582h                          ; 75 fb
     976    jne short 0058eh                          ; 75 fb
    966977    pop dx                                    ; 5a
    967978    pop ax                                    ; 58
     
    970981    mov dx, 001ceh                            ; ba ce 01
    971982    mov ax, strict word 00003h                ; b8 03 00
    972     out DX, ax                                ; ef
     983    call 00570h                               ; e8 d0 ff
    973984    mov dx, 001cfh                            ; ba cf 01
    974     in ax, DX                                 ; ed
     985    call 00577h                               ; e8 d1 ff
    975986    cmp AL, strict byte 004h                  ; 3c 04
    976     jbe short 005a5h                          ; 76 0b
     987    jbe short 005b5h                          ; 76 0b
    977988    db  08ah, 0e0h
    978989    ; mov ah, al                                ; 8a e0
    979990    shr ah, 003h                              ; c0 ec 03
    980991    test AL, strict byte 007h                 ; a8 07
    981     je short 005a5h                           ; 74 02
     992    je short 005b5h                           ; 74 02
    982993    db  0feh, 0c4h
    983994    ; inc ah                                    ; fe c4
    984995    pop dx                                    ; 5a
    985996    retn                                      ; c3
    986 _dispi_get_max_bpp:                          ; 0xc05a7 LB 0x22
     997_dispi_get_max_bpp:                          ; 0xc05b7 LB 0x26
    987998    push dx                                   ; 52
    988999    push bx                                   ; 53
    989     call 005d9h                               ; e8 2d 00
     1000    call 005f1h                               ; e8 35 00
    9901001    db  08bh, 0d8h
    9911002    ; mov bx, ax                                ; 8b d8
    9921003    or ax, strict byte 00002h                 ; 83 c8 02
    993     call 005c9h                               ; e8 15 00
     1004    call 005ddh                               ; e8 19 00
    9941005    mov dx, 001ceh                            ; ba ce 01
    9951006    mov ax, strict word 00003h                ; b8 03 00
    996     out DX, ax                                ; ef
     1007    call 00570h                               ; e8 a3 ff
    9971008    mov dx, 001cfh                            ; ba cf 01
    998     in ax, DX                                 ; ed
     1009    call 00577h                               ; e8 a4 ff
    9991010    push ax                                   ; 50
    10001011    db  08bh, 0c3h
    10011012    ; mov ax, bx                                ; 8b c3
    1002     call 005c9h                               ; e8 04 00
     1013    call 005ddh                               ; e8 04 00
    10031014    pop ax                                    ; 58
    10041015    pop bx                                    ; 5b
    10051016    pop dx                                    ; 5a
    10061017    retn                                      ; c3
    1007 dispi_set_enable_:                           ; 0xc05c9 LB 0x1e
     1018dispi_set_enable_:                           ; 0xc05dd LB 0x26
    10081019    push dx                                   ; 52
    10091020    push ax                                   ; 50
    10101021    mov dx, 001ceh                            ; ba ce 01
    10111022    mov ax, strict word 00004h                ; b8 04 00
    1012     out DX, ax                                ; ef
     1023    call 00570h                               ; e8 88 ff
    10131024    pop ax                                    ; 58
    10141025    mov dx, 001cfh                            ; ba cf 01
    1015     out DX, ax                                ; ef
     1026    call 00570h                               ; e8 81 ff
    10161027    pop dx                                    ; 5a
    10171028    retn                                      ; c3
     
    10191030    mov dx, 001ceh                            ; ba ce 01
    10201031    mov ax, strict word 00004h                ; b8 04 00
    1021     out DX, ax                                ; ef
     1032    call 00570h                               ; e8 75 ff
    10221033    mov dx, 001cfh                            ; ba cf 01
    1023     in ax, DX                                 ; ed
     1034    call 00577h                               ; e8 76 ff
    10241035    pop dx                                    ; 5a
    10251036    retn                                      ; c3
    1026 dispi_set_bank_:                             ; 0xc05e7 LB 0x1e
     1037dispi_set_bank_:                             ; 0xc0603 LB 0x26
    10271038    push dx                                   ; 52
    10281039    push ax                                   ; 50
    10291040    mov dx, 001ceh                            ; ba ce 01
    10301041    mov ax, strict word 00005h                ; b8 05 00
    1031     out DX, ax                                ; ef
     1042    call 00570h                               ; e8 62 ff
    10321043    pop ax                                    ; 58
    10331044    mov dx, 001cfh                            ; ba cf 01
    1034     out DX, ax                                ; ef
     1045    call 00570h                               ; e8 5b ff
    10351046    pop dx                                    ; 5a
    10361047    retn                                      ; c3
     
    10381049    mov dx, 001ceh                            ; ba ce 01
    10391050    mov ax, strict word 00005h                ; b8 05 00
    1040     out DX, ax                                ; ef
     1051    call 00570h                               ; e8 4f ff
    10411052    mov dx, 001cfh                            ; ba cf 01
    1042     in ax, DX                                 ; ed
     1053    call 00577h                               ; e8 50 ff
    10431054    pop dx                                    ; 5a
    10441055    retn                                      ; c3
    1045 _dispi_set_bank_farcall:                     ; 0xc0605 LB 0xbe
     1056_dispi_set_bank_farcall:                     ; 0xc0629 LB 0xe4
    10461057    cmp bx, 00100h                            ; 81 fb 00 01
    1047     je short 00629h                           ; 74 1e
     1058    je short 00653h                           ; 74 24
    10481059    db  00bh, 0dbh
    10491060    ; or bx, bx                                 ; 0b db
    1050     jne short 00637h                          ; 75 28
     1061    jne short 00665h                          ; 75 32
    10511062    db  08bh, 0c2h
    10521063    ; mov ax, dx                                ; 8b c2
     
    10551066    mov ax, strict word 00005h                ; b8 05 00
    10561067    mov dx, 001ceh                            ; ba ce 01
    1057     out DX, ax                                ; ef
     1068    call 00570h                               ; e8 30 ff
    10581069    pop ax                                    ; 58
    10591070    mov dx, 001cfh                            ; ba cf 01
    1060     out DX, ax                                ; ef
    1061     in ax, DX                                 ; ed
     1071    call 00570h                               ; e8 29 ff
     1072    call 00577h                               ; e8 2d ff
    10621073    pop dx                                    ; 5a
    10631074    db  03bh, 0d0h
    10641075    ; cmp dx, ax                                ; 3b d0
    1065     jne short 00637h                          ; 75 12
     1076    jne short 00665h                          ; 75 16
    10661077    mov ax, strict word 0004fh                ; b8 4f 00
    10671078    retf                                      ; cb
    10681079    mov ax, strict word 00005h                ; b8 05 00
    10691080    mov dx, 001ceh                            ; ba ce 01
    1070     out DX, ax                                ; ef
     1081    call 00570h                               ; e8 14 ff
    10711082    mov dx, 001cfh                            ; ba cf 01
    1072     in ax, DX                                 ; ed
     1083    call 00577h                               ; e8 15 ff
    10731084    db  08bh, 0d0h
    10741085    ; mov dx, ax                                ; 8b d0
     
    10801091    mov dx, 001ceh                            ; ba ce 01
    10811092    mov ax, strict word 00008h                ; b8 08 00
    1082     out DX, ax                                ; ef
     1093    call 00570h                               ; e8 fc fe
    10831094    pop ax                                    ; 58
    10841095    mov dx, 001cfh                            ; ba cf 01
    1085     out DX, ax                                ; ef
     1096    call 00570h                               ; e8 f5 fe
    10861097    pop dx                                    ; 5a
    10871098    retn                                      ; c3
     
    10891100    mov dx, 001ceh                            ; ba ce 01
    10901101    mov ax, strict word 00008h                ; b8 08 00
    1091     out DX, ax                                ; ef
     1102    call 00570h                               ; e8 e9 fe
    10921103    mov dx, 001cfh                            ; ba cf 01
    1093     in ax, DX                                 ; ed
     1104    call 00577h                               ; e8 ea fe
    10941105    pop dx                                    ; 5a
    10951106    retn                                      ; c3
     
    10981109    mov dx, 001ceh                            ; ba ce 01
    10991110    mov ax, strict word 00009h                ; b8 09 00
    1100     out DX, ax                                ; ef
     1111    call 00570h                               ; e8 d6 fe
    11011112    pop ax                                    ; 58
    11021113    mov dx, 001cfh                            ; ba cf 01
    1103     out DX, ax                                ; ef
     1114    call 00570h                               ; e8 cf fe
    11041115    pop dx                                    ; 5a
    11051116    retn                                      ; c3
     
    11071118    mov dx, 001ceh                            ; ba ce 01
    11081119    mov ax, strict word 00009h                ; b8 09 00
    1109     out DX, ax                                ; ef
     1120    call 00570h                               ; e8 c3 fe
    11101121    mov dx, 001cfh                            ; ba cf 01
    1111     in ax, DX                                 ; ed
     1122    call 00577h                               ; e8 c4 fe
    11121123    pop dx                                    ; 5a
    11131124    retn                                      ; c3
     
    11171128    db  08bh, 0d8h
    11181129    ; mov bx, ax                                ; 8b d8
    1119     call 0058ah                               ; e8 0b ff
     1130    call 00596h                               ; e8 d9 fe
    11201131    cmp AL, strict byte 004h                  ; 3c 04
    1121     jnbe short 00685h                         ; 77 02
     1132    jnbe short 006c3h                         ; 77 02
    11221133    shr bx, 1                                 ; d1 eb
    11231134    shr bx, 003h                              ; c1 eb 03
     
    11311142    pop ax                                    ; 58
    11321143    retn                                      ; c3
    1133     call 00677h                               ; e8 e0 ff
     1144    call 006b5h                               ; e8 e0 ff
    11341145    push dx                                   ; 52
    11351146    push ax                                   ; 50
    11361147    mov dx, 001ceh                            ; ba ce 01
    11371148    mov ax, strict word 00006h                ; b8 06 00
    1138     out DX, ax                                ; ef
     1149    call 00570h                               ; e8 90 fe
    11391150    pop ax                                    ; 58
    11401151    mov dx, 001cfh                            ; ba cf 01
    1141     out DX, ax                                ; ef
     1152    call 00570h                               ; e8 89 fe
    11421153    pop dx                                    ; 5a
    11431154    retn                                      ; c3
     
    11451156    mov dx, 001ceh                            ; ba ce 01
    11461157    mov ax, strict word 00006h                ; b8 06 00
    1147     out DX, ax                                ; ef
     1158    call 00570h                               ; e8 7d fe
    11481159    mov dx, 001cfh                            ; ba cf 01
    1149     in ax, DX                                 ; ed
     1160    call 00577h                               ; e8 7e fe
    11501161    pop dx                                    ; 5a
    11511162    retn                                      ; c3
     
    11531164    mov dx, 001ceh                            ; ba ce 01
    11541165    mov ax, strict word 00007h                ; b8 07 00
    1155     out DX, ax                                ; ef
     1166    call 00570h                               ; e8 6b fe
    11561167    mov dx, 001cfh                            ; ba cf 01
    1157     in ax, DX                                 ; ed
     1168    call 00577h                               ; e8 6c fe
    11581169    pop dx                                    ; 5a
    11591170    retn                                      ; c3
    1160 _vga_compat_setup:                           ; 0xc06c3 LB 0xe1
     1171_vga_compat_setup:                           ; 0xc070d LB 0xed
    11611172    push ax                                   ; 50
    11621173    push dx                                   ; 52
    11631174    mov dx, 001ceh                            ; ba ce 01
    11641175    mov ax, strict word 00001h                ; b8 01 00
    1165     out DX, ax                                ; ef
     1176    call 00570h                               ; e8 58 fe
    11661177    mov dx, 001cfh                            ; ba cf 01
    1167     in ax, DX                                 ; ed
     1178    call 00577h                               ; e8 59 fe
    11681179    push ax                                   ; 50
    11691180    mov dx, 003d4h                            ; ba d4 03
     
    11791190    out DX, ax                                ; ef
    11801191    pop ax                                    ; 58
    1181     call 00677h                               ; e8 90 ff
     1192    call 006b5h                               ; e8 80 ff
    11821193    mov dx, 001ceh                            ; ba ce 01
    11831194    mov ax, strict word 00002h                ; b8 02 00
    1184     out DX, ax                                ; ef
     1195    call 00570h                               ; e8 32 fe
    11851196    mov dx, 001cfh                            ; ba cf 01
    1186     in ax, DX                                 ; ed
     1197    call 00577h                               ; e8 33 fe
    11871198    dec ax                                    ; 48
    11881199    push ax                                   ; 50
     
    11991210    and AL, strict byte 0bdh                  ; 24 bd
    12001211    test ah, 001h                             ; f6 c4 01
    1201     je short 0070bh                           ; 74 02
     1212    je short 0075dh                           ; 74 02
    12021213    or AL, strict byte 002h                   ; 0c 02
    12031214    test ah, 002h                             ; f6 c4 02
    1204     je short 00712h                           ; 74 02
     1215    je short 00764h                           ; 74 02
    12051216    or AL, strict byte 040h                   ; 0c 40
    12061217    out DX, AL                                ; ee
     
    12391250    mov dx, 001ceh                            ; ba ce 01
    12401251    mov ax, strict word 00003h                ; b8 03 00
    1241     out DX, ax                                ; ef
     1252    call 00570h                               ; e8 c2 fd
    12421253    mov dx, 001cfh                            ; ba cf 01
    1243     in ax, DX                                 ; ed
     1254    call 00577h                               ; e8 c3 fd
    12441255    cmp AL, strict byte 008h                  ; 3c 08
    1245     jc short 007a2h                           ; 72 40
     1256    jc short 007f8h                           ; 72 40
    12461257    mov dx, 003d4h                            ; ba d4 03
    12471258    mov AL, strict byte 014h                  ; b0 14
     
    12801291    pop dx                                    ; 5a
    12811292    pop ax                                    ; 58
    1282 _vbe_has_vbe_display:                        ; 0xc07a4 LB 0x13
     1293_vbe_has_vbe_display:                        ; 0xc07fa LB 0x13
    12831294    push DS                                   ; 1e
    12841295    push bx                                   ; 53
     
    12931304    pop DS                                    ; 1f
    12941305    retn                                      ; c3
    1295 vbe_biosfn_return_current_mode:              ; 0xc07b7 LB 0x25
     1306vbe_biosfn_return_current_mode:              ; 0xc080d LB 0x25
    12961307    push DS                                   ; 1e
    12971308    mov ax, strict word 00040h                ; b8 40 00
    12981309    mov ds, ax                                ; 8e d8
    1299     call 005d9h                               ; e8 19 fe
     1310    call 005f1h                               ; e8 db fd
    13001311    and ax, strict byte 00001h                ; 83 e0 01
    1301     je short 007ceh                           ; 74 09
     1312    je short 00824h                           ; 74 09
    13021313    mov bx, 000bah                            ; bb ba 00
    13031314    mov ax, word [bx]                         ; 8b 07
    13041315    db  08bh, 0d8h
    13051316    ; mov bx, ax                                ; 8b d8
    1306     jne short 007d7h                          ; 75 09
     1317    jne short 0082dh                          ; 75 09
    13071318    mov bx, strict word 00049h                ; bb 49 00
    13081319    mov al, byte [bx]                         ; 8a 07
     
    13141325    pop DS                                    ; 1f
    13151326    retn                                      ; c3
    1316 vbe_biosfn_display_window_control:           ; 0xc07dc LB 0x2d
     1327vbe_biosfn_display_window_control:           ; 0xc0832 LB 0x2d
    13171328    cmp bl, 000h                              ; 80 fb 00
    1318     jne short 00805h                          ; 75 24
     1329    jne short 0085bh                          ; 75 24
    13191330    cmp bh, 001h                              ; 80 ff 01
    1320     je short 007fch                           ; 74 16
    1321     jc short 007ech                           ; 72 04
     1331    je short 00852h                           ; 74 16
     1332    jc short 00842h                           ; 72 04
    13221333    mov ax, 00100h                            ; b8 00 01
    13231334    retn                                      ; c3
    13241335    db  08bh, 0c2h
    13251336    ; mov ax, dx                                ; 8b c2
    1326     call 005e7h                               ; e8 f6 fd
    1327     call 005f7h                               ; e8 03 fe
     1337    call 00603h                               ; e8 bc fd
     1338    call 00617h                               ; e8 cd fd
    13281339    db  03bh, 0c2h
    13291340    ; cmp ax, dx                                ; 3b c2
    1330     jne short 00805h                          ; 75 0d
     1341    jne short 0085bh                          ; 75 0d
    13311342    mov ax, strict word 0004fh                ; b8 4f 00
    13321343    retn                                      ; c3
    1333     call 005f7h                               ; e8 f8 fd
     1344    call 00617h                               ; e8 c2 fd
    13341345    db  08bh, 0d0h
    13351346    ; mov dx, ax                                ; 8b d0
     
    13381349    mov ax, 0014fh                            ; b8 4f 01
    13391350    retn                                      ; c3
    1340 vbe_biosfn_set_get_logical_scan_line_length: ; 0xc0809 LB 0x4d
     1351vbe_biosfn_set_get_logical_scan_line_length: ; 0xc085f LB 0x4d
    13411352    db  08bh, 0c1h
    13421353    ; mov ax, cx                                ; 8b c1
    13431354    cmp bl, 001h                              ; 80 fb 01
    1344     je short 00834h                           ; 74 24
     1355    je short 0088ah                           ; 74 24
    13451356    cmp bl, 002h                              ; 80 fb 02
    1346     je short 0081bh                           ; 74 06
    1347     jc short 00831h                           ; 72 1a
     1357    je short 00871h                           ; 74 06
     1358    jc short 00887h                           ; 72 1a
    13481359    mov ax, 00100h                            ; b8 00 01
    13491360    retn                                      ; c3
    13501361    push ax                                   ; 50
    1351     call 0058ah                               ; e8 6b fd
     1362    call 00596h                               ; e8 21 fd
    13521363    db  032h, 0ffh
    13531364    ; xor bh, bh                                ; 32 ff
     
    13561367    db  00ah, 0dbh
    13571368    ; or bl, bl                                 ; 0a db
    1358     jne short 0082ch                          ; 75 05
     1369    jne short 00882h                          ; 75 05
    13591370    sal ax, 003h                              ; c1 e0 03
    13601371    mov BL, strict byte 001h                  ; b3 01
     
    13631374    pop ax                                    ; 58
    13641375    div bx                                    ; f7 f3
    1365     call 00694h                               ; e8 60 fe
    1366     call 0058ah                               ; e8 53 fd
     1376    call 006d2h                               ; e8 48 fe
     1377    call 00596h                               ; e8 09 fd
    13671378    db  032h, 0ffh
    13681379    ; xor bh, bh                                ; 32 ff
    13691380    db  08ah, 0dch
    13701381    ; mov bl, ah                                ; 8a dc
    1371     call 006a7h                               ; e8 69 fe
     1382    call 006e9h                               ; e8 55 fe
    13721383    db  08bh, 0c8h
    13731384    ; mov cx, ax                                ; 8b c8
    13741385    db  00ah, 0dbh
    13751386    ; or bl, bl                                 ; 0a db
    1376     jne short 00849h                          ; 75 05
     1387    jne short 0089fh                          ; 75 05
    13771388    shr ax, 003h                              ; c1 e8 03
    13781389    mov BL, strict byte 001h                  ; b3 01
     
    13801391    db  08bh, 0d8h
    13811392    ; mov bx, ax                                ; 8b d8
    1382     call 006b5h                               ; e8 65 fe
     1393    call 006fbh                               ; e8 55 fe
    13831394    db  08bh, 0d0h
    13841395    ; mov dx, ax                                ; 8b d0
    13851396    mov ax, strict word 0004fh                ; b8 4f 00
    13861397    retn                                      ; c3
    1387 vbe_biosfn_set_get_display_start:            ; 0xc0856 LB 0x34
     1398vbe_biosfn_set_get_display_start:            ; 0xc08ac LB 0x34
    13881399    cmp bl, 080h                              ; 80 fb 80
    1389     je short 00866h                           ; 74 0b
     1400    je short 008bch                           ; 74 0b
    13901401    cmp bl, 001h                              ; 80 fb 01
    1391     je short 0087ah                           ; 74 1a
    1392     jc short 0086ch                           ; 72 0a
     1402    je short 008d0h                           ; 74 1a
     1403    jc short 008c2h                           ; 72 0a
    13931404    mov ax, 00100h                            ; b8 00 01
    13941405    retn                                      ; c3
    1395     call 0057dh                               ; e8 14 fd
    1396     call 00570h                               ; e8 04 fd
     1406    call 00589h                               ; e8 ca fc
     1407    call 0057ch                               ; e8 ba fc
    13971408    db  08bh, 0c1h
    13981409    ; mov ax, cx                                ; 8b c1
    1399     call 0063bh                               ; e8 ca fd
     1410    call 00669h                               ; e8 a2 fd
    14001411    db  08bh, 0c2h
    14011412    ; mov ax, dx                                ; 8b c2
    1402     call 00659h                               ; e8 e3 fd
     1413    call 0068fh                               ; e8 c3 fd
    14031414    mov ax, strict word 0004fh                ; b8 4f 00
    14041415    retn                                      ; c3
    1405     call 0064bh                               ; e8 ce fd
     1416    call 0067dh                               ; e8 aa fd
    14061417    db  08bh, 0c8h
    14071418    ; mov cx, ax                                ; 8b c8
    1408     call 00669h                               ; e8 e7 fd
     1419    call 006a3h                               ; e8 cb fd
    14091420    db  08bh, 0d0h
    14101421    ; mov dx, ax                                ; 8b d0
     
    14131424    mov ax, strict word 0004fh                ; b8 4f 00
    14141425    retn                                      ; c3
    1415 vbe_biosfn_set_get_dac_palette_format:       ; 0xc088a LB 0x37
     1426vbe_biosfn_set_get_dac_palette_format:       ; 0xc08e0 LB 0x37
    14161427    cmp bl, 001h                              ; 80 fb 01
    1417     je short 008adh                           ; 74 1e
    1418     jc short 00895h                           ; 72 04
     1428    je short 00903h                           ; 74 1e
     1429    jc short 008ebh                           ; 72 04
    14191430    mov ax, 00100h                            ; b8 00 01
    14201431    retn                                      ; c3
    1421     call 005d9h                               ; e8 41 fd
     1432    call 005f1h                               ; e8 03 fd
    14221433    cmp bh, 006h                              ; 80 ff 06
    1423     je short 008a7h                           ; 74 0a
     1434    je short 008fdh                           ; 74 0a
    14241435    cmp bh, 008h                              ; 80 ff 08
    1425     jne short 008bdh                          ; 75 1b
     1436    jne short 00913h                          ; 75 1b
    14261437    or ax, strict byte 00020h                 ; 83 c8 20
    1427     jne short 008aah                          ; 75 03
     1438    jne short 00900h                          ; 75 03
    14281439    and ax, strict byte 0ffdfh                ; 83 e0 df
    1429     call 005c9h                               ; e8 1c fd
     1440    call 005ddh                               ; e8 da fc
    14301441    mov BH, strict byte 006h                  ; b7 06
    1431     call 005d9h                               ; e8 27 fd
     1442    call 005f1h                               ; e8 e9 fc
    14321443    and ax, strict byte 00020h                ; 83 e0 20
    1433     je short 008b9h                           ; 74 02
     1444    je short 0090fh                           ; 74 02
    14341445    mov BH, strict byte 008h                  ; b7 08
    14351446    mov ax, strict word 0004fh                ; b8 4f 00
     
    14371448    mov ax, 0014fh                            ; b8 4f 01
    14381449    retn                                      ; c3
    1439 vbe_biosfn_set_get_palette_data:             ; 0xc08c1 LB 0x64
     1450vbe_biosfn_set_get_palette_data:             ; 0xc0917 LB 0x64
    14401451    test bl, bl                               ; 84 db
    1441     je short 008d4h                           ; 74 0f
     1452    je short 0092ah                           ; 74 0f
    14421453    cmp bl, 001h                              ; 80 fb 01
    1443     je short 008fch                           ; 74 32
     1454    je short 00952h                           ; 74 32
    14441455    cmp bl, 003h                              ; 80 fb 03
    1445     jbe short 00921h                          ; 76 52
     1456    jbe short 00977h                          ; 76 52
    14461457    cmp bl, 080h                              ; 80 fb 80
    1447     jne short 0091dh                          ; 75 49
     1458    jne short 00973h                          ; 75 49
    14481459    pushad                                    ; 66 60
    14491460    push DS                                   ; 1e
     
    14641475    rol eax, 008h                             ; 66 c1 c0 08
    14651476    out DX, AL                                ; ee
    1466     loop 008e2h                               ; e2 ed
     1477    loop 00938h                               ; e2 ed
    14671478    pop DS                                    ; 1f
    14681479    popad                                     ; 66 61
     
    14831494    in AL, DX                                 ; ec
    14841495    stosd                                     ; 66 ab
    1485     loop 00907h                               ; e2 ee
     1496    loop 0095dh                               ; e2 ee
    14861497    popad                                     ; 66 61
    1487     jmp short 008f8h                          ; eb db
     1498    jmp short 0094eh                          ; eb db
    14881499    mov ax, 0014fh                            ; b8 4f 01
    14891500    retn                                      ; c3
    14901501    mov ax, 0024fh                            ; b8 4f 02
    14911502    retn                                      ; c3
    1492 vbe_biosfn_return_protected_mode_interface: ; 0xc0925 LB 0x19
     1503vbe_biosfn_return_protected_mode_interface: ; 0xc097b LB 0x19
    14931504    test bl, bl                               ; 84 db
    1494     jne short 0093ah                          ; 75 11
     1505    jne short 00990h                          ; 75 11
    14951506    mov di, 0c000h                            ; bf 00 c0
    14961507    mov es, di                                ; 8e c7
    1497     mov di, 04600h                            ; bf 00 46
     1508    mov di, 04400h                            ; bf 00 44
    14981509    mov cx, 00115h                            ; b9 15 01
    14991510    db  02bh, 0cfh
     
    15041515    retn                                      ; c3
    15051516
    1506   ; Padding 0xc2 bytes at 0xc093e
    1507   times 194 db 0
     1517  ; Padding 0x6c bytes at 0xc0994
     1518  times 108 db 0
    15081519
    1509 section _TEXT progbits vstart=0xa00 align=1 ; size=0x2f47 class=CODE group=AUTO
     1520section _TEXT progbits vstart=0xa00 align=1 ; size=0x2f57 class=CODE group=AUTO
    15101521set_int_vector_:                             ; 0xc0a00 LB 0x1a
    15111522    push bx                                   ; 53
     
    15611572    call 00a1ah                               ; e8 ac ff
    15621573    call 00a36h                               ; e8 c5 ff
    1563     call 03476h                               ; e8 02 2a
     1574    call 03482h                               ; e8 0e 2a
    15641575    mov dx, strict word 00022h                ; ba 22 00
    15651576    mov ax, strict word 00010h                ; b8 10 00
     
    16431654    movzx bx, ch                              ; 0f b6 dd
    16441655    sal bx, 003h                              ; c1 e3 03
    1645     cmp byte [bx+04830h], 000h                ; 80 bf 30 48 00
     1656    cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
    16461657    jne short 00b5ah                          ; 75 2d
    16471658    mov dx, ax                                ; 89 c2
     
    16591670    mov dx, cx                                ; 89 ca
    16601671    add dx, ax                                ; 01 c2
    1661     mov ax, word [bx+04833h]                  ; 8b 87 33 48
     1672    mov ax, word [bx+04638h]                  ; 8b 87 38 46
    16621673    call 02f5ah                               ; e8 03 24
    16631674    mov word [ss:si], ax                      ; 36 89 04
     
    17251736    mov dx, 0010ch                            ; ba 0c 01
    17261737    jmp short 00b91h                          ; eb bf
    1727     mov ax, 05dafh                            ; b8 af 5d
     1738    mov ax, 05bf2h                            ; b8 f2 5b
    17281739    mov dx, 0c000h                            ; ba 00 c0
    17291740    jmp short 00b96h                          ; eb bc
    1730     mov ax, 055afh                            ; b8 af 55
     1741    mov ax, 053f2h                            ; b8 f2 53
    17311742    jmp short 00bd5h                          ; eb f6
    1732     mov ax, 059afh                            ; b8 af 59
     1743    mov ax, 057f2h                            ; b8 f2 57
    17331744    jmp short 00bd5h                          ; eb f1
    1734     mov ax, 07bafh                            ; b8 af 7b
     1745    mov ax, 079f2h                            ; b8 f2 79
    17351746    jmp short 00bd5h                          ; eb ec
    1736     mov ax, 06bafh                            ; b8 af 6b
     1747    mov ax, 069f2h                            ; b8 f2 69
    17371748    jmp short 00bd5h                          ; eb e7
    1738     mov ax, 07cdch                            ; b8 dc 7c
     1749    mov ax, 07b1fh                            ; b8 1f 7b
    17391750    jmp short 00bd5h                          ; eb e2
    17401751    jmp short 00bc4h                          ; eb cf
     
    17581769    movzx bx, al                              ; 0f b6 d8
    17591770    sal bx, 003h                              ; c1 e3 03
    1760     cmp byte [bx+04830h], 000h                ; 80 bf 30 48 00
     1771    cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
    17611772    je near 00d27h                            ; 0f 84 fe 00
    1762     mov bl, byte [bx+04831h]                  ; 8a 9f 31 48
     1773    mov bl, byte [bx+04636h]                  ; 8a 9f 36 46
    17631774    cmp bl, 003h                              ; 80 fb 03
    17641775    jc short 00c43h                           ; 72 11
     
    18191830    movzx bx, cl                              ; 0f b6 d9
    18201831    sal bx, 003h                              ; c1 e3 03
    1821     cmp byte [bx+04832h], 002h                ; 80 bf 32 48 02
     1832    cmp byte [bx+04637h], 002h                ; 80 bf 37 46 02
    18221833    jne short 00cebh                          ; 75 1b
    18231834    mov cx, si                                ; 89 f1
     
    21202131    mov si, bx                                ; 89 de
    21212132    sal si, 003h                              ; c1 e6 03
    2122     cmp byte [si+04830h], 000h                ; 80 bc 30 48 00
     2133    cmp byte [si+04635h], 000h                ; 80 bc 35 46 00
    21232134    jne short 00f83h                          ; 75 40
    21242135    mov dx, strict word 0004ah                ; ba 4a 00
     
    21472158    imul bx, di                               ; 0f af df
    21482159    jmp short 00f95h                          ; eb 12
    2149     movzx bx, byte [bx+048afh]                ; 0f b6 9f af 48
     2160    movzx bx, byte [bx+046b4h]                ; 0f b6 9f b4 46
    21502161    sal bx, 006h                              ; c1 e3 06
    21512162    movzx ax, cl                              ; 0f b6 c1
    2152     mov bx, word [bx+048c6h]                  ; 8b 9f c6 48
     2163    mov bx, word [bx+046cbh]                  ; 8b 9f cb 46
    21532164    imul bx, ax                               ; 0f af d8
    21542165    mov dx, strict word 00063h                ; ba 63 00
     
    21992210    and AL, strict byte 080h                  ; 24 80
    22002211    mov byte [bp-010h], al                    ; 88 46 f0
    2201     call 007a4h                               ; e8 b2 f7
     2212    call 007fah                               ; e8 08 f8
    22022213    test ax, ax                               ; 85 c0
    22032214    je short 01002h                           ; 74 0c
     
    22182229    je near 01363h                            ; 0f 84 43 03
    22192230    movzx si, al                              ; 0f b6 f0
    2220     mov al, byte [si+048afh]                  ; 8a 84 af 48
     2231    mov al, byte [si+046b4h]                  ; 8a 84 b4 46
    22212232    mov byte [bp-00eh], al                    ; 88 46 f2
    22222233    movzx bx, al                              ; 0f b6 d8
    22232234    sal bx, 006h                              ; c1 e3 06
    2224     movzx ax, byte [bx+048c3h]                ; 0f b6 87 c3 48
     2235    movzx ax, byte [bx+046c8h]                ; 0f b6 87 c8 46
    22252236    mov word [bp-018h], ax                    ; 89 46 e8
    2226     movzx ax, byte [bx+048c4h]                ; 0f b6 87 c4 48
     2237    movzx ax, byte [bx+046c9h]                ; 0f b6 87 c9 46
    22272238    mov word [bp-016h], ax                    ; 89 46 ea
    2228     movzx ax, byte [bx+048c5h]                ; 0f b6 87 c5 48
     2239    movzx ax, byte [bx+046cah]                ; 0f b6 87 ca 46
    22292240    mov word [bp-014h], ax                    ; 89 46 ec
    22302241    mov dx, 00087h                            ; ba 87 00
     
    22422253    mov bx, si                                ; 89 f3
    22432254    sal bx, 003h                              ; c1 e3 03
    2244     mov al, byte [bx+04835h]                  ; 8a 87 35 48
     2255    mov al, byte [bx+0463ah]                  ; 8a 87 3a 46
    22452256    mov dx, 003c6h                            ; ba c6 03
    22462257    out DX, AL                                ; ee
     
    22482259    mov dx, 003c8h                            ; ba c8 03
    22492260    out DX, AL                                ; ee
    2250     mov bl, byte [bx+04836h]                  ; 8a 9f 36 48
     2261    mov bl, byte [bx+0463bh]                  ; 8a 9f 3b 46
    22512262    cmp bl, 001h                              ; 80 fb 01
    22522263    jc short 01095h                           ; 72 0e
     
    22592270    test bl, bl                               ; 84 db
    22602271    jne short 010abh                          ; 75 12
    2261     mov di, 05043h                            ; bf 43 50
     2272    mov di, 04e48h                            ; bf 48 4e
    22622273    jmp short 010abh                          ; eb 0d
    2263     mov di, 05103h                            ; bf 03 51
     2274    mov di, 04f08h                            ; bf 08 4f
    22642275    jmp short 010abh                          ; eb 08
    2265     mov di, 051c3h                            ; bf c3 51
     2276    mov di, 04fc8h                            ; bf c8 4f
    22662277    jmp short 010abh                          ; eb 03
    2267     mov di, 05283h                            ; bf 83 52
     2278    mov di, 05088h                            ; bf 88 50
    22682279    xor bx, bx                                ; 31 db
    22692280    jmp short 010beh                          ; eb 0f
     
    22782289    movzx si, byte [bp-012h]                  ; 0f b6 76 ee
    22792290    sal si, 003h                              ; c1 e6 03
    2280     movzx si, byte [si+04836h]                ; 0f b6 b4 36 48
    2281     movzx dx, byte [si+048bfh]                ; 0f b6 94 bf 48
     2291    movzx si, byte [si+0463bh]                ; 0f b6 b4 3b 46
     2292    movzx dx, byte [si+046c4h]                ; 0f b6 94 c4 46
    22822293    cmp bx, dx                                ; 39 d3
    22832294    jnbe short 010afh                         ; 77 dc
     
    23112322    sal si, 006h                              ; c1 e6 06
    23122323    add si, bx                                ; 01 de
    2313     mov al, byte [si+048e6h]                  ; 8a 84 e6 48
     2324    mov al, byte [si+046ebh]                  ; 8a 84 eb 46
    23142325    out DX, AL                                ; ee
    23152326    inc bx                                    ; 43
     
    23352346    sal si, 006h                              ; c1 e6 06
    23362347    add si, bx                                ; 01 de
    2337     mov al, byte [si+048c7h]                  ; 8a 84 c7 48
     2348    mov al, byte [si+046cch]                  ; 8a 84 cc 46
    23382349    mov dx, 003c5h                            ; ba c5 03
    23392350    out DX, AL                                ; ee
     
    23502361    sal si, 006h                              ; c1 e6 06
    23512362    add si, bx                                ; 01 de
    2352     mov al, byte [si+048fah]                  ; 8a 84 fa 48
     2363    mov al, byte [si+046ffh]                  ; 8a 84 ff 46
    23532364    mov dx, 003cfh                            ; ba cf 03
    23542365    out DX, AL                                ; ee
     
    23572368    movzx bx, byte [bp-012h]                  ; 0f b6 5e ee
    23582369    sal bx, 003h                              ; c1 e3 03
    2359     cmp byte [bx+04831h], 001h                ; 80 bf 31 48 01
     2370    cmp byte [bx+04636h], 001h                ; 80 bf 36 46 01
    23602371    jne short 01188h                          ; 75 05
    23612372    mov dx, 003b4h                            ; ba b4 03
     
    23772388    add di, bx                                ; 01 df
    23782389    lea dx, [si+001h]                         ; 8d 54 01
    2379     mov al, byte [di+048cdh]                  ; 8a 85 cd 48
     2390    mov al, byte [di+046d2h]                  ; 8a 85 d2 46
    23802391    out DX, AL                                ; ee
    23812392    inc bx                                    ; 43
    23822393    jmp short 01195h                          ; eb e0
    23832394    mov bx, cx                                ; 89 cb
    2384     mov al, byte [bx+048cch]                  ; 8a 87 cc 48
     2395    mov al, byte [bx+046d1h]                  ; 8a 87 d1 46
    23852396    mov dx, 003c2h                            ; ba c2 03
    23862397    out DX, AL                                ; ee
     
    23962407    movzx bx, byte [bp-012h]                  ; 0f b6 5e ee
    23972408    sal bx, 003h                              ; c1 e3 03
    2398     cmp byte [bx+04830h], 000h                ; 80 bf 30 48 00
     2409    cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
    23992410    jne short 011f2h                          ; 75 13
    2400     mov es, [bx+04833h]                       ; 8e 87 33 48
     2411    mov es, [bx+04638h]                       ; 8e 87 38 46
    24012412    mov cx, 04000h                            ; b9 00 40
    24022413    mov ax, 00720h                            ; b8 20 07
     
    24082419    cmp byte [bp-00ch], 00dh                  ; 80 7e f4 0d
    24092420    jnc short 0120ah                          ; 73 12
    2410     mov es, [bx+04833h]                       ; 8e 87 33 48
     2421    mov es, [bx+04638h]                       ; 8e 87 38 46
    24112422    mov cx, 04000h                            ; b9 00 40
    24122423    xor ax, ax                                ; 31 c0
     
    24262437    mov AL, strict byte 00fh                  ; b0 0f
    24272438    out DX, AL                                ; ee
    2428     mov es, [bx+04833h]                       ; 8e 87 33 48
     2439    mov es, [bx+04638h]                       ; 8e 87 38 46
    24292440    mov cx, 08000h                            ; b9 00 80
    24302441    xor ax, ax                                ; 31 c0
     
    24452456    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
    24462457    sal bx, 006h                              ; c1 e3 06
    2447     mov bx, word [bx+048c6h]                  ; 8b 9f c6 48
     2458    mov bx, word [bx+046cbh]                  ; 8b 9f cb 46
    24482459    mov dx, strict word 0004ch                ; ba 4c 00
    24492460    mov ax, strict word 00040h                ; b8 40 00
     
    24842495    call 02f4ch                               ; e8 8b 1c
    24852496    mov cx, ds                                ; 8c d9
    2486     mov bx, 05593h                            ; bb 93 55
     2497    mov bx, 053d6h                            ; bb d6 53
    24872498    mov dx, 000a8h                            ; ba a8 00
    24882499    mov ax, strict word 00040h                ; b8 40 00
     
    24982509    movzx bx, byte [bp-012h]                  ; 0f b6 5e ee
    24992510    sal bx, 003h                              ; c1 e3 03
    2500     cmp byte [bx+04830h], 000h                ; 80 bf 30 48 00
     2511    cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
    25012512    jne short 012fch                          ; 75 09
    25022513    mov dx, strict word 00007h                ; ba 07 00
     
    25162527    movzx bx, byte [bp-012h]                  ; 0f b6 5e ee
    25172528    sal bx, 003h                              ; c1 e3 03
    2518     cmp byte [bx+04830h], 000h                ; 80 bf 30 48 00
     2529    cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
    25192530    jne short 01333h                          ; 75 10
    25202531    xor bl, bl                                ; 30 db
     
    25262537    mov AH, strict byte 011h                  ; b4 11
    25272538    int 010h                                  ; cd 10
    2528     mov dx, 059afh                            ; ba af 59
     2539    mov dx, 057f2h                            ; ba f2 57
    25292540    mov ax, strict word 0001fh                ; b8 1f 00
    25302541    call 00a00h                               ; e8 c4 f6
     
    25362547    cmp ax, strict word 00008h                ; 3d 08 00
    25372548    jne short 01363h                          ; 75 15
    2538     mov dx, 055afh                            ; ba af 55
     2549    mov dx, 053f2h                            ; ba f2 53
    25392550    mov ax, strict word 00043h                ; b8 43 00
    25402551    call 00a00h                               ; e8 a9 f6
    25412552    jmp short 01363h                          ; eb 0a
    2542     mov dx, 05dafh                            ; ba af 5d
     2553    mov dx, 05bf2h                            ; ba f2 5b
    25432554    jmp short 01351h                          ; eb f3
    2544     mov dx, 06bafh                            ; ba af 6b
     2555    mov dx, 069f2h                            ; ba f2 69
    25452556    jmp short 01351h                          ; eb ee
    25462557    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    28522863    mov ax, word [bp-016h]                    ; 8b 46 ea
    28532864    imul ax, cx                               ; 0f af c1
    2854     cmp byte [di+04830h], 000h                ; 80 bd 30 48 00
     2865    cmp byte [di+04635h], 000h                ; 80 bd 35 46 00
    28552866    jne near 017d1h                           ; 0f 85 9f 01
    28562867    mov dx, ax                                ; 89 c2
     
    28752886    sal dx, 008h                              ; c1 e2 08
    28762887    add dx, strict byte 00020h                ; 83 c2 20
    2877     mov es, [di+04833h]                       ; 8e 85 33 48
     2888    mov es, [di+04638h]                       ; 8e 85 38 46
    28782889    mov cx, ax                                ; 89 c1
    28792890    mov ax, dx                                ; 89 d0
     
    29092920    movzx si, byte [bp-00eh]                  ; 0f b6 76 f2
    29102921    sal si, 003h                              ; c1 e6 03
    2911     mov es, [si+04833h]                       ; 8e 84 33 48
     2922    mov es, [si+04638h]                       ; 8e 84 38 46
    29122923    cld                                       ; fc
    29132924    jcxz 016ddh                               ; e3 02
     
    29232934    movzx si, byte [bp-00eh]                  ; 0f b6 76 f2
    29242935    sal si, 003h                              ; c1 e6 03
    2925     mov ax, word [si+04833h]                  ; 8b 84 33 48
     2936    mov ax, word [si+04638h]                  ; 8b 84 38 46
    29262937    mov si, word [bp-014h]                    ; 8b 76 ec
    29272938    imul si, word [bp-016h]                   ; 0f af 76 ea
     
    29672978    movzx si, byte [bp-00eh]                  ; 0f b6 76 f2
    29682979    sal si, 003h                              ; c1 e6 03
    2969     mov es, [si+04833h]                       ; 8e 84 33 48
     2980    mov es, [si+04638h]                       ; 8e 84 38 46
    29702981    cld                                       ; fc
    29712982    jcxz 0177eh                               ; e3 02
     
    29822993    movzx si, byte [bp-00eh]                  ; 0f b6 76 f2
    29832994    sal si, 003h                              ; c1 e6 03
    2984     mov ax, word [si+04833h]                  ; 8b 84 33 48
     2995    mov ax, word [si+04638h]                  ; 8b 84 38 46
    29852996    mov si, word [bp-014h]                    ; 8b 76 ec
    29862997    imul si, word [bp-016h]                   ; 0f af 76 ea
     
    30023013    dec word [bp-014h]                        ; ff 4e ec
    30033014    jmp near 0172dh                           ; e9 5c ff
    3004     movzx bx, byte [si+048afh]                ; 0f b6 9c af 48
     3015    movzx bx, byte [si+046b4h]                ; 0f b6 9c b4 46
    30053016    sal bx, 006h                              ; c1 e3 06
    3006     mov dl, byte [bx+048c5h]                  ; 8a 97 c5 48
     3017    mov dl, byte [bx+046cah]                  ; 8a 97 ca 46
    30073018    mov byte [bp-00ah], dl                    ; 88 56 f6
    3008     mov bl, byte [di+04831h]                  ; 8a 9d 31 48
     3019    mov bl, byte [di+04636h]                  ; 8a 9d 36 46
    30093020    cmp bl, 004h                              ; 80 fb 04
    30103021    je short 017f8h                           ; 74 0f
     
    30393050    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
    30403051    sal bx, 003h                              ; c1 e3 03
    3041     mov es, [bx+04833h]                       ; 8e 87 33 48
     3052    mov es, [bx+04638h]                       ; 8e 87 38 46
    30423053    xor di, di                                ; 31 ff
    30433054    cld                                       ; fc
     
    31213132    dec word [bp-014h]                        ; ff 4e ec
    31223133    jmp short 018c6h                          ; eb 8f
    3123     mov dl, byte [di+04832h]                  ; 8a 95 32 48
     3134    mov dl, byte [di+04637h]                  ; 8a 95 37 46
    31243135    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    31253136    jne short 0197eh                          ; 75 3d
     
    31393150    imul cx, ax                               ; 0f af c8
    31403151    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    3141     mov es, [di+04833h]                       ; 8e 85 33 48
     3152    mov es, [di+04638h]                       ; 8e 85 38 46
    31423153    xor di, di                                ; 31 ff
    31433154    cld                                       ; fc
     
    32413252    cmp byte [bp+006h], 00eh                  ; 80 7e 06 0e
    32423253    jne short 01a9bh                          ; 75 0a
    3243     mov di, 05dafh                            ; bf af 5d
     3254    mov di, 05bf2h                            ; bf f2 5b
    32443255    jmp short 01a9eh                          ; eb 08
    3245     mov di, 06bafh                            ; bf af 6b
     3256    mov di, 069f2h                            ; bf f2 69
    32463257    jmp short 01a9eh                          ; eb 03
    3247     mov di, 055afh                            ; bf af 55
     3258    mov di, 053f2h                            ; bf f2 53
    32483259    movzx si, cl                              ; 0f b6 f1
    32493260    movzx bx, byte [bp+006h]                  ; 0f b6 5e 06
     
    33323343    sub sp, strict byte 00008h                ; 83 ec 08
    33333344    mov byte [bp-008h], dl                    ; 88 56 f8
    3334     mov si, 055afh                            ; be af 55
     3345    mov si, 053f2h                            ; be f2 53
    33353346    xor bh, bh                                ; 30 ff
    33363347    movzx di, byte [bp+006h]                  ; 0f b6 7e 06
     
    34463457    sub sp, strict byte 00008h                ; 83 ec 08
    34473458    mov byte [bp-006h], dl                    ; 88 56 fa
    3448     mov di, 055afh                            ; bf af 55
     3459    mov di, 053f2h                            ; bf f2 53
    34493460    movzx dx, cl                              ; 0f b6 d1
    34503461    movzx cx, byte [bp+004h]                  ; 0f b6 4e 04
     
    35413552    mov di, bx                                ; 89 df
    35423553    sal di, 003h                              ; c1 e7 03
    3543     cmp byte [di+04830h], 000h                ; 80 bd 30 48 00
     3554    cmp byte [di+04635h], 000h                ; 80 bd 35 46 00
    35443555    jne short 01dcdh                          ; 75 47
    35453556    mov bx, word [bp-018h]                    ; 8b 5e e8
     
    35623573    mov word [bp-01ah], ax                    ; 89 46 e6
    35633574    mov ax, word [bp-01ah]                    ; 8b 46 e6
    3564     mov es, [di+04833h]                       ; 8e 85 33 48
     3575    mov es, [di+04638h]                       ; 8e 85 38 46
    35653576    mov cx, si                                ; 89 f1
    35663577    mov di, dx                                ; 89 d7
     
    35693580    rep stosw                                 ; f3 ab
    35703581    jmp near 01e73h                           ; e9 a6 00
    3571     movzx bx, byte [bx+048afh]                ; 0f b6 9f af 48
     3582    movzx bx, byte [bx+046b4h]                ; 0f b6 9f b4 46
    35723583    sal bx, 006h                              ; c1 e3 06
    3573     mov al, byte [bx+048c5h]                  ; 8a 87 c5 48
     3584    mov al, byte [bx+046cah]                  ; 8a 87 ca 46
    35743585    mov byte [bp-008h], al                    ; 88 46 f8
    3575     mov al, byte [di+04832h]                  ; 8a 85 32 48
     3586    mov al, byte [di+04637h]                  ; 8a 85 37 46
    35763587    mov byte [bp-014h], al                    ; 88 46 ec
    35773588    dec si                                    ; 4e
     
    35833594    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    35843595    sal bx, 003h                              ; c1 e3 03
    3585     mov al, byte [bx+04831h]                  ; 8a 87 31 48
     3596    mov al, byte [bx+04636h]                  ; 8a 87 36 46
    35863597    cmp AL, strict byte 003h                  ; 3c 03
    35873598    jc short 01e11h                           ; 72 0c
     
    36713682    mov bx, di                                ; 89 fb
    36723683    sal bx, 003h                              ; c1 e3 03
    3673     cmp byte [bx+04830h], 000h                ; 80 bf 30 48 00
     3684    cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
    36743685    jne short 01f38h                          ; 75 4a
    36753686    mov dx, word [bp-018h]                    ; 8b 56 e8
     
    36933704    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
    36943705    sal bx, 003h                              ; c1 e3 03
    3695     mov di, word [bx+04833h]                  ; 8b bf 33 48
     3706    mov di, word [bx+04638h]                  ; 8b bf 38 46
    36963707    mov bx, ax                                ; 89 c3
    36973708    mov dx, cx                                ; 89 ca
     
    37013712    inc cx                                    ; 41
    37023713    jmp short 01f14h                          ; eb dc
    3703     movzx di, byte [di+048afh]                ; 0f b6 bd af 48
     3714    movzx di, byte [di+046b4h]                ; 0f b6 bd b4 46
    37043715    sal di, 006h                              ; c1 e7 06
    3705     mov al, byte [di+048c5h]                  ; 8a 85 c5 48
     3716    mov al, byte [di+046cah]                  ; 8a 85 ca 46
    37063717    mov byte [bp-00ah], al                    ; 88 46 f6
    3707     mov al, byte [bx+04832h]                  ; 8a 87 32 48
     3718    mov al, byte [bx+04637h]                  ; 8a 87 37 46
    37083719    mov byte [bp-008h], al                    ; 88 46 f8
    37093720    dec si                                    ; 4e
     
    37153726    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
    37163727    sal bx, 003h                              ; c1 e3 03
    3717     mov bl, byte [bx+04831h]                  ; 8a 9f 31 48
     3728    mov bl, byte [bx+04636h]                  ; 8a 9f 36 46
    37183729    cmp bl, 003h                              ; 80 fb 03
    37193730    jc short 01f7fh                           ; 72 0e
     
    37783789    movzx bx, al                              ; 0f b6 d8
    37793790    sal bx, 003h                              ; c1 e3 03
    3780     cmp byte [bx+04830h], 000h                ; 80 bf 30 48 00
     3791    cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
    37813792    je near 0212bh                            ; 0f 84 0f 01
    3782     mov al, byte [bx+04831h]                  ; 8a 87 31 48
     3793    mov al, byte [bx+04636h]                  ; 8a 87 36 46
    37833794    cmp AL, strict byte 003h                  ; 3c 03
    37843795    jc short 02033h                           ; 72 0f
     
    38343845    shr ax, 1                                 ; d1 e8
    38353846    imul ax, ax, strict byte 00050h           ; 6b c0 50
    3836     cmp byte [bx+04832h], 002h                ; 80 bf 32 48 02
     3847    cmp byte [bx+04637h], 002h                ; 80 bf 37 46 02
    38373848    jne short 020b5h                          ; 75 08
    38383849    mov bx, word [bp-00ah]                    ; 8b 5e f6
     
    38523863    movzx si, byte [bp-004h]                  ; 0f b6 76 fc
    38533864    sal si, 003h                              ; c1 e6 03
    3854     cmp byte [si+04832h], 002h                ; 80 bc 32 48 02
     3865    cmp byte [si+04637h], 002h                ; 80 bc 37 46 02
    38553866    jne short 020fbh                          ; 75 19
    38563867    mov al, byte [bp-00ah]                    ; 8a 46 f6
     
    39653976    mov si, bx                                ; 89 de
    39663977    sal si, 003h                              ; c1 e6 03
    3967     cmp byte [si+04830h], 000h                ; 80 bc 30 48 00
     3978    cmp byte [si+04635h], 000h                ; 80 bc 35 46 00
    39683979    jne short 02256h                          ; 75 4d
    39693980    mov ax, word [bp-012h]                    ; 8b 46 ee
     
    39823993    add cx, ax                                ; 01 c1
    39833994    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    3984     mov ax, word [si+04833h]                  ; 8b 84 33 48
     3995    mov ax, word [si+04638h]                  ; 8b 84 38 46
    39853996    mov dx, cx                                ; 89 ca
    39863997    call 02f4ch                               ; e8 0f 0d
     
    39904001    mov dx, cx                                ; 89 ca
    39914002    inc dx                                    ; 42
    3992     mov ax, word [si+04833h]                  ; 8b 84 33 48
     4003    mov ax, word [si+04638h]                  ; 8b 84 38 46
    39934004    call 02f4ch                               ; e8 f9 0c
    39944005    jmp near 022d4h                           ; e9 7e 00
    3995     movzx bx, byte [bx+048afh]                ; 0f b6 9f af 48
     4006    movzx bx, byte [bx+046b4h]                ; 0f b6 9f b4 46
    39964007    sal bx, 006h                              ; c1 e3 06
    3997     mov ah, byte [bx+048c5h]                  ; 8a a7 c5 48
    3998     mov dl, byte [si+04832h]                  ; 8a 94 32 48
    3999     mov al, byte [si+04831h]                  ; 8a 84 31 48
     4008    mov ah, byte [bx+046cah]                  ; 8a a7 ca 46
     4009    mov dl, byte [si+04637h]                  ; 8a 94 37 46
     4010    mov al, byte [si+04636h]                  ; 8a 84 36 46
    40004011    cmp AL, strict byte 003h                  ; 3c 03
    40014012    jc short 0227ah                           ; 72 0c
     
    40534064    db  0feh, 0cbh
    40544065    ; dec bl                                    ; fe cb
    4055     cmp byte [si+04830h], 000h                ; 80 bc 30 48 00
     4066    cmp byte [si+04635h], 000h                ; 80 bc 35 46 00
    40564067    jne short 02354h                          ; 75 4a
    40574068    mov ax, word [bp-012h]                    ; 8b 46 ee
     
    40724083    add dx, ax                                ; 01 c2
    40734084    inc dx                                    ; 42
    4074     mov ax, word [si+04833h]                  ; 8b 84 33 48
     4085    mov ax, word [si+04638h]                  ; 8b 84 38 46
    40754086    call 02f3eh                               ; e8 02 0c
    40764087    push strict byte 00001h                   ; 6a 01
     
    43474358    sal di, 005h                              ; c1 e7 05
    43484359    add di, word [bp-00ch]                    ; 03 7e f4
    4349     add si, 05dafh                            ; 81 c6 af 5d
     4360    add si, 05bf2h                            ; 81 c6 f2 5b
    43504361    mov cx, strict word 0000eh                ; b9 0e 00
    43514362    mov dx, 0c000h                            ; ba 00 c0
     
    44034414    sal di, 005h                              ; c1 e7 05
    44044415    add di, word [bp-00ch]                    ; 03 7e f4
    4405     add si, 055afh                            ; 81 c6 af 55
     4416    add si, 053f2h                            ; 81 c6 f2 53
    44064417    mov cx, strict word 00008h                ; b9 08 00
    44074418    mov dx, 0c000h                            ; ba 00 c0
     
    44594470    sal di, 005h                              ; c1 e7 05
    44604471    add di, word [bp-00ch]                    ; 03 7e f4
    4461     add si, 06bafh                            ; 81 c6 af 6b
     4472    add si, 069f2h                            ; 81 c6 f2 69
    44624473    mov cx, strict word 00010h                ; b9 10 00
    44634474    mov dx, 0c000h                            ; ba 00 c0
     
    45934604    push bx                                   ; 53
    45944605    mov cx, ds                                ; 8c d9
    4595     mov bx, 05583h                            ; bb 83 55
     4606    mov bx, 05388h                            ; bb 88 53
    45964607    mov dx, word [bp-00ah]                    ; 8b 56 f6
    45974608    mov ax, word [bp-008h]                    ; 8b 46 f8
     
    54935504    movzx bx, al                              ; 0f b6 d8
    54945505    sal bx, 003h                              ; c1 e3 03
    5495     cmp dl, byte [bx+0482fh]                  ; 3a 97 2f 48
     5506    cmp dl, byte [bx+04634h]                  ; 3a 97 34 46
    54965507    jne short 02f24h                          ; 75 ee
    54975508    mov ah, al                                ; 88 c4
     
    59295940    or AL, strict byte 01ch                   ; 0c 1c
    59305941    jmp near 0306dh                           ; e9 20 fd
    5931     call 007a4h                               ; e8 54 d4
     5942    call 007fah                               ; e8 aa d4
    59325943    test ax, ax                               ; 85 c0
    59335944    je near 033c5h                            ; 0f 84 6f 00
     
    59515962    mov dx, word [bp+016h]                    ; 8b 56 16
    59525963    lea ax, [bp+012h]                         ; 8d 46 12
    5953     call 034f7h                               ; e8 70 01
     5964    call 03503h                               ; e8 7c 01
    59545965    jmp short 033cah                          ; eb 41
    59555966    mov cx, si                                ; 89 f1
     
    59575968    mov dx, word [bp+010h]                    ; 8b 56 10
    59585969    lea ax, [bp+012h]                         ; 8d 46 12
    5959     call 03620h                               ; e8 89 02
     5970    call 0362ch                               ; e8 95 02
    59605971    jmp short 033cah                          ; eb 31
    59615972    mov cx, si                                ; 89 f1
     
    59635974    mov dx, word [bp+00ch]                    ; 8b 56 0c
    59645975    lea ax, [bp+012h]                         ; 8d 46 12
    5965     call 036d4h                               ; e8 2d 03
     5976    call 036e4h                               ; e8 3d 03
    59665977    jmp short 033cah                          ; eb 21
    59675978    lea ax, [bp+00ch]                         ; 8d 46 0c
     
    59715982    mov dx, word [bp+010h]                    ; 8b 56 10
    59725983    lea ax, [bp+012h]                         ; 8d 46 12
    5973     call 038bbh                               ; e8 ff 04
     5984    call 038cbh                               ; e8 0f 05
    59745985    jmp short 033cah                          ; eb 0c
    59755986    mov word [bp+012h], 00100h                ; c7 46 12 00 01
     
    59815992    pop bp                                    ; 5d
    59825993    retn                                      ; c3
    5983 dispi_set_xres_:                             ; 0xc33d1 LB 0x1b
     5994dispi_set_xres_:                             ; 0xc33d1 LB 0x1f
    59845995    push bp                                   ; 55
    59855996    mov bp, sp                                ; 89 e5
     
    59896000    mov ax, strict word 00001h                ; b8 01 00
    59906001    mov dx, 001ceh                            ; ba ce 01
    5991     out DX, ax                                ; ef
     6002    call 00570h                               ; e8 8f d1
    59926003    mov ax, bx                                ; 89 d8
    59936004    mov dx, 001cfh                            ; ba cf 01
    5994     out DX, ax                                ; ef
     6005    call 00570h                               ; e8 87 d1
    59956006    lea sp, [bp-004h]                         ; 8d 66 fc
    59966007    pop dx                                    ; 5a
     
    59986009    pop bp                                    ; 5d
    59996010    retn                                      ; c3
    6000 dispi_set_yres_:                             ; 0xc33ec LB 0x1b
     6011dispi_set_yres_:                             ; 0xc33f0 LB 0x1f
    60016012    push bp                                   ; 55
    60026013    mov bp, sp                                ; 89 e5
     
    60066017    mov ax, strict word 00002h                ; b8 02 00
    60076018    mov dx, 001ceh                            ; ba ce 01
    6008     out DX, ax                                ; ef
     6019    call 00570h                               ; e8 70 d1
    60096020    mov ax, bx                                ; 89 d8
    60106021    mov dx, 001cfh                            ; ba cf 01
    6011     out DX, ax                                ; ef
     6022    call 00570h                               ; e8 68 d1
    60126023    lea sp, [bp-004h]                         ; 8d 66 fc
    60136024    pop dx                                    ; 5a
     
    60156026    pop bp                                    ; 5d
    60166027    retn                                      ; c3
    6017 dispi_set_bpp_:                              ; 0xc3407 LB 0x1b
     6028dispi_set_bpp_:                              ; 0xc340f LB 0x1f
    60186029    push bp                                   ; 55
    60196030    mov bp, sp                                ; 89 e5
     
    60236034    mov ax, strict word 00003h                ; b8 03 00
    60246035    mov dx, 001ceh                            ; ba ce 01
    6025     out DX, ax                                ; ef
     6036    call 00570h                               ; e8 51 d1
    60266037    mov ax, bx                                ; 89 d8
    60276038    mov dx, 001cfh                            ; ba cf 01
    6028     out DX, ax                                ; ef
     6039    call 00570h                               ; e8 49 d1
    60296040    lea sp, [bp-004h]                         ; 8d 66 fc
    60306041    pop dx                                    ; 5a
     
    60326043    pop bp                                    ; 5d
    60336044    retn                                      ; c3
    6034 in_word_:                                    ; 0xc3422 LB 0x12
     6045in_word_:                                    ; 0xc342e LB 0x12
    60356046    push bp                                   ; 55
    60366047    mov bp, sp                                ; 89 e5
     
    60456056    pop bp                                    ; 5d
    60466057    retn                                      ; c3
    6047 in_byte_:                                    ; 0xc3434 LB 0x14
     6058in_byte_:                                    ; 0xc3440 LB 0x14
    60486059    push bp                                   ; 55
    60496060    mov bp, sp                                ; 89 e5
     
    60606071    pop bp                                    ; 5d
    60616072    retn                                      ; c3
    6062 dispi_get_id_:                               ; 0xc3448 LB 0x14
     6073dispi_get_id_:                               ; 0xc3454 LB 0x14
    60636074    push bp                                   ; 55
    60646075    mov bp, sp                                ; 89 e5
     
    60736084    pop bp                                    ; 5d
    60746085    retn                                      ; c3
    6075 dispi_set_id_:                               ; 0xc345c LB 0x1a
     6086dispi_set_id_:                               ; 0xc3468 LB 0x1a
    60766087    push bp                                   ; 55
    60776088    mov bp, sp                                ; 89 e5
     
    60906101    pop bp                                    ; 5d
    60916102    retn                                      ; c3
    6092 vbe_init_:                                   ; 0xc3476 LB 0x2c
     6103vbe_init_:                                   ; 0xc3482 LB 0x2c
    60936104    push bp                                   ; 55
    60946105    mov bp, sp                                ; 89 e5
     
    60966107    push dx                                   ; 52
    60976108    mov ax, 0b0c0h                            ; b8 c0 b0
    6098     call 0345ch                               ; e8 db ff
    6099     call 03448h                               ; e8 c4 ff
     6109    call 03468h                               ; e8 db ff
     6110    call 03454h                               ; e8 c4 ff
    61006111    cmp ax, 0b0c0h                            ; 3d c0 b0
    6101     jne short 0349bh                          ; 75 12
     6112    jne short 034a7h                          ; 75 12
    61026113    mov bx, strict word 00001h                ; bb 01 00
    61036114    mov dx, 000b9h                            ; ba b9 00
    61046115    mov ax, strict word 00040h                ; b8 40 00
    6105     call 02f4ch                               ; e8 b7 fa
     6116    call 02f4ch                               ; e8 ab fa
    61066117    mov ax, 0b0c4h                            ; b8 c4 b0
    6107     call 0345ch                               ; e8 c1 ff
     6118    call 03468h                               ; e8 c1 ff
    61086119    lea sp, [bp-004h]                         ; 8d 66 fc
    61096120    pop dx                                    ; 5a
     
    61116122    pop bp                                    ; 5d
    61126123    retn                                      ; c3
    6113 mode_info_find_mode_:                        ; 0xc34a2 LB 0x55
     6124mode_info_find_mode_:                        ; 0xc34ae LB 0x55
    61146125    push bp                                   ; 55
    61156126    mov bp, sp                                ; 89 e5
     
    61226133    xor dx, dx                                ; 31 d2
    61236134    mov ax, 003b6h                            ; b8 b6 03
    6124     call 03422h                               ; e8 6d ff
     6135    call 0342eh                               ; e8 6d ff
    61256136    cmp ax, 077cch                            ; 3d cc 77
    6126     jne short 034ech                          ; 75 32
     6137    jne short 034f8h                          ; 75 32
    61276138    mov bx, strict word 00004h                ; bb 04 00
    61286139    mov dx, bx                                ; 89 da
    61296140    mov ax, 003b6h                            ; b8 b6 03
    6130     call 03422h                               ; e8 5d ff
     6141    call 0342eh                               ; e8 5d ff
    61316142    mov cx, ax                                ; 89 c1
    61326143    cmp cx, strict byte 0ffffh                ; 83 f9 ff
    6133     je short 034ech                           ; 74 20
     6144    je short 034f8h                           ; 74 20
    61346145    lea dx, [bx+002h]                         ; 8d 57 02
    61356146    mov ax, 003b6h                            ; b8 b6 03
    6136     call 03422h                               ; e8 4d ff
     6147    call 0342eh                               ; e8 4d ff
    61376148    lea dx, [bx+044h]                         ; 8d 57 44
    61386149    cmp cx, di                                ; 39 f9
    6139     jne short 034e8h                          ; 75 0c
     6150    jne short 034f4h                          ; 75 0c
    61406151    test si, si                               ; 85 f6
    6141     jne short 034e4h                          ; 75 04
     6152    jne short 034f0h                          ; 75 04
    61426153    mov ax, bx                                ; 89 d8
    6143     jmp short 034eeh                          ; eb 0a
     6154    jmp short 034fah                          ; eb 0a
    61446155    test AL, strict byte 080h                 ; a8 80
    6145     jne short 034e0h                          ; 75 f8
     6156    jne short 034ech                          ; 75 f8
    61466157    mov bx, dx                                ; 89 d3
    6147     jmp short 034bfh                          ; eb d3
     6158    jmp short 034cbh                          ; eb d3
    61486159    xor ax, ax                                ; 31 c0
    61496160    lea sp, [bp-008h]                         ; 8d 66 f8
     
    61546165    pop bp                                    ; 5d
    61556166    retn                                      ; c3
    6156 vbe_biosfn_return_controller_information_: ; 0xc34f7 LB 0x129
     6167vbe_biosfn_return_controller_information_: ; 0xc3503 LB 0x129
    61576168    push bp                                   ; 55
    61586169    mov bp, sp                                ; 89 e5
     
    61656176    mov word [bp-00ah], bx                    ; 89 5e f6
    61666177    mov word [bp-00ch], strict word 00022h    ; c7 46 f4 22 00
    6167     call 005a7h                               ; e8 98 d0
     6178    call 005b7h                               ; e8 9c d0
    61686179    mov word [bp-010h], ax                    ; 89 46 f0
    61696180    mov bx, word [bp-00ah]                    ; 8b 5e f6
     
    61716182    xor dx, dx                                ; 31 d2
    61726183    mov ax, 003b6h                            ; b8 b6 03
    6173     call 03422h                               ; e8 02 ff
     6184    call 0342eh                               ; e8 02 ff
    61746185    cmp ax, 077cch                            ; 3d cc 77
    6175     je short 0352fh                           ; 74 0a
     6186    je short 0353bh                           ; 74 0a
    61766187    push SS                                   ; 16
    61776188    pop ES                                    ; 07
    61786189    mov word [es:si], 00100h                  ; 26 c7 04 00 01
    6179     jmp near 03618h                           ; e9 e9 00
     6190    jmp near 03624h                           ; e9 e9 00
    61806191    mov cx, strict word 00004h                ; b9 04 00
    61816192    mov word [bp-00eh], strict word 00000h    ; c7 46 f2 00 00
    61826193    mov es, [bp-008h]                         ; 8e 46 f8
    61836194    cmp word [es:bx+002h], 03245h             ; 26 81 7f 02 45 32
    6184     jne short 03549h                          ; 75 07
     6195    jne short 03555h                          ; 75 07
    61856196    cmp word [es:bx], 04256h                  ; 26 81 3f 56 42
    6186     je short 03558h                           ; 74 0f
     6197    je short 03564h                           ; 74 0f
    61876198    cmp word [es:bx+002h], 04153h             ; 26 81 7f 02 53 41
    6188     jne short 0355dh                          ; 75 0c
     6199    jne short 03569h                          ; 75 0c
    61896200    cmp word [es:bx], 04556h                  ; 26 81 3f 56 45
    6190     jne short 0355dh                          ; 75 05
     6201    jne short 03569h                          ; 75 05
    61916202    mov word [bp-00eh], strict word 00001h    ; c7 46 f2 01 00
    61926203    mov es, [bp-008h]                         ; 8e 46 f8
     
    61946205    ; mov dword [es:bx], strict dword 041534556h ; 66 26 c7 07 56 45 53 41
    61956206    mov word [es:bx+004h], 00200h             ; 26 c7 47 04 00 02
    6196     mov word [es:bx+006h], 07e20h             ; 26 c7 47 06 20 7e
     6207    mov word [es:bx+006h], 07c64h             ; 26 c7 47 06 64 7c
    61976208    mov [es:bx+008h], ds                      ; 26 8c 5f 08
    61986209    db  066h, 026h, 0c7h, 047h, 00ah, 001h, 000h, 000h, 000h
     
    62046215    mov dx, strict word 0ffffh                ; ba ff ff
    62056216    mov ax, 003b6h                            ; b8 b6 03
    6206     call 03422h                               ; e8 8a fe
     6217    call 0342eh                               ; e8 8a fe
    62076218    mov es, [bp-008h]                         ; 8e 46 f8
    62086219    mov word [es:bx+012h], ax                 ; 26 89 47 12
    62096220    cmp word [bp-00eh], strict byte 00000h    ; 83 7e f2 00
    6210     je short 035c9h                           ; 74 24
     6221    je short 035d5h                           ; 74 24
    62116222    mov word [es:bx+014h], strict word 00003h ; 26 c7 47 14 03 00
    6212     mov word [es:bx+016h], 07e35h             ; 26 c7 47 16 35 7e
     6223    mov word [es:bx+016h], 07c79h             ; 26 c7 47 16 79 7c
    62136224    mov [es:bx+018h], ds                      ; 26 8c 5f 18
    6214     mov word [es:bx+01ah], 07e48h             ; 26 c7 47 1a 48 7e
     6225    mov word [es:bx+01ah], 07c8ch             ; 26 c7 47 1a 8c 7c
    62156226    mov [es:bx+01ch], ds                      ; 26 8c 5f 1c
    6216     mov word [es:bx+01eh], 07e69h             ; 26 c7 47 1e 69 7e
     6227    mov word [es:bx+01eh], 07cadh             ; 26 c7 47 1e ad 7c
    62176228    mov [es:bx+020h], ds                      ; 26 8c 5f 20
    62186229    mov dx, cx                                ; 89 ca
    62196230    add dx, strict byte 0001bh                ; 83 c2 1b
    62206231    mov ax, 003b6h                            ; b8 b6 03
    6221     call 03434h                               ; e8 60 fe
     6232    call 03440h                               ; e8 60 fe
    62226233    xor ah, ah                                ; 30 e4
    62236234    cmp ax, word [bp-010h]                    ; 3b 46 f0
    6224     jnbe short 035f4h                         ; 77 19
     6235    jnbe short 03600h                         ; 77 19
    62256236    mov dx, cx                                ; 89 ca
    62266237    mov ax, 003b6h                            ; b8 b6 03
    6227     call 03422h                               ; e8 3f fe
     6238    call 0342eh                               ; e8 3f fe
    62286239    mov bx, ax                                ; 89 c3
    62296240    mov dx, word [bp-00ah]                    ; 8b 56 f6
    62306241    add dx, word [bp-00ch]                    ; 03 56 f4
    62316242    mov ax, di                                ; 89 f8
    6232     call 02f68h                               ; e8 78 f9
     6243    call 02f68h                               ; e8 6c f9
    62336244    add word [bp-00ch], strict byte 00002h    ; 83 46 f4 02
    62346245    add cx, strict byte 00044h                ; 83 c1 44
    62356246    mov dx, cx                                ; 89 ca
    62366247    mov ax, 003b6h                            ; b8 b6 03
    6237     call 03422h                               ; e8 23 fe
     6248    call 0342eh                               ; e8 23 fe
    62386249    mov bx, ax                                ; 89 c3
    62396250    cmp ax, strict word 0ffffh                ; 3d ff ff
    6240     jne short 035c9h                          ; 75 c3
     6251    jne short 035d5h                          ; 75 c3
    62416252    mov dx, word [bp-00ah]                    ; 8b 56 f6
    62426253    add dx, word [bp-00ch]                    ; 03 56 f4
    62436254    mov ax, di                                ; 89 f8
    6244     call 02f68h                               ; e8 57 f9
     6255    call 02f68h                               ; e8 4b f9
    62456256    push SS                                   ; 16
    62466257    pop ES                                    ; 07
     
    62526263    pop bp                                    ; 5d
    62536264    retn                                      ; c3
    6254 vbe_biosfn_return_mode_information_:         ; 0xc3620 LB 0xb4
     6265vbe_biosfn_return_mode_information_:         ; 0xc362c LB 0xb8
    62556266    push bp                                   ; 55
    62566267    mov bp, sp                                ; 89 e5
     
    62686279    xor dh, dh                                ; 30 f6
    62696280    and ah, 001h                              ; 80 e4 01
    6270     call 034a2h                               ; e8 65 fe
     6281    call 034aeh                               ; e8 65 fe
    62716282    mov word [bp-008h], ax                    ; 89 46 f8
    62726283    test ax, ax                               ; 85 c0
    6273     je near 036c2h                            ; 0f 84 7c 00
     6284    je near 036d2h                            ; 0f 84 80 00
    62746285    mov cx, 00100h                            ; b9 00 01
    62756286    xor ax, ax                                ; 31 c0
     
    62776288    mov es, bx                                ; 8e c3
    62786289    cld                                       ; fc
    6279     jcxz 03655h                               ; e3 02
     6290    jcxz 03661h                               ; e3 02
    62806291    rep stosb                                 ; f3 aa
    62816292    xor cx, cx                                ; 31 c9
    6282     jmp short 0365eh                          ; eb 05
     6293    jmp short 0366ah                          ; eb 05
    62836294    cmp cx, strict byte 00042h                ; 83 f9 42
    6284     jnc short 0367bh                          ; 73 1d
     6295    jnc short 03687h                          ; 73 1d
    62856296    mov dx, word [bp-008h]                    ; 8b 56 f8
    62866297    inc dx                                    ; 42
     
    62886299    add dx, cx                                ; 01 ca
    62896300    mov ax, 003b6h                            ; b8 b6 03
    6290     call 03434h                               ; e8 c9 fd
     6301    call 03440h                               ; e8 c9 fd
    62916302    movzx bx, al                              ; 0f b6 d8
    62926303    mov dx, word [bp-006h]                    ; 8b 56 fa
    62936304    add dx, cx                                ; 01 ca
    62946305    mov ax, si                                ; 89 f0
    6295     call 02f4ch                               ; e8 d4 f8
    6296     inc cx                                    ; 41
    6297     jmp short 03659h                          ; eb de
     6306    call 02f4ch                               ; e8 c8 f8
     6307    inc cx                                    ; 41
     6308    jmp short 03665h                          ; eb de
    62986309    mov dx, word [bp-006h]                    ; 8b 56 fa
    62996310    inc dx                                    ; 42
    63006311    inc dx                                    ; 42
    63016312    mov ax, si                                ; 89 f0
    6302     call 02f3eh                               ; e8 b9 f8
     6313    call 02f3eh                               ; e8 ad f8
    63036314    test AL, strict byte 001h                 ; a8 01
    6304     je short 036a5h                           ; 74 1c
     6315    je short 036b1h                           ; 74 1c
    63056316    mov dx, word [bp-006h]                    ; 8b 56 fa
    63066317    add dx, strict byte 0000ch                ; 83 c2 0c
    6307     mov bx, 00605h                            ; bb 05 06
    6308     mov ax, si                                ; 89 f0
    6309     call 02f68h                               ; e8 d1 f8
     6318    mov bx, 00629h                            ; bb 29 06
     6319    mov ax, si                                ; 89 f0
     6320    call 02f68h                               ; e8 c5 f8
    63106321    mov dx, word [bp-006h]                    ; 8b 56 fa
    63116322    add dx, strict byte 0000eh                ; 83 c2 0e
    63126323    mov bx, 0c000h                            ; bb 00 c0
    63136324    mov ax, si                                ; 89 f0
    6314     call 02f68h                               ; e8 c3 f8
     6325    call 02f68h                               ; e8 b7 f8
    63156326    mov ax, strict word 0000bh                ; b8 0b 00
    63166327    mov dx, 001ceh                            ; ba ce 01
    6317     out DX, ax                                ; ef
     6328    call 00570h                               ; e8 b6 ce
    63186329    mov dx, 001cfh                            ; ba cf 01
    6319     in ax, DX                                 ; ed
     6330    call 00577h                               ; e8 b7 ce
    63206331    mov dx, word [bp-006h]                    ; 8b 56 fa
    63216332    add dx, strict byte 0002ah                ; 83 c2 2a
    63226333    mov bx, ax                                ; 89 c3
    63236334    mov ax, si                                ; 89 f0
    6324     call 02f68h                               ; e8 ab f8
     6335    call 02f68h                               ; e8 9b f8
    63256336    mov ax, strict word 0004fh                ; b8 4f 00
    6326     jmp short 036c5h                          ; eb 03
     6337    jmp short 036d5h                          ; eb 03
    63276338    mov ax, 00100h                            ; b8 00 01
    63286339    push SS                                   ; 16
     
    63356346    pop bp                                    ; 5d
    63366347    retn                                      ; c3
    6337 vbe_biosfn_set_mode_:                        ; 0xc36d4 LB 0xe9
     6348vbe_biosfn_set_mode_:                        ; 0xc36e4 LB 0xe9
    63386349    push bp                                   ; 55
    63396350    mov bp, sp                                ; 89 e5
     
    63496360    mov ax, dx                                ; 89 d0
    63506361    test dx, dx                               ; 85 d2
    6351     je short 036f4h                           ; 74 03
     6362    je short 03704h                           ; 74 03
    63526363    mov dx, strict word 00040h                ; ba 40 00
    63536364    mov byte [bp-006h], dl                    ; 88 56 fa
    63546365    test byte [bp-009h], 080h                 ; f6 46 f7 80
    6355     je short 03702h                           ; 74 05
     6366    je short 03712h                           ; 74 05
    63566367    mov dx, 00080h                            ; ba 80 00
    6357     jmp short 03704h                          ; eb 02
     6368    jmp short 03714h                          ; eb 02
    63586369    xor dx, dx                                ; 31 d2
    63596370    mov byte [bp-008h], dl                    ; 88 56 f8
    63606371    and byte [bp-009h], 001h                  ; 80 66 f7 01
    63616372    cmp word [bp-00ah], 00100h                ; 81 7e f6 00 01
    6362     jnc short 03724h                          ; 73 12
     6373    jnc short 03734h                          ; 73 12
    63636374    xor ax, ax                                ; 31 c0
    6364     call 005c9h                               ; e8 b2 ce
     6375    call 005ddh                               ; e8 b6 ce
    63656376    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    6366     call 00fdch                               ; e8 be d8
     6377    call 00fdch                               ; e8 ae d8
    63676378    mov ax, strict word 0004fh                ; b8 4f 00
    6368     jmp near 037b3h                           ; e9 8f 00
     6379    jmp near 037c3h                           ; e9 8f 00
    63696380    mov dx, ax                                ; 89 c2
    63706381    mov ax, word [bp-00ah]                    ; 8b 46 f6
    6371     call 034a2h                               ; e8 76 fd
     6382    call 034aeh                               ; e8 72 fd
    63726383    mov bx, ax                                ; 89 c3
    63736384    test ax, ax                               ; 85 c0
    6374     je near 037b0h                            ; 0f 84 7c 00
     6385    je near 037c0h                            ; 0f 84 7c 00
    63756386    lea dx, [bx+014h]                         ; 8d 57 14
    63766387    mov ax, 003b6h                            ; b8 b6 03
    6377     call 03422h                               ; e8 e5 fc
     6388    call 0342eh                               ; e8 e1 fc
    63786389    mov cx, ax                                ; 89 c1
    63796390    lea dx, [bx+016h]                         ; 8d 57 16
    63806391    mov ax, 003b6h                            ; b8 b6 03
    6381     call 03422h                               ; e8 da fc
     6392    call 0342eh                               ; e8 d6 fc
    63826393    mov di, ax                                ; 89 c7
    63836394    lea dx, [bx+01bh]                         ; 8d 57 1b
    63846395    mov ax, 003b6h                            ; b8 b6 03
    6385     call 03434h                               ; e8 e1 fc
     6396    call 03440h                               ; e8 dd fc
    63866397    mov bl, al                                ; 88 c3
    63876398    mov dl, al                                ; 88 c2
    63886399    xor ax, ax                                ; 31 c0
    6389     call 005c9h                               ; e8 6d ce
     6400    call 005ddh                               ; e8 71 ce
    63906401    cmp bl, 004h                              ; 80 fb 04
    6391     jne short 03767h                          ; 75 06
     6402    jne short 03777h                          ; 75 06
    63926403    mov ax, strict word 0006ah                ; b8 6a 00
    6393     call 00fdch                               ; e8 75 d8
     6404    call 00fdch                               ; e8 65 d8
    63946405    movzx ax, dl                              ; 0f b6 c2
    6395     call 03407h                               ; e8 9a fc
     6406    call 0340fh                               ; e8 92 fc
    63966407    mov ax, cx                                ; 89 c8
    6397     call 033d1h                               ; e8 5f fc
     6408    call 033d1h                               ; e8 4f fc
    63986409    mov ax, di                                ; 89 f8
    6399     call 033ech                               ; e8 75 fc
     6410    call 033f0h                               ; e8 69 fc
    64006411    xor ax, ax                                ; 31 c0
    6401     call 005e7h                               ; e8 6b ce
     6412    call 00603h                               ; e8 77 ce
    64026413    mov al, byte [bp-008h]                    ; 8a 46 f8
    64036414    or AL, strict byte 001h                   ; 0c 01
     
    64056416    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    64066417    or ax, dx                                 ; 09 d0
    6407     call 005c9h                               ; e8 3c ce
    6408     call 006c3h                               ; e8 33 cf
     6418    call 005ddh                               ; e8 40 ce
     6419    call 0070dh                               ; e8 6d cf
    64096420    mov bx, word [bp-00ah]                    ; 8b 5e f6
    64106421    mov dx, 000bah                            ; ba ba 00
    64116422    mov ax, strict word 00040h                ; b8 40 00
    6412     call 02f68h                               ; e8 cc f7
     6423    call 02f68h                               ; e8 bc f7
    64136424    mov al, byte [bp-008h]                    ; 8a 46 f8
    64146425    or AL, strict byte 060h                   ; 0c 60
     
    64166427    mov dx, 00087h                            ; ba 87 00
    64176428    mov ax, strict word 00040h                ; b8 40 00
    6418     call 02f4ch                               ; e8 9f f7
    6419     jmp near 0371eh                           ; e9 6e ff
     6429    call 02f4ch                               ; e8 8f f7
     6430    jmp near 0372eh                           ; e9 6e ff
    64206431    mov ax, 00100h                            ; b8 00 01
    64216432    mov word [ss:si], ax                      ; 36 89 04
     
    64256436    pop bp                                    ; 5d
    64266437    retn                                      ; c3
    6427 vbe_biosfn_read_video_state_size_:           ; 0xc37bd LB 0x8
     6438vbe_biosfn_read_video_state_size_:           ; 0xc37cd LB 0x8
    64286439    push bp                                   ; 55
    64296440    mov bp, sp                                ; 89 e5
     
    64316442    pop bp                                    ; 5d
    64326443    retn                                      ; c3
    6433 vbe_biosfn_save_video_state_:                ; 0xc37c5 LB 0x5b
     6444vbe_biosfn_save_video_state_:                ; 0xc37d5 LB 0x5b
    64346445    push bp                                   ; 55
    64356446    mov bp, sp                                ; 89 e5
     
    64506461    mov dx, cx                                ; 89 ca
    64516462    mov ax, di                                ; 89 f8
    6452     call 02f68h                               ; e8 80 f7
     6463    call 02f68h                               ; e8 70 f7
    64536464    inc cx                                    ; 41
    64546465    inc cx                                    ; 41
    64556466    test byte [bp-00ah], 001h                 ; f6 46 f6 01
    6456     je short 03817h                           ; 74 27
     6467    je short 03827h                           ; 74 27
    64576468    mov si, strict word 00001h                ; be 01 00
    6458     jmp short 037fah                          ; eb 05
     6469    jmp short 0380ah                          ; eb 05
    64596470    cmp si, strict byte 00009h                ; 83 fe 09
    6460     jnbe short 03817h                         ; 77 1d
     6471    jnbe short 03827h                         ; 77 1d
    64616472    cmp si, strict byte 00004h                ; 83 fe 04
    6462     je short 03814h                           ; 74 15
     6473    je short 03824h                           ; 74 15
    64636474    mov ax, si                                ; 89 f0
    64646475    mov dx, 001ceh                            ; ba ce 01
     
    64696480    mov dx, cx                                ; 89 ca
    64706481    mov ax, di                                ; 89 f8
    6471     call 02f68h                               ; e8 56 f7
     6482    call 02f68h                               ; e8 46 f7
    64726483    inc cx                                    ; 41
    64736484    inc cx                                    ; 41
    64746485    inc si                                    ; 46
    6475     jmp short 037f5h                          ; eb de
     6486    jmp short 03805h                          ; eb de
    64766487    lea sp, [bp-008h]                         ; 8d 66 f8
    64776488    pop di                                    ; 5f
     
    64816492    pop bp                                    ; 5d
    64826493    retn                                      ; c3
    6483 vbe_biosfn_restore_video_state_:             ; 0xc3820 LB 0x9b
     6494vbe_biosfn_restore_video_state_:             ; 0xc3830 LB 0x9b
    64846495    push bp                                   ; 55
    64856496    mov bp, sp                                ; 89 e5
     
    64906501    mov cx, ax                                ; 89 c1
    64916502    mov bx, dx                                ; 89 d3
    6492     call 02f5ah                               ; e8 2c f7
     6503    call 02f5ah                               ; e8 1c f7
    64936504    mov word [bp-008h], ax                    ; 89 46 f8
    64946505    inc bx                                    ; 43
    64956506    inc bx                                    ; 43
    64966507    test byte [bp-008h], 001h                 ; f6 46 f8 01
    6497     jne short 03849h                          ; 75 10
     6508    jne short 03859h                          ; 75 10
    64986509    mov ax, strict word 00004h                ; b8 04 00
    64996510    mov dx, 001ceh                            ; ba ce 01
     
    65026513    mov dx, 001cfh                            ; ba cf 01
    65036514    out DX, ax                                ; ef
    6504     jmp short 038b3h                          ; eb 6a
     6515    jmp short 038c3h                          ; eb 6a
    65056516    mov ax, strict word 00001h                ; b8 01 00
    65066517    mov dx, 001ceh                            ; ba ce 01
     
    65086519    mov dx, bx                                ; 89 da
    65096520    mov ax, cx                                ; 89 c8
    6510     call 02f5ah                               ; e8 03 f7
     6521    call 02f5ah                               ; e8 f3 f6
    65116522    mov dx, 001cfh                            ; ba cf 01
    65126523    out DX, ax                                ; ef
     
    65186529    mov dx, bx                                ; 89 da
    65196530    mov ax, cx                                ; 89 c8
    6520     call 02f5ah                               ; e8 ef f6
     6531    call 02f5ah                               ; e8 df f6
    65216532    mov dx, 001cfh                            ; ba cf 01
    65226533    out DX, ax                                ; ef
     
    65286539    mov dx, bx                                ; 89 da
    65296540    mov ax, cx                                ; 89 c8
    6530     call 02f5ah                               ; e8 db f6
     6541    call 02f5ah                               ; e8 cb f6
    65316542    mov dx, 001cfh                            ; ba cf 01
    65326543    out DX, ax                                ; ef
     
    65406551    out DX, ax                                ; ef
    65416552    mov si, strict word 00005h                ; be 05 00
    6542     jmp short 0389dh                          ; eb 05
     6553    jmp short 038adh                          ; eb 05
    65436554    cmp si, strict byte 00009h                ; 83 fe 09
    6544     jnbe short 038b3h                         ; 77 16
     6555    jnbe short 038c3h                         ; 77 16
    65456556    mov ax, si                                ; 89 f0
    65466557    mov dx, 001ceh                            ; ba ce 01
     
    65486559    mov dx, bx                                ; 89 da
    65496560    mov ax, cx                                ; 89 c8
    6550     call 02f5ah                               ; e8 b0 f6
     6561    call 02f5ah                               ; e8 a0 f6
    65516562    mov dx, 001cfh                            ; ba cf 01
    65526563    out DX, ax                                ; ef
     
    65546565    inc bx                                    ; 43
    65556566    inc si                                    ; 46
    6556     jmp short 03898h                          ; eb e5
     6567    jmp short 038a8h                          ; eb e5
    65576568    lea sp, [bp-006h]                         ; 8d 66 fa
    65586569    pop si                                    ; 5e
     
    65616572    pop bp                                    ; 5d
    65626573    retn                                      ; c3
    6563 vbe_biosfn_save_restore_state_:              ; 0xc38bb LB 0x8c
     6574vbe_biosfn_save_restore_state_:              ; 0xc38cb LB 0x8c
    65646575    push bp                                   ; 55
    65656576    mov bp, sp                                ; 89 e5
     
    65746585    xor ah, ah                                ; 30 e4
    65756586    cmp ax, strict word 00002h                ; 3d 02 00
    6576     je short 0391ah                           ; 74 45
     6587    je short 0392ah                           ; 74 45
    65776588    cmp ax, strict word 00001h                ; 3d 01 00
    6578     je short 038feh                           ; 74 24
     6589    je short 0390eh                           ; 74 24
    65796590    test ax, ax                               ; 85 c0
    6580     jne short 03936h                          ; 75 58
     6591    jne short 03946h                          ; 75 58
    65816592    mov ax, word [bp-006h]                    ; 8b 46 fa
    6582     call 02853h                               ; e8 6f ef
     6593    call 02853h                               ; e8 5f ef
    65836594    mov cx, ax                                ; 89 c1
    65846595    test byte [bp-006h], 008h                 ; f6 46 fa 08
    6585     je short 038f1h                           ; 74 05
    6586     call 037bdh                               ; e8 ce fe
     6596    je short 03901h                           ; 74 05
     6597    call 037cdh                               ; e8 ce fe
    65876598    add ax, cx                                ; 01 c8
    65886599    add ax, strict word 0003fh                ; 05 3f 00
     
    65916602    pop ES                                    ; 07
    65926603    mov word [es:bx], ax                      ; 26 89 07
    6593     jmp short 03939h                          ; eb 3b
     6604    jmp short 03949h                          ; eb 3b
    65946605    push SS                                   ; 16
    65956606    pop ES                                    ; 07
     
    65976608    mov dx, cx                                ; 89 ca
    65986609    mov ax, word [bp-006h]                    ; 8b 46 fa
    6599     call 02888h                               ; e8 7d ef
     6610    call 02888h                               ; e8 6d ef
    66006611    test byte [bp-006h], 008h                 ; f6 46 fa 08
    6601     je short 03939h                           ; 74 28
     6612    je short 03949h                           ; 74 28
    66026613    mov dx, ax                                ; 89 c2
    66036614    mov ax, cx                                ; 89 c8
    6604     call 037c5h                               ; e8 ad fe
    6605     jmp short 03939h                          ; eb 1f
     6615    call 037d5h                               ; e8 ad fe
     6616    jmp short 03949h                          ; eb 1f
    66066617    push SS                                   ; 16
    66076618    pop ES                                    ; 07
     
    66096620    mov dx, cx                                ; 89 ca
    66106621    mov ax, word [bp-006h]                    ; 8b 46 fa
    6611     call 02bf1h                               ; e8 ca f2
     6622    call 02bf1h                               ; e8 ba f2
    66126623    test byte [bp-006h], 008h                 ; f6 46 fa 08
    6613     je short 03939h                           ; 74 0c
     6624    je short 03949h                           ; 74 0c
    66146625    mov dx, ax                                ; 89 c2
    66156626    mov ax, cx                                ; 89 c8
    6616     call 03820h                               ; e8 ec fe
    6617     jmp short 03939h                          ; eb 03
     6627    call 03830h                               ; e8 ec fe
     6628    jmp short 03949h                          ; eb 03
    66186629    mov di, 00100h                            ; bf 00 01
    66196630    push SS                                   ; 16
     
    66266637    retn 00002h                               ; c2 02 00
    66276638
    6628   ; Padding 0xcb9 bytes at 0xc3947
    6629   times 3257 db 0
     6639  ; Padding 0xaa9 bytes at 0xc3957
     6640  times 2729 db 0
    66306641
    6631 section VBE32 progbits vstart=0x4600 align=1 ; size=0x115 class=CODE group=AUTO
    6632 vesa_pm_start:                               ; 0xc4600 LB 0x114
     6642section VBE32 progbits vstart=0x4400 align=1 ; size=0x115 class=CODE group=AUTO
     6643vesa_pm_start:                               ; 0xc4400 LB 0x114
    66336644    sbb byte [bx+si], al                      ; 18 00
    66346645    dec di                                    ; 4f
     
    66616672    db  066h, 03bh, 0d0h
    66626673    ; cmp edx, eax                              ; 66 3b d0
    6663     jne short 0464ah                          ; 75 05
     6674    jne short 0444ah                          ; 75 05
    66646675    mov eax, strict dword 066c3004fh          ; 66 b8 4f 00 c3 66
    66656676    mov ax, 0014fh                            ; b8 4f 01
    66666677    retn                                      ; c3
    66676678    cmp bl, 080h                              ; 80 fb 80
    6668     je short 0465eh                           ; 74 0a
     6679    je short 0445eh                           ; 74 0a
    66696680    cmp bl, 000h                              ; 80 fb 00
    6670     je short 0466eh                           ; 74 15
     6681    je short 0446eh                           ; 74 15
    66716682    mov eax, strict dword 052c30100h          ; 66 b8 00 01 c3 52
    66726683    mov edx, strict dword 0a8ec03dah          ; 66 ba da 03 ec a8
     
    66746685    in AL, DX                                 ; ec
    66756686    test AL, strict byte 008h                 ; a8 08
    6676     je short 04668h                           ; 74 fb
     6687    je short 04468h                           ; 74 fb
    66776688    pop dx                                    ; 5a
    66786689    push ax                                   ; 50
     
    67046715    pop ax                                    ; 58
    67056716    cmp si, strict byte 00004h                ; 83 fe 04
    6706     je short 046c7h                           ; 74 17
     6717    je short 044c7h                           ; 74 17
    67076718    add si, strict byte 00007h                ; 83 c6 07
    67086719    shr si, 003h                              ; c1 ee 03
     
    67186729    ; xor dx, dx                                ; 33 d2
    67196730    div si                                    ; f7 f6
    6720     jmp short 046d3h                          ; eb 0c
     6731    jmp short 044d3h                          ; eb 0c
    67216732    shr cx, 1                                 ; d1 e9
    67226733    db  033h, 0d2h
     
    67536764    mov eax, strict dword 066c3004fh          ; 66 b8 4f 00 c3 66
    67546765    mov ax, 0014fh                            ; b8 4f 01
    6755 vesa_pm_end:                                 ; 0xc4714 LB 0x1
     6766vesa_pm_end:                                 ; 0xc4514 LB 0x1
    67566767    retn                                      ; c3
    67576768
    6758   ; Padding 0xeb bytes at 0xc4715
     6769  ; Padding 0xeb bytes at 0xc4515
    67596770  times 235 db 0
    67606771
    6761 section _DATA progbits vstart=0x4800 align=1 ; size=0x36e1 class=DATA group=DGROUP
    6762 _msg_vga_init:                               ; 0xc4800 LB 0x2f
    6763     db  'Oracle VM VirtualBox Version 4.3.53 VGA BIOS', 00dh, 00ah, 000h
    6764 _vga_modes:                                  ; 0xc482f LB 0x80
     6772section _DATA progbits vstart=0x4600 align=1 ; size=0x372a class=DATA group=DGROUP
     6773_msg_vga_init:                               ; 0xc4600 LB 0x34
     6774    db  'Oracle VM VirtualBox Version 5.0.0_BETA2 VGA BIOS', 00dh, 00ah, 000h
     6775_vga_modes:                                  ; 0xc4634 LB 0x80
    67656776    db  000h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h, 001h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h
    67666777    db  002h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h, 003h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h
     
    67716782    db  011h, 001h, 003h, 001h, 000h, 0a0h, 0ffh, 002h, 012h, 001h, 004h, 004h, 000h, 0a0h, 0ffh, 002h
    67726783    db  013h, 001h, 005h, 008h, 000h, 0a0h, 0ffh, 003h, 06ah, 001h, 004h, 004h, 000h, 0a0h, 0ffh, 002h
    6773 _line_to_vpti:                               ; 0xc48af LB 0x10
     6784_line_to_vpti:                               ; 0xc46b4 LB 0x10
    67746785    db  017h, 017h, 018h, 018h, 004h, 005h, 006h, 007h, 00dh, 00eh, 011h, 012h, 01ah, 01bh, 01ch, 01dh
    6775 _dac_regs:                                   ; 0xc48bf LB 0x4
     6786_dac_regs:                                   ; 0xc46c4 LB 0x4
    67766787    dd  0ff3f3f3fh
    6777 _video_param_table:                          ; 0xc48c3 LB 0x780
     6788_video_param_table:                          ; 0xc46c8 LB 0x780
    67786789    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    67796790    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     
    68966907    db  073h, 0e3h, 0ffh, 000h, 001h, 002h, 003h, 004h, 005h, 014h, 007h, 038h, 039h, 03ah, 03bh, 03ch
    68976908    db  03dh, 03eh, 03fh, 001h, 000h, 00fh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 005h, 00fh, 0ffh
    6898 _palette0:                                   ; 0xc5043 LB 0xc0
     6909_palette0:                                   ; 0xc4e48 LB 0xc0
    68996910    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    69006911    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah
     
    69096920    db  02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh
    69106921    db  03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh
    6911 _palette1:                                   ; 0xc5103 LB 0xc0
     6922_palette1:                                   ; 0xc4f08 LB 0xc0
    69126923    db  000h, 000h, 000h, 000h, 000h, 02ah, 000h, 02ah, 000h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 02ah
    69136924    db  000h, 02ah, 02ah, 015h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 000h, 000h, 000h, 02ah, 000h, 02ah
     
    69226933    db  015h, 03fh, 03fh, 03fh, 015h, 03fh, 03fh, 03fh, 015h, 015h, 015h, 015h, 015h, 03fh, 015h, 03fh
    69236934    db  015h, 015h, 03fh, 03fh, 03fh, 015h, 015h, 03fh, 015h, 03fh, 03fh, 03fh, 015h, 03fh, 03fh, 03fh
    6924 _palette2:                                   ; 0xc51c3 LB 0xc0
     6935_palette2:                                   ; 0xc4fc8 LB 0xc0
    69256936    db  000h, 000h, 000h, 000h, 000h, 02ah, 000h, 02ah, 000h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 02ah
    69266937    db  000h, 02ah, 02ah, 02ah, 000h, 02ah, 02ah, 02ah, 000h, 000h, 015h, 000h, 000h, 03fh, 000h, 02ah
     
    69356946    db  015h, 02ah, 03fh, 03fh, 000h, 03fh, 03fh, 02ah, 015h, 015h, 015h, 015h, 015h, 03fh, 015h, 03fh
    69366947    db  015h, 015h, 03fh, 03fh, 03fh, 015h, 015h, 03fh, 015h, 03fh, 03fh, 03fh, 015h, 03fh, 03fh, 03fh
    6937 _palette3:                                   ; 0xc5283 LB 0x300
     6948_palette3:                                   ; 0xc5088 LB 0x300
    69386949    db  000h, 000h, 000h, 000h, 000h, 02ah, 000h, 02ah, 000h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 02ah
    69396950    db  000h, 02ah, 02ah, 015h, 000h, 02ah, 02ah, 02ah, 015h, 015h, 015h, 015h, 015h, 03fh, 015h, 03fh
     
    69846995    db  00fh, 010h, 00bh, 00dh, 010h, 00bh, 00ch, 010h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    69856996    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    6986 _static_functionality:                       ; 0xc5583 LB 0x10
     6997_static_functionality:                       ; 0xc5388 LB 0x10
    69876998    db  0ffh, 0e0h, 00fh, 000h, 000h, 000h, 000h, 007h, 002h, 008h, 0e7h, 00ch, 000h, 000h, 000h, 000h
    6988 _video_save_pointer_table:                   ; 0xc5593 LB 0x1c
    6989     db  0c3h, 048h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    6990     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    6991 _vgafont8:                                   ; 0xc55af LB 0x800
     6999_dcc_table:                                  ; 0xc5398 LB 0x24
     7000    db  010h, 001h, 007h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7001    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7002    db  000h, 000h, 000h, 000h
     7003_secondary_save_area:                        ; 0xc53bc LB 0x1a
     7004    db  01ah, 000h, 098h, 053h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7005    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7006_video_save_pointer_table:                   ; 0xc53d6 LB 0x1c
     7007    db  0c8h, 046h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7008    db  0bch, 053h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7009_vgafont8:                                   ; 0xc53f2 LB 0x800
    69927010    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07eh, 081h, 0a5h, 081h, 0bdh, 099h, 081h, 07eh
    69937011    db  07eh, 0ffh, 0dbh, 0ffh, 0c3h, 0e7h, 0ffh, 07eh, 06ch, 0feh, 0feh, 0feh, 07ch, 038h, 010h, 000h
     
    71187136    db  078h, 06ch, 06ch, 06ch, 06ch, 000h, 000h, 000h, 070h, 018h, 030h, 060h, 078h, 000h, 000h, 000h
    71197137    db  000h, 000h, 03ch, 03ch, 03ch, 03ch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7120 _vgafont14:                                  ; 0xc5daf LB 0xe00
     7138_vgafont14:                                  ; 0xc5bf2 LB 0xe00
    71217139    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    71227140    db  07eh, 081h, 0a5h, 081h, 081h, 0bdh, 099h, 081h, 07eh, 000h, 000h, 000h, 000h, 000h, 07eh, 0ffh
     
    73437361    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07ch, 07ch, 07ch, 07ch, 07ch, 07ch, 000h, 000h
    73447362    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7345 _vgafont16:                                  ; 0xc6baf LB 0x1000
     7363_vgafont16:                                  ; 0xc69f2 LB 0x1000
    73467364    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    73477365    db  000h, 000h, 07eh, 081h, 0a5h, 081h, 081h, 0bdh, 099h, 081h, 081h, 07eh, 000h, 000h, 000h, 000h
     
    76007618    db  000h, 000h, 000h, 000h, 07ch, 07ch, 07ch, 07ch, 07ch, 07ch, 07ch, 000h, 000h, 000h, 000h, 000h
    76017619    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7602 _vgafont14alt:                               ; 0xc7baf LB 0x12d
     7620_vgafont14alt:                               ; 0xc79f2 LB 0x12d
    76037621    db  01dh, 000h, 000h, 000h, 000h, 024h, 066h, 0ffh, 066h, 024h, 000h, 000h, 000h, 000h, 000h, 022h
    76047622    db  000h, 063h, 063h, 063h, 022h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 02bh, 000h
     
    76207638    db  000h, 018h, 018h, 018h, 0ffh, 018h, 018h, 018h, 000h, 0ffh, 000h, 000h, 000h, 0f6h, 000h, 000h
    76217639    db  018h, 018h, 000h, 000h, 0ffh, 000h, 000h, 018h, 018h, 000h, 000h, 000h, 000h
    7622 _vgafont16alt:                               ; 0xc7cdc LB 0x144
     7640_vgafont16alt:                               ; 0xc7b1f LB 0x145
    76237641    db  01dh, 000h, 000h, 000h, 000h, 000h, 024h, 066h, 0ffh, 066h, 024h, 000h, 000h, 000h, 000h, 000h
    76247642    db  000h, 030h, 000h, 000h, 03ch, 066h, 0c3h, 0c3h, 0dbh, 0dbh, 0c3h, 0c3h, 066h, 03ch, 000h, 000h
     
    76417659    db  000h, 0abh, 000h, 0c0h, 0c0h, 0c2h, 0c6h, 0cch, 018h, 030h, 060h, 0ceh, 09bh, 006h, 00ch, 01fh
    76427660    db  000h, 000h, 0ach, 000h, 0c0h, 0c0h, 0c2h, 0c6h, 0cch, 018h, 030h, 066h, 0ceh, 096h, 03eh, 006h
    7643     db  006h, 000h, 000h, 000h
    7644 _vbebios_copyright:                          ; 0xc7e20 LB 0x15
     7661    db  006h, 000h, 000h, 000h, 000h
     7662_vbebios_copyright:                          ; 0xc7c64 LB 0x15
    76457663    db  'VirtualBox VESA BIOS', 000h
    7646 _vbebios_vendor_name:                        ; 0xc7e35 LB 0x13
     7664_vbebios_vendor_name:                        ; 0xc7c79 LB 0x13
    76477665    db  'Oracle Corporation', 000h
    7648 _vbebios_product_name:                       ; 0xc7e48 LB 0x21
     7666_vbebios_product_name:                       ; 0xc7c8c LB 0x21
    76497667    db  'Oracle VM VirtualBox VBE Adapter', 000h
    7650 _vbebios_product_revision:                   ; 0xc7e69 LB 0x24
    7651     db  'Oracle VM VirtualBox Version 4.3.53', 000h
    7652 _vbebios_info_string:                        ; 0xc7e8d LB 0x2b
     7668_vbebios_product_revision:                   ; 0xc7cad LB 0x29
     7669    db  'Oracle VM VirtualBox Version 5.0.0_BETA2', 000h
     7670_vbebios_info_string:                        ; 0xc7cd6 LB 0x2b
    76537671    db  'VirtualBox VBE Display Adapter enabled', 00dh, 00ah, 00dh, 00ah, 000h
    7654 _no_vbebios_info_string:                     ; 0xc7eb8 LB 0x29
     7672_no_vbebios_info_string:                     ; 0xc7d01 LB 0x29
    76557673    db  'No VirtualBox VBE support available!', 00dh, 00ah, 00dh, 00ah, 000h
    76567674
    7657   ; Padding 0x1 bytes at 0xc7ee1
    7658     db  001h
     7675section CONST progbits vstart=0x7d2a align=1 ; size=0x0 class=DATA group=DGROUP
    76597676
    7660 section CONST progbits vstart=0x7ee2 align=1 ; size=0x0 class=DATA group=DGROUP
     7677section CONST2 progbits vstart=0x7d2a align=1 ; size=0x0 class=DATA group=DGROUP
    76617678
    7662 section CONST2 progbits vstart=0x7ee2 align=1 ; size=0x0 class=DATA group=DGROUP
    7663 
    7664   ; Padding 0x11e bytes at 0xc7ee2
    7665     db  000h, 000h, 000h, 000h, 001h, 000h, 000h, 000h, 000h, 000h, 000h, 02fh, 068h, 06fh, 06dh, 065h
    7666     db  02fh, 066h, 06dh, 033h, 02fh, 073h, 072h, 063h, 02fh, 076h, 062h, 06fh, 078h, 02fh, 06fh, 075h
    7667     db  074h, 02fh, 06ch, 069h, 06eh, 075h, 078h, 02eh, 061h, 06dh, 064h, 036h, 034h, 02fh, 072h, 065h
    7668     db  06ch, 065h, 061h, 073h, 065h, 02fh, 06fh, 062h, 06ah, 02fh, 056h, 042h, 06fh, 078h, 056h, 067h
    7669     db  061h, 042h, 069h, 06fh, 073h, 02fh, 056h, 042h, 06fh, 078h, 056h, 067h, 061h, 042h, 069h, 06fh
    7670     db  073h, 02eh, 073h, 079h, 06dh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7671     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7672     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7673     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7674     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7675     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7676     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7677     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7678     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7679     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7680     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7681     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7682     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 055h
     7679  ; Padding 0x2d6 bytes at 0xc7d2a
     7680    db  001h, 000h, 000h, 000h, 000h, 001h, 000h, 000h, 000h, 000h, 000h, 000h, 02fh, 068h, 06fh, 06dh
     7681    db  065h, 02fh, 066h, 06dh, 033h, 02fh, 073h, 072h, 063h, 02fh, 076h, 062h, 06fh, 078h, 02fh, 06fh
     7682    db  075h, 074h, 02fh, 06ch, 069h, 06eh, 075h, 078h, 02eh, 061h, 06dh, 064h, 036h, 034h, 02fh, 072h
     7683    db  065h, 06ch, 065h, 061h, 073h, 065h, 02fh, 06fh, 062h, 06ah, 02fh, 056h, 042h, 06fh, 078h, 056h
     7684    db  067h, 061h, 042h, 069h, 06fh, 073h, 02fh, 056h, 042h, 06fh, 078h, 056h, 067h, 061h, 042h, 069h
     7685    db  06fh, 073h, 02eh, 073h, 079h, 06dh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7686    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7687    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7688    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7689    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7690    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7691    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7692    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7693    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7694    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7695    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7696    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7697    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7698    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7699    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7700    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7701    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7702    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7703    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7704    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7705    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7706    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7707    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7708    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7709    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7710    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7711    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7712    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7713    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7714    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7715    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7716    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7717    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7718    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7719    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7720    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7721    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7722    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7723    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7724    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7725    db  000h, 000h, 000h, 000h, 000h, 0e0h
  • trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative.md5sum

    r51255 r55260  
    1 2abf7b9050be07a06bb5f956042ff4df *VBoxVgaBios.rom
     17e4d004d15d19ad5f6d812e04876154c *VBoxVgaBios.rom
  • trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative.asm

    r55078 r55260  
    856856    db  001h, 000h, 002h, 002h, 003h, 003h, 004h, 004h, 005h, 005h, 00eh, 006h, 00fh, 006h, 000h
    857857_pktacc:                                     ; 0xf006a LB 0xc
    858     db  000h, 000h, 000h, 000h, 000h, 000h, 08fh, 028h, 05dh, 07bh, 025h, 089h
     858    db  000h, 000h, 000h, 000h, 000h, 000h, 08fh, 028h, 089h, 07bh, 06bh, 089h
    859859_softrst:                                    ; 0xf0076 LB 0xc
    860860    db  000h, 000h, 000h, 000h, 000h, 000h, 077h, 02bh, 054h, 038h, 054h, 038h
    861861_dskacc:                                     ; 0xf0082 LB 0x2e
    862862    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0d8h, 027h, 052h, 028h, 000h, 000h, 000h, 000h
    863     db  0ebh, 079h, 0a4h, 07ah, 021h, 088h, 0b5h, 088h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
     863    db  017h, 07ah, 0d0h, 07ah, 066h, 088h, 0f9h, 088h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
    864864    db  032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h
    865865
     
    984984section CONST2 progbits vstart=0xd90 align=1 ; size=0x400 class=DATA group=DGROUP
    985985_bios_cvs_version_string:                    ; 0xf0d90 LB 0x18
    986     db  'VirtualBox 5.0.0_BETA1', 000h, 000h
     986    db  'VirtualBox 5.0.0_BETA2', 000h, 000h
    987987_bios_prefix_string:                         ; 0xf0da8 LB 0x8
    988988    db  'BIOS: ', 000h, 000h
     
    10581058  times 1136 db 0
    10591059
    1060 section _TEXT progbits vstart=0x1600 align=1 ; size=0x81e5 class=CODE group=AUTO
     1060section _TEXT progbits vstart=0x1600 align=1 ; size=0x8235 class=CODE group=AUTO
    10611061rom_scan_:                                   ; 0xf1600 LB 0x50
    10621062    push bp                                   ; 55
     
    14551455    mov bx, strict word 0000ah                ; bb 0a 00
    14561456    xor cx, cx                                ; 31 c9
    1457     call 096f0h                               ; e8 17 7e
     1457    call 09740h                               ; e8 67 7e
    14581458    mov word [bp-008h], ax                    ; 89 46 f8
    14591459    mov cx, dx                                ; 89 d1
     
    49854985    mov dx, ss                                ; 8c d2
    49864986    lea ax, [bp-026h]                         ; 8d 46 da
    4987     call 0975ah                               ; e8 a4 5c
     4987    call 097aah                               ; e8 f4 5c
    49884988    mov word [bp-026h], strict word 00028h    ; c7 46 da 28 00
    49894989    mov ax, strict word 00011h                ; b8 11 00
     
    54445444    xor dl, dl                                ; 30 d2
    54455445    xor cx, cx                                ; 31 c9
    5446     call 09729h                               ; e8 12 57
     5446    call 09779h                               ; e8 62 57
    54475447    xor bx, bx                                ; 31 db
    54485448    add ax, si                                ; 01 f0
     
    54505450    mov bx, di                                ; 89 fb
    54515451    xor cx, cx                                ; 31 c9
    5452     call 09729h                               ; e8 05 57
     5452    call 09779h                               ; e8 55 57
    54535453    mov bx, ax                                ; 89 c3
    54545454    mov ax, word [bp-010h]                    ; 8b 46 f0
     
    54855485    mov dx, ss                                ; 8c d2
    54865486    lea ax, [bp-02eh]                         ; 8d 46 d2
    5487     call 0975ah                               ; e8 df 56
     5487    call 097aah                               ; e8 2f 57
    54885488    mov word [bp-02eh], strict word 00028h    ; c7 46 d2 28 00
    54895489    mov ax, word [bp-014h]                    ; 8b 46 ec
     
    57925792    mov dx, ss                                ; 8c d2
    57935793    lea ax, [bp-02ch]                         ; 8d 46 d4
    5794     call 0975ah                               ; e8 44 53
     5794    call 097aah                               ; e8 94 53
    57955795    mov word [bp-02ch], strict word 00028h    ; c7 46 d4 28 00
    57965796    mov ax, word [bp-018h]                    ; 8b 46 e8
     
    76127612    mov bx, strict word 0003fh                ; bb 3f 00
    76137613    xor cx, cx                                ; 31 c9
    7614     call 09729h                               ; e8 30 41
     7614    call 09779h                               ; e8 80 41
    76157615    mov bx, ax                                ; 89 c3
    76167616    mov cx, dx                                ; 89 d1
    76177617    mov ax, word [bp-004h]                    ; 8b 46 fc
    76187618    mov dx, word [bp-002h]                    ; 8b 56 fe
    7619     call 096f0h                               ; e8 ea 40
     7619    call 09740h                               ; e8 3a 41
    76207620    mov word [es:si+002h], ax                 ; 26 89 44 02
    76217621    cmp ax, 00400h                            ; 3d 00 04
     
    78357835    mov bx, cx                                ; 89 cb
    78367836    xor cx, cx                                ; 31 c9
    7837     call 09729h                               ; e8 05 3f
     7837    call 09779h                               ; e8 55 3f
    78387838    xor bx, bx                                ; 31 db
    78397839    add ax, word [bp-008h]                    ; 03 46 f8
     
    78417841    mov bx, word [bp-00ah]                    ; 8b 5e f6
    78427842    xor cx, cx                                ; 31 c9
    7843     call 09729h                               ; e8 f6 3e
     7843    call 09779h                               ; e8 46 3f
    78447844    xor bx, bx                                ; 31 db
    78457845    add ax, word [bp-006h]                    ; 03 46 fa
     
    79997999    mov bx, word [bp-008h]                    ; 8b 5e f8
    80008000    xor cx, cx                                ; 31 c9
    8001     call 09729h                               ; e8 37 3d
     8001    call 09779h                               ; e8 87 3d
    80028002    mov bx, word [bp-006h]                    ; 8b 5e fa
    80038003    xor cx, cx                                ; 31 c9
    8004     call 09729h                               ; e8 2f 3d
     8004    call 09779h                               ; e8 7f 3d
    80058005    mov word [bp-010h], ax                    ; 89 46 f0
    80068006    mov word [bp-00eh], dx                    ; 89 56 f2
     
    1104911049    pop bp                                    ; 5d
    1105011050    retn                                      ; c3
    11051 scsi_cmd_data_in_:                           ; 0xf7885 LB 0xb2
     11051scsi_cmd_data_in_:                           ; 0xf7885 LB 0xc9
    1105211052    push bp                                   ; 55
    1105311053    mov bp, sp                                ; 89 e5
     
    1105711057    mov si, ax                                ; 89 c6
    1105811058    mov byte [bp-006h], dl                    ; 88 56 fa
    11059     mov word [bp-00ah], bx                    ; 89 5e f6
    11060     mov word [bp-008h], cx                    ; 89 4e f8
     11059    mov word [bp-008h], bx                    ; 89 5e f8
     11060    mov word [bp-00ah], cx                    ; 89 4e f6
    1106111061    mov bx, word [bp+00ah]                    ; 8b 5e 0a
    1106211062    mov dx, si                                ; 89 f2
     
    1109511095    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    1109611096    cmp cx, ax                                ; 39 c1
    11097     jnc short 078f3h                          ; 73 0e
    11098     les di, [bp-00ah]                         ; c4 7e f6
     11097    jnc short 078f6h                          ; 73 11
     11098    mov es, [bp-00ah]                         ; 8e 46 f6
     11099    mov di, word [bp-008h]                    ; 8b 7e f8
    1109911100    add di, cx                                ; 01 cf
    1110011101    mov al, byte [es:di]                      ; 26 8a 05
     
    1110211103    out DX, AL                                ; ee
    1110311104    inc cx                                    ; 41
    11104     jmp short 078ddh                          ; eb ea
     11105    jmp short 078ddh                          ; eb e7
    1110511106    mov dx, si                                ; 89 f2
    1110611107    in AL, DX                                 ; ec
     
    1110811109    ; sub ah, ah                                ; 2a e4
    1110911110    test AL, strict byte 001h                 ; a8 01
    11110     jne short 078f3h                          ; 75 f7
     11111    jne short 078f6h                          ; 75 f7
     11112    test AL, strict byte 002h                 ; a8 02
     11113    je short 07911h                           ; 74 0e
     11114    lea dx, [si+003h]                         ; 8d 54 03
     11115    xor al, al                                ; 30 c0
     11116    out DX, AL                                ; ee
     11117    in AL, DX                                 ; ec
     11118    db  02ah, 0e4h
     11119    ; sub ah, ah                                ; 2a e4
     11120    mov di, strict word 00004h                ; bf 04 00
     11121    jmp short 07943h                          ; eb 32
    1111111122    lea dx, [si+001h]                         ; 8d 54 01
    1111211123    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    11113     jne short 0790bh                          ; 75 06
     11124    jne short 07920h                          ; 75 06
    1111411125    cmp bx, 08000h                            ; 81 fb 00 80
    11115     jbe short 07925h                          ; 76 1a
     11126    jbe short 0793ah                          ; 76 1a
    1111611127    mov cx, 08000h                            ; b9 00 80
    1111711128    les di, [bp+006h]                         ; c4 7e 06
     
    1112211133    add ax, 00800h                            ; 05 00 08
    1112311134    mov word [bp+008h], ax                    ; 89 46 08
    11124     jmp short 078fch                          ; eb d7
     11135    jmp short 07911h                          ; eb d7
    1112511136    mov cx, bx                                ; 89 d9
    1112611137    les di, [bp+006h]                         ; c4 7e 06
    1112711138    rep insb                                  ; f3 6c
    11128     xor ax, ax                                ; 31 c0
     11139    xor di, di                                ; 31 ff
     11140    mov ax, di                                ; 89 f8
    1112911141    lea sp, [bp-004h]                         ; 8d 66 fc
    1113011142    pop di                                    ; 5f
     
    1113211144    pop bp                                    ; 5d
    1113311145    retn 0000ah                               ; c2 0a 00
    11134 scsi_cmd_data_out_:                          ; 0xf7937 LB 0xb4
     11146scsi_cmd_data_out_:                          ; 0xf794e LB 0xc9
    1113511147    push bp                                   ; 55
    1113611148    mov bp, sp                                ; 89 e5
     
    1114011152    mov di, ax                                ; 89 c7
    1114111153    mov byte [bp-006h], dl                    ; 88 56 fa
    11142     mov word [bp-00ah], bx                    ; 89 5e f6
    11143     mov word [bp-008h], cx                    ; 89 4e f8
     11154    mov word [bp-008h], bx                    ; 89 5e f8
     11155    mov word [bp-00ah], cx                    ; 89 4e f6
    1114411156    mov bx, word [bp+00ah]                    ; 8b 5e 0a
    1114511157    mov dx, di                                ; 89 fa
     
    1114811160    ; sub ah, ah                                ; 2a e4
    1114911161    test AL, strict byte 001h                 ; a8 01
    11150     jne short 0794dh                          ; 75 f7
     11162    jne short 07964h                          ; 75 f7
    1115111163    mov ax, bx                                ; 89 d8
    1115211164    mov dx, word [bp+00ch]                    ; 8b 56 0c
     
    1115411166    shr dx, 1                                 ; d1 ea
    1115511167    rcr ax, 1                                 ; d1 d8
    11156     loop 0795eh                               ; e2 fa
     11168    loop 07975h                               ; e2 fa
    1115711169    and ax, 000f0h                            ; 25 f0 00
    1115811170    movzx cx, byte [bp+004h]                  ; 0f b6 4e 04
     
    1117211184    shr dx, 1                                 ; d1 ea
    1117311185    rcr ax, 1                                 ; d1 d8
    11174     loop 07984h                               ; e2 fa
     11186    loop 0799bh                               ; e2 fa
    1117511187    mov dx, di                                ; 89 fa
    1117611188    out DX, AL                                ; ee
     
    1117811190    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    1117911191    cmp cx, ax                                ; 39 c1
    11180     jnc short 079a5h                          ; 73 0e
    11181     les si, [bp-00ah]                         ; c4 76 f6
     11192    jnc short 079bfh                          ; 73 11
     11193    mov es, [bp-00ah]                         ; 8e 46 f6
     11194    mov si, word [bp-008h]                    ; 8b 76 f8
    1118211195    add si, cx                                ; 01 ce
    1118311196    mov al, byte [es:si]                      ; 26 8a 04
     
    1118511198    out DX, AL                                ; ee
    1118611199    inc cx                                    ; 41
    11187     jmp short 0798fh                          ; eb ea
     11200    jmp short 079a6h                          ; eb e7
    1118811201    lea dx, [di+001h]                         ; 8d 55 01
    1118911202    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    11190     jne short 079b4h                          ; 75 06
     11203    jne short 079ceh                          ; 75 06
    1119111204    cmp bx, 08000h                            ; 81 fb 00 80
    11192     jbe short 079cfh                          ; 76 1b
     11205    jbe short 079e9h                          ; 76 1b
    1119311206    mov cx, 08000h                            ; b9 00 80
    1119411207    les si, [bp+006h]                         ; c4 76 06
     
    1120011213    add ax, 00800h                            ; 05 00 08
    1120111214    mov word [bp+008h], ax                    ; 89 46 08
    11202     jmp short 079a5h                          ; eb d6
     11215    jmp short 079bfh                          ; eb d6
    1120311216    mov cx, bx                                ; 89 d9
    1120411217    les si, [bp+006h]                         ; c4 76 06
     
    1121011223    ; sub ah, ah                                ; 2a e4
    1121111224    test AL, strict byte 001h                 ; a8 01
    11212     jne short 079d7h                          ; 75 f7
     11225    jne short 079f1h                          ; 75 f7
     11226    test AL, strict byte 002h                 ; a8 02
     11227    je short 07a0ch                           ; 74 0e
     11228    lea dx, [di+003h]                         ; 8d 55 03
     11229    xor al, al                                ; 30 c0
     11230    out DX, AL                                ; ee
     11231    in AL, DX                                 ; ec
     11232    db  02ah, 0e4h
     11233    ; sub ah, ah                                ; 2a e4
     11234    mov ax, strict word 00004h                ; b8 04 00
     11235    jmp short 07a0eh                          ; eb 02
    1121311236    xor ax, ax                                ; 31 c0
    1121411237    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1121711240    pop bp                                    ; 5d
    1121811241    retn 0000ah                               ; c2 0a 00
    11219 @scsi_read_sectors:                          ; 0xf79eb LB 0xb9
     11242@scsi_read_sectors:                          ; 0xf7a17 LB 0xb9
    1122011243    push bp                                   ; 55
    1122111244    mov bp, sp                                ; 89 e5
     
    1122811251    sub bl, 008h                              ; 80 eb 08
    1122911252    cmp bl, 004h                              ; 80 fb 04
    11230     jbe short 07a17h                          ; 76 12
     11253    jbe short 07a43h                          ; 76 12
    1123111254    movzx ax, bl                              ; 0f b6 c3
    1123211255    push ax                                   ; 50
     
    1123411257    push 00b38h                               ; 68 38 0b
    1123511258    push strict byte 00007h                   ; 6a 07
    11236     call 01972h                               ; e8 5e 9f
     11259    call 01972h                               ; e8 32 9f
    1123711260    add sp, strict byte 00008h                ; 83 c4 08
    1123811261    mov es, [bp+006h]                         ; 8e 46 06
     
    1126111284    sal word [bp-008h], 1                     ; d1 66 f8
    1126211285    rcl word [bp-006h], 1                     ; d1 56 fa
    11263     loop 07a60h                               ; e2 f8
     11286    loop 07a8ch                               ; e2 f8
    1126411287    push dword [bp-008h]                      ; 66 ff 76 f8
    1126511288    db  066h, 026h, 0ffh, 074h, 004h
     
    1126911292    mov cx, ss                                ; 8c d1
    1127011293    lea bx, [bp-012h]                         ; 8d 5e ee
    11271     call 07885h                               ; e8 08 fe
     11294    call 07885h                               ; e8 dc fd
    1127211295    mov ah, al                                ; 88 c4
    1127311296    test al, al                               ; 84 c0
    11274     jne short 07a98h                          ; 75 15
     11297    jne short 07ac4h                          ; 75 15
    1127511298    mov es, [bp+006h]                         ; 8e 46 06
    1127611299    mov word [es:si+014h], di                 ; 26 89 7c 14
     
    1128511308    pop bp                                    ; 5d
    1128611309    retn 00004h                               ; c2 04 00
    11287 @scsi_write_sectors:                         ; 0xf7aa4 LB 0xb9
     11310@scsi_write_sectors:                         ; 0xf7ad0 LB 0xb9
    1128811311    push bp                                   ; 55
    1128911312    mov bp, sp                                ; 89 e5
     
    1129611319    sub bl, 008h                              ; 80 eb 08
    1129711320    cmp bl, 004h                              ; 80 fb 04
    11298     jbe short 07ad0h                          ; 76 12
     11321    jbe short 07afch                          ; 76 12
    1129911322    movzx ax, bl                              ; 0f b6 c3
    1130011323    push ax                                   ; 50
     
    1130211325    push 00b38h                               ; 68 38 0b
    1130311326    push strict byte 00007h                   ; 6a 07
    11304     call 01972h                               ; e8 a5 9e
     11327    call 01972h                               ; e8 79 9e
    1130511328    add sp, strict byte 00008h                ; 83 c4 08
    1130611329    mov es, [bp+006h]                         ; 8e 46 06
     
    1132911352    sal word [bp-008h], 1                     ; d1 66 f8
    1133011353    rcl word [bp-006h], 1                     ; d1 56 fa
    11331     loop 07b19h                               ; e2 f8
     11354    loop 07b45h                               ; e2 f8
    1133211355    push dword [bp-008h]                      ; 66 ff 76 f8
    1133311356    db  066h, 026h, 0ffh, 074h, 004h
     
    1133711360    mov cx, ss                                ; 8c d1
    1133811361    lea bx, [bp-012h]                         ; 8d 5e ee
    11339     call 07937h                               ; e8 01 fe
     11362    call 0794eh                               ; e8 ec fd
    1134011363    mov ah, al                                ; 88 c4
    1134111364    test al, al                               ; 84 c0
    11342     jne short 07b51h                          ; 75 15
     11365    jne short 07b7dh                          ; 75 15
    1134311366    mov es, [bp+006h]                         ; 8e 46 06
    1134411367    mov word [es:si+014h], di                 ; 26 89 7c 14
     
    1135311376    pop bp                                    ; 5d
    1135411377    retn 00004h                               ; c2 04 00
    11355 scsi_cmd_packet_:                            ; 0xf7b5d LB 0x166
     11378scsi_cmd_packet_:                            ; 0xf7b89 LB 0x166
    1135611379    push bp                                   ; 55
    1135711380    mov bp, sp                                ; 89 e5
     
    1136511388    mov dx, strict word 0000eh                ; ba 0e 00
    1136611389    mov ax, strict word 00040h                ; b8 40 00
    11367     call 0166ch                               ; e8 f3 9a
     11390    call 0166ch                               ; e8 c7 9a
    1136811391    mov si, 00122h                            ; be 22 01
    1136911392    mov word [bp-00eh], ax                    ; 89 46 f2
    1137011393    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    11371     jne short 07ba4h                          ; 75 1f
     11394    jne short 07bd0h                          ; 75 1f
    1137211395    mov bx, 00da8h                            ; bb a8 0d
    1137311396    mov cx, ds                                ; 8c d9
    1137411397    mov ax, strict word 00004h                ; b8 04 00
    11375     call 01931h                               ; e8 a1 9d
     11398    call 01931h                               ; e8 75 9d
    1137611399    push 00b6ah                               ; 68 6a 0b
    1137711400    push 00b7ah                               ; 68 7a 0b
    1137811401    push strict byte 00004h                   ; 6a 04
    11379     call 01972h                               ; e8 d7 9d
     11402    call 01972h                               ; e8 ab 9d
    1138011403    add sp, strict byte 00006h                ; 83 c4 06
    1138111404    mov dx, strict word 00001h                ; ba 01 00
    11382     jmp near 07cb8h                           ; e9 14 01
     11405    jmp near 07ce4h                           ; e9 14 01
    1138311406    sub di, strict byte 00008h                ; 83 ef 08
    1138411407    sal di, 002h                              ; c1 e7 02
     
    1139411417    ; sub ah, ah                                ; 2a e4
    1139511418    test AL, strict byte 001h                 ; a8 01
    11396     jne short 07bc0h                          ; 75 f7
     11419    jne short 07bech                          ; 75 f7
    1139711420    xor ax, ax                                ; 31 c0
    1139811421    mov dx, word [bp+006h]                    ; 8b 56 06
     
    1141011433    shr dx, 1                                 ; d1 ea
    1141111434    rcr ax, 1                                 ; d1 d8
    11412     loop 07bebh                               ; e2 fa
     11435    loop 07c17h                               ; e2 fa
    1141311436    and ax, 000f0h                            ; 25 f0 00
    1141411437    movzx cx, byte [bp-006h]                  ; 0f b6 4e fa
     
    1142811451    shr dx, 1                                 ; d1 ea
    1142911452    rcr ax, 1                                 ; d1 d8
    11430     loop 07c12h                               ; e2 fa
     11453    loop 07c3eh                               ; e2 fa
    1143111454    mov dx, bx                                ; 89 da
    1143211455    out DX, AL                                ; ee
     
    1143411457    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    1143511458    cmp cx, ax                                ; 39 c1
    11436     jnc short 07c33h                          ; 73 0e
     11459    jnc short 07c5fh                          ; 73 0e
    1143711460    les di, [bp-00ch]                         ; c4 7e f4
    1143811461    add di, cx                                ; 01 cf
     
    1144111464    out DX, AL                                ; ee
    1144211465    inc cx                                    ; 41
    11443     jmp short 07c1dh                          ; eb ea
     11466    jmp short 07c49h                          ; eb ea
    1144411467    mov dx, bx                                ; 89 da
    1144511468    in AL, DX                                 ; ec
     
    1144711470    ; sub ah, ah                                ; 2a e4
    1144811471    test AL, strict byte 001h                 ; a8 01
    11449     jne short 07c33h                          ; 75 f7
     11472    jne short 07c5fh                          ; 75 f7
    1145011473    test AL, strict byte 002h                 ; a8 02
    11451     je short 07c4eh                           ; 74 0e
     11474    je short 07c7ah                           ; 74 0e
    1145211475    lea dx, [bx+003h]                         ; 8d 57 03
    1145311476    xor al, al                                ; 30 c0
     
    1145711480    ; sub ah, ah                                ; 2a e4
    1145811481    mov dx, strict word 00003h                ; ba 03 00
    11459     jmp short 07cb8h                          ; eb 6a
     11482    jmp short 07ce4h                          ; eb 6a
    1146011483    mov ax, word [bp+004h]                    ; 8b 46 04
    1146111484    test ax, ax                               ; 85 c0
    11462     je short 07c5dh                           ; 74 08
     11485    je short 07c89h                           ; 74 08
    1146311486    lea dx, [bx+001h]                         ; 8d 57 01
    1146411487    mov cx, ax                                ; 89 c1
    1146511488    in AL, DX                                 ; ec
    11466     loop 07c5ah                               ; e2 fd
     11489    loop 07c86h                               ; e2 fd
    1146711490    mov ax, word [bp+006h]                    ; 8b 46 06
    1146811491    mov es, [bp-00eh]                         ; 8e 46 f2
     
    1147211495    lea ax, [bx+001h]                         ; 8d 47 01
    1147311496    cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
    11474     jne short 07c7eh                          ; 75 07
     11497    jne short 07caah                          ; 75 07
    1147511498    cmp word [bp+006h], 08000h                ; 81 7e 06 00 80
    11476     jbe short 07c9bh                          ; 76 1d
     11499    jbe short 07cc7h                          ; 76 1d
    1147711500    mov dx, ax                                ; 89 c2
    1147811501    mov cx, 08000h                            ; b9 00 80
     
    1148411507    add ax, 00800h                            ; 05 00 08
    1148511508    mov word [bp+00eh], ax                    ; 89 46 0e
    11486     jmp short 07c6eh                          ; eb d3
     11509    jmp short 07c9ah                          ; eb d3
    1148711510    mov dx, ax                                ; 89 c2
    1148811511    mov cx, word [bp+006h]                    ; 8b 4e 06
     
    1149111514    mov es, [bp-00eh]                         ; 8e 46 f2
    1149211515    cmp word [es:si+01ch], strict byte 00000h ; 26 83 7c 1c 00
    11493     je short 07cb6h                           ; 74 07
     11516    je short 07ce2h                           ; 74 07
    1149411517    mov cx, word [es:si+01ch]                 ; 26 8b 4c 1c
    1149511518    in AL, DX                                 ; ec
    11496     loop 07cb3h                               ; e2 fd
     11519    loop 07cdfh                               ; e2 fd
    1149711520    xor dx, dx                                ; 31 d2
    1149811521    mov ax, dx                                ; 89 d0
     
    1150211525    pop bp                                    ; 5d
    1150311526    retn 0000ch                               ; c2 0c 00
    11504 scsi_enumerate_attached_devices_:            ; 0xf7cc3 LB 0x3e5
     11527scsi_enumerate_attached_devices_:            ; 0xf7cef LB 0x3e4
    1150511528    push bp                                   ; 55
    1150611529    mov bp, sp                                ; 89 e5
     
    1151011533    push si                                   ; 56
    1151111534    push di                                   ; 57
    11512     sub sp, 0021ch                            ; 81 ec 1c 02
     11535    sub sp, 0021eh                            ; 81 ec 1e 02
    1151311536    push ax                                   ; 50
    1151411537    mov dx, strict word 0000eh                ; ba 0e 00
    1151511538    mov ax, strict word 00040h                ; b8 40 00
    11516     call 0166ch                               ; e8 93 99
     11539    call 0166ch                               ; e8 67 99
    1151711540    mov si, 00122h                            ; be 22 01
    11518     mov word [bp-01ah], ax                    ; 89 46 e6
    11519     mov word [bp-010h], strict word 00000h    ; c7 46 f0 00 00
    11520     jmp near 08036h                           ; e9 4f 03
    11521     mov es, [bp-01ah]                         ; 8e 46 e6
    11522     cmp byte [es:si+001e8h], 004h             ; 26 80 bc e8 01 04
    11523     jnc near 0809eh                           ; 0f 83 aa 03
     11541    mov word [bp-018h], ax                    ; 89 46 e8
     11542    mov word [bp-00eh], strict word 00000h    ; c7 46 f2 00 00
     11543    jmp near 08055h                           ; e9 42 03
     11544    cmp AL, strict byte 004h                  ; 3c 04
     11545    jnc near 080c9h                           ; 0f 83 b0 03
    1152411546    mov cx, strict word 0000ah                ; b9 0a 00
    1152511547    xor bx, bx                                ; 31 db
    1152611548    mov dx, ss                                ; 8c d2
    11527     lea ax, [bp-026h]                         ; 8d 46 da
    11528     call 0975ah                               ; e8 59 1a
    11529     mov byte [bp-026h], 025h                  ; c6 46 da 25
     11549    lea ax, [bp-028h]                         ; 8d 46 d8
     11550    call 097aah                               ; e8 84 1a
     11551    mov byte [bp-028h], 025h                  ; c6 46 d8 25
    1153011552    push dword 000000008h                     ; 66 6a 08
    11531     lea dx, [bp-00226h]                       ; 8d 96 da fd
     11553    lea dx, [bp-00228h]                       ; 8d 96 d8 fd
    1153211554    push SS                                   ; 16
    1153311555    push dx                                   ; 52
    1153411556    push strict byte 0000ah                   ; 6a 0a
    11535     movzx dx, byte [bp-010h]                  ; 0f b6 56 f0
     11557    movzx dx, byte [bp-00eh]                  ; 0f b6 56 f2
    1153611558    mov cx, ss                                ; 8c d1
    11537     lea bx, [bp-026h]                         ; 8d 5e da
    11538     mov ax, word [bp-00228h]                  ; 8b 86 d8 fd
    11539     call 07885h                               ; e8 65 fb
     11559    lea bx, [bp-028h]                         ; 8d 5e d8
     11560    mov ax, word [bp-0022ah]                  ; 8b 86 d6 fd
     11561    call 07885h                               ; e8 40 fb
    1154011562    test al, al                               ; 84 c0
    11541     je short 07d32h                           ; 74 0e
     11563    je short 07d57h                           ; 74 0e
    1154211564    push 00b9ah                               ; 68 9a 0b
    1154311565    push 00bd3h                               ; 68 d3 0b
    1154411566    push strict byte 00007h                   ; 6a 07
    11545     call 01972h                               ; e8 43 9c
     11567    call 01972h                               ; e8 1e 9c
    1154611568    add sp, strict byte 00006h                ; 83 c4 06
    11547     movzx ax, byte [bp-00225h]                ; 0f b6 86 db fd
    11548     movzx di, byte [bp-00226h]                ; 0f b6 be da fd
     11569    movzx ax, byte [bp-00227h]                ; 0f b6 86 d9 fd
     11570    movzx di, byte [bp-00228h]                ; 0f b6 be d8 fd
    1154911571    sal di, 008h                              ; c1 e7 08
    1155011572    xor bx, bx                                ; 31 db
    1155111573    or di, ax                                 ; 09 c7
    11552     movzx ax, byte [bp-00224h]                ; 0f b6 86 dc fd
     11574    movzx ax, byte [bp-00226h]                ; 0f b6 86 da fd
    1155311575    xor dx, dx                                ; 31 d2
    1155411576    mov cx, strict word 00008h                ; b9 08 00
    1155511577    sal ax, 1                                 ; d1 e0
    1155611578    rcl dx, 1                                 ; d1 d2
    11557     loop 07d4dh                               ; e2 fa
     11579    loop 07d72h                               ; e2 fa
    1155811580    or bx, ax                                 ; 09 c3
    11559     or dx, di                                 ; 09 fa
    11560     movzx ax, byte [bp-00223h]                ; 0f b6 86 dd fd
     11581    or di, dx                                 ; 09 d7
     11582    movzx ax, byte [bp-00225h]                ; 0f b6 86 db fd
    1156111583    or bx, ax                                 ; 09 c3
    11562     mov word [bp-00eh], bx                    ; 89 5e f2
    11563     mov word [bp-018h], dx                    ; 89 56 e8
    11564     movzx di, byte [bp-00222h]                ; 0f b6 be de fd
    11565     sal di, 008h                              ; c1 e7 08
    11566     movzx dx, byte [bp-00221h]                ; 0f b6 96 df fd
     11584    mov word [bp-014h], bx                    ; 89 5e ec
     11585    add word [bp-014h], strict byte 00001h    ; 83 46 ec 01
     11586    adc di, strict byte 00000h                ; 83 d7 00
     11587    movzx ax, byte [bp-00224h]                ; 0f b6 86 dc fd
     11588    sal ax, 008h                              ; c1 e0 08
     11589    movzx dx, byte [bp-00223h]                ; 0f b6 96 dd fd
    1156711590    xor bx, bx                                ; 31 db
    11568     or di, dx                                 ; 09 d7
    11569     movzx ax, byte [bp-00220h]                ; 0f b6 86 e0 fd
     11591    or ax, dx                                 ; 09 d0
     11592    mov word [bp-012h], ax                    ; 89 46 ee
     11593    movzx ax, byte [bp-00222h]                ; 0f b6 86 de fd
    1157011594    xor dx, dx                                ; 31 d2
    1157111595    mov cx, strict word 00008h                ; b9 08 00
    1157211596    sal ax, 1                                 ; d1 e0
    1157311597    rcl dx, 1                                 ; d1 d2
    11574     loop 07d7fh                               ; e2 fa
     11598    loop 07dabh                               ; e2 fa
    1157511599    or ax, bx                                 ; 09 d8
    11576     or dx, di                                 ; 09 fa
    11577     movzx bx, byte [bp-0021fh]                ; 0f b6 9e e1 fd
     11600    or dx, word [bp-012h]                     ; 0b 56 ee
     11601    movzx bx, byte [bp-00221h]                ; 0f b6 9e df fd
    1157811602    or ax, bx                                 ; 09 d8
    11579     mov word [bp-016h], ax                    ; 89 46 ea
     11603    mov word [bp-010h], ax                    ; 89 46 f0
    1158011604    test dx, dx                               ; 85 d2
    11581     jne short 07d9ch                          ; 75 05
     11605    jne short 07dc9h                          ; 75 05
    1158211606    cmp ax, 00200h                            ; 3d 00 02
    11583     je short 07dbch                           ; 74 20
     11607    je short 07de9h                           ; 74 20
    1158411608    mov bx, 00da8h                            ; bb a8 0d
    1158511609    mov cx, ds                                ; 8c d9
    1158611610    mov ax, strict word 00004h                ; b8 04 00
    11587     call 01931h                               ; e8 8a 9b
     11611    call 01931h                               ; e8 5d 9b
    1158811612    push dx                                   ; 52
    11589     push word [bp-016h]                       ; ff 76 ea
    1159011613    push word [bp-010h]                       ; ff 76 f0
     11614    push word [bp-00eh]                       ; ff 76 f2
    1159111615    push 00bf2h                               ; 68 f2 0b
    1159211616    push strict byte 00004h                   ; 6a 04
    11593     call 01972h                               ; e8 bc 9b
     11617    call 01972h                               ; e8 8f 9b
    1159411618    add sp, strict byte 0000ah                ; 83 c4 0a
    11595     jmp near 0802dh                           ; e9 71 02
    11596     mov es, [bp-01ah]                         ; 8e 46 e6
    11597     mov al, byte [es:si+001e8h]               ; 26 8a 84 e8 01
    11598     mov byte [bp-00ch], al                    ; 88 46 f4
     11619    jmp near 0804ch                           ; e9 63 02
     11620    mov al, byte [bp-00ch]                    ; 8a 46 f4
    1159911621    cmp AL, strict byte 001h                  ; 3c 01
    11600     jc short 07dd7h                           ; 72 0c
    11601     jbe short 07ddfh                          ; 76 12
     11622    jc short 07dfch                           ; 72 0c
     11623    jbe short 07e04h                          ; 76 12
    1160211624    cmp AL, strict byte 003h                  ; 3c 03
    11603     je short 07de7h                           ; 74 16
     11625    je short 07e0ch                           ; 74 16
    1160411626    cmp AL, strict byte 002h                  ; 3c 02
    11605     je short 07de3h                           ; 74 0e
    11606     jmp short 07e33h                          ; eb 5c
     11627    je short 07e08h                           ; 74 0e
     11628    jmp short 07e5bh                          ; eb 5f
    1160711629    test al, al                               ; 84 c0
    11608     jne short 07e33h                          ; 75 58
     11630    jne short 07e5bh                          ; 75 5b
    1160911631    mov BL, strict byte 090h                  ; b3 90
    11610     jmp short 07de9h                          ; eb 0a
     11632    jmp short 07e0eh                          ; eb 0a
    1161111633    mov BL, strict byte 098h                  ; b3 98
    11612     jmp short 07de9h                          ; eb 06
     11634    jmp short 07e0eh                          ; eb 06
    1161311635    mov BL, strict byte 0a0h                  ; b3 a0
    11614     jmp short 07de9h                          ; eb 02
     11636    jmp short 07e0eh                          ; eb 02
    1161511637    mov BL, strict byte 0a8h                  ; b3 a8
    1161611638    mov al, bl                                ; 88 d8
     
    1161811640    movzx cx, al                              ; 0f b6 c8
    1161911641    mov ax, cx                                ; 89 c8
    11620     call 016ach                               ; e8 b7 98
     11642    call 016ach                               ; e8 92 98
    1162111643    test al, al                               ; 84 c0
    11622     je short 07e33h                           ; 74 3a
     11644    je short 07e5bh                           ; 74 3d
    1162311645    mov al, bl                                ; 88 d8
    1162411646    db  0feh, 0c0h
    1162511647    ; inc al                                    ; fe c0
    1162611648    xor ah, ah                                ; 30 e4
    11627     call 016ach                               ; e8 aa 98
     11649    call 016ach                               ; e8 85 98
    1162811650    xor ah, ah                                ; 30 e4
    11629     mov dx, ax                                ; 89 c2
    11630     sal dx, 008h                              ; c1 e2 08
     11651    sal ax, 008h                              ; c1 e0 08
     11652    mov word [bp-012h], ax                    ; 89 46 ee
    1163111653    movzx ax, bl                              ; 0f b6 c3
    11632     call 016ach                               ; e8 9d 98
     11654    call 016ach                               ; e8 77 98
    1163311655    xor ah, ah                                ; 30 e4
    11634     add ax, dx                                ; 01 d0
     11656    add ax, word [bp-012h]                    ; 03 46 ee
    1163511657    cwd                                       ; 99
    11636     mov di, ax                                ; 89 c7
    11637     mov word [bp-012h], dx                    ; 89 56 ee
     11658    mov word [bp-01eh], ax                    ; 89 46 e2
     11659    mov word [bp-016h], dx                    ; 89 56 ea
    1163811660    mov al, bl                                ; 88 d8
    1163911661    add AL, strict byte 002h                  ; 04 02
    1164011662    xor ah, ah                                ; 30 e4
    11641     call 016ach                               ; e8 8a 98
    11642     xor ah, ah                                ; 30 e4
    11643     mov word [bp-014h], ax                    ; 89 46 ec
    11644     mov ax, cx                                ; 89 c8
    11645     call 016ach                               ; e8 80 98
     11663    call 016ach                               ; e8 62 98
    1164611664    xor ah, ah                                ; 30 e4
    1164711665    mov word [bp-01ch], ax                    ; 89 46 e4
    11648     jmp short 07e78h                          ; eb 45
    11649     mov ax, word [bp-018h]                    ; 8b 46 e8
    11650     cmp ax, strict word 00040h                ; 3d 40 00
    11651     jnbe short 07e3dh                         ; 77 02
    11652     jne short 07e49h                          ; 75 0c
    11653     mov word [bp-014h], 000ffh                ; c7 46 ec ff 00
    11654     mov word [bp-01ch], strict word 0003fh    ; c7 46 e4 3f 00
    11655     jmp short 07e61h                          ; eb 18
    11656     cmp ax, strict word 00020h                ; 3d 20 00
    11657     jnbe short 07e50h                         ; 77 02
    11658     jne short 07e57h                          ; 75 07
    11659     mov word [bp-014h], 00080h                ; c7 46 ec 80 00
    11660     jmp short 07e5ch                          ; eb 05
    11661     mov word [bp-014h], strict word 00040h    ; c7 46 ec 40 00
    11662     mov word [bp-01ch], strict word 00020h    ; c7 46 e4 20 00
    11663     mov bx, word [bp-014h]                    ; 8b 5e ec
    11664     imul bx, word [bp-01ch]                   ; 0f af 5e e4
    11665     mov ax, word [bp-00eh]                    ; 8b 46 f2
    11666     mov dx, word [bp-018h]                    ; 8b 56 e8
     11666    mov ax, cx                                ; 89 c8
     11667    call 016ach                               ; e8 58 98
     11668    xor ah, ah                                ; 30 e4
     11669    mov word [bp-01ah], ax                    ; 89 46 e6
     11670    jmp short 07e9ch                          ; eb 41
     11671    cmp di, strict byte 00040h                ; 83 ff 40
     11672    jnbe short 07e62h                         ; 77 02
     11673    jne short 07e6ch                          ; 75 0a
     11674    mov dword [bp-01ch], strict dword 0003f00ffh ; 66 c7 46 e4 ff 00 3f 00
     11675    jmp short 07e85h                          ; eb 19
     11676    cmp di, strict byte 00020h                ; 83 ff 20
     11677    jnbe short 07e73h                         ; 77 02
     11678    jne short 07e7dh                          ; 75 0a
     11679    mov dword [bp-01ch], strict dword 000200080h ; 66 c7 46 e4 80 00 20 00
     11680    jmp short 07e85h                          ; eb 08
     11681    mov dword [bp-01ch], strict dword 000200040h ; 66 c7 46 e4 40 00 20 00
     11682    mov bx, word [bp-01ch]                    ; 8b 5e e4
     11683    imul bx, word [bp-01ah]                   ; 0f af 5e e6
     11684    mov ax, word [bp-014h]                    ; 8b 46 ec
     11685    mov dx, di                                ; 89 fa
    1166711686    xor cx, cx                                ; 31 c9
    11668     call 096f0h                               ; e8 7d 18
    11669     mov di, ax                                ; 89 c7
    11670     mov word [bp-012h], dx                    ; 89 56 ee
     11687    call 09740h                               ; e8 aa 18
     11688    mov word [bp-01eh], ax                    ; 89 46 e2
     11689    mov word [bp-016h], dx                    ; 89 56 ea
    1167111690    mov dl, byte [bp-00ch]                    ; 8a 56 f4
    1167211691    add dl, 008h                              ; 80 c2 08
    1167311692    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    1167411693    sal bx, 002h                              ; c1 e3 02
    11675     mov es, [bp-01ah]                         ; 8e 46 e6
     11694    mov es, [bp-018h]                         ; 8e 46 e8
    1167611695    add bx, si                                ; 01 f3
    11677     mov ax, word [bp-00228h]                  ; 8b 86 d8 fd
     11696    mov ax, word [bp-0022ah]                  ; 8b 86 d6 fd
    1167811697    mov word [es:bx+001d8h], ax               ; 26 89 87 d8 01
    11679     mov al, byte [bp-010h]                    ; 8a 46 f0
     11698    mov al, byte [bp-00eh]                    ; 8a 46 f2
    1168011699    mov byte [es:bx+001dah], al               ; 26 88 87 da 01
    1168111700    movzx ax, dl                              ; 0f b6 c2
     
    1168511704    db  066h, 026h, 0c7h, 047h, 01eh, 004h, 0ffh, 000h, 000h
    1168611705    ; mov dword [es:bx+01eh], strict dword 00000ff04h ; 66 26 c7 47 1e 04 ff 00 00
    11687     mov ax, word [bp-016h]                    ; 8b 46 ea
     11706    mov ax, word [bp-010h]                    ; 8b 46 f0
    1168811707    mov word [es:bx+024h], ax                 ; 26 89 47 24
    1168911708    mov byte [es:bx+023h], 001h               ; 26 c6 47 23 01
    11690     mov ax, word [bp-014h]                    ; 8b 46 ec
     11709    mov ax, word [bp-01ch]                    ; 8b 46 e4
    1169111710    mov word [es:bx+026h], ax                 ; 26 89 47 26
    11692     mov ax, word [bp-01ch]                    ; 8b 46 e4
     11711    mov ax, word [bp-01ah]                    ; 8b 46 e6
    1169311712    mov word [es:bx+02ah], ax                 ; 26 89 47 2a
    11694     cmp word [bp-012h], strict byte 00000h    ; 83 7e ee 00
    11695     jne short 07ed4h                          ; 75 06
    11696     cmp di, 00400h                            ; 81 ff 00 04
    11697     jbe short 07edch                          ; 76 08
     11713    cmp word [bp-016h], strict byte 00000h    ; 83 7e ea 00
     11714    jne short 07ef9h                          ; 75 07
     11715    cmp word [bp-01eh], 00400h                ; 81 7e e2 00 04
     11716    jbe short 07f01h                          ; 76 08
    1169811717    mov word [es:bx+028h], 00400h             ; 26 c7 47 28 00 04
    11699     jmp short 07ee0h                          ; eb 04
    11700     mov word [es:bx+028h], di                 ; 26 89 7f 28
     11718    jmp short 07f08h                          ; eb 07
     11719    mov ax, word [bp-01eh]                    ; 8b 46 e2
     11720    mov word [es:bx+028h], ax                 ; 26 89 47 28
    1170111721    mov bx, 00da8h                            ; bb a8 0d
    1170211722    mov cx, ds                                ; 8c d9
    1170311723    mov ax, strict word 00004h                ; b8 04 00
    11704     call 01931h                               ; e8 46 9a
    11705     push word [bp-018h]                       ; ff 76 e8
     11724    call 01931h                               ; e8 1e 9a
     11725    push di                                   ; 57
     11726    push word [bp-014h]                       ; ff 76 ec
     11727    push dword [bp-01ch]                      ; 66 ff 76 e4
     11728    push word [bp-01eh]                       ; ff 76 e2
    1170611729    push word [bp-00eh]                       ; ff 76 f2
    11707     push word [bp-01ch]                       ; ff 76 e4
    11708     push word [bp-014h]                       ; ff 76 ec
    11709     push di                                   ; 57
    11710     push word [bp-010h]                       ; ff 76 f0
    1171111730    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    1171211731    push ax                                   ; 50
    1171311732    push 00c20h                               ; 68 20 0c
    1171411733    push strict byte 00004h                   ; 6a 04
    11715     call 01972h                               ; e8 6a 9a
     11734    call 01972h                               ; e8 44 9a
    1171611735    add sp, strict byte 00012h                ; 83 c4 12
    1171711736    movzx ax, dl                              ; 0f b6 c2
    1171811737    imul ax, ax, strict byte 00018h           ; 6b c0 18
    11719     mov es, [bp-01ah]                         ; 8e 46 e6
     11738    mov es, [bp-018h]                         ; 8e 46 e8
     11739    mov bx, si                                ; 89 f3
     11740    add bx, ax                                ; 01 c3
     11741    mov ax, word [bp-01ch]                    ; 8b 46 e4
     11742    mov word [es:bx+02ch], ax                 ; 26 89 47 2c
     11743    mov ax, word [bp-01ah]                    ; 8b 46 e6
     11744    mov word [es:bx+030h], ax                 ; 26 89 47 30
     11745    cmp word [bp-016h], strict byte 00000h    ; 83 7e ea 00
     11746    jne short 07f59h                          ; 75 07
     11747    cmp word [bp-01eh], 00400h                ; 81 7e e2 00 04
     11748    jbe short 07f61h                          ; 76 08
     11749    mov word [es:bx+02eh], 00400h             ; 26 c7 47 2e 00 04
     11750    jmp short 07f68h                          ; eb 07
     11751    mov ax, word [bp-01eh]                    ; 8b 46 e2
     11752    mov word [es:bx+02eh], ax                 ; 26 89 47 2e
     11753    movzx ax, dl                              ; 0f b6 c2
     11754    imul ax, ax, strict byte 00018h           ; 6b c0 18
     11755    mov es, [bp-018h]                         ; 8e 46 e8
    1172011756    mov bx, si                                ; 89 f3
    1172111757    add bx, ax                                ; 01 c3
    1172211758    mov ax, word [bp-014h]                    ; 8b 46 ec
    11723     mov word [es:bx+02ch], ax                 ; 26 89 47 2c
    11724     mov ax, word [bp-01ch]                    ; 8b 46 e4
    11725     mov word [es:bx+030h], ax                 ; 26 89 47 30
    11726     cmp word [bp-012h], strict byte 00000h    ; 83 7e ee 00
    11727     jne short 07f32h                          ; 75 06
    11728     cmp di, 00400h                            ; 81 ff 00 04
    11729     jbe short 07f3ah                          ; 76 08
    11730     mov word [es:bx+02eh], 00400h             ; 26 c7 47 2e 00 04
    11731     jmp short 07f3eh                          ; eb 04
    11732     mov word [es:bx+02eh], di                 ; 26 89 7f 2e
    11733     movzx ax, dl                              ; 0f b6 c2
    11734     imul ax, ax, strict byte 00018h           ; 6b c0 18
    11735     mov es, [bp-01ah]                         ; 8e 46 e6
    11736     mov bx, si                                ; 89 f3
    11737     add bx, ax                                ; 01 c3
    11738     mov ax, word [bp-00eh]                    ; 8b 46 f2
    1173911759    mov word [es:bx+032h], ax                 ; 26 89 47 32
    11740     mov ax, word [bp-018h]                    ; 8b 46 e8
    11741     mov word [es:bx+034h], ax                 ; 26 89 47 34
     11760    mov word [es:bx+034h], di                 ; 26 89 7f 34
    1174211761    mov al, byte [es:si+0019eh]               ; 26 8a 84 9e 01
    1174311762    mov ah, byte [bp-00ch]                    ; 8a 66 f4
     
    1175111770    mov dx, strict word 00075h                ; ba 75 00
    1175211771    mov ax, strict word 00040h                ; b8 40 00
    11753     call 01650h                               ; e8 d2 96
     11772    call 01650h                               ; e8 ab 96
    1175411773    db  0feh, 0c0h
    1175511774    ; inc al                                    ; fe c0
     
    1175711776    mov dx, strict word 00075h                ; ba 75 00
    1175811777    mov ax, strict word 00040h                ; b8 40 00
    11759     call 0165eh                               ; e8 d2 96
     11778    call 0165eh                               ; e8 ab 96
    1176011779    inc byte [bp-00ch]                        ; fe 46 f4
    11761     mov al, byte [bp-00ch]                    ; 8a 46 f4
    11762     mov es, [bp-01ah]                         ; 8e 46 e6
    11763     mov byte [es:si+001e8h], al               ; 26 88 84 e8 01
    11764     jmp near 0802dh                           ; e9 90 00
     11780    jmp near 08041h                           ; e9 88 00
    1176511781    mov bx, 00da8h                            ; bb a8 0d
    1176611782    mov cx, ds                                ; 8c d9
    1176711783    mov ax, strict word 00004h                ; b8 04 00
    11768     call 01931h                               ; e8 89 99
    11769     push word [bp-010h]                       ; ff 76 f0
     11784    call 01931h                               ; e8 6d 99
     11785    push word [bp-00eh]                       ; ff 76 f2
    1177011786    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    1177111787    push ax                                   ; 50
    1177211788    push 00c4ah                               ; 68 4a 0c
    1177311789    push strict byte 00004h                   ; 6a 04
    11774     call 01972h                               ; e8 ba 99
     11790    call 01972h                               ; e8 9e 99
    1177511791    add sp, strict byte 00008h                ; 83 c4 08
    1177611792    mov dl, byte [bp-00ch]                    ; 8a 56 f4
    1177711793    add dl, 008h                              ; 80 c2 08
    11778     test byte [bp-00225h], 080h               ; f6 86 db fd 80
     11794    test byte [bp-00227h], 080h               ; f6 86 d9 fd 80
    1177911795    db  00fh, 095h, 0c0h
    1178011796    ; setne al                                  ; 0f 95 c0
     
    1178311799    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    1178411800    sal ax, 002h                              ; c1 e0 02
    11785     mov es, [bp-01ah]                         ; 8e 46 e6
     11801    mov es, [bp-018h]                         ; 8e 46 e8
    1178611802    mov bx, si                                ; 89 f3
    1178711803    add bx, ax                                ; 01 c3
    11788     mov ax, word [bp-00228h]                  ; 8b 86 d8 fd
     11804    mov ax, word [bp-0022ah]                  ; 8b 86 d6 fd
    1178911805    mov word [es:bx+001d8h], ax               ; 26 89 87 d8 01
    11790     mov al, byte [bp-010h]                    ; 8a 46 f0
     11806    mov al, byte [bp-00eh]                    ; 8a 46 f2
    1179111807    mov byte [es:bx+001dah], al               ; 26 88 87 da 01
    1179211808    movzx ax, dl                              ; 0f b6 c2
     
    1180811824    inc byte [bp-00ch]                        ; fe 46 f4
    1180911825    mov al, byte [bp-00ch]                    ; 8a 46 f4
     11826    mov es, [bp-018h]                         ; 8e 46 e8
    1181011827    mov byte [es:si+001e8h], al               ; 26 88 84 e8 01
    11811     inc word [bp-010h]                        ; ff 46 f0
    11812     cmp word [bp-010h], strict byte 00010h    ; 83 7e f0 10
    11813     jnl short 0809eh                          ; 7d 68
    11814     mov byte [bp-026h], 012h                  ; c6 46 da 12
     11828    inc word [bp-00eh]                        ; ff 46 f2
     11829    cmp word [bp-00eh], strict byte 00010h    ; 83 7e f2 10
     11830    jnl short 080c9h                          ; 7d 74
     11831    mov byte [bp-028h], 012h                  ; c6 46 d8 12
    1181511832    xor al, al                                ; 30 c0
     11833    mov byte [bp-027h], al                    ; 88 46 d9
     11834    mov byte [bp-026h], al                    ; 88 46 da
    1181611835    mov byte [bp-025h], al                    ; 88 46 db
    11817     mov byte [bp-024h], al                    ; 88 46 dc
     11836    mov byte [bp-024h], 005h                  ; c6 46 dc 05
    1181811837    mov byte [bp-023h], al                    ; 88 46 dd
    11819     mov byte [bp-022h], 005h                  ; c6 46 de 05
    11820     mov byte [bp-021h], al                    ; 88 46 df
    1182111838    push dword 000000005h                     ; 66 6a 05
    11822     lea dx, [bp-00226h]                       ; 8d 96 da fd
     11839    lea dx, [bp-00228h]                       ; 8d 96 d8 fd
    1182311840    push SS                                   ; 16
    1182411841    push dx                                   ; 52
    1182511842    push strict byte 00006h                   ; 6a 06
    11826     movzx dx, byte [bp-010h]                  ; 0f b6 56 f0
     11843    movzx dx, byte [bp-00eh]                  ; 0f b6 56 f2
    1182711844    mov cx, ss                                ; 8c d1
    11828     lea bx, [bp-026h]                         ; 8d 5e da
    11829     mov ax, word [bp-00228h]                  ; 8b 86 d8 fd
    11830     call 07885h                               ; e8 1e f8
     11845    lea bx, [bp-028h]                         ; 8d 5e d8
     11846    mov ax, word [bp-0022ah]                  ; 8b 86 d6 fd
     11847    call 07885h                               ; e8 ff f7
    1183111848    test al, al                               ; 84 c0
    11832     je short 08079h                           ; 74 0e
     11849    je short 08098h                           ; 74 0e
    1183311850    push 00b9ah                               ; 68 9a 0b
    1183411851    push 00bbah                               ; 68 ba 0b
    1183511852    push strict byte 00007h                   ; 6a 07
    11836     call 01972h                               ; e8 fc 98
     11853    call 01972h                               ; e8 dd 98
    1183711854    add sp, strict byte 00006h                ; 83 c4 06
    11838     test byte [bp-00226h], 0e0h               ; f6 86 da fd e0
    11839     jne short 08089h                          ; 75 09
    11840     test byte [bp-00226h], 01fh               ; f6 86 da fd 1f
    11841     je near 07ce7h                            ; 0f 84 5e fc
    11842     test byte [bp-00226h], 0e0h               ; f6 86 da fd e0
    11843     jne short 0802dh                          ; 75 9d
    11844     mov al, byte [bp-00226h]                  ; 8a 86 da fd
     11855    mov es, [bp-018h]                         ; 8e 46 e8
     11856    mov al, byte [es:si+001e8h]               ; 26 8a 84 e8 01
     11857    mov byte [bp-00ch], al                    ; 88 46 f4
     11858    test byte [bp-00228h], 0e0h               ; f6 86 d8 fd e0
     11859    jne short 080b3h                          ; 75 09
     11860    test byte [bp-00228h], 01fh               ; f6 86 d8 fd 1f
     11861    je near 07d13h                            ; 0f 84 60 fc
     11862    test byte [bp-00228h], 0e0h               ; f6 86 d8 fd e0
     11863    jne short 08041h                          ; 75 87
     11864    mov al, byte [bp-00228h]                  ; 8a 86 d8 fd
    1184511865    and AL, strict byte 01fh                  ; 24 1f
    1184611866    cmp AL, strict byte 005h                  ; 3c 05
    11847     je near 07f9dh                            ; 0f 84 01 ff
    11848     jmp short 0802dh                          ; eb 8f
     11867    je near 07fb9h                            ; 0f 84 f3 fe
     11868    jmp near 08041h                           ; e9 78 ff
    1184911869    lea sp, [bp-00ah]                         ; 8d 66 f6
    1185011870    pop di                                    ; 5f
     
    1185511875    pop bp                                    ; 5d
    1185611876    retn                                      ; c3
    11857 _scsi_init:                                  ; 0xf80a8 LB 0x66
     11877_scsi_init:                                  ; 0xf80d3 LB 0x66
    1185811878    push bp                                   ; 55
    1185911879    mov bp, sp                                ; 89 e5
    1186011880    mov dx, strict word 0000eh                ; ba 0e 00
    1186111881    mov ax, strict word 00040h                ; b8 40 00
    11862     call 0166ch                               ; e8 b8 95
     11882    call 0166ch                               ; e8 8d 95
    1186311883    mov bx, 00122h                            ; bb 22 01
    1186411884    mov es, ax                                ; 8e c0
     
    1187111891    ; sub ah, ah                                ; 2a e4
    1187211892    cmp AL, strict byte 055h                  ; 3c 55
    11873     jne short 080d8h                          ; 75 0c
     11893    jne short 08103h                          ; 75 0c
    1187411894    xor al, al                                ; 30 c0
    1187511895    mov dx, 00433h                            ; ba 33 04
    1187611896    out DX, AL                                ; ee
    1187711897    mov ax, 00430h                            ; b8 30 04
    11878     call 07cc3h                               ; e8 eb fb
     11898    call 07cefh                               ; e8 ec fb
    1187911899    mov AL, strict byte 055h                  ; b0 55
    1188011900    mov dx, 00436h                            ; ba 36 04
     
    1188411904    ; sub ah, ah                                ; 2a e4
    1188511905    cmp AL, strict byte 055h                  ; 3c 55
    11886     jne short 080f1h                          ; 75 0c
     11906    jne short 0811ch                          ; 75 0c
    1188711907    xor al, al                                ; 30 c0
    1188811908    mov dx, 00437h                            ; ba 37 04
    1188911909    out DX, AL                                ; ee
    1189011910    mov ax, 00434h                            ; b8 34 04
    11891     call 07cc3h                               ; e8 d2 fb
     11911    call 07cefh                               ; e8 d3 fb
    1189211912    mov AL, strict byte 055h                  ; b0 55
    1189311913    mov dx, 0043ah                            ; ba 3a 04
     
    1189711917    ; sub ah, ah                                ; 2a e4
    1189811918    cmp AL, strict byte 055h                  ; 3c 55
    11899     jne short 0810ah                          ; 75 0c
     11919    jne short 08135h                          ; 75 0c
    1190011920    xor al, al                                ; 30 c0
    1190111921    mov dx, 0043bh                            ; ba 3b 04
    1190211922    out DX, AL                                ; ee
    1190311923    mov ax, 00438h                            ; b8 38 04
    11904     call 07cc3h                               ; e8 b9 fb
     11924    call 07cefh                               ; e8 ba fb
    1190511925    mov sp, bp                                ; 89 ec
    1190611926    pop bp                                    ; 5d
    1190711927    retn                                      ; c3
    11908 high_bits_save_:                             ; 0xf810e LB 0x17
     11928high_bits_save_:                             ; 0xf8139 LB 0x17
    1190911929    push bp                                   ; 55
    1191011930    mov bp, sp                                ; 89 e5
     
    1191811938    pop bp                                    ; 5d
    1191911939    retn                                      ; c3
    11920 high_bits_restore_:                          ; 0xf8125 LB 0x17
     11940high_bits_restore_:                          ; 0xf8150 LB 0x17
    1192111941    push bp                                   ; 55
    1192211942    mov bp, sp                                ; 89 e5
     
    1193011950    pop bp                                    ; 5d
    1193111951    retn                                      ; c3
    11932 ahci_ctrl_set_bits_:                         ; 0xf813c LB 0x43
     11952ahci_ctrl_set_bits_:                         ; 0xf8167 LB 0x43
    1193311953    push bp                                   ; 55
    1193411954    mov bp, sp                                ; 89 e5
     
    1196811988    pop bp                                    ; 5d
    1196911989    retn                                      ; c3
    11970 ahci_ctrl_clear_bits_:                       ; 0xf817f LB 0x47
     11990ahci_ctrl_clear_bits_:                       ; 0xf81aa LB 0x47
    1197111991    push bp                                   ; 55
    1197211992    mov bp, sp                                ; 89 e5
     
    1200812028    pop bp                                    ; 5d
    1200912029    retn                                      ; c3
    12010 ahci_ctrl_is_bit_set_:                       ; 0xf81c6 LB 0x39
     12030ahci_ctrl_is_bit_set_:                       ; 0xf81f1 LB 0x39
    1201112031    push bp                                   ; 55
    1201212032    mov bp, sp                                ; 89 e5
     
    1203012050    xchg dx, ax                               ; 92
    1203112051    test dx, di                               ; 85 fa
    12032     jne short 081f2h                          ; 75 04
     12052    jne short 0821dh                          ; 75 04
    1203312053    test ax, bx                               ; 85 d8
    12034     je short 081f6h                           ; 74 04
     12054    je short 08221h                           ; 74 04
    1203512055    mov AL, strict byte 001h                  ; b0 01
    12036     jmp short 081f8h                          ; eb 02
     12056    jmp short 08223h                          ; eb 02
    1203712057    xor al, al                                ; 30 c0
    1203812058    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1204112061    pop bp                                    ; 5d
    1204212062    retn                                      ; c3
    12043 ahci_ctrl_extract_bits_:                     ; 0xf81ff LB 0x1b
     12063ahci_ctrl_extract_bits_:                     ; 0xf822a LB 0x1b
    1204412064    push si                                   ; 56
    1204512065    push bp                                   ; 55
     
    1204912069    and dx, cx                                ; 21 ca
    1205012070    movzx cx, byte [bp+006h]                  ; 0f b6 4e 06
    12051     jcxz 08215h                               ; e3 06
     12071    jcxz 08240h                               ; e3 06
    1205212072    shr dx, 1                                 ; d1 ea
    1205312073    rcr ax, 1                                 ; d1 d8
    12054     loop 0820fh                               ; e2 fa
     12074    loop 0823ah                               ; e2 fa
    1205512075    pop bp                                    ; 5d
    1205612076    pop si                                    ; 5e
    1205712077    retn 00002h                               ; c2 02 00
    12058 ahci_addr_to_phys_:                          ; 0xf821a LB 0x1e
     12078ahci_addr_to_phys_:                          ; 0xf8245 LB 0x1e
    1205912079    push bx                                   ; 53
    1206012080    push cx                                   ; 51
     
    1206712087    sal ax, 1                                 ; d1 e0
    1206812088    rcl dx, 1                                 ; d1 d2
    12069     loop 08228h                               ; e2 fa
     12089    loop 08253h                               ; e2 fa
    1207012090    xor cx, cx                                ; 31 c9
    1207112091    add ax, bx                                ; 01 d8
     
    1207512095    pop bx                                    ; 5b
    1207612096    retn                                      ; c3
    12077 ahci_port_cmd_sync_:                         ; 0xf8238 LB 0xd5
     12097ahci_port_cmd_sync_:                         ; 0xf8263 LB 0xd5
    1207812098    push bp                                   ; 55
    1207912099    mov bp, sp                                ; 89 e5
     
    1208912109    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
    1209012110    cmp AL, strict byte 0ffh                  ; 3c ff
    12091     je near 08305h                            ; 0f 84 aa 00
     12111    je near 08330h                            ; 0f 84 aa 00
    1209212112    movzx cx, byte [es:si+00263h]             ; 26 0f b6 8c 63 02
    1209312113    xor dx, dx                                ; 31 d2
     
    1210112121    lea ax, [si+00080h]                       ; 8d 84 80 00
    1210212122    mov dx, es                                ; 8c c2
    12103     call 0821ah                               ; e8 96 ff
     12123    call 08245h                               ; e8 96 ff
    1210412124    mov es, [bp-00ah]                         ; 8e 46 f6
    1210512125    mov word [es:si+008h], ax                 ; 26 89 44 08
     
    1211112131    xor cx, cx                                ; 31 c9
    1211212132    mov ax, di                                ; 89 f8
    12113     call 0813ch                               ; e8 98 fe
     12133    call 08167h                               ; e8 98 fe
    1211412134    lea ax, [si+00138h]                       ; 8d 84 38 01
    1211512135    cwd                                       ; 99
     
    1213812158    mov dx, si                                ; 89 f2
    1213912159    mov ax, di                                ; 89 f8
    12140     call 081c6h                               ; e8 e2 fe
     12160    call 081f1h                               ; e8 e2 fe
    1214112161    test al, al                               ; 84 c0
    12142     je short 082c7h                           ; 74 df
     12162    je short 082f2h                           ; 74 df
    1214312163    mov bx, strict word 00001h                ; bb 01 00
    1214412164    xor cx, cx                                ; 31 c9
    1214512165    mov dx, si                                ; 89 f2
    1214612166    mov ax, di                                ; 89 f8
    12147     call 0813ch                               ; e8 48 fe
     12167    call 08167h                               ; e8 48 fe
    1214812168    mov dx, word [bp-00ch]                    ; 8b 56 f4
    1214912169    add dx, 00118h                            ; 81 c2 18 01
     
    1215112171    xor cx, cx                                ; 31 c9
    1215212172    mov ax, di                                ; 89 f8
    12153     call 0817fh                               ; e8 7a fe
     12173    call 081aah                               ; e8 7a fe
    1215412174    lea sp, [bp-006h]                         ; 8d 66 fa
    1215512175    pop di                                    ; 5f
     
    1215812178    pop bp                                    ; 5d
    1215912179    retn                                      ; c3
    12160 ahci_cmd_data_:                              ; 0xf830d LB 0x1ca
     12180ahci_cmd_data_:                              ; 0xf8338 LB 0x1e4
    1216112181    push bp                                   ; 55
    1216212182    mov bp, sp                                ; 89 e5
     
    1216612186    sub sp, strict byte 00010h                ; 83 ec 10
    1216712187    mov di, ax                                ; 89 c7
    12168     mov word [bp-012h], dx                    ; 89 56 ee
     12188    mov word [bp-00ch], dx                    ; 89 56 f4
    1216912189    mov byte [bp-008h], bl                    ; 88 5e f8
    1217012190    xor si, si                                ; 31 f6
     
    1217212192    mov ax, word [es:di+001eeh]               ; 26 8b 85 ee 01
    1217312193    mov word [bp-00ah], ax                    ; 89 46 f6
    12174     mov word [bp-00eh], si                    ; 89 76 f2
    12175     mov word [bp-00ch], ax                    ; 89 46 f4
     12194    mov word [bp-010h], si                    ; 89 76 f0
     12195    mov word [bp-00eh], ax                    ; 89 46 f2
    1217612196    mov ax, word [es:di+00ah]                 ; 26 8b 45 0a
    12177     mov word [bp-010h], ax                    ; 89 46 f0
     12197    mov word [bp-016h], ax                    ; 89 46 ea
    1217812198    mov ax, word [es:di+00ch]                 ; 26 8b 45 0c
    12179     mov word [bp-016h], ax                    ; 89 46 ea
     12199    mov word [bp-012h], ax                    ; 89 46 ee
    1218012200    mov cx, strict word 00040h                ; b9 40 00
    1218112201    xor bx, bx                                ; 31 db
    1218212202    mov ax, 00080h                            ; b8 80 00
    1218312203    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12184     call 0975ah                               ; e8 0e 14
     12204    call 097aah                               ; e8 33 14
    1218512205    mov es, [bp-00ah]                         ; 8e 46 f6
    1218612206    mov word [es:si+00080h], 08027h           ; 26 c7 84 80 00 27 80
     
    1218812208    mov byte [es:si+00082h], al               ; 26 88 84 82 00
    1218912209    mov byte [es:si+00083h], 000h             ; 26 c6 84 83 00 00
    12190     mov es, [bp-012h]                         ; 8e 46 ee
     12210    mov es, [bp-00ch]                         ; 8e 46 f4
    1219112211    mov al, byte [es:di]                      ; 26 8a 05
    1219212212    mov es, [bp-00ah]                         ; 8e 46 f6
    1219312213    mov byte [es:si+00084h], al               ; 26 88 84 84 00
    12194     mov es, [bp-012h]                         ; 8e 46 ee
     12214    mov es, [bp-00ch]                         ; 8e 46 f4
    1219512215    mov ax, word [es:di]                      ; 26 8b 05
    1219612216    mov bx, word [es:di+002h]                 ; 26 8b 5d 02
     
    1219812218    shr bx, 1                                 ; d1 eb
    1219912219    rcr ax, 1                                 ; d1 d8
    12200     loop 0837fh                               ; e2 fa
     12220    loop 083aah                               ; e2 fa
    1220112221    mov es, [bp-00ah]                         ; 8e 46 f6
    1220212222    mov byte [es:si+00085h], al               ; 26 88 84 85 00
    12203     mov es, [bp-012h]                         ; 8e 46 ee
     12223    mov es, [bp-00ch]                         ; 8e 46 f4
    1220412224    mov ax, word [es:di+002h]                 ; 26 8b 45 02
    1220512225    mov es, [bp-00ah]                         ; 8e 46 f6
    1220612226    mov byte [es:si+00086h], al               ; 26 88 84 86 00
    1220712227    mov byte [es:si+00087h], 040h             ; 26 c6 84 87 00 40
    12208     mov es, [bp-012h]                         ; 8e 46 ee
     12228    mov es, [bp-00ch]                         ; 8e 46 f4
    1220912229    mov ax, word [es:di+002h]                 ; 26 8b 45 02
    1221012230    shr ax, 008h                              ; c1 e8 08
     
    1221312233    mov word [es:si+00089h], strict word 00000h ; 26 c7 84 89 00 00 00
    1221412234    mov byte [es:si+0008bh], 000h             ; 26 c6 84 8b 00 00
    12215     mov al, byte [bp-010h]                    ; 8a 46 f0
     12235    mov al, byte [bp-016h]                    ; 8a 46 ea
    1221612236    mov byte [es:si+0008ch], al               ; 26 88 84 8c 00
    12217     mov ax, word [bp-010h]                    ; 8b 46 f0
     12237    mov ax, word [bp-016h]                    ; 8b 46 ea
    1221812238    shr ax, 008h                              ; c1 e8 08
    1221912239    mov byte [es:si+0008dh], al               ; 26 88 84 8d 00
    1222012240    mov word [es:si+00276h], strict word 00010h ; 26 c7 84 76 02 10 00
    12221     mov ax, word [bp-010h]                    ; 8b 46 f0
     12241    mov ax, word [bp-016h]                    ; 8b 46 ea
    1222212242    xor dx, dx                                ; 31 d2
    12223     mov bx, word [bp-016h]                    ; 8b 5e ea
     12243    mov bx, word [bp-012h]                    ; 8b 5e ee
    1222412244    xor cx, cx                                ; 31 c9
    12225     call 09729h                               ; e8 41 13
     12245    call 09779h                               ; e8 66 13
    1222612246    push dx                                   ; 52
    1222712247    push ax                                   ; 50
    12228     mov es, [bp-012h]                         ; 8e 46 ee
     12248    mov es, [bp-00ch]                         ; 8e 46 f4
    1222912249    mov bx, word [es:di+004h]                 ; 26 8b 5d 04
    1223012250    mov cx, word [es:di+006h]                 ; 26 8b 4d 06
    1223112251    mov ax, 0026ah                            ; b8 6a 02
    1223212252    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12233     call 09642h                               ; e8 44 12
     12253    call 09688h                               ; e8 5f 12
    1223412254    mov es, [bp-00ah]                         ; 8e 46 f6
    1223512255    movzx ax, byte [es:si+00263h]             ; 26 0f b6 84 63 02
     
    1224412264    mov dx, word [bp-014h]                    ; 8b 56 ec
    1224512265    mov word [es:bx+0010eh], dx               ; 26 89 97 0e 01
    12246     mov cx, word [es:si+0027ah]               ; 26 8b 8c 7a 02
    12247     mov dx, word [es:si+0027ch]               ; 26 8b 94 7c 02
    12248     mov word [es:bx+00100h], cx               ; 26 89 8f 00 01
    12249     mov word [es:bx+00102h], dx               ; 26 89 97 02 01
     12266    mov dx, word [es:si+0027ah]               ; 26 8b 94 7a 02
     12267    mov cx, word [es:si+0027ch]               ; 26 8b 8c 7c 02
     12268    mov word [es:bx+00100h], dx               ; 26 89 97 00 01
     12269    mov word [es:bx+00102h], cx               ; 26 89 8f 02 01
    1225012270    inc ax                                    ; 40
    12251     mov es, [bp-012h]                         ; 8e 46 ee
     12271    mov es, [bp-00ch]                         ; 8e 46 f4
    1225212272    cmp word [es:di+01ch], strict byte 00000h ; 26 83 7d 1c 00
    12253     je short 08477h                           ; 74 2c
     12273    je short 084a2h                           ; 74 2c
    1225412274    mov dx, word [es:di+01ch]                 ; 26 8b 55 1c
    1225512275    dec dx                                    ; 4a
    12256     mov di, ax                                ; 89 c7
    12257     sal di, 004h                              ; c1 e7 04
     12276    mov bx, ax                                ; 89 c3
     12277    sal bx, 004h                              ; c1 e3 04
    1225812278    mov es, [bp-00ah]                         ; 8e 46 f6
    12259     mov word [es:di+0010ch], dx               ; 26 89 95 0c 01
    12260     mov word [es:di+0010eh], si               ; 26 89 b5 0e 01
     12279    mov word [es:bx+0010ch], dx               ; 26 89 97 0c 01
     12280    mov word [es:bx+0010eh], si               ; 26 89 b7 0e 01
    1226112281    mov dx, word [es:si+00264h]               ; 26 8b 94 64 02
    12262     mov bx, word [es:si+00266h]               ; 26 8b 9c 66 02
    12263     mov word [es:di+00100h], dx               ; 26 89 95 00 01
    12264     mov word [es:di+00102h], bx               ; 26 89 9d 02 01
     12282    mov cx, word [es:si+00266h]               ; 26 8b 8c 66 02
     12283    mov word [es:bx+00100h], dx               ; 26 89 97 00 01
     12284    mov word [es:bx+00102h], cx               ; 26 89 8f 02 01
    1226512285    inc ax                                    ; 40
    12266     les bx, [bp-00eh]                         ; c4 5e f2
     12286    les bx, [bp-010h]                         ; c4 5e f0
    1226712287    mov byte [es:bx+00263h], al               ; 26 88 87 63 02
    1226812288    xor ax, ax                                ; 31 c0
    12269     les bx, [bp-00eh]                         ; c4 5e f2
     12289    les bx, [bp-010h]                         ; c4 5e f0
    1227012290    movzx dx, byte [es:bx+00263h]             ; 26 0f b6 97 63 02
    1227112291    cmp ax, dx                                ; 39 d0
    12272     jnc short 08491h                          ; 73 03
     12292    jnc short 084bch                          ; 73 03
    1227312293    inc ax                                    ; 40
    12274     jmp short 08481h                          ; eb f0
     12294    jmp short 084ach                          ; eb f0
    1227512295    mov al, byte [bp-008h]                    ; 8a 46 f8
    1227612296    cmp AL, strict byte 035h                  ; 3c 35
    12277     jne short 0849eh                          ; 75 06
     12297    jne short 084c9h                          ; 75 06
    1227812298    mov byte [bp-008h], 040h                  ; c6 46 f8 40
    12279     jmp short 084b2h                          ; eb 14
     12299    jmp short 084ddh                          ; eb 14
    1228012300    cmp AL, strict byte 0a0h                  ; 3c a0
    12281     jne short 084aeh                          ; 75 0c
     12301    jne short 084d9h                          ; 75 0c
    1228212302    or byte [bp-008h], 020h                   ; 80 4e f8 20
    1228312303    or byte [es:bx+00083h], 001h              ; 26 80 8f 83 00 01
    12284     jmp short 084b2h                          ; eb 04
     12304    jmp short 084ddh                          ; eb 04
    1228512305    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1228612306    or byte [bp-008h], 005h                   ; 80 4e f8 05
    1228712307    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
    12288     mov ax, word [bp-00eh]                    ; 8b 46 f2
    12289     mov dx, word [bp-00ch]                    ; 8b 56 f4
    12290     call 08238h                               ; e8 75 fd
    12291     mov ax, word [bp-00eh]                    ; 8b 46 f2
     12308    mov ax, word [bp-010h]                    ; 8b 46 f0
     12309    mov dx, word [bp-00eh]                    ; 8b 56 f2
     12310    call 08263h                               ; e8 75 fd
     12311    mov cx, word [bp-00eh]                    ; 8b 4e f2
     12312    mov bx, word [bp-010h]                    ; 8b 5e f0
     12313    add bx, 00240h                            ; 81 c3 40 02
     12314    mov ax, word [bp-010h]                    ; 8b 46 f0
    1229212315    add ax, 0026ah                            ; 05 6a 02
    12293     mov dx, word [bp-00ch]                    ; 8b 56 f4
    12294     call 096bbh                               ; e8 ec 11
     12316    mov dx, cx                                ; 89 ca
     12317    call 09701h                               ; e8 fe 11
     12318    mov es, cx                                ; 8e c1
     12319    mov al, byte [es:bx+003h]                 ; 26 8a 47 03
     12320    test al, al                               ; 84 c0
     12321    je short 08512h                           ; 74 05
     12322    mov ax, strict word 00004h                ; b8 04 00
     12323    jmp short 08514h                          ; eb 02
     12324    xor ah, ah                                ; 30 e4
    1229512325    lea sp, [bp-006h]                         ; 8d 66 fa
    1229612326    pop di                                    ; 5f
     
    1229912329    pop bp                                    ; 5d
    1230012330    retn                                      ; c3
    12301 ahci_port_deinit_current_:                   ; 0xf84d7 LB 0x144
     12331ahci_port_deinit_current_:                   ; 0xf851c LB 0x144
    1230212332    push bp                                   ; 55
    1230312333    mov bp, sp                                ; 89 e5
     
    1231412344    mov byte [bp-00ah], al                    ; 88 46 f6
    1231512345    cmp AL, strict byte 0ffh                  ; 3c ff
    12316     je near 08612h                            ; 0f 84 17 01
     12346    je near 08657h                            ; 0f 84 17 01
    1231712347    movzx dx, al                              ; 0f b6 d0
    1231812348    sal dx, 007h                              ; c1 e2 07
     
    1232112351    xor cx, cx                                ; 31 c9
    1232212352    mov ax, si                                ; 89 f0
    12323     call 0817fh                               ; e8 70 fc
     12353    call 081aah                               ; e8 56 fc
    1232412354    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    1232512355    sal ax, 007h                              ; c1 e0 07
     
    1233012360    xor cx, cx                                ; 31 c9
    1233112361    mov ax, si                                ; 89 f0
    12332     call 081c6h                               ; e8 9d fc
     12362    call 081f1h                               ; e8 83 fc
    1233312363    cmp AL, strict byte 001h                  ; 3c 01
    12334     je short 0850fh                           ; 74 e2
     12364    je short 08554h                           ; 74 e2
    1233512365    mov cx, strict word 00020h                ; b9 20 00
    1233612366    xor bx, bx                                ; 31 db
    1233712367    mov ax, di                                ; 89 f8
    1233812368    mov dx, word [bp-00ch]                    ; 8b 56 f4
    12339     call 0975ah                               ; e8 20 12
     12369    call 097aah                               ; e8 2b 12
    1234012370    lea ax, [di+00080h]                       ; 8d 85 80 00
    1234112371    mov cx, strict word 00040h                ; b9 40 00
    1234212372    xor bx, bx                                ; 31 db
    1234312373    mov dx, word [bp-00ch]                    ; 8b 56 f4
    12344     call 0975ah                               ; e8 11 12
     12374    call 097aah                               ; e8 1c 12
    1234512375    lea ax, [di+00200h]                       ; 8d 85 00 02
    1234612376    mov cx, strict word 00060h                ; b9 60 00
    1234712377    xor bx, bx                                ; 31 db
    1234812378    mov dx, word [bp-00ch]                    ; 8b 56 f4
    12349     call 0975ah                               ; e8 02 12
     12379    call 097aah                               ; e8 0d 12
    1235012380    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1235112381    add ax, 00108h                            ; 05 08 01
     
    1244912479    pop bp                                    ; 5d
    1245012480    retn                                      ; c3
    12451 ahci_port_init_:                             ; 0xf861b LB 0x206
     12481ahci_port_init_:                             ; 0xf8660 LB 0x206
    1245212482    push bp                                   ; 55
    1245312483    mov bp, sp                                ; 89 e5
     
    1245912489    mov word [bp-00ah], dx                    ; 89 56 f6
    1246012490    mov byte [bp-008h], bl                    ; 88 5e f8
    12461     call 084d7h                               ; e8 a8 fe
     12491    call 0851ch                               ; e8 a8 fe
    1246212492    movzx dx, bl                              ; 0f b6 d3
    1246312493    sal dx, 007h                              ; c1 e2 07
     
    1246712497    mov bx, strict word 00011h                ; bb 11 00
    1246812498    xor cx, cx                                ; 31 c9
    12469     call 0817fh                               ; e8 36 fb
     12499    call 081aah                               ; e8 1c fb
    1247012500    movzx di, byte [bp-008h]                  ; 0f b6 7e f8
    1247112501    sal di, 007h                              ; c1 e7 07
     
    1247512505    mov bx, 0c011h                            ; bb 11 c0
    1247612506    xor cx, cx                                ; 31 c9
    12477     call 081c6h                               ; e8 62 fb
     12507    call 081f1h                               ; e8 48 fb
    1247812508    cmp AL, strict byte 001h                  ; 3c 01
    12479     je short 08649h                           ; 74 e1
     12509    je short 0868eh                           ; 74 e1
    1248012510    mov cx, strict word 00020h                ; b9 20 00
    1248112511    xor bx, bx                                ; 31 db
    1248212512    mov ax, si                                ; 89 f0
    1248312513    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12484     call 0975ah                               ; e8 e5 10
     12514    call 097aah                               ; e8 f0 10
    1248512515    lea ax, [si+00080h]                       ; 8d 84 80 00
    1248612516    mov cx, strict word 00040h                ; b9 40 00
    1248712517    xor bx, bx                                ; 31 db
    1248812518    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12489     call 0975ah                               ; e8 d6 10
     12519    call 097aah                               ; e8 e1 10
    1249012520    mov ax, si                                ; 89 f0
    1249112521    add ah, 002h                              ; 80 c4 02
     
    1249412524    xor bx, bx                                ; 31 db
    1249512525    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12496     call 0975ah                               ; e8 c3 10
     12526    call 097aah                               ; e8 ce 10
    1249712527    lea ax, [di+00108h]                       ; 8d 85 08 01
    1249812528    cwd                                       ; 99
     
    1250812538    mov ax, word [bp-00ch]                    ; 8b 46 f4
    1250912539    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12510     call 0821ah                               ; e8 60 fb
     12540    call 08245h                               ; e8 46 fb
    1251112541    mov es, [bp-00ah]                         ; 8e 46 f6
    1251212542    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
     
    1255312583    mov ax, si                                ; 89 f0
    1255412584    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12555     call 0821ah                               ; e8 f4 fa
     12585    call 08245h                               ; e8 da fa
    1255612586    mov es, [bp-00ah]                         ; 8e 46 f6
    1255712587    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
     
    1265812688    pop bp                                    ; 5d
    1265912689    retn                                      ; c3
    12660 @ahci_read_sectors:                          ; 0xf8821 LB 0x94
     12690@ahci_read_sectors:                          ; 0xf8866 LB 0x93
    1266112691    push bp                                   ; 55
    1266212692    mov bp, sp                                ; 89 e5
    1266312693    push si                                   ; 56
    1266412694    push di                                   ; 57
    12665     les di, [bp+004h]                         ; c4 7e 04
    12666     movzx di, byte [es:di+008h]               ; 26 0f b6 7d 08
    12667     sub di, strict byte 0000ch                ; 83 ef 0c
    12668     cmp di, strict byte 00004h                ; 83 ff 04
    12669     jbe short 08845h                          ; 76 0f
    12670     push di                                   ; 57
     12695    les bx, [bp+004h]                         ; c4 5e 04
     12696    movzx bx, byte [es:bx+008h]               ; 26 0f b6 5f 08
     12697    sub bx, strict byte 0000ch                ; 83 eb 0c
     12698    cmp bx, strict byte 00004h                ; 83 fb 04
     12699    jbe short 0888ah                          ; 76 0f
     12700    push bx                                   ; 53
    1267112701    push 00c66h                               ; 68 66 0c
    1267212702    push 00c78h                               ; 68 78 0c
    1267312703    push strict byte 00007h                   ; 6a 07
    12674     call 01972h                               ; e8 30 91
     12704    call 01972h                               ; e8 eb 90
    1267512705    add sp, strict byte 00008h                ; 83 c4 08
    12676     les bx, [bp+004h]                         ; c4 5e 04
    12677     mov dx, word [es:bx+001eeh]               ; 26 8b 97 ee 01
    12678     xor ax, ax                                ; 31 c0
    12679     call 0810eh                               ; e8 bc f8
    12680     mov es, [bp+006h]                         ; 8e 46 06
    12681     add di, bx                                ; 01 df
    12682     movzx bx, byte [es:di+001e9h]             ; 26 0f b6 9d e9 01
    12683     mov di, word [bp+004h]                    ; 8b 7e 04
     12706    les di, [bp+004h]                         ; c4 7e 04
    1268412707    mov dx, word [es:di+001eeh]               ; 26 8b 95 ee 01
    1268512708    xor ax, ax                                ; 31 c0
    12686     call 0861bh                               ; e8 b1 fd
     12709    call 08139h                               ; e8 a2 f8
     12710    mov es, [bp+006h]                         ; 8e 46 06
     12711    add bx, di                                ; 01 fb
     12712    movzx bx, byte [es:bx+001e9h]             ; 26 0f b6 9f e9 01
     12713    mov si, di                                ; 89 fe
     12714    mov dx, word [es:si+001eeh]               ; 26 8b 94 ee 01
     12715    xor ax, ax                                ; 31 c0
     12716    call 08660h                               ; e8 b2 fd
    1268712717    mov bx, strict word 00025h                ; bb 25 00
    1268812718    mov ax, di                                ; 89 f8
    1268912719    mov dx, word [bp+006h]                    ; 8b 56 06
    12690     call 0830dh                               ; e8 98 fa
     12720    call 08338h                               ; e8 7f fa
     12721    mov bx, ax                                ; 89 c3
    1269112722    mov es, [bp+006h]                         ; 8e 46 06
    12692     mov bx, di                                ; 89 fb
    12693     mov ax, word [es:bx+00ah]                 ; 26 8b 47 0a
    12694     mov word [es:bx+014h], ax                 ; 26 89 47 14
     12723    mov ax, word [es:di+00ah]                 ; 26 8b 45 0a
     12724    mov word [es:si+014h], ax                 ; 26 89 44 14
    1269512725    mov cx, ax                                ; 89 c1
    1269612726    sal cx, 009h                              ; c1 e1 09
    1269712727    shr cx, 1                                 ; d1 e9
    1269812728    mov di, word [es:di+004h]                 ; 26 8b 7d 04
    12699     mov ax, word [es:bx+006h]                 ; 26 8b 47 06
     12729    mov ax, word [es:si+006h]                 ; 26 8b 44 06
    1270012730    mov si, di                                ; 89 fe
    1270112731    mov dx, ax                                ; 89 c2
     
    1270512735    rep movsw                                 ; f3 a5
    1270612736    pop DS                                    ; 1f
    12707     mov es, [bp+006h]                         ; 8e 46 06
    12708     mov dx, word [es:bx+001eeh]               ; 26 8b 97 ee 01
     12737    les si, [bp+004h]                         ; c4 76 04
     12738    mov dx, word [es:si+001eeh]               ; 26 8b 94 ee 01
    1270912739    xor ax, ax                                ; 31 c0
    12710     call 08125h                               ; e8 7b f8
    12711     xor ax, ax                                ; 31 c0
     12740    call 08150h                               ; e8 62 f8
     12741    mov ax, bx                                ; 89 d8
    1271212742    lea sp, [bp-004h]                         ; 8d 66 fc
    1271312743    pop di                                    ; 5f
     
    1271512745    pop bp                                    ; 5d
    1271612746    retn 00004h                               ; c2 04 00
    12717 @ahci_write_sectors:                         ; 0xf88b5 LB 0x70
     12747@ahci_write_sectors:                         ; 0xf88f9 LB 0x72
    1271812748    push bp                                   ; 55
    1271912749    mov bp, sp                                ; 89 e5
     
    1272512755    sub bx, strict byte 0000ch                ; 83 eb 0c
    1272612756    cmp bx, strict byte 00004h                ; 83 fb 04
    12727     jbe short 088ddh                          ; 76 0f
     12757    jbe short 08921h                          ; 76 0f
    1272812758    push bx                                   ; 53
    1272912759    push 00c97h                               ; 68 97 0c
    1273012760    push 00c78h                               ; 68 78 0c
    1273112761    push strict byte 00007h                   ; 6a 07
    12732     call 01972h                               ; e8 98 90
     12762    call 01972h                               ; e8 54 90
    1273312763    add sp, strict byte 00008h                ; 83 c4 08
    1273412764    mov es, cx                                ; 8e c1
    1273512765    mov dx, word [es:si+001eeh]               ; 26 8b 94 ee 01
    1273612766    xor ax, ax                                ; 31 c0
    12737     call 0810eh                               ; e8 25 f8
     12767    call 08139h                               ; e8 0c f8
    1273812768    mov es, cx                                ; 8e c1
    1273912769    add bx, si                                ; 01 f3
     
    1274112771    mov dx, word [es:si+001eeh]               ; 26 8b 94 ee 01
    1274212772    xor ax, ax                                ; 31 c0
    12743     call 0861bh                               ; e8 1e fd
     12773    call 08660h                               ; e8 1f fd
    1274412774    mov bx, strict word 00035h                ; bb 35 00
    1274512775    mov ax, si                                ; 89 f0
    1274612776    mov dx, cx                                ; 89 ca
    12747     call 0830dh                               ; e8 06 fa
     12777    call 08338h                               ; e8 ed f9
     12778    mov bx, ax                                ; 89 c3
    1274812779    mov es, cx                                ; 8e c1
    1274912780    mov dx, word [es:si+00ah]                 ; 26 8b 54 0a
     
    1275112782    mov dx, word [es:si+001eeh]               ; 26 8b 94 ee 01
    1275212783    xor ax, ax                                ; 31 c0
    12753     call 08125h                               ; e8 0a f8
    12754     xor ax, ax                                ; 31 c0
     12784    call 08150h                               ; e8 ef f7
     12785    mov ax, bx                                ; 89 d8
    1275512786    lea sp, [bp-002h]                         ; 8d 66 fe
    1275612787    pop si                                    ; 5e
    1275712788    pop bp                                    ; 5d
    1275812789    retn 00004h                               ; c2 04 00
    12759 ahci_cmd_packet_:                            ; 0xf8925 LB 0x173
     12790ahci_cmd_packet_:                            ; 0xf896b LB 0x173
    1276012791    push bp                                   ; 55
    1276112792    mov bp, sp                                ; 89 e5
     
    1276912800    mov dx, strict word 0000eh                ; ba 0e 00
    1277012801    mov ax, strict word 00040h                ; b8 40 00
    12771     call 0166ch                               ; e8 2c 8d
     12802    call 0166ch                               ; e8 e6 8c
    1277212803    mov si, 00122h                            ; be 22 01
    1277312804    mov word [bp-008h], ax                    ; 89 46 f8
    1277412805    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    12775     jne short 0896bh                          ; 75 1f
     12806    jne short 089b1h                          ; 75 1f
    1277612807    mov bx, 00da8h                            ; bb a8 0d
    1277712808    mov cx, ds                                ; 8c d9
    1277812809    mov ax, strict word 00004h                ; b8 04 00
    12779     call 01931h                               ; e8 da 8f
     12810    call 01931h                               ; e8 94 8f
    1278012811    push 00caah                               ; 68 aa 0c
    1278112812    push 00cbah                               ; 68 ba 0c
    1278212813    push strict byte 00004h                   ; 6a 04
    12783     call 01972h                               ; e8 10 90
     12814    call 01972h                               ; e8 ca 8f
    1278412815    add sp, strict byte 00006h                ; 83 c4 06
    1278512816    mov ax, strict word 00001h                ; b8 01 00
    12786     jmp near 08a8fh                           ; e9 24 01
     12817    jmp near 08ad5h                           ; e9 24 01
    1278712818    test byte [bp+004h], 001h                 ; f6 46 04 01
    12788     jne short 08965h                          ; 75 f4
     12819    jne short 089abh                          ; 75 f4
    1278912820    mov ax, word [bp+006h]                    ; 8b 46 06
    1279012821    mov dx, word [bp+008h]                    ; 8b 56 08
     
    1279212823    sal ax, 1                                 ; d1 e0
    1279312824    rcl dx, 1                                 ; d1 d2
    12794     loop 0897ah                               ; e2 fa
     12825    loop 089c0h                               ; e2 fa
    1279512826    mov es, [bp-008h]                         ; 8e 46 f8
    1279612827    mov word [es:si], ax                      ; 26 89 04
     
    1280412835    mov dx, word [bp+008h]                    ; 8b 56 08
    1280512836    xor cx, cx                                ; 31 c9
    12806     call 096f0h                               ; e8 49 0d
     12837    call 09740h                               ; e8 53 0d
    1280712838    mov word [es:si+00ah], ax                 ; 26 89 44 0a
    1280812839    xor di, di                                ; 31 ff
     
    1281412845    xor ax, ax                                ; 31 c0
    1281512846    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12816     call 0810eh                               ; e8 47 f7
     12847    call 08139h                               ; e8 2c f7
    1281712848    mov es, [bp-008h]                         ; 8e 46 f8
    1281812849    mov bx, word [bp-014h]                    ; 8b 5e ec
     
    1282112852    mov dx, word [es:si+001eeh]               ; 26 8b 94 ee 01
    1282212853    xor ax, ax                                ; 31 c0
    12823     call 0861bh                               ; e8 3c fc
     12854    call 08660h                               ; e8 3b fc
    1282412855    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    1282512856    push ax                                   ; 50
     
    1282812859    mov ax, 000c0h                            ; b8 c0 00
    1282912860    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12830     call 09767h                               ; e8 74 0d
     12861    call 097b7h                               ; e8 7e 0d
    1283112862    mov es, [bp-008h]                         ; 8e 46 f8
    1283212863    mov word [es:si+014h], di                 ; 26 89 7c 14
     
    1283512866    mov ax, word [es:si+01ah]                 ; 26 8b 44 1a
    1283612867    test ax, ax                               ; 85 c0
    12837     je short 08a31h                           ; 74 27
     12868    je short 08a77h                           ; 74 27
    1283812869    dec ax                                    ; 48
    1283912870    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1284812879    mov ax, si                                ; 89 f0
    1284912880    mov dx, word [bp-008h]                    ; 8b 56 f8
    12850     call 0830dh                               ; e8 d1 f8
     12881    call 08338h                               ; e8 b6 f8
    1285112882    les bx, [bp-00eh]                         ; c4 5e f2
    1285212883    mov ax, word [es:bx+004h]                 ; 26 8b 47 04
     
    1287112902    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1287212903    mov dx, word [bp-00ch]                    ; 8b 56 f4
    12873     call 08125h                               ; e8 aa f6
     12904    call 08150h                               ; e8 8f f6
    1287412905    les bx, [bp-00eh]                         ; c4 5e f2
    1287512906    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
    1287612907    or ax, word [es:bx+004h]                  ; 26 0b 47 04
    12877     jne short 08a8dh                          ; 75 05
     12908    jne short 08ad3h                          ; 75 05
    1287812909    mov ax, strict word 00004h                ; b8 04 00
    12879     jmp short 08a8fh                          ; eb 02
     12910    jmp short 08ad5h                          ; eb 02
    1288012911    xor ax, ax                                ; 31 c0
    1288112912    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1288412915    pop bp                                    ; 5d
    1288512916    retn 0000ch                               ; c2 0c 00
    12886 ahci_port_detect_device_:                    ; 0xf8a98 LB 0x451
     12917ahci_port_detect_device_:                    ; 0xf8ade LB 0x451
    1288712918    push bp                                   ; 55
    1288812919    mov bp, sp                                ; 89 e5
     
    1289612927    movzx di, bl                              ; 0f b6 fb
    1289712928    mov bx, di                                ; 89 fb
    12898     call 0861bh                               ; e8 69 fb
     12929    call 08660h                               ; e8 68 fb
    1289912930    mov dx, strict word 0000eh                ; ba 0e 00
    1290012931    mov ax, strict word 00040h                ; b8 40 00
    12901     call 0166ch                               ; e8 b1 8b
     12932    call 0166ch                               ; e8 6b 8b
    1290212933    mov word [bp-010h], 00122h                ; c7 46 f0 22 01
    1290312934    mov word [bp-00eh], ax                    ; 89 46 f2
     
    1296812999    mov bx, strict word 0000fh                ; bb 0f 00
    1296913000    xor cx, cx                                ; 31 c9
    12970     call 081ffh                               ; e8 9a f6
     13001    call 0822ah                               ; e8 7f f6
    1297113002    test ax, ax                               ; 85 c0
    12972     je near 08ee1h                            ; 0f 84 76 03
     13003    je near 08f27h                            ; 0f 84 76 03
    1297313004    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    1297413005    sal ax, 007h                              ; c1 e0 07
     
    1299813029    mov bx, strict word 0000fh                ; bb 0f 00
    1299913030    xor cx, cx                                ; 31 c9
    13000     call 081ffh                               ; e8 4e f6
     13031    call 0822ah                               ; e8 33 f6
    1300113032    cmp ax, strict word 00001h                ; 3d 01 00
    13002     je short 08b6bh                           ; 74 b5
     13033    je short 08bb1h                           ; 74 b5
    1300313034    push strict byte 00000h                   ; 6a 00
    1300413035    mov bx, strict word 0000fh                ; bb 0f 00
     
    1300613037    mov ax, di                                ; 89 f8
    1300713038    mov dx, word [bp-01ah]                    ; 8b 56 e6
    13008     call 081ffh                               ; e8 3a f6
     13039    call 0822ah                               ; e8 1f f6
    1300913040    cmp ax, strict word 00003h                ; 3d 03 00
    13010     jne near 08ee1h                           ; 0f 85 15 03
     13041    jne near 08f27h                           ; 0f 85 15 03
    1301113042    mov ax, word [bp-016h]                    ; 8b 46 ea
    1301213043    add ax, 00130h                            ; 05 30 01
     
    1303513066    mov byte [bp-00ch], al                    ; 88 46 f4
    1303613067    cmp AL, strict byte 004h                  ; 3c 04
    13037     jnc near 08ee1h                           ; 0f 83 cf 02
     13068    jnc near 08f27h                           ; 0f 83 cf 02
    1303813069    mov dx, word [bp-016h]                    ; 8b 56 ea
    1303913070    add dx, 00118h                            ; 81 c2 18 01
     
    1304213073    mov bx, strict word 00010h                ; bb 10 00
    1304313074    xor cx, cx                                ; 31 c9
    13044     call 0813ch                               ; e8 13 f5
     13075    call 08167h                               ; e8 f8 f4
    1304513076    mov ax, word [bp-016h]                    ; 8b 46 ea
    1304613077    add ax, 00124h                            ; 05 24 01
     
    1306613097    add cl, 00ch                              ; 80 c1 0c
    1306713098    test dx, dx                               ; 85 d2
    13068     jne near 08e3dh                           ; 0f 85 d8 01
     13099    jne near 08e83h                           ; 0f 85 d8 01
    1306913100    cmp ax, 00101h                            ; 3d 01 01
    13070     jne near 08e3dh                           ; 0f 85 d1 01
     13101    jne near 08e83h                           ; 0f 85 d1 01
    1307113102    les bx, [bp-010h]                         ; c4 5e f0
    1307213103    db  066h, 026h, 0c7h, 007h, 000h, 000h, 000h, 000h
     
    1308013111    mov ax, word [bp-010h]                    ; 8b 46 f0
    1308113112    mov dx, es                                ; 8c c2
    13082     call 0830dh                               ; e8 76 f6
     13113    call 08338h                               ; e8 5b f6
    1308313114    mov byte [bp-00ah], cl                    ; 88 4e f6
    1308413115    test byte [bp-00226h], 080h               ; f6 86 da fd 80
     
    1309713128    mov di, word [bp-001ach]                  ; 8b be 54 fe
    1309813129    cmp di, 00fffh                            ; 81 ff ff 0f
    13099     jne short 08cdch                          ; 75 10
     13130    jne short 08d22h                          ; 75 10
    1310013131    cmp ax, strict word 0ffffh                ; 3d ff ff
    13101     jne short 08cdch                          ; 75 0b
     13132    jne short 08d22h                          ; 75 0b
    1310213133    mov ax, word [bp-0015eh]                  ; 8b 86 a2 fe
    1310313134    mov word [bp-014h], ax                    ; 89 46 ec
     
    1312813159    mov al, byte [bp-00ch]                    ; 8a 46 f4
    1312913160    cmp AL, strict byte 001h                  ; 3c 01
    13130     jc short 08d47h                           ; 72 0c
    13131     jbe short 08d4fh                          ; 76 12
     13161    jc short 08d8dh                           ; 72 0c
     13162    jbe short 08d95h                          ; 76 12
    1313213163    cmp AL, strict byte 003h                  ; 3c 03
    13133     je short 08d57h                           ; 74 16
     13164    je short 08d9dh                           ; 74 16
    1313413165    cmp AL, strict byte 002h                  ; 3c 02
    13135     je short 08d53h                           ; 74 0e
    13136     jmp short 08da0h                          ; eb 59
     13166    je short 08d99h                           ; 74 0e
     13167    jmp short 08de6h                          ; eb 59
    1313713168    test al, al                               ; 84 c0
    13138     jne short 08da0h                          ; 75 55
     13169    jne short 08de6h                          ; 75 55
    1313913170    mov DL, strict byte 040h                  ; b2 40
    13140     jmp short 08d59h                          ; eb 0a
     13171    jmp short 08d9fh                          ; eb 0a
    1314113172    mov DL, strict byte 048h                  ; b2 48
    13142     jmp short 08d59h                          ; eb 06
     13173    jmp short 08d9fh                          ; eb 06
    1314313174    mov DL, strict byte 050h                  ; b2 50
    13144     jmp short 08d59h                          ; eb 02
     13175    jmp short 08d9fh                          ; eb 02
    1314513176    mov DL, strict byte 058h                  ; b2 58
    1314613177    mov al, dl                                ; 88 d0
     
    1314813179    movzx bx, al                              ; 0f b6 d8
    1314913180    mov ax, bx                                ; 89 d8
    13150     call 016ach                               ; e8 47 89
     13181    call 016ach                               ; e8 01 89
    1315113182    test al, al                               ; 84 c0
    13152     je short 08da0h                           ; 74 37
     13183    je short 08de6h                           ; 74 37
    1315313184    mov al, dl                                ; 88 d0
    1315413185    db  0feh, 0c0h
    1315513186    ; inc al                                    ; fe c0
    1315613187    xor ah, ah                                ; 30 e4
    13157     call 016ach                               ; e8 3a 89
     13188    call 016ach                               ; e8 f4 88
    1315813189    xor ah, ah                                ; 30 e4
    1315913190    mov si, ax                                ; 89 c6
    1316013191    sal si, 008h                              ; c1 e6 08
    1316113192    movzx ax, dl                              ; 0f b6 c2
    13162     call 016ach                               ; e8 2d 89
     13193    call 016ach                               ; e8 e7 88
    1316313194    xor ah, ah                                ; 30 e4
    1316413195    add ax, si                                ; 01 f0
     
    1316713198    add AL, strict byte 002h                  ; 04 02
    1316813199    xor ah, ah                                ; 30 e4
    13169     call 016ach                               ; e8 1d 89
     13200    call 016ach                               ; e8 d7 88
    1317013201    xor ah, ah                                ; 30 e4
    1317113202    mov word [bp-026h], ax                    ; 89 46 da
    1317213203    mov ax, bx                                ; 89 d8
    13173     call 016ach                               ; e8 13 89
     13204    call 016ach                               ; e8 cd 88
    1317413205    xor ah, ah                                ; 30 e4
    1317513206    mov word [bp-022h], ax                    ; 89 46 de
    13176     jmp short 08dadh                          ; eb 0d
     13207    jmp short 08df3h                          ; eb 0d
    1317713208    mov bx, word [bp-014h]                    ; 8b 5e ec
    1317813209    mov cx, di                                ; 89 f9
    1317913210    mov dx, ss                                ; 8c d2
    1318013211    lea ax, [bp-026h]                         ; 8d 46 da
    13181     call 055b6h                               ; e8 09 c8
     13212    call 055b6h                               ; e8 c3 c7
    1318213213    mov bx, 00da8h                            ; bb a8 0d
    1318313214    mov cx, ds                                ; 8c d9
    1318413215    mov ax, strict word 00004h                ; b8 04 00
    13185     call 01931h                               ; e8 79 8b
     13216    call 01931h                               ; e8 33 8b
    1318613217    push di                                   ; 57
    1318713218    push word [bp-014h]                       ; ff 76 ec
     
    1320013231    push 00cdah                               ; 68 da 0c
    1320113232    push strict byte 00004h                   ; 6a 04
    13202     call 01972h                               ; e8 91 8b
     13233    call 01972h                               ; e8 4b 8b
    1320313234    add sp, strict byte 00018h                ; 83 c4 18
    1320413235    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     
    1322913260    mov dx, strict word 00075h                ; ba 75 00
    1323013261    mov ax, strict word 00040h                ; b8 40 00
    13231     call 01650h                               ; e8 24 88
     13262    call 01650h                               ; e8 de 87
    1323213263    db  0feh, 0c0h
    1323313264    ; inc al                                    ; fe c0
     
    1323513266    mov dx, strict word 00075h                ; ba 75 00
    1323613267    mov ax, strict word 00040h                ; b8 40 00
    13237     call 0165eh                               ; e8 24 88
    13238     jmp near 08ed3h                           ; e9 96 00
     13268    call 0165eh                               ; e8 de 87
     13269    jmp near 08f19h                           ; e9 96 00
    1323913270    cmp dx, 0eb14h                            ; 81 fa 14 eb
    13240     jne near 08ed3h                           ; 0f 85 8e 00
     13271    jne near 08f19h                           ; 0f 85 8e 00
    1324113272    cmp ax, 00101h                            ; 3d 01 01
    13242     jne near 08ed3h                           ; 0f 85 87 00
     13273    jne near 08f19h                           ; 0f 85 87 00
    1324313274    les bx, [bp-010h]                         ; c4 5e f0
    1324413275    db  066h, 026h, 0c7h, 007h, 000h, 000h, 000h, 000h
     
    1325213283    mov ax, word [bp-010h]                    ; 8b 46 f0
    1325313284    mov dx, es                                ; 8c c2
    13254     call 0830dh                               ; e8 96 f4
     13285    call 08338h                               ; e8 7b f4
    1325513286    test byte [bp-00226h], 080h               ; f6 86 da fd 80
    1325613287    db  00fh, 095h, 0c0h
     
    1329113322    pop bp                                    ; 5d
    1329213323    retn                                      ; c3
    13293 ahci_mem_alloc_:                             ; 0xf8ee9 LB 0x43
     13324ahci_mem_alloc_:                             ; 0xf8f2f LB 0x43
    1329413325    push bp                                   ; 55
    1329513326    mov bp, sp                                ; 89 e5
     
    1330113332    mov dx, 00413h                            ; ba 13 04
    1330213333    xor ax, ax                                ; 31 c0
    13303     call 0166ch                               ; e8 73 87
     13334    call 0166ch                               ; e8 2d 87
    1330413335    test ax, ax                               ; 85 c0
    13305     je short 08f22h                           ; 74 25
     13336    je short 08f68h                           ; 74 25
    1330613337    dec ax                                    ; 48
    1330713338    mov bx, ax                                ; 89 c3
     
    1331013341    sal ax, 1                                 ; d1 e0
    1331113342    rcl dx, 1                                 ; d1 d2
    13312     loop 08f05h                               ; e2 fa
     13343    loop 08f4bh                               ; e2 fa
    1331313344    mov si, ax                                ; 89 c6
    1331413345    mov di, dx                                ; 89 d7
     
    1331613347    shr di, 1                                 ; d1 ef
    1331713348    rcr si, 1                                 ; d1 de
    13318     loop 08f12h                               ; e2 fa
     13349    loop 08f58h                               ; e2 fa
    1331913350    mov dx, 00413h                            ; ba 13 04
    1332013351    xor ax, ax                                ; 31 c0
    13321     call 0167ah                               ; e8 5a 87
     13352    call 0167ah                               ; e8 14 87
    1332213353    mov ax, si                                ; 89 f0
    1332313354    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1332913360    pop bp                                    ; 5d
    1333013361    retn                                      ; c3
    13331 ahci_hba_init_:                              ; 0xf8f2c LB 0x125
     13362ahci_hba_init_:                              ; 0xf8f72 LB 0x125
    1333213363    push bp                                   ; 55
    1333313364    mov bp, sp                                ; 89 e5
     
    1334113372    mov dx, strict word 0000eh                ; ba 0e 00
    1334213373    mov ax, strict word 00040h                ; b8 40 00
    13343     call 0166ch                               ; e8 2a 87
     13374    call 0166ch                               ; e8 e4 86
    1334413375    mov bx, 00122h                            ; bb 22 01
    1334513376    mov word [bp-010h], ax                    ; 89 46 f0
     
    1335813389    shr eax, 010h                             ; 66 c1 e8 10
    1335913390    xchg dx, ax                               ; 92
    13360     call 08ee9h                               ; e8 82 ff
     13391    call 08f2fh                               ; e8 82 ff
    1336113392    mov di, ax                                ; 89 c7
    1336213393    test ax, ax                               ; 85 c0
    13363     je near 09030h                            ; 0f 84 c1 00
     13394    je near 09076h                            ; 0f 84 c1 00
    1336413395    mov es, [bp-010h]                         ; 8e 46 f0
    1336513396    mov word [es:bx+001eeh], di               ; 26 89 bf ee 01
     
    1337513406    mov dx, strict word 00004h                ; ba 04 00
    1337613407    mov ax, si                                ; 89 f0
    13377     call 0813ch                               ; e8 99 f1
     13408    call 08167h                               ; e8 7e f1
    1337813409    mov ax, strict word 00004h                ; b8 04 00
    1337913410    xor cx, cx                                ; 31 c9
     
    1339213423    xchg dx, ax                               ; 92
    1339313424    test AL, strict byte 001h                 ; a8 01
    13394     jne short 08fa3h                          ; 75 de
     13425    jne short 08fe9h                          ; 75 de
    1339513426    xor ax, ax                                ; 31 c0
    1339613427    xor cx, cx                                ; 31 c9
     
    1341013441    mov bx, strict word 0001fh                ; bb 1f 00
    1341113442    xor cx, cx                                ; 31 c9
    13412     call 081ffh                               ; e8 16 f2
     13443    call 0822ah                               ; e8 fb f1
    1341313444    db  0feh, 0c0h
    1341413445    ; inc al                                    ; fe c0
    1341513446    mov byte [bp-00eh], al                    ; 88 46 f2
    1341613447    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    13417     jmp short 08ffdh                          ; eb 09
     13448    jmp short 09043h                          ; eb 09
    1341813449    inc byte [bp-00ch]                        ; fe 46 f4
    1341913450    cmp byte [bp-00ch], 020h                  ; 80 7e f4 20
    13420     jnc short 0902eh                          ; 73 31
     13451    jnc short 09074h                          ; 73 31
    1342113452    movzx cx, byte [bp-00ch]                  ; 0f b6 4e f4
    1342213453    mov ax, strict word 00001h                ; b8 01 00
    1342313454    xor dx, dx                                ; 31 d2
    13424     jcxz 0900eh                               ; e3 06
     13455    jcxz 09054h                               ; e3 06
    1342513456    sal ax, 1                                 ; d1 e0
    1342613457    rcl dx, 1                                 ; d1 d2
    13427     loop 09008h                               ; e2 fa
     13458    loop 0904eh                               ; e2 fa
    1342813459    mov bx, ax                                ; 89 c3
    1342913460    mov cx, dx                                ; 89 d1
    1343013461    mov dx, strict word 0000ch                ; ba 0c 00
    1343113462    mov ax, si                                ; 89 f0
    13432     call 081c6h                               ; e8 ac f1
     13463    call 081f1h                               ; e8 91 f1
    1343313464    test al, al                               ; 84 c0
    13434     je short 08ff4h                           ; 74 d6
     13465    je short 0903ah                           ; 74 d6
    1343513466    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    1343613467    xor ax, ax                                ; 31 c0
    1343713468    mov dx, di                                ; 89 fa
    13438     call 08a98h                               ; e8 6f fa
     13469    call 08adeh                               ; e8 6f fa
    1343913470    dec byte [bp-00eh]                        ; fe 4e f2
    13440     jne short 08ff4h                          ; 75 c6
     13471    jne short 0903ah                          ; 75 c6
    1344113472    xor ax, ax                                ; 31 c0
    1344213473    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1344813479    pop bp                                    ; 5d
    1344913480    retn                                      ; c3
    13450     db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 020h, 091h, 0feh, 090h, 004h, 091h, 00ah, 091h, 010h
    13451     db  091h, 016h, 091h, 01ch, 091h, 020h, 091h
    13452 _ahci_init:                                  ; 0xf9051 LB 0xfe
     13481    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 066h, 091h, 044h, 091h, 04ah, 091h, 050h, 091h, 056h
     13482    db  091h, 05ch, 091h, 062h, 091h, 066h, 091h
     13483_ahci_init:                                  ; 0xf9097 LB 0xfe
    1345313484    push bp                                   ; 55
    1345413485    mov bp, sp                                ; 89 e5
     
    1345813489    mov ax, 00601h                            ; b8 01 06
    1345913490    mov dx, strict word 00001h                ; ba 01 00
    13460     call 0956fh                               ; e8 0d 05
     13491    call 095b5h                               ; e8 0d 05
    1346113492    mov dx, ax                                ; 89 c2
    1346213493    cmp ax, strict word 0ffffh                ; 3d ff ff
    13463     je near 09148h                            ; 0f 84 dd 00
     13494    je near 0918eh                            ; 0f 84 dd 00
    1346413495    xor al, al                                ; 30 c0
    1346513496    shr ax, 008h                              ; c1 e8 08
     
    1346913500    xor ah, ah                                ; 30 e4
    1347013501    mov bx, strict word 00034h                ; bb 34 00
    13471     call 0959ah                               ; e8 1a 05
     13502    call 095e0h                               ; e8 1a 05
    1347213503    mov cl, al                                ; 88 c1
    1347313504    test cl, cl                               ; 84 c9
    13474     je short 090a9h                           ; 74 23
     13505    je short 090efh                           ; 74 23
    1347513506    movzx bx, cl                              ; 0f b6 d9
    1347613507    movzx di, byte [bp-008h]                  ; 0f b6 7e f8
     
    1347813509    mov dx, di                                ; 89 fa
    1347913510    mov ax, si                                ; 89 f0
    13480     call 0959ah                               ; e8 02 05
     13511    call 095e0h                               ; e8 02 05
    1348113512    cmp AL, strict byte 012h                  ; 3c 12
    13482     je short 090a9h                           ; 74 0d
     13513    je short 090efh                           ; 74 0d
    1348313514    mov al, cl                                ; 88 c8
    1348413515    db  0feh, 0c0h
     
    1348713518    mov dx, di                                ; 89 fa
    1348813519    mov ax, si                                ; 89 f0
    13489     jmp short 0907dh                          ; eb d4
     13520    jmp short 090c3h                          ; eb d4
    1349013521    test cl, cl                               ; 84 c9
    13491     je near 09148h                            ; 0f 84 99 00
     13522    je near 0918eh                            ; 0f 84 99 00
    1349213523    add cl, 002h                              ; 80 c1 02
    1349313524    movzx bx, cl                              ; 0f b6 d9
     
    1349613527    mov dx, di                                ; 89 fa
    1349713528    mov ax, si                                ; 89 f0
    13498     call 0959ah                               ; e8 d6 04
     13529    call 095e0h                               ; e8 d6 04
    1349913530    cmp AL, strict byte 010h                  ; 3c 10
    13500     jne near 09148h                           ; 0f 85 7e 00
     13531    jne near 0918eh                           ; 0f 85 7e 00
    1350113532    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    1350213533    mov al, cl                                ; 88 c8
     
    1350513536    mov dx, di                                ; 89 fa
    1350613537    mov ax, si                                ; 89 f0
    13507     call 095beh                               ; e8 e2 04
     13538    call 09604h                               ; e8 e2 04
    1350813539    mov dx, ax                                ; 89 c2
    1350913540    and ax, strict word 0000fh                ; 25 0f 00
    1351013541    sub ax, strict word 00004h                ; 2d 04 00
    1351113542    cmp ax, strict word 0000bh                ; 3d 0b 00
    13512     jnbe short 09120h                         ; 77 37
     13543    jnbe short 09166h                         ; 77 37
    1351313544    push CS                                   ; 0e
    1351413545    pop ES                                    ; 07
    1351513546    mov cx, strict word 00008h                ; b9 08 00
    13516     mov di, 0903ah                            ; bf 3a 90
     13547    mov di, 09080h                            ; bf 80 90
    1351713548    repne scasb                               ; f2 ae
    1351813549    sal cx, 1                                 ; d1 e1
    1351913550    mov di, cx                                ; 89 cf
    13520     mov ax, word [cs:di-06fbfh]               ; 2e 8b 85 41 90
     13551    mov ax, word [cs:di-06f79h]               ; 2e 8b 85 87 90
    1352113552    jmp ax                                    ; ff e0
    1352213553    mov byte [bp-006h], 010h                  ; c6 46 fa 10
    13523     jmp short 09120h                          ; eb 1c
     13554    jmp short 09166h                          ; eb 1c
    1352413555    mov byte [bp-006h], 014h                  ; c6 46 fa 14
    13525     jmp short 09120h                          ; eb 16
     13556    jmp short 09166h                          ; eb 16
    1352613557    mov byte [bp-006h], 018h                  ; c6 46 fa 18
    13527     jmp short 09120h                          ; eb 10
     13558    jmp short 09166h                          ; eb 10
    1352813559    mov byte [bp-006h], 01ch                  ; c6 46 fa 1c
    13529     jmp short 09120h                          ; eb 0a
     13560    jmp short 09166h                          ; eb 0a
    1353013561    mov byte [bp-006h], 020h                  ; c6 46 fa 20
    13531     jmp short 09120h                          ; eb 04
     13562    jmp short 09166h                          ; eb 04
    1353213563    mov byte [bp-006h], 024h                  ; c6 46 fa 24
    1353313564    mov si, dx                                ; 89 d6
     
    1353613567    mov al, byte [bp-006h]                    ; 8a 46 fa
    1353713568    test al, al                               ; 84 c0
    13538     je short 09148h                           ; 74 19
     13569    je short 0918eh                           ; 74 19
    1353913570    movzx bx, al                              ; 0f b6 d8
    1354013571    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    1354113572    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    13542     call 095e0h                               ; e8 a3 04
     13573    call 09626h                               ; e8 a3 04
    1354313574    test AL, strict byte 001h                 ; a8 01
    13544     je short 09148h                           ; 74 07
     13575    je short 0918eh                           ; 74 07
    1354513576    and AL, strict byte 0f0h                  ; 24 f0
    1354613577    add ax, si                                ; 01 f0
    13547     call 08f2ch                               ; e8 e4 fd
     13578    call 08f72h                               ; e8 e4 fd
    1354813579    lea sp, [bp-004h]                         ; 8d 66 fc
    1354913580    pop di                                    ; 5f
     
    1355113582    pop bp                                    ; 5d
    1355213583    retn                                      ; c3
    13553 apm_out_str_:                                ; 0xf914f LB 0x39
     13584apm_out_str_:                                ; 0xf9195 LB 0x39
    1355413585    push bp                                   ; 55
    1355513586    mov bp, sp                                ; 89 e5
     
    1355713588    mov bx, ax                                ; 89 c3
    1355813589    cmp byte [bx], 000h                       ; 80 3f 00
    13559     je short 09164h                           ; 74 0a
     13590    je short 091aah                           ; 74 0a
    1356013591    mov al, byte [bx]                         ; 8a 07
    1356113592    out DX, AL                                ; ee
     
    1356413595    db  00ah, 0c0h
    1356513596    ; or al, al                                 ; 0a c0
    13566     jne short 0915ch                          ; 75 f8
     13597    jne short 091a2h                          ; 75 f8
    1356713598    lea sp, [bp-002h]                         ; 8d 66 fe
    1356813599    pop bx                                    ; 5b
    1356913600    pop bp                                    ; 5d
    1357013601    retn                                      ; c3
    13571     stosw                                     ; ab
     13602    db  0f1h
    1357213603    xchg cx, ax                               ; 91
    13573     jnbe short 09100h                         ; 77 92
    13574     mov bp, 0d891h                            ; bd 91 d8
    13575     xchg cx, ax                               ; 91
    13576     jnbe short 09106h                         ; 77 92
    13577     add dx, word [bp+si-06d89h]               ; 03 92 77 92
    13578     or byte [bp+si-06db4h], dl                ; 08 92 4c 92
    13579     dec sp                                    ; 4c
     13604    mov bp, 00392h                            ; bd 92 03
    1358013605    xchg dx, ax                               ; 92
    13581     dec sp                                    ; 4c
     13606    push DS                                   ; 1e
    1358213607    xchg dx, ax                               ; 92
    13583     inc di                                    ; 47
     13608    mov bp, 04992h                            ; bd 92 49
    1358413609    xchg dx, ax                               ; 92
    13585     dec sp                                    ; 4c
     13610    mov bp, 04e92h                            ; bd 92 4e
    1358613611    xchg dx, ax                               ; 92
    13587     dec sp                                    ; 4c
    1358813612    xchg dx, ax                               ; 92
    13589     inc ax                                    ; 40
    1359013613    xchg dx, ax                               ; 92
    13591 _apm_function:                               ; 0xf9188 LB 0xf5
     13614    xchg dx, ax                               ; 92
     13615    xchg dx, ax                               ; 92
     13616    xchg dx, ax                               ; 92
     13617    xchg dx, ax                               ; 92
     13618    lea dx, [bp+si-06d6eh]                    ; 8d 92 92 92
     13619    xchg dx, ax                               ; 92
     13620    xchg dx, ax                               ; 92
     13621    db  086h
     13622    xchg dx, ax                               ; 92
     13623_apm_function:                               ; 0xf91ce LB 0xf5
    1359213624    push bp                                   ; 55
    1359313625    mov bp, sp                                ; 89 e5
     
    1359713629    xor ah, ah                                ; 30 e4
    1359813630    cmp ax, strict word 0000eh                ; 3d 0e 00
    13599     jnbe near 0924ch                          ; 0f 87 b0 00
     13631    jnbe near 09292h                          ; 0f 87 b0 00
    1360013632    mov bx, ax                                ; 89 c3
    1360113633    add bx, ax                                ; 01 c3
    1360213634    mov dx, word [bp+018h]                    ; 8b 56 18
    1360313635    or dl, 001h                               ; 80 ca 01
    13604     jmp word [cs:bx-06e96h]                   ; 2e ff a7 6a 91
     13636    jmp word [cs:bx-06e50h]                   ; 2e ff a7 b0 91
    1360513637    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    1360613638    mov word [bp+00ch], 0504dh                ; c7 46 0c 4d 50
    1360713639    mov word [bp+010h], strict word 00003h    ; c7 46 10 03 00
    13608     jmp near 09277h                           ; e9 ba 00
     13640    jmp near 092bdh                           ; e9 ba 00
    1360913641    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    13610     mov word [bp+00ch], 097d4h                ; c7 46 0c d4 97
     13642    mov word [bp+00ch], 09824h                ; c7 46 0c 24 98
    1361113643    mov word [bp+010h], 0f000h                ; c7 46 10 00 f0
    1361213644    mov ax, strict word 0fff0h                ; b8 f0 ff
    1361313645    mov word [bp+006h], ax                    ; 89 46 06
    1361413646    mov word [bp+004h], ax                    ; 89 46 04
    13615     jmp near 09277h                           ; e9 9f 00
     13647    jmp near 092bdh                           ; e9 9f 00
    1361613648    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    1361713649    mov word [bp+00ch], 0da40h                ; c7 46 0c 40 da
     
    1362613658    mov si, ax                                ; 89 c6
    1362713659    sal esi, 010h                             ; 66 c1 e6 10
    13628     jmp near 09277h                           ; e9 74 00
     13660    jmp near 092bdh                           ; e9 74 00
    1362913661    sti                                       ; fb
    1363013662    hlt                                       ; f4
    13631     jmp near 09277h                           ; e9 6f 00
     13663    jmp near 092bdh                           ; e9 6f 00
    1363213664    cmp word [bp+010h], strict byte 00003h    ; 83 7e 10 03
    13633     je short 0922dh                           ; 74 1f
     13665    je short 09273h                           ; 74 1f
    1363413666    cmp word [bp+010h], strict byte 00002h    ; 83 7e 10 02
    13635     je short 09225h                           ; 74 11
     13667    je short 0926bh                           ; 74 11
    1363613668    cmp word [bp+010h], strict byte 00001h    ; 83 7e 10 01
    13637     jne short 09235h                          ; 75 1b
     13669    jne short 0927bh                          ; 75 1b
    1363813670    mov dx, 08900h                            ; ba 00 89
    1363913671    mov ax, 00d12h                            ; b8 12 0d
    13640     call 0914fh                               ; e8 2c ff
    13641     jmp short 09277h                          ; eb 52
     13672    call 09195h                               ; e8 2c ff
     13673    jmp short 092bdh                          ; eb 52
    1364213674    mov dx, 08900h                            ; ba 00 89
    1364313675    mov ax, 00d1ah                            ; b8 1a 0d
    13644     jmp short 09220h                          ; eb f3
     13676    jmp short 09266h                          ; eb f3
    1364513677    mov dx, 08900h                            ; ba 00 89
    1364613678    mov ax, 00d22h                            ; b8 22 0d
    13647     jmp short 09220h                          ; eb eb
     13679    jmp short 09266h                          ; eb eb
    1364813680    or ah, 00ah                               ; 80 cc 0a
    1364913681    mov word [bp+012h], ax                    ; 89 46 12
    1365013682    mov word [bp+018h], dx                    ; 89 56 18
    13651     jmp short 09277h                          ; eb 37
     13683    jmp short 092bdh                          ; eb 37
    1365213684    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    13653     jmp short 09277h                          ; eb 30
     13685    jmp short 092bdh                          ; eb 30
    1365413686    or ah, 080h                               ; 80 cc 80
    13655     jmp short 09238h                          ; eb ec
     13687    jmp short 0927eh                          ; eb ec
    1365613688    mov bx, 00da8h                            ; bb a8 0d
    1365713689    mov cx, ds                                ; 8c d9
    1365813690    mov ax, strict word 00004h                ; b8 04 00
    13659     call 01931h                               ; e8 da 86
     13691    call 01931h                               ; e8 94 86
    1366013692    push word [bp+00ch]                       ; ff 76 0c
    1366113693    push word [bp+012h]                       ; ff 76 12
    1366213694    push 00d2bh                               ; 68 2b 0d
    1366313695    push strict byte 00004h                   ; 6a 04
    13664     call 01972h                               ; e8 0d 87
     13696    call 01972h                               ; e8 c7 86
    1366513697    add sp, strict byte 00008h                ; 83 c4 08
    1366613698    mov ax, word [bp+012h]                    ; 8b 46 12
     
    1367313705    pop bp                                    ; 5d
    1367413706    retn                                      ; c3
    13675 pci16_select_reg_:                           ; 0xf927d LB 0x24
     13707pci16_select_reg_:                           ; 0xf92c3 LB 0x24
    1367613708    push bp                                   ; 55
    1367713709    mov bp, sp                                ; 89 e5
     
    1369013722    pop bp                                    ; 5d
    1369113723    retn                                      ; c3
    13692 pci16_find_device_:                          ; 0xf92a1 LB 0xf7
     13724pci16_find_device_:                          ; 0xf92e7 LB 0xf7
    1369313725    push bp                                   ; 55
    1369413726    mov bp, sp                                ; 89 e5
     
    1370413736    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1370513737    test bl, 007h                             ; f6 c3 07
    13706     jne short 092e9h                          ; 75 2d
     13738    jne short 0932fh                          ; 75 2d
    1370713739    mov dx, strict word 0000eh                ; ba 0e 00
    1370813740    mov ax, bx                                ; 89 d8
    13709     call 0927dh                               ; e8 b9 ff
     13741    call 092c3h                               ; e8 b9 ff
    1371013742    mov dx, 00cfeh                            ; ba fe 0c
    1371113743    in AL, DX                                 ; ec
     
    1371413746    mov byte [bp-006h], al                    ; 88 46 fa
    1371513747    cmp AL, strict byte 0ffh                  ; 3c ff
    13716     jne short 092d7h                          ; 75 06
     13748    jne short 0931dh                          ; 75 06
    1371713749    add bx, strict byte 00008h                ; 83 c3 08
    13718     jmp near 0936ah                           ; e9 93 00
     13750    jmp near 093b0h                           ; e9 93 00
    1371913751    test byte [bp-006h], 080h                 ; f6 46 fa 80
    13720     je short 092e4h                           ; 74 07
     13752    je short 0932ah                           ; 74 07
    1372113753    mov word [bp-00ah], strict word 00001h    ; c7 46 f6 01 00
    13722     jmp short 092e9h                          ; eb 05
     13754    jmp short 0932fh                          ; eb 05
    1372313755    mov word [bp-00ah], strict word 00008h    ; c7 46 f6 08 00
    1372413756    mov al, byte [bp-006h]                    ; 8a 46 fa
    1372513757    and AL, strict byte 007h                  ; 24 07
    1372613758    cmp AL, strict byte 001h                  ; 3c 01
    13727     jne short 09311h                          ; 75 1f
     13759    jne short 09357h                          ; 75 1f
    1372813760    mov ax, bx                                ; 89 d8
    1372913761    shr ax, 008h                              ; c1 e8 08
    1373013762    test ax, ax                               ; 85 c0
    13731     jne short 09311h                          ; 75 16
     13763    jne short 09357h                          ; 75 16
    1373213764    mov dx, strict word 0001ah                ; ba 1a 00
    1373313765    mov ax, bx                                ; 89 d8
    13734     call 0927dh                               ; e8 7a ff
     13766    call 092c3h                               ; e8 7a ff
    1373513767    mov dx, 00cfeh                            ; ba fe 0c
    1373613768    in AL, DX                                 ; ec
     
    1373813770    ; sub ah, ah                                ; 2a e4
    1373913771    cmp al, byte [bp-008h]                    ; 3a 46 f8
    13740     jbe short 09311h                          ; 76 03
     13772    jbe short 09357h                          ; 76 03
    1374113773    mov byte [bp-008h], al                    ; 88 46 f8
    1374213774    test di, di                               ; 85 ff
    13743     je short 0931ah                           ; 74 05
     13775    je short 09360h                           ; 74 05
    1374413776    mov dx, strict word 00008h                ; ba 08 00
    13745     jmp short 0931ch                          ; eb 02
     13777    jmp short 09362h                          ; eb 02
    1374613778    xor dx, dx                                ; 31 d2
    1374713779    mov ax, bx                                ; 89 d8
    13748     call 0927dh                               ; e8 5c ff
     13780    call 092c3h                               ; e8 5c ff
    1374913781    mov dx, 00cfch                            ; ba fc 0c
    1375013782    in eax, DX                                ; 66 ed
     
    1375713789    mov word [bp-010h], strict word 00000h    ; c7 46 f0 00 00
    1375813790    test di, di                               ; 85 ff
    13759     je short 0934bh                           ; 74 0f
     13791    je short 09391h                           ; 74 0f
    1376013792    mov cx, strict word 00008h                ; b9 08 00
    1376113793    shr dx, 1                                 ; d1 ea
    1376213794    rcr ax, 1                                 ; d1 d8
    13763     loop 0933fh                               ; e2 fa
     13795    loop 09385h                               ; e2 fa
    1376413796    mov word [bp-00eh], ax                    ; 89 46 f2
    1376513797    mov word [bp-00ch], dx                    ; 89 56 f4
    1376613798    mov ax, word [bp-00ch]                    ; 8b 46 f4
    1376713799    cmp ax, word [bp-014h]                    ; 3b 46 ec
    13768     jne short 0935bh                          ; 75 08
     13800    jne short 093a1h                          ; 75 08
    1376913801    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1377013802    cmp ax, word [bp-012h]                    ; 3b 46 ee
    13771     je short 09361h                           ; 74 06
     13803    je short 093a7h                           ; 74 06
    1377213804    cmp word [bp-010h], strict byte 00000h    ; 83 7e f0 00
    13773     je short 09367h                           ; 74 06
     13805    je short 093adh                           ; 74 06
    1377413806    dec si                                    ; 4e
    1377513807    cmp si, strict byte 0ffffh                ; 83 fe ff
    13776     je short 09379h                           ; 74 12
     13808    je short 093bfh                           ; 74 12
    1377713809    add bx, word [bp-00ah]                    ; 03 5e f6
    1377813810    mov dx, bx                                ; 89 da
     
    1378013812    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    1378113813    cmp dx, ax                                ; 39 c2
    13782     jbe near 092b7h                           ; 0f 86 3e ff
     13814    jbe near 092fdh                           ; 0f 86 3e ff
    1378313815    cmp si, strict byte 0ffffh                ; 83 fe ff
    13784     jne short 09382h                          ; 75 04
     13816    jne short 093c8h                          ; 75 04
    1378513817    mov ax, bx                                ; 89 d8
    13786     jmp short 09385h                          ; eb 03
     13818    jmp short 093cbh                          ; eb 03
    1378713819    mov ax, strict word 0ffffh                ; b8 ff ff
    1378813820    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1379113823    pop bp                                    ; 5d
    1379213824    retn                                      ; c3
    13793     jp short 09322h                           ; 7a 94
     13825    rcl byte [si-06b26h], 0edh                ; c0 94 da 94 ed
    1379413826    xchg sp, ax                               ; 94
    13795     xchg sp, ax                               ; 94
    13796     cmpsw                                     ; a7
    13797     xchg sp, ax                               ; 94
    13798     mov sp, 0cf94h                            ; bc 94 cf
    13799     xchg sp, ax                               ; 94
    13800     loop 0932ch                               ; e2 94
    13801 _pci16_function:                             ; 0xf9398 LB 0x1d7
     13827    add dl, byte [di-06aebh]                  ; 02 95 15 95
     13828    db  028h
     13829    xchg bp, ax                               ; 95
     13830_pci16_function:                             ; 0xf93de LB 0x1d7
    1380213831    push bp                                   ; 55
    1380313832    mov bp, sp                                ; 89 e5
     
    1381313842    xor ah, ah                                ; 30 e4
    1381413843    cmp bx, strict byte 00003h                ; 83 fb 03
    13815     jc short 093d1h                           ; 72 1a
    13816     jbe short 09429h                          ; 76 70
     13844    jc short 09417h                           ; 72 1a
     13845    jbe short 0946fh                          ; 76 70
    1381713846    cmp bx, strict byte 0000eh                ; 83 fb 0e
    13818     je near 094f6h                            ; 0f 84 36 01
     13847    je near 0953ch                            ; 0f 84 36 01
    1381913848    cmp bx, strict byte 00008h                ; 83 fb 08
    13820     jc near 0953bh                            ; 0f 82 74 01
     13849    jc near 09581h                            ; 0f 82 74 01
    1382113850    cmp bx, strict byte 0000dh                ; 83 fb 0d
    13822     jbe near 0944eh                           ; 0f 86 80 00
    13823     jmp near 0953bh                           ; e9 6a 01
     13851    jbe near 09494h                           ; 0f 86 80 00
     13852    jmp near 09581h                           ; e9 6a 01
    1382413853    cmp bx, strict byte 00002h                ; 83 fb 02
    13825     je short 093f9h                           ; 74 23
     13854    je short 0943fh                           ; 74 23
    1382613855    cmp bx, strict byte 00001h                ; 83 fb 01
    13827     jne near 0953bh                           ; 0f 85 5e 01
     13856    jne near 09581h                           ; 0f 85 5e 01
    1382813857    mov word [bp+020h], strict word 00001h    ; c7 46 20 01 00
    1382913858    mov word [bp+014h], 00210h                ; c7 46 14 10 02
     
    1383113860    mov word [bp+018h], 04350h                ; c7 46 18 50 43
    1383213861    mov word [bp+01ah], 02049h                ; c7 46 1a 49 20
    13833     jmp near 09568h                           ; e9 6f 01
     13862    jmp near 095aeh                           ; e9 6f 01
    1383413863    cmp word [bp+018h], strict byte 0ffffh    ; 83 7e 18 ff
    13835     jne short 09405h                          ; 75 06
     13864    jne short 0944bh                          ; 75 06
    1383613865    or ah, 083h                               ; 80 cc 83
    13837     jmp near 09561h                           ; e9 5c 01
     13866    jmp near 095a7h                           ; e9 5c 01
    1383813867    mov bx, word [bp+008h]                    ; 8b 5e 08
    1383913868    mov dx, word [bp+01ch]                    ; 8b 56 1c
    1384013869    mov ax, word [bp+018h]                    ; 8b 46 18
    1384113870    xor cx, cx                                ; 31 c9
    13842     call 092a1h                               ; e8 8e fe
     13871    call 092e7h                               ; e8 8e fe
    1384313872    cmp ax, strict word 0ffffh                ; 3d ff ff
    13844     jne short 09423h                          ; 75 0b
     13873    jne short 09469h                          ; 75 0b
    1384513874    mov ax, word [bp+020h]                    ; 8b 46 20
    1384613875    xor ah, ah                                ; 30 e4
    1384713876    or ah, 086h                               ; 80 cc 86
    13848     jmp near 09561h                           ; e9 3e 01
     13877    jmp near 095a7h                           ; e9 3e 01
    1384913878    mov word [bp+014h], ax                    ; 89 46 14
    13850     jmp near 09568h                           ; e9 3f 01
     13879    jmp near 095aeh                           ; e9 3f 01
    1385113880    mov bx, word [bp+008h]                    ; 8b 5e 08
    1385213881    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1385313882    mov dx, word [bp+01eh]                    ; 8b 56 1e
    1385413883    mov cx, strict word 00001h                ; b9 01 00
    13855     call 092a1h                               ; e8 69 fe
     13884    call 092e7h                               ; e8 69 fe
    1385613885    cmp ax, strict word 0ffffh                ; 3d ff ff
    13857     jne short 09448h                          ; 75 0b
     13886    jne short 0948eh                          ; 75 0b
    1385813887    mov ax, word [bp+020h]                    ; 8b 46 20
    1385913888    xor ah, ah                                ; 30 e4
    1386013889    or ah, 086h                               ; 80 cc 86
    13861     jmp near 09561h                           ; e9 19 01
     13890    jmp near 095a7h                           ; e9 19 01
    1386213891    mov word [bp+014h], ax                    ; 89 46 14
    13863     jmp near 09568h                           ; e9 1a 01
     13892    jmp near 095aeh                           ; e9 1a 01
    1386413893    cmp word [bp+004h], 00100h                ; 81 7e 04 00 01
    13865     jc short 0945bh                           ; 72 06
     13894    jc short 094a1h                           ; 72 06
    1386613895    or ah, 087h                               ; 80 cc 87
    13867     jmp near 09561h                           ; e9 06 01
     13896    jmp near 095a7h                           ; e9 06 01
    1386813897    mov dx, word [bp+004h]                    ; 8b 56 04
    1386913898    mov ax, word [bp+014h]                    ; 8b 46 14
    13870     call 0927dh                               ; e8 19 fe
     13899    call 092c3h                               ; e8 19 fe
    1387113900    mov bx, word [bp+020h]                    ; 8b 5e 20
    1387213901    xor bh, bh                                ; 30 ff
    1387313902    sub bx, strict byte 00008h                ; 83 eb 08
    1387413903    cmp bx, strict byte 00005h                ; 83 fb 05
    13875     jnbe near 09568h                          ; 0f 87 f5 00
     13904    jnbe near 095aeh                          ; 0f 87 f5 00
    1387613905    add bx, bx                                ; 01 db
    13877     jmp word [cs:bx-06c74h]                   ; 2e ff a7 8c 93
     13906    jmp word [cs:bx-06c2eh]                   ; 2e ff a7 d2 93
    1387813907    mov bx, word [bp+01ch]                    ; 8b 5e 1c
    1387913908    xor bl, bl                                ; 30 db
     
    1388613915    or bx, ax                                 ; 09 c3
    1388713916    mov word [bp+01ch], bx                    ; 89 5e 1c
    13888     jmp near 09568h                           ; e9 d4 00
     13917    jmp near 095aeh                           ; e9 d4 00
    1388913918    mov dx, word [bp+004h]                    ; 8b 56 04
    1389013919    xor dh, dh                                ; 30 f6
     
    1389313922    in ax, DX                                 ; ed
    1389413923    mov word [bp+01ch], ax                    ; 89 46 1c
    13895     jmp near 09568h                           ; e9 c1 00
     13924    jmp near 095aeh                           ; e9 c1 00
    1389613925    mov dx, 00cfch                            ; ba fc 0c
    1389713926    in eax, DX                                ; 66 ed
     
    1390213931    mov word [bp+01ch], ax                    ; 89 46 1c
    1390313932    mov word [bp+01eh], dx                    ; 89 56 1e
    13904     jmp near 09568h                           ; e9 ac 00
     13933    jmp near 095aeh                           ; e9 ac 00
    1390513934    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1390613935    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1390913938    add dx, 00cfch                            ; 81 c2 fc 0c
    1391013939    out DX, AL                                ; ee
    13911     jmp near 09568h                           ; e9 99 00
     13940    jmp near 095aeh                           ; e9 99 00
    1391213941    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1391313942    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1391613945    add dx, 00cfch                            ; 81 c2 fc 0c
    1391713946    out DX, ax                                ; ef
    13918     jmp near 09568h                           ; e9 86 00
     13947    jmp near 095aeh                           ; e9 86 00
    1391913948    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1392013949    mov cx, word [bp+01eh]                    ; 8b 4e 1e
     
    1392513954    ; mov ax, cx                                ; 8b c1
    1392613955    out DX, eax                               ; 66 ef
    13927     jmp short 09568h                          ; eb 72
     13956    jmp short 095aeh                          ; eb 72
    1392813957    mov bx, word [bp+004h]                    ; 8b 5e 04
    1392913958    mov es, [bp+026h]                         ; 8e 46 26
     
    1393213961    mov cx, word [0f4a0h]                     ; 8b 0e a0 f4
    1393313962    cmp cx, word [es:bx]                      ; 26 3b 0f
    13934     jbe short 0951ch                          ; 76 11
     13963    jbe short 09562h                          ; 76 11
    1393513964    mov ax, word [bp+020h]                    ; 8b 46 20
    1393613965    xor ah, ah                                ; 30 e4
     
    1393813967    mov word [bp+020h], ax                    ; 89 46 20
    1393913968    or word [bp+02ch], strict byte 00001h     ; 83 4e 2c 01
    13940     jmp short 09530h                          ; eb 14
     13969    jmp short 09576h                          ; eb 14
    1394113970    les di, [es:bx+002h]                      ; 26 c4 7f 02
    1394213971    mov si, 0f2c0h                            ; be c0 f2
     
    1395013979    les bx, [bp-008h]                         ; c4 5e f8
    1395113980    mov word [es:bx], ax                      ; 26 89 07
    13952     jmp short 09568h                          ; eb 2d
     13981    jmp short 095aeh                          ; eb 2d
    1395313982    mov bx, 00da8h                            ; bb a8 0d
    1395413983    mov cx, ds                                ; 8c d9
    1395513984    mov ax, strict word 00004h                ; b8 04 00
    13956     call 01931h                               ; e8 eb 83
     13985    call 01931h                               ; e8 a5 83
    1395713986    mov ax, word [bp+014h]                    ; 8b 46 14
    1395813987    push ax                                   ; 50
     
    1396113990    push 00d5eh                               ; 68 5e 0d
    1396213991    push strict byte 00004h                   ; 6a 04
    13963     call 01972h                               ; e8 1c 84
     13992    call 01972h                               ; e8 d6 83
    1396413993    add sp, strict byte 00008h                ; 83 c4 08
    1396513994    mov ax, word [bp+020h]                    ; 8b 46 20
     
    1397314002    pop bp                                    ; 5d
    1397414003    retn                                      ; c3
    13975 pci_find_classcode_:                         ; 0xf956f LB 0x2b
     14004pci_find_classcode_:                         ; 0xf95b5 LB 0x2b
    1397614005    push bp                                   ; 55
    1397714006    mov bp, sp                                ; 89 e5
     
    1398814017    int 01ah                                  ; cd 1a
    1398914018    cmp ah, 000h                              ; 80 fc 00
    13990     je near 09590h                            ; 0f 84 03 00
     14019    je near 095d6h                            ; 0f 84 03 00
    1399114020    mov bx, strict word 0ffffh                ; bb ff ff
    1399214021    mov ax, bx                                ; 89 d8
     
    1399714026    pop bp                                    ; 5d
    1399814027    retn                                      ; c3
    13999 pci_read_config_byte_:                       ; 0xf959a LB 0x24
     14028pci_read_config_byte_:                       ; 0xf95e0 LB 0x24
    1400014029    push bp                                   ; 55
    1400114030    mov bp, sp                                ; 89 e5
     
    1401614045    pop bp                                    ; 5d
    1401714046    retn                                      ; c3
    14018 pci_read_config_word_:                       ; 0xf95be LB 0x22
     14047pci_read_config_word_:                       ; 0xf9604 LB 0x22
    1401914048    push bp                                   ; 55
    1402014049    mov bp, sp                                ; 89 e5
     
    1403514064    pop bp                                    ; 5d
    1403614065    retn                                      ; c3
    14037 pci_read_config_dword_:                      ; 0xf95e0 LB 0x27
     14066pci_read_config_dword_:                      ; 0xf9626 LB 0x27
    1403814067    push bp                                   ; 55
    1403914068    mov bp, sp                                ; 89 e5
     
    1405614085    pop bp                                    ; 5d
    1405714086    retn                                      ; c3
    14058 vds_is_present_:                             ; 0xf9607 LB 0x1d
     14087vds_is_present_:                             ; 0xf964d LB 0x1d
    1405914088    push bx                                   ; 53
    1406014089    push bp                                   ; 55
     
    1406414093    mov es, ax                                ; 8e c0
    1406514094    test byte [es:bx], 020h                   ; 26 f6 07 20
    14066     je short 0961fh                           ; 74 06
     14095    je short 09665h                           ; 74 06
    1406714096    mov ax, strict word 00001h                ; b8 01 00
    1406814097    pop bp                                    ; 5d
     
    1407314102    pop bx                                    ; 5b
    1407414103    retn                                      ; c3
    14075 vds_real_to_lin_:                            ; 0xf9624 LB 0x1e
     14104vds_real_to_lin_:                            ; 0xf966a LB 0x1e
    1407614105    push bx                                   ; 53
    1407714106    push cx                                   ; 51
     
    1408414113    sal ax, 1                                 ; d1 e0
    1408514114    rcl dx, 1                                 ; d1 d2
    14086     loop 09632h                               ; e2 fa
     14115    loop 09678h                               ; e2 fa
    1408714116    xor cx, cx                                ; 31 c9
    1408814117    add ax, bx                                ; 01 d8
     
    1409214121    pop bx                                    ; 5b
    1409314122    retn                                      ; c3
    14094 vds_build_sg_list_:                          ; 0xf9642 LB 0x79
     14123vds_build_sg_list_:                          ; 0xf9688 LB 0x79
    1409514124    push bp                                   ; 55
    1409614125    mov bp, sp                                ; 89 e5
     
    1410614135    mov bx, word [bp+006h]                    ; 8b 5e 06
    1410714136    mov word [es:di+002h], bx                 ; 26 89 5d 02
    14108     call 09624h                               ; e8 c3 ff
     14137    call 0966ah                               ; e8 c3 ff
    1410914138    mov es, si                                ; 8e c6
    1411014139    mov word [es:di+004h], ax                 ; 26 89 45 04
    1411114140    mov word [es:di+006h], dx                 ; 26 89 55 06
    1411214141    mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00
    14113     call 09607h                               ; e8 93 ff
     14142    call 0964dh                               ; e8 93 ff
    1411414143    test ax, ax                               ; 85 c0
    14115     je short 0968bh                           ; 74 13
     14144    je short 096d1h                           ; 74 13
    1411614145    mov es, si                                ; 8e c6
    1411714146    mov ax, 08105h                            ; b8 05 81
    1411814147    mov dx, strict word 00000h                ; ba 00 00
    1411914148    int 04bh                                  ; cd 4b
    14120     jc near 09688h                            ; 0f 82 02 00
     14149    jc near 096ceh                            ; 0f 82 02 00
    1412114150    db  032h, 0c0h
    1412214151    ; xor al, al                                ; 32 c0
    1412314152    cbw                                       ; 98
    14124     jmp short 096b2h                          ; eb 27
     14153    jmp short 096f8h                          ; eb 27
    1412514154    mov es, si                                ; 8e c6
    1412614155    mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00
     
    1413914168    pop bp                                    ; 5d
    1414014169    retn 00004h                               ; c2 04 00
    14141 vds_free_sg_list_:                           ; 0xf96bb LB 0x35
     14170vds_free_sg_list_:                           ; 0xf9701 LB 0x3f
    1414214171    push bp                                   ; 55
    1414314172    mov bp, sp                                ; 89 e5
     
    1414514174    push di                                   ; 57
    1414614175    mov bx, ax                                ; 89 c3
    14147     call 09607h                               ; e8 42 ff
     14176    call 0964dh                               ; e8 42 ff
    1414814177    test ax, ax                               ; 85 c0
    14149     je short 096dch                           ; 74 13
     14178    je short 09722h                           ; 74 13
    1415014179    mov di, bx                                ; 89 df
    1415114180    mov es, dx                                ; 8e c2
     
    1415314182    mov dx, strict word 00000h                ; ba 00 00
    1415414183    int 04bh                                  ; cd 4b
    14155     jc near 096dbh                            ; 0f 82 02 00
     14184    jc near 09721h                            ; 0f 82 02 00
    1415614185    db  032h, 0c0h
    1415714186    ; xor al, al                                ; 32 c0
     
    1416414193    pop bp                                    ; 5d
    1416514194    retn                                      ; c3
    14166     times 0x5 db 0
    14167 __U4D:                                       ; 0xf96f0 LB 0x39
     14195    times 0xf db 0
     14196__U4D:                                       ; 0xf9740 LB 0x39
    1416814197    pushfw                                    ; 9c
    1416914198    push eax                                  ; 66 50
     
    1419514224    popfw                                     ; 9d
    1419614225    retn                                      ; c3
    14197 __U4M:                                       ; 0xf9729 LB 0x31
     14226__U4M:                                       ; 0xf9779 LB 0x31
    1419814227    pushfw                                    ; 9c
    1419914228    push eax                                  ; 66 50
     
    1422014249    popfw                                     ; 9d
    1422114250    retn                                      ; c3
    14222 _fmemset_:                                   ; 0xf975a LB 0xd
     14251_fmemset_:                                   ; 0xf97aa LB 0xd
    1422314252    push di                                   ; 57
    1422414253    mov es, dx                                ; 8e c2
     
    1423014259    pop di                                    ; 5f
    1423114260    retn                                      ; c3
    14232 _fmemcpy_:                                   ; 0xf9767 LB 0x33
     14261_fmemcpy_:                                   ; 0xf97b7 LB 0x33
    1423314262    push bp                                   ; 55
    1423414263    db  08bh, 0ech
     
    1425014279    leave                                     ; c9
    1425114280    retn                                      ; c3
    14252     add byte [bx+si-04d69h], dh               ; 00 b0 97 b2
    14253     xchg di, ax                               ; 97
    14254     mov DH, strict byte 097h                  ; b6 97
    14255     mov DH, strict byte 097h                  ; b6 97
    14256     mov DH, strict byte 097h                  ; b6 97
    14257     mov ax, 0b897h                            ; b8 97 b8
    14258     xchg di, ax                               ; 97
    14259     mov dx, 0be97h                            ; ba 97 be
    14260     xchg di, ax                               ; 97
    14261     mov si, 0c097h                            ; be 97 c0
    14262     xchg di, ax                               ; 97
    14263     lds dx, [bx-06839h]                       ; c5 97 c7 97
    14264 apm_worker:                                  ; 0xf979a LB 0x3a
     14281    add byte [bx+si], al                      ; 00 00
     14282    cbw                                       ; 98
     14283    add bl, byte [bx+si-067fah]               ; 02 98 06 98
     14284    push ES                                   ; 06
     14285    cbw                                       ; 98
     14286    push ES                                   ; 06
     14287    cbw                                       ; 98
     14288    or byte [bx+si-067f8h], bl                ; 08 98 08 98
     14289    or bl, byte [bx+si-067f2h]                ; 0a 98 0e 98
     14290    push CS                                   ; 0e
     14291    cbw                                       ; 98
     14292    adc byte [bx+si-067ebh], bl               ; 10 98 15 98
     14293    pop SS                                    ; 17
     14294    cbw                                       ; 98
     14295apm_worker:                                  ; 0xf97ea LB 0x3a
    1426514296    sti                                       ; fb
    1426614297    push ax                                   ; 50
     
    1427414305    pop ax                                    ; 58
    1427514306    mov AH, strict byte 053h                  ; b4 53
    14276     jnc short 097d0h                          ; 73 25
    14277     jmp word [cs:bp-06880h]                   ; 2e ff a6 80 97
    14278     jmp short 097ceh                          ; eb 1c
     14307    jnc short 09820h                          ; 73 25
     14308    jmp word [cs:bp-06830h]                   ; 2e ff a6 d0 97
     14309    jmp short 0981eh                          ; eb 1c
    1427914310    sti                                       ; fb
    1428014311    hlt                                       ; f4
    14281     jmp short 097ceh                          ; eb 18
    14282     jmp short 097ceh                          ; eb 16
    14283     jmp short 097d0h                          ; eb 16
     14312    jmp short 0981eh                          ; eb 18
     14313    jmp short 0981eh                          ; eb 16
     14314    jmp short 09820h                          ; eb 16
    1428414315    mov AH, strict byte 080h                  ; b4 80
    14285     jmp short 097d2h                          ; eb 14
    14286     jmp short 097d0h                          ; eb 10
     14316    jmp short 09822h                          ; eb 14
     14317    jmp short 09820h                          ; eb 10
    1428714318    mov ax, 00102h                            ; b8 02 01
    14288     jmp short 097ceh                          ; eb 09
    14289     jmp short 097ceh                          ; eb 07
     14319    jmp short 0981eh                          ; eb 09
     14320    jmp short 0981eh                          ; eb 07
    1429014321    mov BL, strict byte 000h                  ; b3 00
    1429114322    mov cx, strict word 00000h                ; b9 00 00
    14292     jmp short 097ceh                          ; eb 00
     14323    jmp short 0981eh                          ; eb 00
    1429314324    clc                                       ; f8
    1429414325    retn                                      ; c3
     
    1429614327    stc                                       ; f9
    1429714328    retn                                      ; c3
    14298 apm_pm16_entry:                              ; 0xf97d4 LB 0x11
     14329apm_pm16_entry:                              ; 0xf9824 LB 0x11
    1429914330    mov AH, strict byte 002h                  ; b4 02
    1430014331    push DS                                   ; 1e
     
    1430414335    add bp, strict byte 00008h                ; 83 c5 08
    1430514336    mov ds, bp                                ; 8e dd
    14306     call 0979ah                               ; e8 b8 ff
     14337    call 097eah                               ; e8 b8 ff
    1430714338    pop bp                                    ; 5d
    1430814339    pop DS                                    ; 1f
    1430914340    retf                                      ; cb
    1431014341
    14311   ; Padding 0x421b bytes at 0xf97e5
    14312   times 16923 db 0
     14342  ; Padding 0x41cb bytes at 0xf9835
     14343  times 16843 db 0
    1431314344
    1431414345section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO
     
    1435714388    add bp, strict byte 00008h                ; 83 c5 08
    1435814389    push ebp                                  ; 66 55
    14359     mov bp, 097d6h                            ; bd d6 97
     14390    mov bp, 09826h                            ; bd 26 98
    1436014391    add byte [bx+si], al                      ; 00 00
    1436114392    push ebp                                  ; 66 55
     
    1507915110    call 01badh                               ; e8 71 38
    1508015111    call 01fa7h                               ; e8 68 3c
    15081     call 09051h                               ; e8 0f ad
    15082     call 080a8h                               ; e8 63 9d
     15112    call 09097h                               ; e8 55 ad
     15113    call 080d3h                               ; e8 8e 9d
    1508315114    call 0ed2fh                               ; e8 e7 09
    1508415115    call 0e2d2h                               ; e8 87 ff
     
    1608016111    popfw                                     ; 9d
    1608116112    jmp short 0f895h                          ; eb 13
    16082     call 09188h                               ; e8 03 99
     16113    call 091ceh                               ; e8 49 99
    1608316114    jmp short 0f87ch                          ; eb f5
    1608416115int15_handler_mouse:                         ; 0xff887 LB 0x5
     
    1620916240    db  018h, 018h, 018h, 000h, 018h, 018h, 018h, 000h, 0e0h, 030h, 030h, 01ch, 030h, 030h, 0e0h, 000h
    1621016241    db  076h, 0dch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 010h, 038h, 06ch, 0c6h, 0c6h, 0feh, 000h
    16211     db  080h, 0fch, 0b1h, 075h, 00fh, 006h, 01eh, 00eh, 01fh, 0fch, 066h, 060h, 0e8h, 01bh, 095h, 066h
     16242    db  080h, 0fch, 0b1h, 075h, 00fh, 006h, 01eh, 00eh, 01fh, 0fch, 066h, 060h, 0e8h, 061h, 095h, 066h
    1621216243    db  061h, 01fh, 007h, 0cfh, 006h, 01eh, 060h, 00eh, 01fh, 0fch, 0e8h, 0cah, 06dh, 061h, 01fh, 007h
    1621316244    db  0cfh
     
    1631816349cpu_reset:                                   ; 0xffff0 LB 0x10
    1631916350    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    16320     db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 05dh
     16351    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 03eh
  • trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative.md5sum

    r55078 r55260  
    1 52f20c4019f05d0a8b5d96985ecebb03 *VBoxPcBios.rom
     1dada536c6edc89409a8ebf3822aedeb9 *VBoxPcBios.rom
  • trunk/src/VBox/Installer/linux/distributions_deb

    r55127 r55260  
    33_Debian_wheezy   = DEBIAN_7_0
    44_Debian_squeeze  = DEBIAN_6_0
     5_Ubuntu_trusty   = UBUNTU_14_04
    56_Ubuntu_raring   = UBUNTU_13_04
    67_Ubuntu_quantal  = UBUNTU_12_10
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette