VirtualBox

Changeset 50167 in vbox for trunk/src/VBox/Devices


Ignore:
Timestamp:
Jan 22, 2014 7:47:00 PM (11 years ago)
Author:
vboxsync
Message:

update-pcbios-source

Location:
trunk/src/VBox/Devices
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/BiosCommonCode/MakeAlternativeSource.cpp

    r48664 r50167  
    10271027                     && pb[4] == 0x8c
    10281028                     && pb[5] == 0x2f)
     1029                 || (   pb[0] == 0x66
     1030                     && pb[1] == 0x9e
     1031                     && pb[2] == 0x66
     1032                     && pb[3] == 0xca
     1033                     && pb[4] == 0x66
     1034                     && pb[5] == 0x55)
    10291035                 || 0
    10301036                 )
  • trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative.asm

    r50159 r50167  
    33; Auto Generated source file. Do not edit.
    44;
     5
     6;
     7; Source file: post.c
     8;
     9;  BIOS POST routines. Used only during initialization.
     10
     11
     12
     13;  Copyright (C) 2004-2014 Oracle Corporation
     14
     15;  This file is part of VirtualBox Open Source Edition (OSE), as
     16;  available from http://www.virtualbox.org. This file is free software;
     17;  you can redistribute it and/or modify it under the terms of the GNU
     18;  General Public License (GPL) as published by the Free Software
     19;  Foundation, in version 2 as it comes in the "COPYING" file of the
     20;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
     21;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
    522
    623;
     
    839856    db  001h, 000h, 002h, 002h, 003h, 003h, 004h, 004h, 005h, 005h, 00eh, 006h, 00fh, 006h, 000h
    840857_pktacc:                                     ; 0xf006a LB 0xc
    841     db  000h, 000h, 000h, 000h, 000h, 000h, 03fh, 028h, 0ech, 078h, 0b4h, 086h
     858    db  000h, 000h, 000h, 000h, 000h, 000h, 08fh, 028h, 02ah, 079h, 0f2h, 086h
    842859_softrst:                                    ; 0xf0076 LB 0xc
    843     db  000h, 000h, 000h, 000h, 000h, 000h, 027h, 02bh, 041h, 036h, 041h, 036h
     860    db  000h, 000h, 000h, 000h, 000h, 000h, 077h, 02bh, 091h, 036h, 091h, 036h
    844861_dskacc:                                     ; 0xf0082 LB 0x2e
    845     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 088h, 027h, 002h, 028h, 000h, 000h, 000h, 000h
    846     db  080h, 077h, 036h, 078h, 0b0h, 085h, 044h, 086h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
     862    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0d8h, 027h, 052h, 028h, 000h, 000h, 000h, 000h
     863    db  0beh, 077h, 074h, 078h, 0eeh, 085h, 082h, 086h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
    847864    db  032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h
    848865
     
    10391056  times 1142 db 0
    10401057
    1041 section _TEXT progbits vstart=0x1600 align=1 ; size=0x7ef5 class=CODE group=AUTO
    1042 read_byte_:                                  ; 0xf1600 LB 0xe
     1058section _TEXT progbits vstart=0x1600 align=1 ; size=0x7f35 class=CODE group=AUTO
     1059rom_scan_:                                   ; 0xf1600 LB 0x50
     1060    push bp                                   ; 55
     1061    mov bp, sp                                ; 89 e5
     1062    push bx                                   ; 53
     1063    push cx                                   ; 51
     1064    push si                                   ; 56
     1065    push ax                                   ; 50
     1066    push ax                                   ; 50
     1067    mov bx, ax                                ; 89 c3
     1068    mov cx, dx                                ; 89 d1
     1069    cmp bx, cx                                ; 39 cb
     1070    jnc short 01648h                          ; 73 38
     1071    xor si, si                                ; 31 f6
     1072    mov dx, bx                                ; 89 da
     1073    mov es, bx                                ; 8e c3
     1074    cmp word [es:si], 0aa55h                  ; 26 81 3c 55 aa
     1075    jne short 01642h                          ; 75 25
     1076    mov word [bp-008h], bx                    ; 89 5e f8
     1077    mov word [bp-00ah], strict word 00003h    ; c7 46 f6 03 00
     1078    call far [bp-00ah]                        ; ff 5e f6
     1079    cli                                       ; fa
     1080    mov es, bx                                ; 8e c3
     1081    mov al, byte [es:si+002h]                 ; 26 8a 44 02
     1082    add AL, strict byte 003h                  ; 04 03
     1083    and AL, strict byte 0fch                  ; 24 fc
     1084    xor ah, ah                                ; 30 e4
     1085    cwd                                       ; 99
     1086    sal dx, 002h                              ; c1 e2 02
     1087    db  01bh, 0c2h
     1088    ; sbb ax, dx                                ; 1b c2
     1089    sar ax, 002h                              ; c1 f8 02
     1090    add bx, ax                                ; 01 c3
     1091    jmp short 0160ch                          ; eb ca
     1092    add bx, 00080h                            ; 81 c3 80 00
     1093    jmp short 0160ch                          ; eb c4
     1094    lea sp, [bp-006h]                         ; 8d 66 fa
     1095    pop si                                    ; 5e
     1096    pop cx                                    ; 59
     1097    pop bx                                    ; 5b
     1098    pop bp                                    ; 5d
     1099    retn                                      ; c3
     1100read_byte_:                                  ; 0xf1650 LB 0xe
    10431101    push bx                                   ; 53
    10441102    push bp                                   ; 55
     
    10501108    pop bx                                    ; 5b
    10511109    retn                                      ; c3
    1052 write_byte_:                                 ; 0xf160e LB 0xe
     1110write_byte_:                                 ; 0xf165e LB 0xe
    10531111    push si                                   ; 56
    10541112    push bp                                   ; 55
     
    10601118    pop si                                    ; 5e
    10611119    retn                                      ; c3
    1062 read_word_:                                  ; 0xf161c LB 0xe
     1120read_word_:                                  ; 0xf166c LB 0xe
    10631121    push bx                                   ; 53
    10641122    push bp                                   ; 55
     
    10701128    pop bx                                    ; 5b
    10711129    retn                                      ; c3
    1072 write_word_:                                 ; 0xf162a LB 0xe
     1130write_word_:                                 ; 0xf167a LB 0xe
    10731131    push si                                   ; 56
    10741132    push bp                                   ; 55
     
    10801138    pop si                                    ; 5e
    10811139    retn                                      ; c3
    1082 read_dword_:                                 ; 0xf1638 LB 0x12
     1140read_dword_:                                 ; 0xf1688 LB 0x12
    10831141    push bx                                   ; 53
    10841142    push bp                                   ; 55
     
    10911149    pop bx                                    ; 5b
    10921150    retn                                      ; c3
    1093 write_dword_:                                ; 0xf164a LB 0x12
     1151write_dword_:                                ; 0xf169a LB 0x12
    10941152    push si                                   ; 56
    10951153    push bp                                   ; 55
     
    11021160    pop si                                    ; 5e
    11031161    retn                                      ; c3
    1104 inb_cmos_:                                   ; 0xf165c LB 0x1d
     1162inb_cmos_:                                   ; 0xf16ac LB 0x1d
    11051163    push bp                                   ; 55
    11061164    mov bp, sp                                ; 89 e5
     
    11081166    mov AH, strict byte 070h                  ; b4 70
    11091167    cmp AL, strict byte 080h                  ; 3c 80
    1110     jc short 01668h                           ; 72 02
     1168    jc short 016b8h                           ; 72 02
    11111169    mov AH, strict byte 072h                  ; b4 72
    11121170    movzx dx, ah                              ; 0f b6 d4
     
    11211179    pop bp                                    ; 5d
    11221180    retn                                      ; c3
    1123 outb_cmos_:                                  ; 0xf1679 LB 0x1f
     1181outb_cmos_:                                  ; 0xf16c9 LB 0x1f
    11241182    push bp                                   ; 55
    11251183    mov bp, sp                                ; 89 e5
     
    11281186    mov BL, strict byte 070h                  ; b3 70
    11291187    cmp AL, strict byte 080h                  ; 3c 80
    1130     jc short 01687h                           ; 72 02
     1188    jc short 016d7h                           ; 72 02
    11311189    mov BL, strict byte 072h                  ; b3 72
    11321190    movzx dx, bl                              ; 0f b6 d3
     
    11401198    pop bp                                    ; 5d
    11411199    retn                                      ; c3
    1142 _dummy_isr_function:                         ; 0xf1698 LB 0x6b
     1200_dummy_isr_function:                         ; 0xf16e8 LB 0x6b
    11431201    push bp                                   ; 55
    11441202    mov bp, sp                                ; 89 e5
     
    11541212    mov byte [bp-002h], al                    ; 88 46 fe
    11551213    test al, al                               ; 84 c0
    1156     je short 016f3h                           ; 74 43
     1214    je short 01743h                           ; 74 43
    11571215    mov AL, strict byte 00bh                  ; b0 0b
    11581216    mov dx, 000a0h                            ; ba a0 00
     
    11631221    mov cx, ax                                ; 89 c1
    11641222    test al, al                               ; 84 c0
    1165     je short 016d5h                           ; 74 16
     1223    je short 01725h                           ; 74 16
    11661224    mov dx, 000a1h                            ; ba a1 00
    11671225    in AL, DX                                 ; ec
     
    11751233    mov dx, 000a0h                            ; ba a0 00
    11761234    out DX, AL                                ; ee
    1177     jmp short 016eah                          ; eb 15
     1235    jmp short 0173ah                          ; eb 15
    11781236    mov dx, strict word 00021h                ; ba 21 00
    11791237    in AL, DX                                 ; ec
     
    11931251    mov dx, strict word 0006bh                ; ba 6b 00
    11941252    mov ax, strict word 00040h                ; b8 40 00
    1195     call 0160eh                               ; e8 0f ff
     1253    call 0165eh                               ; e8 0f ff
    11961254    mov sp, bp                                ; 89 ec
    11971255    pop bp                                    ; 5d
    11981256    retn                                      ; c3
    1199 _nmi_handler_msg:                            ; 0xf1703 LB 0x12
     1257_nmi_handler_msg:                            ; 0xf1753 LB 0x12
    12001258    push bp                                   ; 55
    12011259    mov bp, sp                                ; 89 e5
    12021260    push 000b0h                               ; 68 b0 00
    12031261    push strict byte 00007h                   ; 6a 07
    1204     call 01922h                               ; e8 14 02
     1262    call 01972h                               ; e8 14 02
    12051263    add sp, strict byte 00004h                ; 83 c4 04
    12061264    mov sp, bp                                ; 89 ec
    12071265    pop bp                                    ; 5d
    12081266    retn                                      ; c3
    1209 _int18_panic_msg:                            ; 0xf1715 LB 0x12
     1267_int18_panic_msg:                            ; 0xf1765 LB 0x12
    12101268    push bp                                   ; 55
    12111269    mov bp, sp                                ; 89 e5
    12121270    push 000c4h                               ; 68 c4 00
    12131271    push strict byte 00007h                   ; 6a 07
    1214     call 01922h                               ; e8 02 02
     1272    call 01972h                               ; e8 02 02
    12151273    add sp, strict byte 00004h                ; 83 c4 04
    12161274    mov sp, bp                                ; 89 ec
    12171275    pop bp                                    ; 5d
    12181276    retn                                      ; c3
    1219 _log_bios_start:                             ; 0xf1727 LB 0x20
     1277_log_bios_start:                             ; 0xf1777 LB 0x20
    12201278    push bp                                   ; 55
    12211279    mov bp, sp                                ; 89 e5
     
    12231281    mov cx, ds                                ; 8c d9
    12241282    mov ax, strict word 00004h                ; b8 04 00
    1225     call 018e1h                               ; e8 ac 01
     1283    call 01931h                               ; e8 ac 01
    12261284    push 00d90h                               ; 68 90 0d
    12271285    push 000d9h                               ; 68 d9 00
    12281286    push strict byte 00004h                   ; 6a 04
    1229     call 01922h                               ; e8 e2 01
     1287    call 01972h                               ; e8 e2 01
    12301288    add sp, strict byte 00006h                ; 83 c4 06
    12311289    mov sp, bp                                ; 89 ec
    12321290    pop bp                                    ; 5d
    12331291    retn                                      ; c3
    1234 _print_bios_banner:                          ; 0xf1747 LB 0x2e
     1292_print_bios_banner:                          ; 0xf1797 LB 0x2e
    12351293    push bp                                   ; 55
    12361294    mov bp, sp                                ; 89 e5
    12371295    mov dx, strict word 00072h                ; ba 72 00
    12381296    mov ax, strict word 00040h                ; b8 40 00
    1239     call 0161ch                               ; e8 c9 fe
     1297    call 0166ch                               ; e8 c9 fe
    12401298    mov cx, ax                                ; 89 c1
    12411299    xor bx, bx                                ; 31 db
    12421300    mov dx, strict word 00072h                ; ba 72 00
    12431301    mov ax, strict word 00040h                ; b8 40 00
    1244     call 0162ah                               ; e8 ca fe
     1302    call 0167ah                               ; e8 ca fe
    12451303    cmp cx, 01234h                            ; 81 f9 34 12
    1246     jne short 0176eh                          ; 75 08
     1304    jne short 017beh                          ; 75 08
    12471305    mov AL, strict byte 003h                  ; b0 03
    12481306    mov AH, strict byte 000h                  ; b4 00
    12491307    int 010h                                  ; cd 10
    1250     jmp short 01771h                          ; eb 03
    1251     call 0738fh                               ; e8 1e 5c
     1308    jmp short 017c1h                          ; eb 03
     1309    call 073cdh                               ; e8 0c 5c
    12521310    mov sp, bp                                ; 89 ec
    12531311    pop bp                                    ; 5d
    12541312    retn                                      ; c3
    1255 send_:                                       ; 0xf1775 LB 0x3b
     1313send_:                                       ; 0xf17c5 LB 0x3b
    12561314    push bp                                   ; 55
    12571315    mov bp, sp                                ; 89 e5
     
    12611319    mov cl, dl                                ; 88 d1
    12621320    test AL, strict byte 008h                 ; a8 08
    1263     je short 01788h                           ; 74 06
     1321    je short 017d8h                           ; 74 06
    12641322    mov al, dl                                ; 88 d0
    12651323    mov dx, 00403h                            ; ba 03 04
    12661324    out DX, AL                                ; ee
    12671325    test bl, 004h                             ; f6 c3 04
    1268     je short 01793h                           ; 74 06
     1326    je short 017e3h                           ; 74 06
    12691327    mov al, cl                                ; 88 c8
    12701328    mov dx, 00504h                            ; ba 04 05
    12711329    out DX, AL                                ; ee
    12721330    test bl, 002h                             ; f6 c3 02
    1273     je short 017a9h                           ; 74 11
     1331    je short 017f9h                           ; 74 11
    12741332    cmp cl, 00ah                              ; 80 f9 0a
    1275     jne short 017a3h                          ; 75 06
     1333    jne short 017f3h                          ; 75 06
    12761334    mov AL, strict byte 00dh                  ; b0 0d
    12771335    mov AH, strict byte 00eh                  ; b4 0e
     
    12851343    pop bp                                    ; 5d
    12861344    retn                                      ; c3
    1287 put_int_:                                    ; 0xf17b0 LB 0x5f
     1345put_int_:                                    ; 0xf1800 LB 0x5f
    12881346    push bp                                   ; 55
    12891347    mov bp, sp                                ; 89 e5
     
    13001358    mov word [bp-006h], ax                    ; 89 46 fa
    13011359    test ax, ax                               ; 85 c0
    1302     je short 017d5h                           ; 74 0a
     1360    je short 01825h                           ; 74 0a
    13031361    dec bx                                    ; 4b
    13041362    mov dx, ax                                ; 89 c2
    13051363    mov ax, si                                ; 89 f0
    1306     call 017b0h                               ; e8 dd ff
    1307     jmp short 017f0h                          ; eb 1b
     1364    call 01800h                               ; e8 dd ff
     1365    jmp short 01840h                          ; eb 1b
    13081366    dec bx                                    ; 4b
    13091367    test bx, bx                               ; 85 db
    1310     jle short 017e4h                          ; 7e 0a
     1368    jle short 01834h                          ; 7e 0a
    13111369    mov dx, strict word 00020h                ; ba 20 00
    13121370    mov ax, si                                ; 89 f0
    1313     call 01775h                               ; e8 93 ff
    1314     jmp short 017d5h                          ; eb f1
     1371    call 017c5h                               ; e8 93 ff
     1372    jmp short 01825h                          ; eb f1
    13151373    test cx, cx                               ; 85 c9
    1316     je short 017f0h                           ; 74 08
     1374    je short 01840h                           ; 74 08
    13171375    mov dx, strict word 0002dh                ; ba 2d 00
    13181376    mov ax, si                                ; 89 f0
    1319     call 01775h                               ; e8 85 ff
     1377    call 017c5h                               ; e8 85 ff
    13201378    mov al, byte [bp-006h]                    ; 8a 46 fa
    13211379    mov DL, strict byte 00ah                  ; b2 0a
     
    13271385    movzx dx, al                              ; 0f b6 d0
    13281386    mov ax, si                                ; 89 f0
    1329     call 01775h                               ; e8 6d ff
     1387    call 017c5h                               ; e8 6d ff
    13301388    lea sp, [bp-004h]                         ; 8d 66 fc
    13311389    pop di                                    ; 5f
     
    13331391    pop bp                                    ; 5d
    13341392    retn                                      ; c3
    1335 put_uint_:                                   ; 0xf180f LB 0x60
     1393put_uint_:                                   ; 0xf185f LB 0x60
    13361394    push bp                                   ; 55
    13371395    mov bp, sp                                ; 89 e5
     
    13481406    mov word [bp-006h], ax                    ; 89 46 fa
    13491407    test ax, ax                               ; 85 c0
    1350     je short 01835h                           ; 74 0a
     1408    je short 01885h                           ; 74 0a
    13511409    dec bx                                    ; 4b
    13521410    mov dx, ax                                ; 89 c2
    13531411    mov ax, si                                ; 89 f0
    1354     call 0180fh                               ; e8 dc ff
    1355     jmp short 01850h                          ; eb 1b
     1412    call 0185fh                               ; e8 dc ff
     1413    jmp short 018a0h                          ; eb 1b
    13561414    dec bx                                    ; 4b
    13571415    test bx, bx                               ; 85 db
    1358     jle short 01844h                          ; 7e 0a
     1416    jle short 01894h                          ; 7e 0a
    13591417    mov dx, strict word 00020h                ; ba 20 00
    13601418    mov ax, si                                ; 89 f0
    1361     call 01775h                               ; e8 33 ff
    1362     jmp short 01835h                          ; eb f1
     1419    call 017c5h                               ; e8 33 ff
     1420    jmp short 01885h                          ; eb f1
    13631421    test cx, cx                               ; 85 c9
    1364     je short 01850h                           ; 74 08
     1422    je short 018a0h                           ; 74 08
    13651423    mov dx, strict word 0002dh                ; ba 2d 00
    13661424    mov ax, si                                ; 89 f0
    1367     call 01775h                               ; e8 25 ff
     1425    call 017c5h                               ; e8 25 ff
    13681426    mov al, byte [bp-006h]                    ; 8a 46 fa
    13691427    mov DL, strict byte 00ah                  ; b2 0a
     
    13751433    movzx dx, al                              ; 0f b6 d0
    13761434    mov ax, si                                ; 89 f0
    1377     call 01775h                               ; e8 0d ff
     1435    call 017c5h                               ; e8 0d ff
    13781436    lea sp, [bp-004h]                         ; 8d 66 fc
    13791437    pop di                                    ; 5f
     
    13811439    pop bp                                    ; 5d
    13821440    retn                                      ; c3
    1383 put_luint_:                                  ; 0xf186f LB 0x72
     1441put_luint_:                                  ; 0xf18bf LB 0x72
    13841442    push bp                                   ; 55
    13851443    mov bp, sp                                ; 89 e5
     
    13951453    mov bx, strict word 0000ah                ; bb 0a 00
    13961454    xor cx, cx                                ; 31 c9
    1397     call 09400h                               ; e8 77 7b
     1455    call 09440h                               ; e8 67 7b
    13981456    mov word [bp-008h], ax                    ; 89 46 f8
    13991457    mov cx, dx                                ; 89 d1
    14001458    mov dx, ax                                ; 89 c2
    14011459    or dx, cx                                 ; 09 ca
    1402     je short 018a3h                           ; 74 0f
     1460    je short 018f3h                           ; 74 0f
    14031461    push word [bp+004h]                       ; ff 76 04
    14041462    lea dx, [di-001h]                         ; 8d 55 ff
    14051463    mov bx, ax                                ; 89 c3
    14061464    mov ax, si                                ; 89 f0
    1407     call 0186fh                               ; e8 ce ff
    1408     jmp short 018c0h                          ; eb 1d
     1465    call 018bfh                               ; e8 ce ff
     1466    jmp short 01910h                          ; eb 1d
    14091467    dec di                                    ; 4f
    14101468    test di, di                               ; 85 ff
    1411     jle short 018b2h                          ; 7e 0a
     1469    jle short 01902h                          ; 7e 0a
    14121470    mov dx, strict word 00020h                ; ba 20 00
    14131471    mov ax, si                                ; 89 f0
    1414     call 01775h                               ; e8 c5 fe
    1415     jmp short 018a3h                          ; eb f1
     1472    call 017c5h                               ; e8 c5 fe
     1473    jmp short 018f3h                          ; eb f1
    14161474    cmp word [bp+004h], strict byte 00000h    ; 83 7e 04 00
    1417     je short 018c0h                           ; 74 08
     1475    je short 01910h                           ; 74 08
    14181476    mov dx, strict word 0002dh                ; ba 2d 00
    14191477    mov ax, si                                ; 89 f0
    1420     call 01775h                               ; e8 b5 fe
     1478    call 017c5h                               ; e8 b5 fe
    14211479    mov al, byte [bp-008h]                    ; 8a 46 f8
    14221480    mov DL, strict byte 00ah                  ; b2 0a
     
    14281486    movzx dx, al                              ; 0f b6 d0
    14291487    mov ax, si                                ; 89 f0
    1430     call 01775h                               ; e8 9d fe
     1488    call 017c5h                               ; e8 9d fe
    14311489    lea sp, [bp-004h]                         ; 8d 66 fc
    14321490    pop di                                    ; 5f
     
    14341492    pop bp                                    ; 5d
    14351493    retn 00002h                               ; c2 02 00
    1436 put_str_:                                    ; 0xf18e1 LB 0x21
     1494put_str_:                                    ; 0xf1931 LB 0x21
    14371495    push bp                                   ; 55
    14381496    mov bp, sp                                ; 89 e5
     
    14431501    mov dl, byte [es:bx]                      ; 26 8a 17
    14441502    test dl, dl                               ; 84 d2
    1445     je short 018fbh                           ; 74 0a
     1503    je short 0194bh                           ; 74 0a
    14461504    xor dh, dh                                ; 30 f6
    14471505    mov ax, si                                ; 89 f0
    1448     call 01775h                               ; e8 7d fe
     1506    call 017c5h                               ; e8 7d fe
    14491507    inc bx                                    ; 43
    1450     jmp short 018e8h                          ; eb ed
     1508    jmp short 01938h                          ; eb ed
    14511509    lea sp, [bp-004h]                         ; 8d 66 fc
    14521510    pop si                                    ; 5e
     
    14541512    pop bp                                    ; 5d
    14551513    retn                                      ; c3
    1456 put_str_near_:                               ; 0xf1902 LB 0x20
     1514put_str_near_:                               ; 0xf1952 LB 0x20
    14571515    push bp                                   ; 55
    14581516    mov bp, sp                                ; 89 e5
     
    14631521    mov dl, byte [bx]                         ; 8a 17
    14641522    test dl, dl                               ; 84 d2
    1465     je short 0191bh                           ; 74 0a
     1523    je short 0196bh                           ; 74 0a
    14661524    xor dh, dh                                ; 30 f6
    14671525    mov ax, cx                                ; 89 c8
    1468     call 01775h                               ; e8 5d fe
     1526    call 017c5h                               ; e8 5d fe
    14691527    inc bx                                    ; 43
    1470     jmp short 0190bh                          ; eb f0
     1528    jmp short 0195bh                          ; eb f0
    14711529    lea sp, [bp-004h]                         ; 8d 66 fc
    14721530    pop cx                                    ; 59
     
    14741532    pop bp                                    ; 5d
    14751533    retn                                      ; c3
    1476 bios_printf_:                                ; 0xf1922 LB 0x23b
     1534bios_printf_:                                ; 0xf1972 LB 0x23b
    14771535    push bp                                   ; 55
    14781536    mov bp, sp                                ; 89 e5
     
    14911549    and ax, strict word 00007h                ; 25 07 00
    14921550    cmp ax, strict word 00007h                ; 3d 07 00
    1493     jne short 01950h                          ; 75 0b
     1551    jne short 019a0h                          ; 75 0b
    14941552    push 000deh                               ; 68 de 00
    14951553    push strict byte 00002h                   ; 6a 02
    1496     call 01922h                               ; e8 d5 ff
     1554    call 01972h                               ; e8 d5 ff
    14971555    add sp, strict byte 00004h                ; 83 c4 04
    14981556    mov bx, word [bp+006h]                    ; 8b 5e 06
    14991557    mov dl, byte [bx]                         ; 8a 17
    15001558    test dl, dl                               ; 84 d2
    1501     je near 01b41h                            ; 0f 84 e6 01
     1559    je near 01b91h                            ; 0f 84 e6 01
    15021560    cmp dl, 025h                              ; 80 fa 25
    1503     jne short 01968h                          ; 75 08
     1561    jne short 019b8h                          ; 75 08
    15041562    mov cx, strict word 00001h                ; b9 01 00
    15051563    xor si, si                                ; 31 f6
    1506     jmp near 01b3bh                           ; e9 d3 01
     1564    jmp near 01b8bh                           ; e9 d3 01
    15071565    test cx, cx                               ; 85 c9
    1508     je near 01b33h                            ; 0f 84 c5 01
     1566    je near 01b83h                            ; 0f 84 c5 01
    15091567    cmp dl, 030h                              ; 80 fa 30
    1510     jc short 01986h                           ; 72 13
     1568    jc short 019d6h                           ; 72 13
    15111569    cmp dl, 039h                              ; 80 fa 39
    1512     jnbe short 01986h                         ; 77 0e
     1570    jnbe short 019d6h                         ; 77 0e
    15131571    movzx ax, dl                              ; 0f b6 c2
    15141572    imul si, si, strict byte 0000ah           ; 6b f6 0a
    15151573    sub ax, strict word 00030h                ; 2d 30 00
    15161574    add si, ax                                ; 01 c6
    1517     jmp near 01b3bh                           ; e9 b5 01
     1575    jmp near 01b8bh                           ; e9 b5 01
    15181576    mov ax, word [bp-010h]                    ; 8b 46 f0
    15191577    mov word [bp-010h], ax                    ; 89 46 f0
     
    15231581    mov word [bp-00ch], ax                    ; 89 46 f4
    15241582    cmp dl, 078h                              ; 80 fa 78
    1525     je short 019a4h                           ; 74 05
     1583    je short 019f4h                           ; 74 05
    15261584    cmp dl, 058h                              ; 80 fa 58
    1527     jne short 019edh                          ; 75 49
     1585    jne short 01a3dh                          ; 75 49
    15281586    test si, si                               ; 85 f6
    1529     jne short 019abh                          ; 75 03
     1587    jne short 019fbh                          ; 75 03
    15301588    mov si, strict word 00004h                ; be 04 00
    15311589    cmp dl, 078h                              ; 80 fa 78
    1532     jne short 019b5h                          ; 75 05
     1590    jne short 01a05h                          ; 75 05
    15331591    mov di, strict word 00061h                ; bf 61 00
    1534     jmp short 019b8h                          ; eb 03
     1592    jmp short 01a08h                          ; eb 03
    15351593    mov di, strict word 00041h                ; bf 41 00
    15361594    lea bx, [si-001h]                         ; 8d 5c ff
    15371595    test bx, bx                               ; 85 db
    1538     jl near 01b2fh                            ; 0f 8c 6e 01
     1596    jl near 01b7fh                            ; 0f 8c 6e 01
    15391597    mov cx, bx                                ; 89 d9
    15401598    sal cx, 002h                              ; c1 e1 02
     
    15441602    and AL, strict byte 00fh                  ; 24 0f
    15451603    cmp ax, strict word 00009h                ; 3d 09 00
    1546     jnbe short 019dbh                         ; 77 07
     1604    jnbe short 01a2bh                         ; 77 07
    15471605    mov dx, ax                                ; 89 c2
    15481606    add dx, strict byte 00030h                ; 83 c2 30
    1549     jmp short 019e2h                          ; eb 07
     1607    jmp short 01a32h                          ; eb 07
    15501608    mov dx, ax                                ; 89 c2
    15511609    sub dx, strict byte 0000ah                ; 83 ea 0a
     
    15531611    xor dh, dh                                ; 30 f6
    15541612    mov ax, word [bp+004h]                    ; 8b 46 04
    1555     call 01775h                               ; e8 8b fd
     1613    call 017c5h                               ; e8 8b fd
    15561614    dec bx                                    ; 4b
    1557     jmp short 019bbh                          ; eb ce
     1615    jmp short 01a0bh                          ; eb ce
    15581616    cmp dl, 075h                              ; 80 fa 75
    1559     jne short 01a01h                          ; 75 0f
     1617    jne short 01a51h                          ; 75 0f
    15601618    xor cx, cx                                ; 31 c9
    15611619    mov bx, si                                ; 89 f3
    15621620    mov dx, ax                                ; 89 c2
    15631621    mov ax, word [bp+004h]                    ; 8b 46 04
    1564     call 0180fh                               ; e8 11 fe
    1565     jmp near 01b2fh                           ; e9 2e 01
     1622    call 0185fh                               ; e8 11 fe
     1623    jmp near 01b7fh                           ; e9 2e 01
    15661624    lea bx, [si-001h]                         ; 8d 5c ff
    15671625    cmp dl, 06ch                              ; 80 fa 6c
    1568     jne near 01abdh                           ; 0f 85 b2 00
     1626    jne near 01b0dh                           ; 0f 85 b2 00
    15691627    inc word [bp+006h]                        ; ff 46 06
    15701628    mov di, word [bp+006h]                    ; 8b 7e 06
     
    15771635    mov word [bp-00eh], ax                    ; 89 46 f2
    15781636    cmp dl, 064h                              ; 80 fa 64
    1579     jne short 01a59h                          ; 75 2d
     1637    jne short 01aa9h                          ; 75 2d
    15801638    test byte [bp-00dh], 080h                 ; f6 46 f3 80
    1581     je short 01a47h                           ; 74 15
     1639    je short 01a97h                           ; 74 15
    15821640    push strict byte 00001h                   ; 6a 01
    15831641    mov ax, word [bp-00ch]                    ; 8b 46 f4
     
    15881646    mov dx, bx                                ; 89 da
    15891647    mov bx, ax                                ; 89 c3
    1590     jmp short 01a50h                          ; eb 09
     1648    jmp short 01aa0h                          ; eb 09
    15911649    push strict byte 00000h                   ; 6a 00
    15921650    mov bx, word [bp-00ch]                    ; 8b 5e f4
     
    15941652    mov cx, ax                                ; 89 c1
    15951653    mov ax, word [bp+004h]                    ; 8b 46 04
    1596     call 0186fh                               ; e8 19 fe
    1597     jmp near 01b2fh                           ; e9 d6 00
     1654    call 018bfh                               ; e8 19 fe
     1655    jmp near 01b7fh                           ; e9 d6 00
    15981656    cmp dl, 075h                              ; 80 fa 75
    1599     jne short 01a60h                          ; 75 02
    1600     jmp short 01a47h                          ; eb e7
     1657    jne short 01ab0h                          ; 75 02
     1658    jmp short 01a97h                          ; eb e7
    16011659    cmp dl, 078h                              ; 80 fa 78
    1602     je short 01a6ch                           ; 74 07
     1660    je short 01abch                           ; 74 07
    16031661    cmp dl, 058h                              ; 80 fa 58
    1604     jne near 01b2fh                           ; 0f 85 c3 00
     1662    jne near 01b7fh                           ; 0f 85 c3 00
    16051663    test si, si                               ; 85 f6
    1606     jne short 01a73h                          ; 75 03
     1664    jne short 01ac3h                          ; 75 03
    16071665    mov si, strict word 00008h                ; be 08 00
    16081666    cmp dl, 078h                              ; 80 fa 78
    1609     jne short 01a7dh                          ; 75 05
     1667    jne short 01acdh                          ; 75 05
    16101668    mov di, strict word 00061h                ; bf 61 00
    1611     jmp short 01a80h                          ; eb 03
     1669    jmp short 01ad0h                          ; eb 03
    16121670    mov di, strict word 00041h                ; bf 41 00
    16131671    lea bx, [si-001h]                         ; 8d 5c ff
    16141672    test bx, bx                               ; 85 db
    1615     jl near 01b2fh                            ; 0f 8c a6 00
     1673    jl near 01b7fh                            ; 0f 8c a6 00
    16161674    mov ax, word [bp-00ch]                    ; 8b 46 f4
    16171675    mov cx, bx                                ; 89 d9
    16181676    sal cx, 002h                              ; c1 e1 02
    16191677    mov dx, word [bp-00eh]                    ; 8b 56 f2
    1620     jcxz 01a9ch                               ; e3 06
     1678    jcxz 01aech                               ; e3 06
    16211679    shr dx, 1                                 ; d1 ea
    16221680    rcr ax, 1                                 ; d1 d8
    1623     loop 01a96h                               ; e2 fa
     1681    loop 01ae6h                               ; e2 fa
    16241682    and ax, strict word 0000fh                ; 25 0f 00
    16251683    cmp ax, strict word 00009h                ; 3d 09 00
    1626     jnbe short 01aabh                         ; 77 07
     1684    jnbe short 01afbh                         ; 77 07
    16271685    mov dx, ax                                ; 89 c2
    16281686    add dx, strict byte 00030h                ; 83 c2 30
    1629     jmp short 01ab2h                          ; eb 07
     1687    jmp short 01b02h                          ; eb 07
    16301688    mov dx, ax                                ; 89 c2
    16311689    sub dx, strict byte 0000ah                ; 83 ea 0a
     
    16331691    xor dh, dh                                ; 30 f6
    16341692    mov ax, word [bp+004h]                    ; 8b 46 04
    1635     call 01775h                               ; e8 bb fc
     1693    call 017c5h                               ; e8 bb fc
    16361694    dec bx                                    ; 4b
    1637     jmp short 01a83h                          ; eb c6
     1695    jmp short 01ad3h                          ; eb c6
    16381696    cmp dl, 064h                              ; 80 fa 64
    1639     jne short 01adfh                          ; 75 1d
     1697    jne short 01b2fh                          ; 75 1d
    16401698    test byte [bp-00bh], 080h                 ; f6 46 f5 80
    1641     je short 01ad1h                           ; 74 09
     1699    je short 01b21h                           ; 74 09
    16421700    mov dx, ax                                ; 89 c2
    16431701    neg dx                                    ; f7 da
    16441702    mov cx, strict word 00001h                ; b9 01 00
    1645     jmp short 01ad7h                          ; eb 06
     1703    jmp short 01b27h                          ; eb 06
    16461704    xor cx, cx                                ; 31 c9
    16471705    mov bx, si                                ; 89 f3
    16481706    mov dx, ax                                ; 89 c2
    16491707    mov ax, word [bp+004h]                    ; 8b 46 04
    1650     call 017b0h                               ; e8 d3 fc
    1651     jmp short 01b2fh                          ; eb 50
     1708    call 01800h                               ; e8 d3 fc
     1709    jmp short 01b7fh                          ; eb 50
    16521710    cmp dl, 073h                              ; 80 fa 73
    1653     jne short 01af0h                          ; 75 0c
     1711    jne short 01b40h                          ; 75 0c
    16541712    mov cx, ds                                ; 8c d9
    16551713    mov bx, ax                                ; 89 c3
    16561714    mov ax, word [bp+004h]                    ; 8b 46 04
    1657     call 018e1h                               ; e8 f3 fd
    1658     jmp short 01b2fh                          ; eb 3f
     1715    call 01931h                               ; e8 f3 fd
     1716    jmp short 01b7fh                          ; eb 3f
    16591717    cmp dl, 053h                              ; 80 fa 53
    1660     jne short 01b13h                          ; 75 1e
     1718    jne short 01b63h                          ; 75 1e
    16611719    mov word [bp-00eh], ax                    ; 89 46 f2
    16621720    mov ax, word [bp-010h]                    ; 8b 46 f0
     
    16681726    mov bx, ax                                ; 89 c3
    16691727    mov cx, word [bp-00eh]                    ; 8b 4e f2
    1670     jmp short 01ae8h                          ; eb d5
     1728    jmp short 01b38h                          ; eb d5
    16711729    cmp dl, 063h                              ; 80 fa 63
    1672     jne short 01b24h                          ; 75 0c
     1730    jne short 01b74h                          ; 75 0c
    16731731    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
    16741732    mov ax, word [bp+004h]                    ; 8b 46 04
    1675     call 01775h                               ; e8 53 fc
    1676     jmp short 01b2fh                          ; eb 0b
     1733    call 017c5h                               ; e8 53 fc
     1734    jmp short 01b7fh                          ; eb 0b
    16771735    push 000e6h                               ; 68 e6 00
    16781736    push strict byte 00007h                   ; 6a 07
    1679     call 01922h                               ; e8 f6 fd
     1737    call 01972h                               ; e8 f6 fd
    16801738    add sp, strict byte 00004h                ; 83 c4 04
    16811739    xor cx, cx                                ; 31 c9
    1682     jmp short 01b3bh                          ; eb 08
     1740    jmp short 01b8bh                          ; eb 08
    16831741    xor dh, dh                                ; 30 f6
    16841742    mov ax, word [bp+004h]                    ; 8b 46 04
    1685     call 01775h                               ; e8 3a fc
     1743    call 017c5h                               ; e8 3a fc
    16861744    inc word [bp+006h]                        ; ff 46 06
    1687     jmp near 01950h                           ; e9 0f fe
     1745    jmp near 019a0h                           ; e9 0f fe
    16881746    xor ax, ax                                ; 31 c0
    16891747    mov word [bp-012h], ax                    ; 89 46 ee
    16901748    mov word [bp-010h], ax                    ; 89 46 f0
    16911749    test byte [bp+004h], 001h                 ; f6 46 04 01
    1692     je short 01b53h                           ; 74 04
     1750    je short 01ba3h                           ; 74 04
    16931751    cli                                       ; fa
    16941752    hlt                                       ; f4
    1695     jmp short 01b50h                          ; eb fd
     1753    jmp short 01ba0h                          ; eb fd
    16961754    lea sp, [bp-00ah]                         ; 8d 66 f6
    16971755    pop di                                    ; 5f
     
    17021760    pop bp                                    ; 5d
    17031761    retn                                      ; c3
    1704 _ata_init:                                   ; 0xf1b5d LB 0xc4
     1762_ata_init:                                   ; 0xf1bad LB 0xc4
    17051763    push bp                                   ; 55
    17061764    mov bp, sp                                ; 89 e5
     
    17081766    mov dx, strict word 0000eh                ; ba 0e 00
    17091767    mov ax, strict word 00040h                ; b8 40 00
    1710     call 0161ch                               ; e8 b2 fa
     1768    call 0166ch                               ; e8 b2 fa
    17111769    mov si, 00122h                            ; be 22 01
    17121770    mov dx, ax                                ; 89 c2
    17131771    xor al, al                                ; 30 c0
    1714     jmp short 01b77h                          ; eb 04
     1772    jmp short 01bc7h                          ; eb 04
    17151773    cmp AL, strict byte 004h                  ; 3c 04
    1716     jnc short 01b9bh                          ; 73 24
     1774    jnc short 01bebh                          ; 73 24
    17171775    movzx bx, al                              ; 0f b6 d8
    17181776    imul bx, bx, strict byte 00006h           ; 6b db 06
     
    17251783    db  0feh, 0c0h
    17261784    ; inc al                                    ; fe c0
    1727     jmp short 01b73h                          ; eb d8
     1785    jmp short 01bc3h                          ; eb d8
    17281786    xor al, al                                ; 30 c0
    1729     jmp short 01ba3h                          ; eb 04
     1787    jmp short 01bf3h                          ; eb 04
    17301788    cmp AL, strict byte 008h                  ; 3c 08
    1731     jnc short 01beeh                          ; 73 4b
     1789    jnc short 01c3eh                          ; 73 4b
    17321790    movzx bx, al                              ; 0f b6 d8
    17331791    imul bx, bx, strict byte 00018h           ; 6b db 18
     
    17491807    db  0feh, 0c0h
    17501808    ; inc al                                    ; fe c0
    1751     jmp short 01b9fh                          ; eb b1
     1809    jmp short 01befh                          ; eb b1
    17521810    xor al, al                                ; 30 c0
    1753     jmp short 01bf6h                          ; eb 04
     1811    jmp short 01c46h                          ; eb 04
    17541812    cmp AL, strict byte 010h                  ; 3c 10
    1755     jnc short 01c0dh                          ; 73 17
     1813    jnc short 01c5dh                          ; 73 17
    17561814    movzx bx, al                              ; 0f b6 d8
    17571815    mov es, dx                                ; 8e c2
     
    17611819    db  0feh, 0c0h
    17621820    ; inc al                                    ; fe c0
    1763     jmp short 01bf2h                          ; eb e5
     1821    jmp short 01c42h                          ; eb e5
    17641822    mov es, dx                                ; 8e c2
    17651823    mov byte [es:si+0019eh], 000h             ; 26 c6 84 9e 01 00
     
    17691827    pop bp                                    ; 5d
    17701828    retn                                      ; c3
    1771 ata_reset_:                                  ; 0xf1c21 LB 0xde
     1829ata_reset_:                                  ; 0xf1c71 LB 0xde
    17721830    push bp                                   ; 55
    17731831    mov bp, sp                                ; 89 e5
     
    17821840    mov dx, strict word 0000eh                ; ba 0e 00
    17831841    mov ax, strict word 00040h                ; b8 40 00
    1784     call 0161ch                               ; e8 e7 f9
     1842    call 0166ch                               ; e8 e7 f9
    17851843    mov word [bp-00eh], 00122h                ; c7 46 f2 22 01
    17861844    mov di, ax                                ; 89 c7
     
    18021860    dec bx                                    ; 4b
    18031861    test bx, bx                               ; 85 db
    1804     jbe short 01c79h                          ; 76 0c
     1862    jbe short 01cc9h                          ; 76 0c
    18051863    mov dx, cx                                ; 89 ca
    18061864    add dx, strict byte 00007h                ; 83 c2 07
     
    18091867    ; sub ah, ah                                ; 2a e4
    18101868    test AL, strict byte 080h                 ; a8 80
    1811     je short 01c68h                           ; 74 ef
     1869    je short 01cb8h                           ; 74 ef
    18121870    lea dx, [si+006h]                         ; 8d 54 06
    18131871    mov AL, strict byte 00ah                  ; b0 0a
     
    18171875    add bx, word [bp-00eh]                    ; 03 5e f2
    18181876    cmp byte [es:bx+01eh], 000h               ; 26 80 7f 1e 00
    1819     je short 01cdbh                           ; 74 4c
     1877    je short 01d2bh                           ; 74 4c
    18201878    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    1821     je short 01c9ah                           ; 74 05
     1879    je short 01ceah                           ; 74 05
    18221880    mov ax, 000b0h                            ; b8 b0 00
    1823     jmp short 01c9dh                          ; eb 03
     1881    jmp short 01cedh                          ; eb 03
    18241882    mov ax, 000a0h                            ; b8 a0 00
    18251883    mov dx, cx                                ; 89 ca
     
    18391897    ; sub ah, ah                                ; 2a e4
    18401898    cmp bl, 001h                              ; 80 fb 01
    1841     jne short 01cdbh                          ; 75 22
     1899    jne short 01d2bh                          ; 75 22
    18421900    cmp al, bl                                ; 38 d8
    1843     jne short 01cdbh                          ; 75 1e
     1901    jne short 01d2bh                          ; 75 1e
    18441902    mov bx, strict word 0ffffh                ; bb ff ff
    18451903    dec bx                                    ; 4b
    18461904    test bx, bx                               ; 85 db
    1847     jbe short 01cdbh                          ; 76 16
     1905    jbe short 01d2bh                          ; 76 16
    18481906    mov dx, cx                                ; 89 ca
    18491907    add dx, strict byte 00007h                ; 83 c2 07
     
    18521910    ; sub ah, ah                                ; 2a e4
    18531911    test AL, strict byte 080h                 ; a8 80
    1854     je short 01cdbh                           ; 74 0a
     1912    je short 01d2bh                           ; 74 0a
    18551913    mov ax, strict word 0ffffh                ; b8 ff ff
    18561914    dec ax                                    ; 48
    18571915    test ax, ax                               ; 85 c0
    1858     jnbe short 01cd4h                         ; 77 fb
    1859     jmp short 01cc0h                          ; eb e5
     1916    jnbe short 01d24h                         ; 77 fb
     1917    jmp short 01d10h                          ; eb e5
    18601918    mov bx, strict word 00010h                ; bb 10 00
    18611919    dec bx                                    ; 4b
    18621920    test bx, bx                               ; 85 db
    1863     jbe short 01cefh                          ; 76 0c
     1921    jbe short 01d3fh                          ; 76 0c
    18641922    mov dx, cx                                ; 89 ca
    18651923    add dx, strict byte 00007h                ; 83 c2 07
     
    18681926    ; sub ah, ah                                ; 2a e4
    18691927    test AL, strict byte 040h                 ; a8 40
    1870     je short 01cdeh                           ; 74 ef
     1928    je short 01d2eh                           ; 74 ef
    18711929    lea dx, [si+006h]                         ; 8d 54 06
    18721930    mov AL, strict byte 008h                  ; b0 08
     
    18801938    pop bp                                    ; 5d
    18811939    retn                                      ; c3
    1882 ata_cmd_data_in_:                            ; 0xf1cff LB 0x258
     1940ata_cmd_data_in_:                            ; 0xf1d4f LB 0x258
    18831941    push bp                                   ; 55
    18841942    mov bp, sp                                ; 89 e5
     
    19111969    mov word [bp-00ch], ax                    ; 89 46 f4
    19121970    test ax, ax                               ; 85 c0
    1913     jne short 01d67h                          ; 75 14
     1971    jne short 01db7h                          ; 75 14
    19141972    cmp byte [bp-006h], 001h                  ; 80 7e fa 01
    1915     jne short 01d60h                          ; 75 07
     1973    jne short 01db0h                          ; 75 07
    19161974    mov word [bp-00ch], 04000h                ; c7 46 f4 00 40
    1917     jmp short 01d76h                          ; eb 16
     1975    jmp short 01dc6h                          ; eb 16
    19181976    mov word [bp-00ch], 08000h                ; c7 46 f4 00 80
    1919     jmp short 01d76h                          ; eb 0f
     1977    jmp short 01dc6h                          ; eb 0f
    19201978    cmp byte [bp-006h], 001h                  ; 80 7e fa 01
    1921     jne short 01d73h                          ; 75 06
     1979    jne short 01dc3h                          ; 75 06
    19221980    shr word [bp-00ch], 002h                  ; c1 6e f4 02
    1923     jmp short 01d76h                          ; eb 03
     1981    jmp short 01dc6h                          ; eb 03
    19241982    shr word [bp-00ch], 1                     ; d1 6e f4
    19251983    lea dx, [bx+007h]                         ; 8d 57 07
     
    19281986    ; sub ah, ah                                ; 2a e4
    19291987    test AL, strict byte 080h                 ; a8 80
    1930     je short 01d8fh                           ; 74 0f
     1988    je short 01ddfh                           ; 74 0f
    19311989    mov dx, word [bp-01ch]                    ; 8b 56 e4
    19321990    add dx, strict byte 00006h                ; 83 c2 06
     
    19341992    out DX, AL                                ; ee
    19351993    mov dx, strict word 00001h                ; ba 01 00
    1936     jmp near 01f4eh                           ; e9 bf 01
     1994    jmp near 01f9eh                           ; e9 bf 01
    19371995    mov es, [bp-00ah]                         ; 8e 46 f6
    19381996    mov ax, word [es:si]                      ; 26 8b 04
     
    19512009    mov ax, word [bp-010h]                    ; 8b 46 f0
    19522010    test ax, ax                               ; 85 c0
    1953     jne short 01e2dh                          ; 75 67
     2011    jne short 01e7dh                          ; 75 67
    19542012    mov dx, word [bp-020h]                    ; 8b 56 e0
    19552013    add dx, word [bp-014h]                    ; 03 56 ec
    19562014    adc ax, word [bp-01eh]                    ; 13 46 e2
    19572015    cmp ax, 01000h                            ; 3d 00 10
    1958     jnbe short 01dd6h                         ; 77 02
    1959     jne short 01e01h                          ; 75 2b
     2016    jnbe short 01e26h                         ; 77 02
     2017    jne short 01e51h                          ; 75 2b
    19602018    mov ax, word [bp-01eh]                    ; 8b 46 e2
    19612019    xor al, al                                ; 30 c0
     
    19822040    shr word [bp-01eh], 1                     ; d1 6e e2
    19832041    rcr word [bp-020h], 1                     ; d1 5e e0
    1984     loop 01e0ch                               ; e2 f8
     2042    loop 01e5ch                               ; e2 f8
    19852043    mov ax, word [bp-020h]                    ; 8b 46 e0
    19862044    mov word [bp-012h], ax                    ; 89 46 ee
     
    20112069    out DX, AL                                ; ee
    20122070    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    2013     je short 01e63h                           ; 74 05
     2071    je short 01eb3h                           ; 74 05
    20142072    mov ax, 000b0h                            ; b8 b0 00
    2015     jmp short 01e66h                          ; eb 03
     2073    jmp short 01eb6h                          ; eb 03
    20162074    mov ax, 000a0h                            ; b8 a0 00
    20172075    movzx dx, byte [bp-018h]                  ; 0f b6 56 e8
     
    20242082    mov ax, word [bp-016h]                    ; 8b 46 ea
    20252083    cmp ax, 000c4h                            ; 3d c4 00
    2026     je short 01e84h                           ; 74 05
     2084    je short 01ed4h                           ; 74 05
    20272085    cmp ax, strict word 00029h                ; 3d 29 00
    2028     jne short 01e91h                          ; 75 0d
     2086    jne short 01ee1h                          ; 75 0d
    20292087    mov ax, word [bp-014h]                    ; 8b 46 ec
    20302088    mov word [bp-01ah], ax                    ; 89 46 e6
    20312089    mov word [bp-014h], strict word 00001h    ; c7 46 ec 01 00
    2032     jmp short 01e96h                          ; eb 05
     2090    jmp short 01ee6h                          ; eb 05
    20332091    mov word [bp-01ah], strict word 00001h    ; c7 46 e6 01 00
    20342092    lea dx, [bx+007h]                         ; 8d 57 07
     
    20382096    mov dl, al                                ; 88 c2
    20392097    test AL, strict byte 080h                 ; a8 80
    2040     jne short 01e96h                          ; 75 f4
     2098    jne short 01ee6h                          ; 75 f4
    20412099    test AL, strict byte 001h                 ; a8 01
    2042     je short 01eb5h                           ; 74 0f
     2100    je short 01f05h                           ; 74 0f
    20432101    mov dx, word [bp-01ch]                    ; 8b 56 e4
    20442102    add dx, strict byte 00006h                ; 83 c2 06
     
    20462104    out DX, AL                                ; ee
    20472105    mov dx, strict word 00002h                ; ba 02 00
    2048     jmp near 01f4eh                           ; e9 99 00
     2106    jmp near 01f9eh                           ; e9 99 00
    20492107    test dl, 008h                             ; f6 c2 08
    2050     jne short 01ec9h                          ; 75 0f
     2108    jne short 01f19h                          ; 75 0f
    20512109    mov dx, word [bp-01ch]                    ; 8b 56 e4
    20522110    add dx, strict byte 00006h                ; 83 c2 06
     
    20542112    out DX, AL                                ; ee
    20552113    mov dx, strict word 00003h                ; ba 03 00
    2056     jmp near 01f4eh                           ; e9 85 00
     2114    jmp near 01f9eh                           ; e9 85 00
    20572115    sti                                       ; fb
    20582116    cmp di, 0f800h                            ; 81 ff 00 f8
    2059     jc short 01eddh                           ; 72 0d
     2117    jc short 01f2dh                           ; 72 0d
    20602118    sub di, 00800h                            ; 81 ef 00 08
    20612119    mov ax, word [bp-00eh]                    ; 8b 46 f2
     
    20632121    mov word [bp-00eh], ax                    ; 89 46 f2
    20642122    cmp byte [bp-006h], 001h                  ; 80 7e fa 01
    2065     jne short 01ef0h                          ; 75 0d
     2123    jne short 01f40h                          ; 75 0d
    20662124    mov dx, bx                                ; 89 da
    20672125    mov cx, word [bp-00ch]                    ; 8b 4e f4
     
    20692127    db  0f3h, 066h, 06dh
    20702128    ; rep insd                                  ; f3 66 6d
    2071     jmp short 01efah                          ; eb 0a
     2129    jmp short 01f4ah                          ; eb 0a
    20722130    mov dx, bx                                ; 89 da
    20732131    mov cx, word [bp-00ch]                    ; 8b 4e f4
     
    20842142    mov dl, al                                ; 88 c2
    20852143    test AL, strict byte 080h                 ; a8 80
    2086     jne short 01f07h                          ; 75 f4
     2144    jne short 01f57h                          ; 75 f4
    20872145    cmp word [bp-014h], strict byte 00000h    ; 83 7e ec 00
    2088     jne short 01f2dh                          ; 75 14
     2146    jne short 01f7dh                          ; 75 14
    20892147    and AL, strict byte 0c9h                  ; 24 c9
    20902148    cmp AL, strict byte 040h                  ; 3c 40
    2091     je short 01f43h                           ; 74 24
     2149    je short 01f93h                           ; 74 24
    20922150    mov dx, word [bp-01ch]                    ; 8b 56 e4
    20932151    add dx, strict byte 00006h                ; 83 c2 06
     
    20952153    out DX, AL                                ; ee
    20962154    mov dx, strict word 00004h                ; ba 04 00
    2097     jmp short 01f4eh                          ; eb 21
     2155    jmp short 01f9eh                          ; eb 21
    20982156    mov al, dl                                ; 88 d0
    20992157    and AL, strict byte 0c9h                  ; 24 c9
    21002158    cmp AL, strict byte 048h                  ; 3c 48
    2101     je short 01ecah                           ; 74 95
     2159    je short 01f1ah                           ; 74 95
    21022160    mov dx, word [bp-01ch]                    ; 8b 56 e4
    21032161    add dx, strict byte 00006h                ; 83 c2 06
     
    21052163    out DX, AL                                ; ee
    21062164    mov dx, strict word 00005h                ; ba 05 00
    2107     jmp short 01f4eh                          ; eb 0b
     2165    jmp short 01f9eh                          ; eb 0b
    21082166    mov dx, word [bp-01ch]                    ; 8b 56 e4
    21092167    add dx, strict byte 00006h                ; 83 c2 06
     
    21172175    pop bp                                    ; 5d
    21182176    retn                                      ; c3
    2119 _ata_detect:                                 ; 0xf1f57 LB 0x617
     2177_ata_detect:                                 ; 0xf1fa7 LB 0x617
    21202178    push bp                                   ; 55
    21212179    mov bp, sp                                ; 89 e5
     
    21252183    mov dx, strict word 0000eh                ; ba 0e 00
    21262184    mov ax, strict word 00040h                ; b8 40 00
    2127     call 0161ch                               ; e8 b3 f6
     2185    call 0166ch                               ; e8 b3 f6
    21282186    mov word [bp-024h], ax                    ; 89 46 dc
    21292187    mov di, 00122h                            ; bf 22 01
     
    21432201    mov byte [bp-006h], al                    ; 88 46 fa
    21442202    mov byte [bp-00eh], al                    ; 88 46 f2
    2145     jmp near 024f9h                           ; e9 48 05
     2203    jmp near 02549h                           ; e9 48 05
    21462204    mov ax, 000a0h                            ; b8 a0 00
    21472205    lea dx, [si+006h]                         ; 8d 54 06
     
    21752233    ; sub ah, ah                                ; 2a e4
    21762234    cmp cl, 055h                              ; 80 f9 55
    2177     jne near 020abh                           ; 0f 85 c0 00
     2235    jne near 020fbh                           ; 0f 85 c0 00
    21782236    cmp AL, strict byte 0aah                  ; 3c aa
    2179     jne near 020abh                           ; 0f 85 ba 00
     2237    jne near 020fbh                           ; 0f 85 ba 00
    21802238    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    21812239    imul ax, ax, strict byte 00018h           ; 6b c0 18
     
    21842242    mov byte [es:bx+01eh], 001h               ; 26 c6 47 1e 01
    21852243    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    2186     call 01c21h                               ; e8 18 fc
     2244    call 01c71h                               ; e8 18 fc
    21872245    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    2188     je short 02014h                           ; 74 05
     2246    je short 02064h                           ; 74 05
    21892247    mov ax, 000b0h                            ; b8 b0 00
    2190     jmp short 02017h                          ; eb 03
     2248    jmp short 02067h                          ; eb 03
    21912249    mov ax, 000a0h                            ; b8 a0 00
    21922250    lea dx, [si+006h]                         ; 8d 54 06
     
    22022260    ; sub ah, ah                                ; 2a e4
    22032261    cmp bl, 001h                              ; 80 fb 01
    2204     jne near 020abh                           ; 0f 85 7b 00
     2262    jne near 020fbh                           ; 0f 85 7b 00
    22052263    cmp al, bl                                ; 38 d8
    2206     jne near 020abh                           ; 0f 85 75 00
     2264    jne near 020fbh                           ; 0f 85 75 00
    22072265    lea dx, [si+004h]                         ; 8d 54 04
    22082266    in AL, DX                                 ; ec
     
    22222280    ; sub ah, ah                                ; 2a e4
    22232281    cmp bl, 014h                              ; 80 fb 14
    2224     jne short 0206eh                          ; 75 18
     2282    jne short 020beh                          ; 75 18
    22252283    cmp cl, 0ebh                              ; 80 f9 eb
    2226     jne short 0206eh                          ; 75 13
     2284    jne short 020beh                          ; 75 13
    22272285    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    22282286    imul ax, ax, strict byte 00018h           ; 6b c0 18
     
    22302288    add bx, ax                                ; 01 c3
    22312289    mov byte [es:bx+01eh], 003h               ; 26 c6 47 1e 03
    2232     jmp short 020abh                          ; eb 3d
     2290    jmp short 020fbh                          ; eb 3d
    22332291    test bh, bh                               ; 84 ff
    2234     jne short 02090h                          ; 75 1e
     2292    jne short 020e0h                          ; 75 1e
    22352293    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    2236     jne short 02090h                          ; 75 18
     2294    jne short 020e0h                          ; 75 18
    22372295    test al, al                               ; 84 c0
    2238     je short 02090h                           ; 74 14
     2296    je short 020e0h                           ; 74 14
    22392297    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
    22402298    imul bx, bx, strict byte 00018h           ; 6b db 18
     
    22422300    add bx, word [bp-028h]                    ; 03 5e d8
    22432301    mov byte [es:bx+01eh], 002h               ; 26 c6 47 1e 02
    2244     jmp short 020abh                          ; eb 1b
     2302    jmp short 020fbh                          ; eb 1b
    22452303    cmp bh, 0ffh                              ; 80 ff ff
    2246     jne short 020abh                          ; 75 16
     2304    jne short 020fbh                          ; 75 16
    22472305    cmp bh, byte [bp-00ch]                    ; 3a 7e f4
    2248     jne short 020abh                          ; 75 11
     2306    jne short 020fbh                          ; 75 11
    22492307    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    22502308    imul ax, ax, strict byte 00018h           ; 6b c0 18
     
    22632321    mov byte [bp-010h], al                    ; 88 46 f0
    22642322    cmp AL, strict byte 002h                  ; 3c 02
    2265     jne near 022d1h                           ; 0f 85 03 02
     2323    jne near 02321h                           ; 0f 85 03 02
    22662324    mov byte [es:si+01fh], 0ffh               ; 26 c6 44 1f ff
    22672325    mov byte [es:si+022h], 000h               ; 26 c6 44 22 00
     
    22762334    mov ax, word [bp-028h]                    ; 8b 46 d8
    22772335    mov dx, es                                ; 8c c2
    2278     call 01cffh                               ; e8 03 fc
     2336    call 01d4fh                               ; e8 03 fc
    22792337    test ax, ax                               ; 85 c0
    2280     je short 0210bh                           ; 74 0b
     2338    je short 0215bh                           ; 74 0b
    22812339    push 00104h                               ; 68 04 01
    22822340    push strict byte 00007h                   ; 6a 07
    2283     call 01922h                               ; e8 1a f8
     2341    call 01972h                               ; e8 1a f8
    22842342    add sp, strict byte 00004h                ; 83 c4 04
    22852343    test byte [bp-00260h], 080h               ; f6 86 a0 fd 80
     
    23042362    mov si, word [bp-001e6h]                  ; 8b b6 1a fe
    23052363    cmp si, 00fffh                            ; 81 fe ff 0f
    2306     jne short 02160h                          ; 75 10
     2364    jne short 021b0h                          ; 75 10
    23072365    cmp ax, strict word 0ffffh                ; 3d ff ff
    2308     jne short 02160h                          ; 75 0b
     2366    jne short 021b0h                          ; 75 0b
    23092367    mov ax, word [bp-00198h]                  ; 8b 86 68 fe
    23102368    mov word [bp-020h], ax                    ; 89 46 e0
     
    23122370    mov al, byte [bp-00eh]                    ; 8a 46 f2
    23132371    cmp AL, strict byte 001h                  ; 3c 01
    2314     jc short 02173h                           ; 72 0c
    2315     jbe short 0217bh                          ; 76 12
     2372    jc short 021c3h                           ; 72 0c
     2373    jbe short 021cbh                          ; 76 12
    23162374    cmp AL, strict byte 003h                  ; 3c 03
    2317     je short 02183h                           ; 74 16
     2375    je short 021d3h                           ; 74 16
    23182376    cmp AL, strict byte 002h                  ; 3c 02
    2319     je short 0217fh                           ; 74 0e
    2320     jmp short 021c0h                          ; eb 4d
     2377    je short 021cfh                           ; 74 0e
     2378    jmp short 02210h                          ; eb 4d
    23212379    test al, al                               ; 84 c0
    2322     jne short 021c0h                          ; 75 49
     2380    jne short 02210h                          ; 75 49
    23232381    mov BL, strict byte 01eh                  ; b3 1e
    2324     jmp short 02185h                          ; eb 0a
     2382    jmp short 021d5h                          ; eb 0a
    23252383    mov BL, strict byte 026h                  ; b3 26
    2326     jmp short 02185h                          ; eb 06
     2384    jmp short 021d5h                          ; eb 06
    23272385    mov BL, strict byte 067h                  ; b3 67
    2328     jmp short 02185h                          ; eb 02
     2386    jmp short 021d5h                          ; eb 02
    23292387    mov BL, strict byte 070h                  ; b3 70
    23302388    mov al, bl                                ; 88 d8
     
    23322390    ; inc al                                    ; fe c0
    23332391    xor ah, ah                                ; 30 e4
    2334     call 0165ch                               ; e8 ce f4
     2392    call 016ach                               ; e8 ce f4
    23352393    xor ah, ah                                ; 30 e4
    23362394    mov dx, ax                                ; 89 c2
    23372395    sal dx, 008h                              ; c1 e2 08
    23382396    movzx ax, bl                              ; 0f b6 c3
    2339     call 0165ch                               ; e8 c1 f4
     2397    call 016ach                               ; e8 c1 f4
    23402398    xor ah, ah                                ; 30 e4
    23412399    add ax, dx                                ; 01 d0
     
    23442402    add AL, strict byte 002h                  ; 04 02
    23452403    xor ah, ah                                ; 30 e4
    2346     call 0165ch                               ; e8 b1 f4
     2404    call 016ach                               ; e8 b1 f4
    23472405    xor ah, ah                                ; 30 e4
    23482406    mov word [bp-036h], ax                    ; 89 46 ca
     
    23502408    add AL, strict byte 007h                  ; 04 07
    23512409    xor ah, ah                                ; 30 e4
    2352     call 0165ch                               ; e8 a3 f4
     2410    call 016ach                               ; e8 a3 f4
    23532411    xor ah, ah                                ; 30 e4
    23542412    mov word [bp-032h], ax                    ; 89 46 ce
    2355     jmp short 021cdh                          ; eb 0d
     2413    jmp short 0221dh                          ; eb 0d
    23562414    mov bx, word [bp-020h]                    ; 8b 5e e0
    23572415    mov cx, si                                ; 89 f1
    23582416    mov dx, ss                                ; 8c d2
    23592417    lea ax, [bp-036h]                         ; 8d 46 ca
    2360     call 0534bh                               ; e8 7e 31
     2418    call 05389h                               ; e8 6c 31
    23612419    mov bx, 00da2h                            ; bb a2 0d
    23622420    mov cx, ds                                ; 8c d9
    23632421    mov ax, strict word 00004h                ; b8 04 00
    2364     call 018e1h                               ; e8 09 f7
     2422    call 01931h                               ; e8 09 f7
    23652423    mov ax, word [bp-032h]                    ; 8b 46 ce
    23662424    push ax                                   ; 50
     
    23782436    push 0012dh                               ; 68 2d 01
    23792437    push strict byte 00004h                   ; 6a 04
    2380     call 01922h                               ; e8 23 f7
     2438    call 01972h                               ; e8 23 f7
    23812439    add sp, strict byte 00014h                ; 83 c4 14
    23822440    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
     
    24112469    mov al, byte [bp-00eh]                    ; 8a 46 f2
    24122470    cmp AL, strict byte 002h                  ; 3c 02
    2413     jnc short 022bch                          ; 73 60
     2471    jnc short 0230ch                          ; 73 60
    24142472    test al, al                               ; 84 c0
    2415     jne short 02265h                          ; 75 05
     2473    jne short 022b5h                          ; 75 05
    24162474    mov di, strict word 0003dh                ; bf 3d 00
    2417     jmp short 02268h                          ; eb 03
     2475    jmp short 022b8h                          ; eb 03
    24182476    mov di, strict word 0004dh                ; bf 4d 00
    24192477    mov dx, word [bp-024h]                    ; 8b 56 dc
     
    24342492    xor al, al                                ; 30 c0
    24352493    xor ah, ah                                ; 30 e4
    2436     jmp short 022a6h                          ; eb 05
     2494    jmp short 022f6h                          ; eb 05
    24372495    cmp ah, 00fh                              ; 80 fc 0f
    2438     jnc short 022b4h                          ; 73 0e
     2496    jnc short 02304h                          ; 73 0e
    24392497    movzx bx, ah                              ; 0f b6 dc
    24402498    mov es, dx                                ; 8e c2
     
    24432501    db  0feh, 0c4h
    24442502    ; inc ah                                    ; fe c4
    2445     jmp short 022a1h                          ; eb ed
     2503    jmp short 022f1h                          ; eb ed
    24462504    neg al                                    ; f6 d8
    24472505    mov es, dx                                ; 8e c2
     
    24542512    inc byte [bp-006h]                        ; fe 46 fa
    24552513    cmp byte [bp-010h], 003h                  ; 80 7e f0 03
    2456     jne near 02371h                           ; 0f 85 98 00
     2514    jne near 023c1h                           ; 0f 85 98 00
    24572515    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    24582516    imul ax, ax, strict byte 00018h           ; 6b c0 18
     
    24712529    mov ax, word [bp-028h]                    ; 8b 46 d8
    24722530    mov dx, es                                ; 8c c2
    2473     call 01cffh                               ; e8 ec f9
     2531    call 01d4fh                               ; e8 ec f9
    24742532    test ax, ax                               ; 85 c0
    2475     je short 02322h                           ; 74 0b
     2533    je short 02372h                           ; 74 0b
    24762534    push 00154h                               ; 68 54 01
    24772535    push strict byte 00007h                   ; 6a 07
    2478     call 01922h                               ; e8 03 f6
     2536    call 01972h                               ; e8 03 f6
    24792537    add sp, strict byte 00004h                ; 83 c4 04
    24802538    mov cl, byte [bp-0025fh]                  ; 8a 8e a1 fd
     
    25052563    mov al, byte [bp-010h]                    ; 8a 46 f0
    25062564    cmp AL, strict byte 003h                  ; 3c 03
    2507     je short 023a4h                           ; 74 2c
     2565    je short 023f4h                           ; 74 2c
    25082566    cmp AL, strict byte 002h                  ; 3c 02
    2509     jne near 02407h                           ; 0f 85 89 00
     2567    jne near 02457h                           ; 0f 85 89 00
    25102568    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
    25112569    imul bx, bx, strict byte 00018h           ; 6b db 18
     
    25192577    shr word [bp-02eh], 1                     ; d1 6e d2
    25202578    rcr word [bp-030h], 1                     ; d1 5e d0
    2521     loop 0239ch                               ; e2 f8
     2579    loop 023ech                               ; e2 f8
    25222580    movzx dx, byte [bp-001bfh]                ; 0f b6 96 41 fe
    25232581    sal dx, 008h                              ; c1 e2 08
     
    25252583    or dx, ax                                 ; 09 c2
    25262584    mov byte [bp-012h], 00fh                  ; c6 46 ee 0f
    2527     jmp short 023c2h                          ; eb 09
     2585    jmp short 02412h                          ; eb 09
    25282586    dec byte [bp-012h]                        ; fe 4e ee
    25292587    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
    2530     jbe short 023cfh                          ; 76 0d
     2588    jbe short 0241fh                          ; 76 0d
    25312589    movzx cx, byte [bp-012h]                  ; 0f b6 4e ee
    25322590    mov ax, strict word 00001h                ; b8 01 00
    25332591    sal ax, CL                                ; d3 e0
    25342592    test dx, ax                               ; 85 c2
    2535     je short 023b9h                           ; 74 ea
     2593    je short 02409h                           ; 74 ea
    25362594    xor di, di                                ; 31 ff
    2537     jmp short 023d8h                          ; eb 05
     2595    jmp short 02428h                          ; eb 05
    25382596    cmp di, strict byte 00014h                ; 83 ff 14
    2539     jnl short 023edh                          ; 7d 15
     2597    jnl short 0243dh                          ; 7d 15
    25402598    mov si, di                                ; 89 fe
    25412599    add si, di                                ; 01 fe
     
    25452603    mov byte [bp+si-05fh], al                 ; 88 42 a1
    25462604    inc di                                    ; 47
    2547     jmp short 023d3h                          ; eb e6
     2605    jmp short 02423h                          ; eb e6
    25482606    mov byte [bp-038h], 000h                  ; c6 46 c8 00
    25492607    mov di, strict word 00027h                ; bf 27 00
    2550     jmp short 023fbh                          ; eb 05
     2608    jmp short 0244bh                          ; eb 05
    25512609    dec di                                    ; 4f
    25522610    test di, di                               ; 85 ff
    2553     jle short 02407h                          ; 7e 0c
     2611    jle short 02457h                          ; 7e 0c
    25542612    cmp byte [bp+di-060h], 020h               ; 80 7b a0 20
    2555     jne short 02407h                          ; 75 06
     2613    jne short 02457h                          ; 75 06
    25562614    mov byte [bp+di-060h], 000h               ; c6 43 a0 00
    2557     jmp short 023f6h                          ; eb ef
     2615    jmp short 02446h                          ; eb ef
    25582616    mov al, byte [bp-010h]                    ; 8a 46 f0
    25592617    cmp AL, strict byte 003h                  ; 3c 03
    2560     je short 0246ah                           ; 74 5c
     2618    je short 024bah                           ; 74 5c
    25612619    cmp AL, strict byte 002h                  ; 3c 02
    2562     je short 0241bh                           ; 74 09
     2620    je short 0246bh                           ; 74 09
    25632621    cmp AL, strict byte 001h                  ; 3c 01
    2564     je near 024d1h                            ; 0f 84 b9 00
    2565     jmp near 024f0h                           ; e9 d5 00
     2622    je near 02521h                            ; 0f 84 b9 00
     2623    jmp near 02540h                           ; e9 d5 00
    25662624    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    2567     je short 02426h                           ; 74 05
     2625    je short 02476h                           ; 74 05
    25682626    mov ax, 0017fh                            ; b8 7f 01
    2569     jmp short 02429h                          ; eb 03
     2627    jmp short 02479h                          ; eb 03
    25702628    mov ax, 00186h                            ; b8 86 01
    25712629    push ax                                   ; 50
     
    25742632    push 0018dh                               ; 68 8d 01
    25752633    push strict byte 00002h                   ; 6a 02
    2576     call 01922h                               ; e8 eb f4
     2634    call 01972h                               ; e8 eb f4
    25772635    add sp, strict byte 00008h                ; 83 c4 08
    25782636    xor di, di                                ; 31 ff
     
    25802638    inc di                                    ; 47
    25812639    test ax, ax                               ; 85 c0
    2582     je short 02453h                           ; 74 0e
     2640    je short 024a3h                           ; 74 0e
    25832641    push ax                                   ; 50
    25842642    push 00198h                               ; 68 98 01
    25852643    push strict byte 00002h                   ; 6a 02
    2586     call 01922h                               ; e8 d4 f4
     2644    call 01972h                               ; e8 d4 f4
    25872645    add sp, strict byte 00006h                ; 83 c4 06
    2588     jmp short 0243ch                          ; eb e9
     2646    jmp short 0248ch                          ; eb e9
    25892647    push dword [bp-030h]                      ; 66 ff 76 d0
    25902648    movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
     
    25922650    push 0019bh                               ; 68 9b 01
    25932651    push strict byte 00002h                   ; 6a 02
    2594     call 01922h                               ; e8 be f4
     2652    call 01972h                               ; e8 be f4
    25952653    add sp, strict byte 0000ah                ; 83 c4 0a
    2596     jmp near 024f0h                           ; e9 86 00
     2654    jmp near 02540h                           ; e9 86 00
    25972655    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    2598     je short 02475h                           ; 74 05
     2656    je short 024c5h                           ; 74 05
    25992657    mov ax, 0017fh                            ; b8 7f 01
    2600     jmp short 02478h                          ; eb 03
     2658    jmp short 024c8h                          ; eb 03
    26012659    mov ax, 00186h                            ; b8 86 01
    26022660    push ax                                   ; 50
     
    26052663    push 0018dh                               ; 68 8d 01
    26062664    push strict byte 00002h                   ; 6a 02
    2607     call 01922h                               ; e8 9c f4
     2665    call 01972h                               ; e8 9c f4
    26082666    add sp, strict byte 00008h                ; 83 c4 08
    26092667    xor di, di                                ; 31 ff
     
    26112669    inc di                                    ; 47
    26122670    test ax, ax                               ; 85 c0
    2613     je short 024a2h                           ; 74 0e
     2671    je short 024f2h                           ; 74 0e
    26142672    push ax                                   ; 50
    26152673    push 00198h                               ; 68 98 01
    26162674    push strict byte 00002h                   ; 6a 02
    2617     call 01922h                               ; e8 85 f4
     2675    call 01972h                               ; e8 85 f4
    26182676    add sp, strict byte 00006h                ; 83 c4 06
    2619     jmp short 0248bh                          ; eb e9
     2677    jmp short 024dbh                          ; eb e9
    26202678    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    26212679    imul ax, ax, strict byte 00018h           ; 6b c0 18
     
    26232681    add bx, ax                                ; 01 c3
    26242682    cmp byte [es:bx+01fh], 005h               ; 26 80 7f 1f 05
    2625     jne short 024bfh                          ; 75 0a
     2683    jne short 0250fh                          ; 75 0a
    26262684    movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
    26272685    push ax                                   ; 50
    26282686    push 001bbh                               ; 68 bb 01
    2629     jmp short 024c7h                          ; eb 08
     2687    jmp short 02517h                          ; eb 08
    26302688    movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
    26312689    push ax                                   ; 50
    26322690    push 001d5h                               ; 68 d5 01
    26332691    push strict byte 00002h                   ; 6a 02
    2634     call 01922h                               ; e8 56 f4
     2692    call 01972h                               ; e8 56 f4
    26352693    add sp, strict byte 00006h                ; 83 c4 06
    2636     jmp short 024f0h                          ; eb 1f
     2694    jmp short 02540h                          ; eb 1f
    26372695    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    2638     je short 024dch                           ; 74 05
     2696    je short 0252ch                           ; 74 05
    26392697    mov ax, 0017fh                            ; b8 7f 01
    2640     jmp short 024dfh                          ; eb 03
     2698    jmp short 0252fh                          ; eb 03
    26412699    mov ax, 00186h                            ; b8 86 01
    26422700    push ax                                   ; 50
     
    26452703    push 001e7h                               ; 68 e7 01
    26462704    push strict byte 00002h                   ; 6a 02
    2647     call 01922h                               ; e8 35 f4
     2705    call 01972h                               ; e8 35 f4
    26482706    add sp, strict byte 00008h                ; 83 c4 08
    26492707    inc byte [bp-00eh]                        ; fe 46 f2
    26502708    cmp byte [bp-00eh], 008h                  ; 80 7e f2 08
    2651     jnc short 02547h                          ; 73 4e
     2709    jnc short 02597h                          ; 73 4e
    26522710    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
    26532711    mov ax, bx                                ; 89 d8
     
    26772735    out DX, AL                                ; ee
    26782736    test cl, cl                               ; 84 c9
    2679     je near 01fb1h                            ; 0f 84 70 fa
     2737    je near 02001h                            ; 0f 84 70 fa
    26802738    mov ax, 000b0h                            ; b8 b0 00
    2681     jmp near 01fb4h                           ; e9 6d fa
     2739    jmp near 02004h                           ; e9 6d fa
    26822740    mov al, byte [bp-006h]                    ; 8a 46 fa
    26832741    les bx, [bp-028h]                         ; c4 5e d8
     
    26882746    mov dx, strict word 00075h                ; ba 75 00
    26892747    mov ax, strict word 00040h                ; b8 40 00
    2690     call 0160eh                               ; e8 a7 f0
     2748    call 0165eh                               ; e8 a7 f0
    26912749    lea sp, [bp-004h]                         ; 8d 66 fc
    26922750    pop di                                    ; 5f
     
    26942752    pop bp                                    ; 5d
    26952753    retn                                      ; c3
    2696 ata_cmd_data_out_:                           ; 0xf256e LB 0x21a
     2754ata_cmd_data_out_:                           ; 0xf25be LB 0x21a
    26972755    push bp                                   ; 55
    26982756    mov bp, sp                                ; 89 e5
     
    27232781    mov byte [bp-008h], al                    ; 88 46 f8
    27242782    cmp AL, strict byte 001h                  ; 3c 01
    2725     jne short 025c2h                          ; 75 07
     2783    jne short 02612h                          ; 75 07
    27262784    mov word [bp-012h], 00080h                ; c7 46 ee 80 00
    2727     jmp short 025c7h                          ; eb 05
     2785    jmp short 02617h                          ; eb 05
    27282786    mov word [bp-012h], 00100h                ; c7 46 ee 00 01
    27292787    lea dx, [bx+007h]                         ; 8d 57 07
     
    27322790    ; sub ah, ah                                ; 2a e4
    27332791    test AL, strict byte 080h                 ; a8 80
    2734     je short 025e0h                           ; 74 0f
     2792    je short 02630h                           ; 74 0f
    27352793    mov dx, word [bp-00ch]                    ; 8b 56 f4
    27362794    add dx, strict byte 00006h                ; 83 c2 06
     
    27382796    out DX, AL                                ; ee
    27392797    mov dx, strict word 00001h                ; ba 01 00
    2740     jmp near 0277fh                           ; e9 9f 01
     2798    jmp near 027cfh                           ; e9 9f 01
    27412799    mov es, [bp-00ah]                         ; 8e 46 f6
    27422800    mov ax, word [es:di]                      ; 26 8b 05
     
    27552813    mov ax, word [bp-010h]                    ; 8b 46 f0
    27562814    test ax, ax                               ; 85 c0
    2757     jne short 0267eh                          ; 75 67
     2815    jne short 026ceh                          ; 75 67
    27582816    mov dx, word [bp-01eh]                    ; 8b 56 e2
    27592817    add dx, word [bp-00eh]                    ; 03 56 f2
    27602818    adc ax, word [bp-01ch]                    ; 13 46 e4
    27612819    cmp ax, 01000h                            ; 3d 00 10
    2762     jnbe short 02627h                         ; 77 02
    2763     jne short 02652h                          ; 75 2b
     2820    jnbe short 02677h                         ; 77 02
     2821    jne short 026a2h                          ; 75 2b
    27642822    mov ax, word [bp-01ch]                    ; 8b 46 e4
    27652823    xor al, al                                ; 30 c0
     
    27862844    shr word [bp-01ch], 1                     ; d1 6e e4
    27872845    rcr word [bp-01eh], 1                     ; d1 5e e2
    2788     loop 0265dh                               ; e2 f8
     2846    loop 026adh                               ; e2 f8
    27892847    mov ax, word [bp-01eh]                    ; 8b 46 e2
    27902848    mov word [bp-016h], ax                    ; 89 46 ea
     
    28152873    out DX, AL                                ; ee
    28162874    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    2817     je short 026b4h                           ; 74 05
     2875    je short 02704h                           ; 74 05
    28182876    mov ax, 000b0h                            ; b8 b0 00
    2819     jmp short 026b7h                          ; eb 03
     2877    jmp short 02707h                          ; eb 03
    28202878    mov ax, 000a0h                            ; b8 a0 00
    28212879    movzx dx, byte [bp-014h]                  ; 0f b6 56 ec
     
    28322890    mov dl, al                                ; 88 c2
    28332891    test AL, strict byte 080h                 ; a8 80
    2834     jne short 026c8h                          ; 75 f4
     2892    jne short 02718h                          ; 75 f4
    28352893    test AL, strict byte 001h                 ; a8 01
    2836     je short 026e7h                           ; 74 0f
     2894    je short 02737h                           ; 74 0f
    28372895    mov dx, word [bp-00ch]                    ; 8b 56 f4
    28382896    add dx, strict byte 00006h                ; 83 c2 06
     
    28402898    out DX, AL                                ; ee
    28412899    mov dx, strict word 00002h                ; ba 02 00
    2842     jmp near 0277fh                           ; e9 98 00
     2900    jmp near 027cfh                           ; e9 98 00
    28432901    test dl, 008h                             ; f6 c2 08
    2844     jne short 026fbh                          ; 75 0f
     2902    jne short 0274bh                          ; 75 0f
    28452903    mov dx, word [bp-00ch]                    ; 8b 56 f4
    28462904    add dx, strict byte 00006h                ; 83 c2 06
     
    28482906    out DX, AL                                ; ee
    28492907    mov dx, strict word 00003h                ; ba 03 00
    2850     jmp near 0277fh                           ; e9 84 00
     2908    jmp near 027cfh                           ; e9 84 00
    28512909    sti                                       ; fb
    28522910    cmp si, 0f800h                            ; 81 fe 00 f8
    2853     jc short 0270fh                           ; 72 0d
     2911    jc short 0275fh                           ; 72 0d
    28542912    sub si, 00800h                            ; 81 ee 00 08
    28552913    mov ax, word [bp-018h]                    ; 8b 46 e8
     
    28572915    mov word [bp-018h], ax                    ; 89 46 e8
    28582916    cmp byte [bp-008h], 001h                  ; 80 7e f8 01
    2859     jne short 02723h                          ; 75 0e
     2917    jne short 02773h                          ; 75 0e
    28602918    mov dx, bx                                ; 89 da
    28612919    mov cx, word [bp-012h]                    ; 8b 4e ee
     
    28632921    db  0f3h, 066h, 026h, 06fh
    28642922    ; rep es outsd                              ; f3 66 26 6f
    2865     jmp short 0272eh                          ; eb 0b
     2923    jmp short 0277eh                          ; eb 0b
    28662924    mov dx, bx                                ; 89 da
    28672925    mov cx, word [bp-012h]                    ; 8b 4e ee
     
    28782936    mov dl, al                                ; 88 c2
    28792937    test AL, strict byte 080h                 ; a8 80
    2880     jne short 02738h                          ; 75 f4
     2938    jne short 02788h                          ; 75 f4
    28812939    cmp word [bp-00eh], strict byte 00000h    ; 83 7e f2 00
    2882     jne short 0275eh                          ; 75 14
     2940    jne short 027aeh                          ; 75 14
    28832941    and AL, strict byte 0e9h                  ; 24 e9
    28842942    cmp AL, strict byte 040h                  ; 3c 40
    2885     je short 02774h                           ; 74 24
     2943    je short 027c4h                           ; 74 24
    28862944    mov dx, word [bp-00ch]                    ; 8b 56 f4
    28872945    add dx, strict byte 00006h                ; 83 c2 06
     
    28892947    out DX, AL                                ; ee
    28902948    mov dx, strict word 00006h                ; ba 06 00
    2891     jmp short 0277fh                          ; eb 21
     2949    jmp short 027cfh                          ; eb 21
    28922950    mov al, dl                                ; 88 d0
    28932951    and AL, strict byte 0c9h                  ; 24 c9
    28942952    cmp AL, strict byte 048h                  ; 3c 48
    2895     je short 026fch                           ; 74 96
     2953    je short 0274ch                           ; 74 96
    28962954    mov dx, word [bp-00ch]                    ; 8b 56 f4
    28972955    add dx, strict byte 00006h                ; 83 c2 06
     
    28992957    out DX, AL                                ; ee
    29002958    mov dx, strict word 00007h                ; ba 07 00
    2901     jmp short 0277fh                          ; eb 0b
     2959    jmp short 027cfh                          ; eb 0b
    29022960    mov dx, word [bp-00ch]                    ; 8b 56 f4
    29032961    add dx, strict byte 00006h                ; 83 c2 06
     
    29112969    pop bp                                    ; 5d
    29122970    retn                                      ; c3
    2913 @ata_read_sectors:                           ; 0xf2788 LB 0x7a
     2971@ata_read_sectors:                           ; 0xf27d8 LB 0x7a
    29142972    push bp                                   ; 55
    29152973    mov bp, sp                                ; 89 e5
     
    29252983    mov ax, word [es:si+012h]                 ; 26 8b 44 12
    29262984    test ax, ax                               ; 85 c0
    2927     je short 027b6h                           ; 74 0d
     2985    je short 02806h                           ; 74 0d
    29282986    movzx di, bl                              ; 0f b6 fb
    29292987    imul di, di, strict byte 00018h           ; 6b ff 18
    29302988    mov [bp-006h], es                         ; 8c 46 fa
    29312989    add di, si                                ; 01 f7
    2932     jmp short 027e2h                          ; eb 2c
     2990    jmp short 02832h                          ; eb 2c
    29332991    mov di, word [es:si]                      ; 26 8b 3c
    29342992    add di, cx                                ; 01 cf
     
    29362994    adc ax, word [es:si+002h]                 ; 26 13 44 02
    29372995    cmp ax, 01000h                            ; 3d 00 10
    2938     jnbe short 027c9h                         ; 77 02
    2939     jne short 027d5h                          ; 75 0c
     2996    jnbe short 02819h                         ; 77 02
     2997    jne short 02825h                          ; 75 0c
    29402998    mov bx, strict word 00024h                ; bb 24 00
    29412999    mov ax, si                                ; 89 f0
    29423000    mov dx, es                                ; 8c c2
    2943     call 01cffh                               ; e8 2c f5
    2944     jmp short 027f9h                          ; eb 24
     3001    call 01d4fh                               ; e8 2c f5
     3002    jmp short 02849h                          ; eb 24
    29453003    movzx ax, bl                              ; 0f b6 c3
    29463004    imul ax, ax, strict byte 00018h           ; 6b c0 18
     
    29523010    mov ax, si                                ; 89 f0
    29533011    mov dx, es                                ; 8c c2
    2954     call 01cffh                               ; e8 0f f5
     3012    call 01d4fh                               ; e8 0f f5
    29553013    mov es, [bp-006h]                         ; 8e 46 fa
    29563014    mov word [es:di+024h], 00200h             ; 26 c7 45 24 00 02
     
    29603018    pop bp                                    ; 5d
    29613019    retn 00004h                               ; c2 04 00
    2962 @ata_write_sectors:                          ; 0xf2802 LB 0x3d
     3020@ata_write_sectors:                          ; 0xf2852 LB 0x3d
    29633021    push bp                                   ; 55
    29643022    mov bp, sp                                ; 89 e5
     
    29673025    mov cx, word [es:si+00ah]                 ; 26 8b 4c 0a
    29683026    cmp word [es:si+012h], strict byte 00000h ; 26 83 7c 12 00
    2969     je short 02820h                           ; 74 0c
     3027    je short 02870h                           ; 74 0c
    29703028    mov bx, strict word 00030h                ; bb 30 00
    29713029    mov ax, si                                ; 89 f0
    29723030    mov dx, es                                ; 8c c2
    2973     call 0256eh                               ; e8 50 fd
    2974     jmp short 02837h                          ; eb 17
     3031    call 025beh                               ; e8 50 fd
     3032    jmp short 02887h                          ; eb 17
    29753033    xor ax, ax                                ; 31 c0
    29763034    mov dx, word [es:si]                      ; 26 8b 14
     
    29783036    adc ax, word [es:si+002h]                 ; 26 13 44 02
    29793037    cmp ax, 01000h                            ; 3d 00 10
    2980     jnbe short 02832h                         ; 77 02
    2981     jne short 02814h                          ; 75 e2
     3038    jnbe short 02882h                         ; 77 02
     3039    jne short 02864h                          ; 75 e2
    29823040    mov bx, strict word 00034h                ; bb 34 00
    2983     jmp short 02817h                          ; eb e0
     3041    jmp short 02867h                          ; eb e0
    29843042    lea sp, [bp-002h]                         ; 8d 66 fe
    29853043    pop si                                    ; 5e
    29863044    pop bp                                    ; 5d
    29873045    retn 00004h                               ; c2 04 00
    2988 ata_cmd_packet_:                             ; 0xf283f LB 0x2e8
     3046ata_cmd_packet_:                             ; 0xf288f LB 0x2e8
    29893047    push bp                                   ; 55
    29903048    mov bp, sp                                ; 89 e5
     
    29973055    mov dx, strict word 0000eh                ; ba 0e 00
    29983056    mov ax, strict word 00040h                ; b8 40 00
    2999     call 0161ch                               ; e8 c6 ed
     3057    call 0166ch                               ; e8 c6 ed
    30003058    mov word [bp-012h], 00122h                ; c7 46 ee 22 01
    30013059    mov word [bp-00eh], ax                    ; 89 46 f2
     
    30063064    mov byte [bp-006h], ah                    ; 88 66 fa
    30073065    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    3008     jne short 02891h                          ; 75 1f
     3066    jne short 028e1h                          ; 75 1f
    30093067    mov bx, 00da2h                            ; bb a2 0d
    30103068    mov cx, ds                                ; 8c d9
    30113069    mov ax, strict word 00004h                ; b8 04 00
    3012     call 018e1h                               ; e8 64 f0
     3070    call 01931h                               ; e8 64 f0
    30133071    push 00201h                               ; 68 01 02
    30143072    push 00210h                               ; 68 10 02
    30153073    push strict byte 00004h                   ; 6a 04
    3016     call 01922h                               ; e8 9a f0
     3074    call 01972h                               ; e8 9a f0
    30173075    add sp, strict byte 00006h                ; 83 c4 06
    30183076    mov dx, strict word 00001h                ; ba 01 00
    3019     jmp near 02b1ch                           ; e9 8b 02
     3077    jmp near 02b6ch                           ; e9 8b 02
    30203078    test byte [bp+004h], 001h                 ; f6 46 04 01
    3021     jne short 0288bh                          ; 75 f4
     3079    jne short 028dbh                          ; 75 f4
    30223080    xor ah, ah                                ; 30 e4
    30233081    imul ax, ax, strict byte 00006h           ; 6b c0 06
     
    30373095    mov al, byte [bp-008h]                    ; 8a 46 f8
    30383096    cmp AL, strict byte 00ch                  ; 3c 0c
    3039     jnc short 028d4h                          ; 73 06
     3097    jnc short 02924h                          ; 73 06
    30403098    mov byte [bp-008h], 00ch                  ; c6 46 f8 0c
    3041     jmp short 028dah                          ; eb 06
    3042     jbe short 028dah                          ; 76 04
     3099    jmp short 0292ah                          ; eb 06
     3100    jbe short 0292ah                          ; 76 04
    30433101    mov byte [bp-008h], 010h                  ; c6 46 f8 10
    30443102    shr byte [bp-008h], 1                     ; d0 6e f8
     
    30533111    ; sub ah, ah                                ; 2a e4
    30543112    test AL, strict byte 080h                 ; a8 80
    3055     je short 02902h                           ; 74 06
     3113    je short 02952h                           ; 74 06
    30563114    mov dx, strict word 00002h                ; ba 02 00
    3057     jmp near 02b1ch                           ; e9 1a 02
     3115    jmp near 02b6ch                           ; e9 1a 02
    30583116    mov dx, word [bp-010h]                    ; 8b 56 f0
    30593117    add dx, strict byte 00006h                ; 83 c2 06
     
    30673125    out DX, AL                                ; ee
    30683126    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    3069     je short 02922h                           ; 74 05
     3127    je short 02972h                           ; 74 05
    30703128    mov ax, 000b0h                            ; b8 b0 00
    3071     jmp short 02925h                          ; eb 03
     3129    jmp short 02975h                          ; eb 03
    30723130    mov ax, 000a0h                            ; b8 a0 00
    30733131    lea dx, [bx+006h]                         ; 8d 57 06
     
    30823140    mov dl, al                                ; 88 c2
    30833141    test AL, strict byte 080h                 ; a8 80
    3084     jne short 0292fh                          ; 75 f4
     3142    jne short 0297fh                          ; 75 f4
    30853143    test AL, strict byte 001h                 ; a8 01
    3086     je short 0294eh                           ; 74 0f
     3144    je short 0299eh                           ; 74 0f
    30873145    mov dx, word [bp-010h]                    ; 8b 56 f0
    30883146    add dx, strict byte 00006h                ; 83 c2 06
     
    30903148    out DX, AL                                ; ee
    30913149    mov dx, strict word 00003h                ; ba 03 00
    3092     jmp near 02b1ch                           ; e9 ce 01
     3150    jmp near 02b6ch                           ; e9 ce 01
    30933151    test dl, 008h                             ; f6 c2 08
    3094     jne short 02962h                          ; 75 0f
     3152    jne short 029b2h                          ; 75 0f
    30953153    mov dx, word [bp-010h]                    ; 8b 56 f0
    30963154    add dx, strict byte 00006h                ; 83 c2 06
     
    30983156    out DX, AL                                ; ee
    30993157    mov dx, strict word 00004h                ; ba 04 00
    3100     jmp near 02b1ch                           ; e9 ba 01
     3158    jmp near 02b6ch                           ; e9 ba 01
    31013159    sti                                       ; fb
    31023160    mov ax, di                                ; 89 f8
     
    31113169    ; rep es outsw                              ; f3 26 6f
    31123170    cmp byte [bp+00ah], 000h                  ; 80 7e 0a 00
    3113     jne short 0298bh                          ; 75 0b
     3171    jne short 029dbh                          ; 75 0b
    31143172    lea dx, [bx+007h]                         ; 8d 57 07
    31153173    in AL, DX                                 ; ec
     
    31173175    ; sub ah, ah                                ; 2a e4
    31183176    mov dl, al                                ; 88 c2
    3119     jmp near 02afdh                           ; e9 72 01
     3177    jmp near 02b4dh                           ; e9 72 01
    31203178    lea dx, [bx+007h]                         ; 8d 57 07
    31213179    in AL, DX                                 ; ec
     
    31243182    mov dl, al                                ; 88 c2
    31253183    test AL, strict byte 080h                 ; a8 80
    3126     jne short 0298bh                          ; 75 f4
     3184    jne short 029dbh                          ; 75 f4
    31273185    test AL, strict byte 088h                 ; a8 88
    3128     je near 02afdh                            ; 0f 84 60 01
     3186    je near 02b4dh                            ; 0f 84 60 01
    31293187    test AL, strict byte 001h                 ; a8 01
    3130     je short 029ach                           ; 74 0b
     3188    je short 029fch                           ; 74 0b
    31313189    mov dx, word [bp-010h]                    ; 8b 56 f0
    31323190    add dx, strict byte 00006h                ; 83 c2 06
    31333191    mov AL, strict byte 008h                  ; b0 08
    31343192    out DX, AL                                ; ee
    3135     jmp short 02948h                          ; eb 9c
     3193    jmp short 02998h                          ; eb 9c
    31363194    mov al, dl                                ; 88 d0
    31373195    and AL, strict byte 0c9h                  ; 24 c9
    31383196    cmp AL, strict byte 048h                  ; 3c 48
    3139     je short 029bfh                           ; 74 0b
     3197    je short 02a0fh                           ; 74 0b
    31403198    mov dx, word [bp-010h]                    ; 8b 56 f0
    31413199    add dx, strict byte 00006h                ; 83 c2 06
    31423200    mov AL, strict byte 008h                  ; b0 08
    31433201    out DX, AL                                ; ee
    3144     jmp short 0295ch                          ; eb 9d
     3202    jmp short 029ach                          ; eb 9d
    31453203    mov ax, word [bp+00ch]                    ; 8b 46 0c
    31463204    shr ax, 004h                              ; c1 e8 04
     
    31653223    mov ax, word [bp+004h]                    ; 8b 46 04
    31663224    cmp ax, cx                                ; 39 c8
    3167     jbe short 029ffh                          ; 76 0c
     3225    jbe short 02a4fh                          ; 76 0c
    31683226    mov ax, cx                                ; 89 c8
    31693227    sub word [bp+004h], cx                    ; 29 4e 04
    31703228    xor ax, cx                                ; 31 c8
    31713229    mov word [bp-014h], ax                    ; 89 46 ec
    3172     jmp short 02a09h                          ; eb 0a
     3230    jmp short 02a59h                          ; eb 0a
    31733231    mov cx, ax                                ; 89 c1
    31743232    mov word [bp+004h], strict word 00000h    ; c7 46 04 00 00
     
    31763234    xor ax, ax                                ; 31 c0
    31773235    cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
    3178     jne short 02a32h                          ; 75 21
     3236    jne short 02a82h                          ; 75 21
    31793237    mov dx, word [bp-014h]                    ; 8b 56 ec
    31803238    cmp dx, word [bp+006h]                    ; 3b 56 06
    3181     jbe short 02a32h                          ; 76 19
     3239    jbe short 02a82h                          ; 76 19
    31823240    mov ax, word [bp-014h]                    ; 8b 46 ec
    31833241    sub ax, word [bp+006h]                    ; 2b 46 06
     
    31883246    mov word [bp+006h], ax                    ; 89 46 06
    31893247    mov word [bp+008h], ax                    ; 89 46 08
    3190     jmp short 02a3eh                          ; eb 0c
     3248    jmp short 02a8eh                          ; eb 0c
    31913249    mov word [bp-00ch], ax                    ; 89 46 f4
    31923250    mov dx, word [bp-014h]                    ; 8b 56 ec
     
    31963254    mov al, byte [bp-00ah]                    ; 8a 46 f6
    31973255    test cl, 003h                             ; f6 c1 03
    3198     je short 02a4bh                           ; 74 02
     3256    je short 02a9bh                           ; 74 02
    31993257    xor al, al                                ; 30 c0
    32003258    test byte [bp-014h], 003h                 ; f6 46 ec 03
    3201     je short 02a53h                           ; 74 02
     3259    je short 02aa3h                           ; 74 02
    32023260    xor al, al                                ; 30 c0
    32033261    test byte [bp-00ch], 003h                 ; f6 46 f4 03
    3204     je short 02a5bh                           ; 74 02
     3262    je short 02aabh                           ; 74 02
    32053263    xor al, al                                ; 30 c0
    32063264    test byte [bp-014h], 001h                 ; f6 46 ec 01
    3207     je short 02a73h                           ; 74 12
     3265    je short 02ac3h                           ; 74 12
    32083266    inc word [bp-014h]                        ; ff 46 ec
    32093267    cmp word [bp-00ch], strict byte 00000h    ; 83 7e f4 00
    3210     jbe short 02a73h                          ; 76 09
     3268    jbe short 02ac3h                          ; 76 09
    32113269    test byte [bp-00ch], 001h                 ; f6 46 f4 01
    3212     je short 02a73h                           ; 74 03
     3270    je short 02ac3h                           ; 74 03
    32133271    dec word [bp-00ch]                        ; ff 4e f4
    32143272    cmp AL, strict byte 001h                  ; 3c 01
    3215     jne short 02a84h                          ; 75 0d
     3273    jne short 02ad4h                          ; 75 0d
    32163274    shr word [bp-014h], 002h                  ; c1 6e ec 02
    32173275    shr cx, 002h                              ; c1 e9 02
    32183276    shr word [bp-00ch], 002h                  ; c1 6e f4 02
    3219     jmp short 02a8ch                          ; eb 08
     3277    jmp short 02adch                          ; eb 08
    32203278    shr word [bp-014h], 1                     ; d1 6e ec
    32213279    shr cx, 1                                 ; d1 e9
    32223280    shr word [bp-00ch], 1                     ; d1 6e f4
    32233281    cmp AL, strict byte 001h                  ; 3c 01
    3224     jne short 02abch                          ; 75 2c
     3282    jne short 02b0ch                          ; 75 2c
    32253283    test cx, cx                               ; 85 c9
    3226     je short 02a9eh                           ; 74 0a
     3284    je short 02aeeh                           ; 74 0a
    32273285    mov dx, bx                                ; 89 da
    32283286    push eax                                  ; 66 50
    32293287    in eax, DX                                ; 66 ed
    3230     loop 02a98h                               ; e2 fc
     3288    loop 02ae8h                               ; e2 fc
    32313289    pop eax                                   ; 66 58
    32323290    mov dx, bx                                ; 89 da
     
    32373295    mov ax, word [bp-00ch]                    ; 8b 46 f4
    32383296    test ax, ax                               ; 85 c0
    3239     je short 02adbh                           ; 74 2b
     3297    je short 02b2bh                           ; 74 2b
    32403298    mov cx, ax                                ; 89 c1
    32413299    push eax                                  ; 66 50
    32423300    in eax, DX                                ; 66 ed
    3243     loop 02ab4h                               ; e2 fc
     3301    loop 02b04h                               ; e2 fc
    32443302    pop eax                                   ; 66 58
    3245     jmp short 02adbh                          ; eb 1f
     3303    jmp short 02b2bh                          ; eb 1f
    32463304    test cx, cx                               ; 85 c9
    3247     je short 02ac5h                           ; 74 05
     3305    je short 02b15h                           ; 74 05
    32483306    mov dx, bx                                ; 89 da
    32493307    in ax, DX                                 ; ed
    3250     loop 02ac2h                               ; e2 fd
     3308    loop 02b12h                               ; e2 fd
    32513309    mov dx, bx                                ; 89 da
    32523310    mov cx, word [bp-014h]                    ; 8b 4e ec
     
    32553313    mov ax, word [bp-00ch]                    ; 8b 46 f4
    32563314    test ax, ax                               ; 85 c0
    3257     je short 02adbh                           ; 74 05
     3315    je short 02b2bh                           ; 74 05
    32583316    mov cx, ax                                ; 89 c1
    32593317    in ax, DX                                 ; ed
    3260     loop 02ad8h                               ; e2 fd
     3318    loop 02b28h                               ; e2 fd
    32613319    add word [bp+00ch], si                    ; 01 76 0c
    32623320    xor ax, ax                                ; 31 c0
     
    32693327    mov ax, word [bp-016h]                    ; 8b 46 ea
    32703328    mov word [es:si+018h], ax                 ; 26 89 44 18
    3271     jmp near 0298bh                           ; e9 8e fe
     3329    jmp near 029dbh                           ; e9 8e fe
    32723330    mov al, dl                                ; 88 d0
    32733331    and AL, strict byte 0e9h                  ; 24 e9
    32743332    cmp AL, strict byte 040h                  ; 3c 40
    3275     je short 02b11h                           ; 74 0c
     3333    je short 02b61h                           ; 74 0c
    32763334    mov dx, word [bp-010h]                    ; 8b 56 f0
    32773335    add dx, strict byte 00006h                ; 83 c2 06
    32783336    mov AL, strict byte 008h                  ; b0 08
    32793337    out DX, AL                                ; ee
    3280     jmp near 0295ch                           ; e9 4b fe
     3338    jmp near 029ach                           ; e9 4b fe
    32813339    mov dx, word [bp-010h]                    ; 8b 56 f0
    32823340    add dx, strict byte 00006h                ; 83 c2 06
     
    32903348    pop bp                                    ; 5d
    32913349    retn 0000ch                               ; c2 0c 00
    3292 ata_soft_reset_:                             ; 0xf2b27 LB 0x80
     3350ata_soft_reset_:                             ; 0xf2b77 LB 0x80
    32933351    push bp                                   ; 55
    32943352    mov bp, sp                                ; 89 e5
     
    33003358    mov dx, strict word 0000eh                ; ba 0e 00
    33013359    mov ax, strict word 00040h                ; b8 40 00
    3302     call 0161ch                               ; e8 e3 ea
     3360    call 0166ch                               ; e8 e3 ea
    33033361    mov dx, bx                                ; 89 da
    33043362    shr dx, 1                                 ; d1 ea
     
    33153373    out DX, AL                                ; ee
    33163374    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    3317     je short 02b69h                           ; 74 05
     3375    je short 02bb9h                           ; 74 05
    33183376    mov ax, 000b0h                            ; b8 b0 00
    3319     jmp short 02b6ch                          ; eb 03
     3377    jmp short 02bbch                          ; eb 03
    33203378    mov ax, 000a0h                            ; b8 a0 00
    33213379    mov dx, cx                                ; 89 ca
     
    33323390    ; sub ah, ah                                ; 2a e4
    33333391    test AL, strict byte 080h                 ; a8 80
    3334     jne short 02b7ah                          ; 75 f4
     3392    jne short 02bcah                          ; 75 f4
    33353393    and AL, strict byte 0e9h                  ; 24 e9
    33363394    cmp AL, strict byte 040h                  ; 3c 40
    3337     je short 02b97h                           ; 74 0b
     3395    je short 02be7h                           ; 74 0b
    33383396    lea dx, [bx+006h]                         ; 8d 57 06
    33393397    mov AL, strict byte 008h                  ; b0 08
    33403398    out DX, AL                                ; ee
    33413399    mov ax, strict word 00001h                ; b8 01 00
    3342     jmp short 02b9fh                          ; eb 08
     3400    jmp short 02befh                          ; eb 08
    33433401    lea dx, [bx+006h]                         ; 8d 57 06
    33443402    mov AL, strict byte 008h                  ; b0 08
     
    33513409    pop bp                                    ; 5d
    33523410    retn                                      ; c3
    3353 set_diskette_ret_status_:                    ; 0xf2ba7 LB 0x18
     3411set_diskette_ret_status_:                    ; 0xf2bf7 LB 0x18
    33543412    push bp                                   ; 55
    33553413    mov bp, sp                                ; 89 e5
     
    33593417    mov dx, strict word 00041h                ; ba 41 00
    33603418    mov ax, strict word 00040h                ; b8 40 00
    3361     call 0160eh                               ; e8 56 ea
     3419    call 0165eh                               ; e8 56 ea
    33623420    lea sp, [bp-004h]                         ; 8d 66 fc
    33633421    pop dx                                    ; 5a
     
    33653423    pop bp                                    ; 5d
    33663424    retn                                      ; c3
    3367 set_diskette_current_cyl_:                   ; 0xf2bbf LB 0x2d
     3425set_diskette_current_cyl_:                   ; 0xf2c0f LB 0x2d
    33683426    push bp                                   ; 55
    33693427    mov bp, sp                                ; 89 e5
     
    33713429    mov bl, al                                ; 88 c3
    33723430    cmp AL, strict byte 001h                  ; 3c 01
    3373     jbe short 02bd4h                          ; 76 0b
     3431    jbe short 02c24h                          ; 76 0b
    33743432    push 00230h                               ; 68 30 02
    33753433    push strict byte 00007h                   ; 6a 07
    3376     call 01922h                               ; e8 51 ed
     3434    call 01972h                               ; e8 51 ed
    33773435    add sp, strict byte 00004h                ; 83 c4 04
    33783436    movzx ax, dl                              ; 0f b6 c2
     
    33813439    mov bx, ax                                ; 89 c3
    33823440    mov ax, strict word 00040h                ; b8 40 00
    3383     call 0160eh                               ; e8 28 ea
     3441    call 0165eh                               ; e8 28 ea
    33843442    lea sp, [bp-002h]                         ; 8d 66 fe
    33853443    pop bx                                    ; 5b
    33863444    pop bp                                    ; 5d
    33873445    retn                                      ; c3
    3388 floppy_wait_for_interrupt_:                  ; 0xf2bec LB 0x21
     3446floppy_wait_for_interrupt_:                  ; 0xf2c3c LB 0x21
    33893447    push bp                                   ; 55
    33903448    mov bp, sp                                ; 89 e5
     
    33933451    mov dx, strict word 0003eh                ; ba 3e 00
    33943452    mov ax, strict word 00040h                ; b8 40 00
    3395     call 01600h                               ; e8 06 ea
     3453    call 01650h                               ; e8 06 ea
    33963454    test AL, strict byte 080h                 ; a8 80
    3397     je short 02c02h                           ; 74 04
     3455    je short 02c52h                           ; 74 04
    33983456    and AL, strict byte 080h                  ; 24 80
    3399     jmp short 02c07h                          ; eb 05
     3457    jmp short 02c57h                          ; eb 05
    34003458    sti                                       ; fb
    34013459    hlt                                       ; f4
    34023460    cli                                       ; fa
    3403     jmp short 02bf1h                          ; eb ea
     3461    jmp short 02c41h                          ; eb ea
    34043462    lea sp, [bp-002h]                         ; 8d 66 fe
    34053463    pop dx                                    ; 5a
    34063464    pop bp                                    ; 5d
    34073465    retn                                      ; c3
    3408 floppy_wait_for_interrupt_or_timeout_:       ; 0xf2c0d LB 0x46
     3466floppy_wait_for_interrupt_or_timeout_:       ; 0xf2c5d LB 0x46
    34093467    push bp                                   ; 55
    34103468    mov bp, sp                                ; 89 e5
     
    34153473    mov dx, strict word 00040h                ; ba 40 00
    34163474    mov ax, dx                                ; 89 d0
    3417     call 01600h                               ; e8 e4 e9
     3475    call 01650h                               ; e8 e4 e9
    34183476    test al, al                               ; 84 c0
    3419     jne short 02c25h                          ; 75 05
     3477    jne short 02c75h                          ; 75 05
    34203478    sti                                       ; fb
    34213479    xor cl, cl                                ; 30 c9
    3422     jmp short 02c49h                          ; eb 24
     3480    jmp short 02c99h                          ; eb 24
    34233481    mov dx, strict word 0003eh                ; ba 3e 00
    34243482    mov ax, strict word 00040h                ; b8 40 00
    3425     call 01600h                               ; e8 d2 e9
     3483    call 01650h                               ; e8 d2 e9
    34263484    mov cl, al                                ; 88 c1
    34273485    test AL, strict byte 080h                 ; a8 80
    3428     je short 02c44h                           ; 74 10
     3486    je short 02c94h                           ; 74 10
    34293487    and AL, strict byte 07fh                  ; 24 7f
    34303488    movzx bx, al                              ; 0f b6 d8
    34313489    mov dx, strict word 0003eh                ; ba 3e 00
    34323490    mov ax, strict word 00040h                ; b8 40 00
    3433     call 0160eh                               ; e8 cc e9
    3434     jmp short 02c49h                          ; eb 05
     3491    call 0165eh                               ; e8 cc e9
     3492    jmp short 02c99h                          ; eb 05
    34353493    sti                                       ; fb
    34363494    hlt                                       ; f4
    34373495    cli                                       ; fa
    3438     jmp short 02c14h                          ; eb cb
     3496    jmp short 02c64h                          ; eb cb
    34393497    mov al, cl                                ; 88 c8
    34403498    lea sp, [bp-006h]                         ; 8d 66 fa
     
    34443502    pop bp                                    ; 5d
    34453503    retn                                      ; c3
    3446 floppy_reset_controller_:                    ; 0xf2c53 LB 0x2b
     3504floppy_reset_controller_:                    ; 0xf2ca3 LB 0x2b
    34473505    push bp                                   ; 55
    34483506    mov bp, sp                                ; 89 e5
     
    34663524    and AL, strict byte 0c0h                  ; 24 c0
    34673525    cmp AL, strict byte 080h                  ; 3c 80
    3468     jne short 02c6bh                          ; 75 f4
     3526    jne short 02cbbh                          ; 75 f4
    34693527    lea sp, [bp-004h]                         ; 8d 66 fc
    34703528    pop dx                                    ; 5a
     
    34723530    pop bp                                    ; 5d
    34733531    retn                                      ; c3
    3474 floppy_prepare_controller_:                  ; 0xf2c7e LB 0x81
     3532floppy_prepare_controller_:                  ; 0xf2cce LB 0x81
    34753533    push bp                                   ; 55
    34763534    mov bp, sp                                ; 89 e5
     
    34823540    mov dx, strict word 0003eh                ; ba 3e 00
    34833541    mov ax, strict word 00040h                ; b8 40 00
    3484     call 01600h                               ; e8 70 e9
     3542    call 01650h                               ; e8 70 e9
    34853543    and AL, strict byte 07fh                  ; 24 7f
    34863544    movzx bx, al                              ; 0f b6 d8
    34873545    mov dx, strict word 0003eh                ; ba 3e 00
    34883546    mov ax, strict word 00040h                ; b8 40 00
    3489     call 0160eh                               ; e8 70 e9
     3547    call 0165eh                               ; e8 70 e9
    34903548    mov dx, 003f2h                            ; ba f2 03
    34913549    in AL, DX                                 ; ec
     
    34953553    mov byte [bp-008h], al                    ; 88 46 f8
    34963554    test cx, cx                               ; 85 c9
    3497     je short 02cb1h                           ; 74 04
     3555    je short 02d01h                           ; 74 04
    34983556    mov AL, strict byte 020h                  ; b0 20
    3499     jmp short 02cb3h                          ; eb 02
     3557    jmp short 02d03h                          ; eb 02
    35003558    mov AL, strict byte 010h                  ; b0 10
    35013559    or AL, strict byte 00ch                   ; 0c 0c
     
    35063564    mov dx, strict word 00040h                ; ba 40 00
    35073565    mov ax, dx                                ; 89 d0
    3508     call 0160eh                               ; e8 48 e9
     3566    call 0165eh                               ; e8 48 e9
    35093567    mov dx, 0008bh                            ; ba 8b 00
    35103568    mov ax, strict word 00040h                ; b8 40 00
    3511     call 01600h                               ; e8 31 e9
     3569    call 01650h                               ; e8 31 e9
    35123570    shr al, 006h                              ; c0 e8 06
    35133571    mov dx, 003f7h                            ; ba f7 03
     
    35193577    and AL, strict byte 0c0h                  ; 24 c0
    35203578    cmp AL, strict byte 080h                  ; 3c 80
    3521     jne short 02cd6h                          ; 75 f4
     3579    jne short 02d26h                          ; 75 f4
    35223580    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    3523     jne short 02cf7h                          ; 75 0f
    3524     call 02bech                               ; e8 01 ff
     3581    jne short 02d47h                          ; 75 0f
     3582    call 02c3ch                               ; e8 01 ff
    35253583    movzx bx, al                              ; 0f b6 d8
    35263584    mov dx, strict word 0003eh                ; ba 3e 00
    35273585    mov ax, strict word 00040h                ; b8 40 00
    3528     call 0160eh                               ; e8 17 e9
     3586    call 0165eh                               ; e8 17 e9
    35293587    lea sp, [bp-006h]                         ; 8d 66 fa
    35303588    pop dx                                    ; 5a
     
    35333591    pop bp                                    ; 5d
    35343592    retn                                      ; c3
    3535 floppy_media_known_:                         ; 0xf2cff LB 0x43
     3593floppy_media_known_:                         ; 0xf2d4f LB 0x43
    35363594    push bp                                   ; 55
    35373595    mov bp, sp                                ; 89 e5
     
    35413599    mov dx, strict word 0003eh                ; ba 3e 00
    35423600    mov ax, strict word 00040h                ; b8 40 00
    3543     call 01600h                               ; e8 f1 e8
     3601    call 01650h                               ; e8 f1 e8
    35443602    mov ah, al                                ; 88 c4
    35453603    test bx, bx                               ; 85 db
    3546     je short 02d17h                           ; 74 02
     3604    je short 02d67h                           ; 74 02
    35473605    shr al, 1                                 ; d0 e8
    35483606    and AL, strict byte 001h                  ; 24 01
    3549     jne short 02d1fh                          ; 75 04
     3607    jne short 02d6fh                          ; 75 04
    35503608    xor ah, ah                                ; 30 e4
    3551     jmp short 02d3bh                          ; eb 1c
     3609    jmp short 02d8bh                          ; eb 1c
    35523610    mov dx, 00090h                            ; ba 90 00
    35533611    test bx, bx                               ; 85 db
    3554     je short 02d29h                           ; 74 03
     3612    je short 02d79h                           ; 74 03
    35553613    mov dx, 00091h                            ; ba 91 00
    35563614    mov ax, strict word 00040h                ; b8 40 00
    3557     call 01600h                               ; e8 d1 e8
     3615    call 01650h                               ; e8 d1 e8
    35583616    xor ah, ah                                ; 30 e4
    35593617    sar ax, 004h                              ; c1 f8 04
    35603618    and AL, strict byte 001h                  ; 24 01
    3561     je short 02d1bh                           ; 74 e3
     3619    je short 02d6bh                           ; 74 e3
    35623620    mov ax, strict word 00001h                ; b8 01 00
    35633621    lea sp, [bp-004h]                         ; 8d 66 fc
     
    35663624    pop bp                                    ; 5d
    35673625    retn                                      ; c3
    3568 floppy_read_id_:                             ; 0xf2d42 LB 0x40
     3626floppy_read_id_:                             ; 0xf2d92 LB 0x40
    35693627    push bp                                   ; 55
    35703628    mov bp, sp                                ; 89 e5
     
    35743632    sub sp, strict byte 00008h                ; 83 ec 08
    35753633    mov bx, ax                                ; 89 c3
    3576     call 02c7eh                               ; e8 2e ff
     3634    call 02cceh                               ; e8 2e ff
    35773635    mov AL, strict byte 04ah                  ; b0 4a
    35783636    mov dx, 003f5h                            ; ba f5 03
     
    35803638    mov al, bl                                ; 88 d8
    35813639    out DX, AL                                ; ee
    3582     call 02bech                               ; e8 90 fe
     3640    call 02c3ch                               ; e8 90 fe
    35833641    xor si, si                                ; 31 f6
    3584     jmp short 02d65h                          ; eb 05
     3642    jmp short 02db5h                          ; eb 05
    35853643    cmp si, strict byte 00007h                ; 83 fe 07
    3586     jnl short 02d71h                          ; 7d 0c
     3644    jnl short 02dc1h                          ; 7d 0c
    35873645    mov dx, 003f5h                            ; ba f5 03
    35883646    in AL, DX                                 ; ec
     
    35913649    mov byte [bp+si-00eh], al                 ; 88 42 f2
    35923650    inc si                                    ; 46
    3593     jmp short 02d60h                          ; eb ef
     3651    jmp short 02db0h                          ; eb ef
    35943652    test byte [bp-00eh], 0c0h                 ; f6 46 f2 c0
    35953653    db  00fh, 094h, 0c0h
     
    36023660    pop bp                                    ; 5d
    36033661    retn                                      ; c3
    3604 floppy_drive_recal_:                         ; 0xf2d82 LB 0x48
     3662floppy_drive_recal_:                         ; 0xf2dd2 LB 0x48
    36053663    push bp                                   ; 55
    36063664    mov bp, sp                                ; 89 e5
     
    36093667    push dx                                   ; 52
    36103668    mov bx, ax                                ; 89 c3
    3611     call 02c7eh                               ; e8 f1 fe
     3669    call 02cceh                               ; e8 f1 fe
    36123670    mov AL, strict byte 007h                  ; b0 07
    36133671    mov dx, 003f5h                            ; ba f5 03
     
    36153673    mov al, bl                                ; 88 d8
    36163674    out DX, AL                                ; ee
    3617     call 02bech                               ; e8 53 fe
     3675    call 02c3ch                               ; e8 53 fe
    36183676    test bx, bx                               ; 85 db
    3619     je short 02da4h                           ; 74 07
     3677    je short 02df4h                           ; 74 07
    36203678    or AL, strict byte 002h                   ; 0c 02
    36213679    mov cx, 00095h                            ; b9 95 00
    3622     jmp short 02da9h                          ; eb 05
     3680    jmp short 02df9h                          ; eb 05
    36233681    or AL, strict byte 001h                   ; 0c 01
    36243682    mov cx, 00094h                            ; b9 94 00
     
    36263684    mov dx, strict word 0003eh                ; ba 3e 00
    36273685    mov ax, strict word 00040h                ; b8 40 00
    3628     call 0160eh                               ; e8 59 e8
     3686    call 0165eh                               ; e8 59 e8
    36293687    xor bx, bx                                ; 31 db
    36303688    mov dx, cx                                ; 89 ca
    36313689    mov ax, strict word 00040h                ; b8 40 00
    3632     call 0160eh                               ; e8 4f e8
     3690    call 0165eh                               ; e8 4f e8
    36333691    mov ax, strict word 00001h                ; b8 01 00
    36343692    lea sp, [bp-006h]                         ; 8d 66 fa
     
    36383696    pop bp                                    ; 5d
    36393697    retn                                      ; c3
    3640 floppy_media_sense_:                         ; 0xf2dca LB 0xf0
     3698floppy_media_sense_:                         ; 0xf2e1a LB 0xf0
    36413699    push bp                                   ; 55
    36423700    mov bp, sp                                ; 89 e5
     
    36473705    push di                                   ; 57
    36483706    mov di, ax                                ; 89 c7
    3649     call 02d82h                               ; e8 ab ff
     3707    call 02dd2h                               ; e8 ab ff
    36503708    test ax, ax                               ; 85 c0
    3651     jne short 02de0h                          ; 75 05
     3709    jne short 02e30h                          ; 75 05
    36523710    xor cx, cx                                ; 31 c9
    3653     jmp near 02eaeh                           ; e9 ce 00
     3711    jmp near 02efeh                           ; e9 ce 00
    36543712    mov ax, strict word 00010h                ; b8 10 00
    3655     call 0165ch                               ; e8 76 e8
     3713    call 016ach                               ; e8 76 e8
    36563714    test di, di                               ; 85 ff
    3657     jne short 02df1h                          ; 75 07
     3715    jne short 02e41h                          ; 75 07
    36583716    mov cl, al                                ; 88 c1
    36593717    shr cl, 004h                              ; c0 e9 04
    3660     jmp short 02df6h                          ; eb 05
     3718    jmp short 02e46h                          ; eb 05
    36613719    mov cl, al                                ; 88 c1
    36623720    and cl, 00fh                              ; 80 e1 0f
    36633721    cmp cl, 001h                              ; 80 f9 01
    3664     jne short 02e04h                          ; 75 09
     3722    jne short 02e54h                          ; 75 09
    36653723    xor cl, cl                                ; 30 c9
    36663724    mov CH, strict byte 015h                  ; b5 15
    36673725    mov si, strict word 00001h                ; be 01 00
    3668     jmp short 02e42h                          ; eb 3e
     3726    jmp short 02e92h                          ; eb 3e
    36693727    cmp cl, 002h                              ; 80 f9 02
    3670     jne short 02e0fh                          ; 75 06
     3728    jne short 02e5fh                          ; 75 06
    36713729    xor cl, cl                                ; 30 c9
    36723730    mov CH, strict byte 035h                  ; b5 35
    3673     jmp short 02dffh                          ; eb f0
     3731    jmp short 02e4fh                          ; eb f0
    36743732    cmp cl, 003h                              ; 80 f9 03
    3675     jne short 02e1ah                          ; 75 06
     3733    jne short 02e6ah                          ; 75 06
    36763734    xor cl, cl                                ; 30 c9
    36773735    mov CH, strict byte 017h                  ; b5 17
    3678     jmp short 02dffh                          ; eb e5
     3736    jmp short 02e4fh                          ; eb e5
    36793737    cmp cl, 004h                              ; 80 f9 04
    3680     jne short 02e25h                          ; 75 06
     3738    jne short 02e75h                          ; 75 06
    36813739    xor cl, cl                                ; 30 c9
    36823740    mov CH, strict byte 017h                  ; b5 17
    3683     jmp short 02dffh                          ; eb da
     3741    jmp short 02e4fh                          ; eb da
    36843742    cmp cl, 005h                              ; 80 f9 05
    3685     jne short 02e30h                          ; 75 06
     3743    jne short 02e80h                          ; 75 06
    36863744    mov CL, strict byte 0cch                  ; b1 cc
    36873745    mov CH, strict byte 0d7h                  ; b5 d7
    3688     jmp short 02dffh                          ; eb cf
     3746    jmp short 02e4fh                          ; eb cf
    36893747    cmp cl, 00eh                              ; 80 f9 0e
    3690     je short 02e3ah                           ; 74 05
     3748    je short 02e8ah                           ; 74 05
    36913749    cmp cl, 00fh                              ; 80 f9 0f
    3692     jne short 02e3ch                          ; 75 02
    3693     jmp short 02e2ah                          ; eb ee
     3750    jne short 02e8ch                          ; 75 02
     3751    jmp short 02e7ah                          ; eb ee
    36943752    xor cl, cl                                ; 30 c9
    36953753    xor ch, ch                                ; 30 ed
     
    36983756    mov dx, 0008bh                            ; ba 8b 00
    36993757    mov ax, strict word 00040h                ; b8 40 00
    3700     call 0160eh                               ; e8 c0 e7
     3758    call 0165eh                               ; e8 c0 e7
    37013759    mov ax, di                                ; 89 f8
    3702     call 02d42h                               ; e8 ef fe
     3760    call 02d92h                               ; e8 ef fe
    37033761    test ax, ax                               ; 85 c0
    3704     jne short 02e89h                          ; 75 32
     3762    jne short 02ed9h                          ; 75 32
    37053763    mov al, cl                                ; 88 c8
    37063764    and AL, strict byte 0c0h                  ; 24 c0
    37073765    cmp AL, strict byte 080h                  ; 3c 80
    3708     je short 02e89h                           ; 74 2a
     3766    je short 02ed9h                           ; 74 2a
    37093767    mov al, cl                                ; 88 c8
    37103768    and AL, strict byte 0c0h                  ; 24 c0
    37113769    cmp AL, strict byte 0c0h                  ; 3c c0
    3712     je short 02e76h                           ; 74 0f
     3770    je short 02ec6h                           ; 74 0f
    37133771    mov ah, cl                                ; 88 cc
    37143772    and ah, 03fh                              ; 80 e4 3f
    37153773    cmp AL, strict byte 040h                  ; 3c 40
    3716     je short 02e82h                           ; 74 12
     3774    je short 02ed2h                           ; 74 12
    37173775    test al, al                               ; 84 c0
    3718     je short 02e7bh                           ; 74 07
    3719     jmp short 02e42h                          ; eb cc
     3776    je short 02ecbh                           ; 74 07
     3777    jmp short 02e92h                          ; eb cc
    37203778    and cl, 03fh                              ; 80 e1 3f
    3721     jmp short 02e42h                          ; eb c7
     3779    jmp short 02e92h                          ; eb c7
    37223780    mov cl, ah                                ; 88 e1
    37233781    or cl, 040h                               ; 80 c9 40
    3724     jmp short 02e42h                          ; eb c0
     3782    jmp short 02e92h                          ; eb c0
    37253783    mov cl, ah                                ; 88 e1
    37263784    or cl, 080h                               ; 80 c9 80
    3727     jmp short 02e42h                          ; eb b9
     3785    jmp short 02e92h                          ; eb b9
    37283786    test di, di                               ; 85 ff
    37293787    db  00fh, 095h, 0c0h
     
    37343792    mov dx, 0008bh                            ; ba 8b 00
    37353793    mov ax, strict word 00040h                ; b8 40 00
    3736     call 0160eh                               ; e8 6d e7
     3794    call 0165eh                               ; e8 6d e7
    37373795    movzx bx, ch                              ; 0f b6 dd
    37383796    mov dx, di                                ; 89 fa
    37393797    mov ax, strict word 00040h                ; b8 40 00
    3740     call 0160eh                               ; e8 62 e7
     3798    call 0165eh                               ; e8 62 e7
    37413799    mov cx, si                                ; 89 f1
    37423800    mov ax, cx                                ; 89 c8
     
    37493807    pop bp                                    ; 5d
    37503808    retn                                      ; c3
    3751 floppy_drive_exists_:                        ; 0xf2eba LB 0x24
     3809floppy_drive_exists_:                        ; 0xf2f0a LB 0x24
    37523810    push bp                                   ; 55
    37533811    mov bp, sp                                ; 89 e5
     
    37553813    mov dx, ax                                ; 89 c2
    37563814    mov ax, strict word 00010h                ; b8 10 00
    3757     call 0165ch                               ; e8 96 e7
     3815    call 016ach                               ; e8 96 e7
    37583816    test dx, dx                               ; 85 d2
    3759     jne short 02ecfh                          ; 75 05
     3817    jne short 02f1fh                          ; 75 05
    37603818    shr al, 004h                              ; c0 e8 04
    3761     jmp short 02ed1h                          ; eb 02
     3819    jmp short 02f21h                          ; eb 02
    37623820    and AL, strict byte 00fh                  ; 24 0f
    37633821    test al, al                               ; 84 c0
     
    37693827    pop bp                                    ; 5d
    37703828    retn                                      ; c3
    3771 _int13_diskette_function:                    ; 0xf2ede LB 0x734
     3829_int13_diskette_function:                    ; 0xf2f2e LB 0x734
    37723830    push bp                                   ; 55
    37733831    mov bp, sp                                ; 89 e5
     
    37823840    mov ah, byte [bp+00eh]                    ; 8a 66 0e
    37833841    cmp bl, 008h                              ; 80 fb 08
    3784     jc short 02f35h                           ; 72 38
     3842    jc short 02f85h                           ; 72 38
    37853843    mov dx, word [bp+01ch]                    ; 8b 56 1c
    37863844    or dl, 001h                               ; 80 ca 01
    37873845    cmp bl, 008h                              ; 80 fb 08
    3788     jbe near 03491h                           ; 0f 86 87 05
     3846    jbe near 034e1h                           ; 0f 86 87 05
    37893847    cmp bl, 016h                              ; 80 fb 16
    3790     jc short 02f2bh                           ; 72 1c
     3848    jc short 02f7bh                           ; 72 1c
    37913849    or si, 00100h                             ; 81 ce 00 01
    37923850    cmp bl, 016h                              ; 80 fb 16
    3793     jbe near 035cdh                           ; 0f 86 b3 06
     3851    jbe near 0361dh                           ; 0f 86 b3 06
    37943852    cmp bl, 018h                              ; 80 fb 18
    3795     je near 035d2h                            ; 0f 84 b1 06
     3853    je near 03622h                            ; 0f 84 b1 06
    37963854    cmp bl, 017h                              ; 80 fb 17
    3797     je near 035d2h                            ; 0f 84 aa 06
    3798     jmp near 035efh                           ; e9 c4 06
     3855    je near 03622h                            ; 0f 84 aa 06
     3856    jmp near 0363fh                           ; e9 c4 06
    37993857    cmp bl, 015h                              ; 80 fb 15
    3800     je near 03587h                            ; 0f 84 55 06
    3801     jmp near 035efh                           ; e9 ba 06
     3858    je near 035d7h                            ; 0f 84 55 06
     3859    jmp near 0363fh                           ; e9 ba 06
    38023860    cmp bl, 001h                              ; 80 fb 01
    3803     jc short 02f4fh                           ; 72 15
    3804     jbe near 02fc8h                           ; 0f 86 8a 00
     3861    jc short 02f9fh                           ; 72 15
     3862    jbe near 03018h                           ; 0f 86 8a 00
    38053863    cmp bl, 005h                              ; 80 fb 05
    3806     je near 0330bh                            ; 0f 84 c6 03
     3864    je near 0335bh                            ; 0f 84 c6 03
    38073865    cmp bl, 004h                              ; 80 fb 04
    3808     jbe near 02fe6h                           ; 0f 86 9a 00
    3809     jmp near 035efh                           ; e9 a0 06
     3866    jbe near 03036h                           ; 0f 86 9a 00
     3867    jmp near 0363fh                           ; e9 a0 06
    38103868    test bl, bl                               ; 84 db
    3811     jne near 035efh                           ; 0f 85 9a 06
     3869    jne near 0363fh                           ; 0f 85 9a 06
    38123870    mov al, byte [bp+00eh]                    ; 8a 46 0e
    38133871    mov byte [bp-00eh], al                    ; 88 46 f2
    38143872    cmp AL, strict byte 001h                  ; 3c 01
    3815     jbe short 02f73h                          ; 76 14
     3873    jbe short 02fc3h                          ; 76 14
    38163874    mov ax, word [bp+016h]                    ; 8b 46 16
    38173875    xor ah, ah                                ; 30 e4
     
    38193877    mov word [bp+016h], ax                    ; 89 46 16
    38203878    mov ax, strict word 00001h                ; b8 01 00
    3821     call 02ba7h                               ; e8 37 fc
    3822     jmp near 032e7h                           ; e9 74 03
     3879    call 02bf7h                               ; e8 37 fc
     3880    jmp near 03337h                           ; e9 74 03
    38233881    mov ax, strict word 00010h                ; b8 10 00
    3824     call 0165ch                               ; e8 e3 e6
     3882    call 016ach                               ; e8 e3 e6
    38253883    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    3826     jne short 02f86h                          ; 75 07
     3884    jne short 02fd6h                          ; 75 07
    38273885    mov dl, al                                ; 88 c2
    38283886    shr dl, 004h                              ; c0 ea 04
    3829     jmp short 02f8bh                          ; eb 05
     3887    jmp short 02fdbh                          ; eb 05
    38303888    mov dl, al                                ; 88 c2
    38313889    and dl, 00fh                              ; 80 e2 0f
    38323890    test dl, dl                               ; 84 d2
    3833     jne short 02f9fh                          ; 75 10
     3891    jne short 02fefh                          ; 75 10
    38343892    mov ax, word [bp+016h]                    ; 8b 46 16
    38353893    xor ah, ah                                ; 30 e4
     
    38373895    mov word [bp+016h], ax                    ; 89 46 16
    38383896    mov ax, 00080h                            ; b8 80 00
    3839     jmp short 02f6dh                          ; eb ce
     3897    jmp short 02fbdh                          ; eb ce
    38403898    xor bx, bx                                ; 31 db
    38413899    mov dx, strict word 0003eh                ; ba 3e 00
    38423900    mov ax, strict word 00040h                ; b8 40 00
    3843     call 0160eh                               ; e8 64 e6
     3901    call 0165eh                               ; e8 64 e6
    38443902    xor al, al                                ; 30 c0
    38453903    mov byte [bp+017h], al                    ; 88 46 17
    38463904    xor ah, ah                                ; 30 e4
    3847     call 02ba7h                               ; e8 f3 fb
     3905    call 02bf7h                               ; e8 f3 fb
    38483906    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    38493907    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    38503908    xor dx, dx                                ; 31 d2
    3851     call 02bbfh                               ; e8 fe fb
     3909    call 02c0fh                               ; e8 fe fb
    38523910    lea sp, [bp-004h]                         ; 8d 66 fc
    38533911    pop di                                    ; 5f
     
    38583916    mov dx, 00441h                            ; ba 41 04
    38593917    xor ax, ax                                ; 31 c0
    3860     call 01600h                               ; e8 2c e6
     3918    call 01650h                               ; e8 2c e6
    38613919    movzx dx, al                              ; 0f b6 d0
    38623920    sal dx, 008h                              ; c1 e2 08
     
    38643922    mov word [bp+016h], si                    ; 89 76 16
    38653923    test al, al                               ; 84 c0
    3866     je short 02fc1h                           ; 74 de
    3867     jmp near 032e7h                           ; e9 01 03
     3924    je short 03011h                           ; 74 de
     3925    jmp near 03337h                           ; e9 01 03
    38683926    mov al, byte [bp+016h]                    ; 8a 46 16
    38693927    mov byte [bp-00ch], al                    ; 88 46 f4
     
    38783936    mov byte [bp-00eh], ah                    ; 88 66 f2
    38793937    cmp ah, 001h                              ; 80 fc 01
    3880     jnbe short 0301ch                         ; 77 10
     3938    jnbe short 0306ch                         ; 77 10
    38813939    cmp dl, 001h                              ; 80 fa 01
    3882     jnbe short 0301ch                         ; 77 0b
     3940    jnbe short 0306ch                         ; 77 0b
    38833941    mov al, byte [bp-00ch]                    ; 8a 46 f4
    38843942    test al, al                               ; 84 c0
    3885     je short 0301ch                           ; 74 04
     3943    je short 0306ch                           ; 74 04
    38863944    cmp AL, strict byte 048h                  ; 3c 48
    3887     jbe short 03045h                          ; 76 29
     3945    jbe short 03095h                          ; 76 29
    38883946    mov bx, 00da2h                            ; bb a2 0d
    38893947    mov cx, ds                                ; 8c d9
    38903948    mov ax, strict word 00004h                ; b8 04 00
    3891     call 018e1h                               ; e8 ba e8
     3949    call 01931h                               ; e8 ba e8
    38923950    push 00255h                               ; 68 55 02
    38933951    push 0026dh                               ; 68 6d 02
    38943952    push strict byte 00004h                   ; 6a 04
    3895     call 01922h                               ; e8 f0 e8
     3953    call 01972h                               ; e8 f0 e8
    38963954    add sp, strict byte 00006h                ; 83 c4 06
    38973955    mov ax, word [bp+016h]                    ; 8b 46 16
     
    39003958    mov word [bp+016h], ax                    ; 89 46 16
    39013959    mov ax, strict word 00001h                ; b8 01 00
    3902     jmp short 030b6h                          ; eb 71
     3960    jmp short 03106h                          ; eb 71
    39033961    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    3904     call 02ebah                               ; e8 6e fe
     3962    call 02f0ah                               ; e8 6e fe
    39053963    test ax, ax                               ; 85 c0
    3906     je near 03149h                            ; 0f 84 f7 00
     3964    je near 03199h                            ; 0f 84 f7 00
    39073965    movzx dx, byte [bp-00eh]                  ; 0f b6 56 f2
    39083966    mov ax, dx                                ; 89 d0
    3909     call 02cffh                               ; e8 a4 fc
     3967    call 02d4fh                               ; e8 a4 fc
    39103968    test ax, ax                               ; 85 c0
    3911     jne short 03078h                          ; 75 19
     3969    jne short 030c8h                          ; 75 19
    39123970    mov ax, dx                                ; 89 d0
    3913     call 02dcah                               ; e8 66 fd
     3971    call 02e1ah                               ; e8 66 fd
    39143972    test ax, ax                               ; 85 c0
    3915     jne short 03078h                          ; 75 10
     3973    jne short 030c8h                          ; 75 10
    39163974    mov ax, word [bp+016h]                    ; 8b 46 16
    39173975    xor ah, ah                                ; 30 e4
     
    39193977    mov word [bp+016h], ax                    ; 89 46 16
    39203978    mov ax, strict word 0000ch                ; b8 0c 00
    3921     jmp short 030b6h                          ; eb 3e
     3979    jmp short 03106h                          ; eb 3e
    39223980    cmp ch, 002h                              ; 80 fd 02
    3923     jne near 031e0h                           ; 0f 85 61 01
     3981    jne near 03230h                           ; 0f 85 61 01
    39243982    mov cx, word [bp+006h]                    ; 8b 4e 06
    39253983    shr cx, 00ch                              ; c1 e9 0c
     
    39303988    add bx, dx                                ; 01 d3
    39313989    cmp bx, dx                                ; 39 d3
    3932     jnc short 03098h                          ; 73 02
     3990    jnc short 030e8h                          ; 73 02
    39333991    db  0feh, 0c4h
    39343992    ; inc ah                                    ; fe c4
     
    39393997    add dx, cx                                ; 01 ca
    39403998    cmp dx, bx                                ; 39 da
    3941     jnc short 030c0h                          ; 73 18
     3999    jnc short 03110h                          ; 73 18
    39424000    mov ax, word [bp+016h]                    ; 8b 46 16
    39434001    xor ah, ah                                ; 30 e4
     
    39454003    mov word [bp+016h], ax                    ; 89 46 16
    39464004    mov ax, strict word 00009h                ; b8 09 00
    3947     call 02ba7h                               ; e8 ee fa
     4005    call 02bf7h                               ; e8 ee fa
    39484006    mov byte [bp+016h], 000h                  ; c6 46 16 00
    3949     jmp near 032e7h                           ; e9 27 02
     4007    jmp near 03337h                           ; e9 27 02
    39504008    mov AL, strict byte 006h                  ; b0 06
    39514009    mov dx, strict word 0000ah                ; ba 0a 00
     
    39804038    out DX, AL                                ; ee
    39814039    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    3982     call 02c7eh                               ; e8 7a fb
     4040    call 02cceh                               ; e8 7a fb
    39834041    mov AL, strict byte 0e6h                  ; b0 e6
    39844042    mov dx, 003f5h                            ; ba f5 03
     
    40084066    mov AL, strict byte 0ffh                  ; b0 ff
    40094067    out DX, AL                                ; ee
    4010     call 02c0dh                               ; e8 cb fa
     4068    call 02c5dh                               ; e8 cb fa
    40114069    test al, al                               ; 84 c0
    4012     jne short 0315ah                          ; 75 14
    4013     call 02c53h                               ; e8 0a fb
     4070    jne short 031aah                          ; 75 14
     4071    call 02ca3h                               ; e8 0a fb
    40144072    mov ax, word [bp+016h]                    ; 8b 46 16
    40154073    xor ah, ah                                ; 30 e4
     
    40174075    mov word [bp+016h], ax                    ; 89 46 16
    40184076    mov ax, 00080h                            ; b8 80 00
    4019     jmp near 030b6h                           ; e9 5c ff
     4077    jmp near 03106h                           ; e9 5c ff
    40204078    mov dx, 003f4h                            ; ba f4 03
    40214079    in AL, DX                                 ; ec
     
    40244082    and AL, strict byte 0c0h                  ; 24 c0
    40254083    cmp AL, strict byte 0c0h                  ; 3c c0
    4026     je short 03174h                           ; 74 0e
     4084    je short 031c4h                           ; 74 0e
    40274085    push 00255h                               ; 68 55 02
    40284086    push 00288h                               ; 68 88 02
    40294087    push strict byte 00007h                   ; 6a 07
    4030     call 01922h                               ; e8 b1 e7
     4088    call 01972h                               ; e8 b1 e7
    40314089    add sp, strict byte 00006h                ; 83 c4 06
    40324090    xor si, si                                ; 31 f6
    4033     jmp short 0317dh                          ; eb 05
     4091    jmp short 031cdh                          ; eb 05
    40344092    cmp si, strict byte 00007h                ; 83 fe 07
    4035     jnl short 03195h                          ; 7d 18
     4093    jnl short 031e5h                          ; 7d 18
    40364094    mov dx, 003f5h                            ; ba f5 03
    40374095    in AL, DX                                 ; ec
     
    40424100    lea dx, [si+042h]                         ; 8d 54 42
    40434101    mov ax, strict word 00040h                ; b8 40 00
    4044     call 0160eh                               ; e8 7c e4
     4102    call 0165eh                               ; e8 7c e4
    40454103    inc si                                    ; 46
    4046     jmp short 03178h                          ; eb e3
     4104    jmp short 031c8h                          ; eb e3
    40474105    test byte [bp-016h], 0c0h                 ; f6 46 ea c0
    4048     je short 031ach                           ; 74 11
     4106    je short 031fch                           ; 74 11
    40494107    mov ax, word [bp+016h]                    ; 8b 46 16
    40504108    xor ah, ah                                ; 30 e4
     
    40524110    mov word [bp+016h], ax                    ; 89 46 16
    40534111    mov ax, strict word 00020h                ; b8 20 00
    4054     jmp near 030b6h                           ; e9 0a ff
     4112    jmp near 03106h                           ; e9 0a ff
    40554113    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    40564114    sal ax, 009h                              ; c1 e0 09
     
    40704128    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
    40714129    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    4072     call 02bbfh                               ; e8 ea f9
     4130    call 02c0fh                               ; e8 ea f9
    40734131    mov byte [bp+017h], 000h                  ; c6 46 17 00
    40744132    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    4075     jmp near 02fc1h                           ; e9 e1 fd
     4133    jmp near 03011h                           ; e9 e1 fd
    40764134    cmp ch, 003h                              ; 80 fd 03
    4077     jne near 032f5h                           ; 0f 85 0e 01
     4135    jne near 03345h                           ; 0f 85 0e 01
    40784136    mov dx, word [bp+006h]                    ; 8b 56 06
    40794137    shr dx, 00ch                              ; c1 ea 0c
     
    40844142    add bx, cx                                ; 01 cb
    40854143    cmp bx, cx                                ; 39 cb
    4086     jnc short 03200h                          ; 73 02
     4144    jnc short 03250h                          ; 73 02
    40874145    db  0feh, 0c4h
    40884146    ; inc ah                                    ; fe c4
     
    40934151    add dx, cx                                ; 01 ca
    40944152    cmp dx, bx                                ; 39 da
    4095     jc near 030a8h                            ; 0f 82 96 fe
     4153    jc near 030f8h                            ; 0f 82 96 fe
    40964154    mov AL, strict byte 006h                  ; b0 06
    40974155    mov dx, strict word 0000ah                ; ba 0a 00
     
    41254183    out DX, AL                                ; ee
    41264184    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    4127     call 02c7eh                               ; e8 29 fa
     4185    call 02cceh                               ; e8 29 fa
    41284186    mov AL, strict byte 0c5h                  ; b0 c5
    41294187    mov dx, 003f5h                            ; ba f5 03
     
    41534211    mov AL, strict byte 0ffh                  ; b0 ff
    41544212    out DX, AL                                ; ee
    4155     call 02c0dh                               ; e8 7a f9
     4213    call 02c5dh                               ; e8 7a f9
    41564214    test al, al                               ; 84 c0
    4157     je near 03146h                            ; 0f 84 ad fe
     4215    je near 03196h                            ; 0f 84 ad fe
    41584216    mov dx, 003f4h                            ; ba f4 03
    41594217    in AL, DX                                 ; ec
     
    41624220    and AL, strict byte 0c0h                  ; 24 c0
    41634221    cmp AL, strict byte 0c0h                  ; 3c c0
    4164     je short 032b3h                           ; 74 0e
     4222    je short 03303h                           ; 74 0e
    41654223    push 00255h                               ; 68 55 02
    41664224    push 00288h                               ; 68 88 02
    41674225    push strict byte 00007h                   ; 6a 07
    4168     call 01922h                               ; e8 72 e6
     4226    call 01972h                               ; e8 72 e6
    41694227    add sp, strict byte 00006h                ; 83 c4 06
    41704228    xor si, si                                ; 31 f6
    4171     jmp short 032bch                          ; eb 05
     4229    jmp short 0330ch                          ; eb 05
    41724230    cmp si, strict byte 00007h                ; 83 fe 07
    4173     jnl short 032d4h                          ; 7d 18
     4231    jnl short 03324h                          ; 7d 18
    41744232    mov dx, 003f5h                            ; ba f5 03
    41754233    in AL, DX                                 ; ec
     
    41804238    lea dx, [si+042h]                         ; 8d 54 42
    41814239    mov ax, strict word 00040h                ; b8 40 00
    4182     call 0160eh                               ; e8 3d e3
     4240    call 0165eh                               ; e8 3d e3
    41834241    inc si                                    ; 46
    4184     jmp short 032b7h                          ; eb e3
     4242    jmp short 03307h                          ; eb e3
    41854243    test byte [bp-016h], 0c0h                 ; f6 46 ea c0
    4186     je near 031cah                            ; 0f 84 ee fe
     4244    je near 0321ah                            ; 0f 84 ee fe
    41874245    test byte [bp-015h], 002h                 ; f6 46 eb 02
    4188     je short 032eeh                           ; 74 0c
     4246    je short 0333eh                           ; 74 0c
    41894247    mov word [bp+016h], 00300h                ; c7 46 16 00 03
    41904248    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    4191     jmp near 02fc1h                           ; e9 d3 fc
     4249    jmp near 03011h                           ; e9 d3 fc
    41924250    mov word [bp+016h], 00100h                ; c7 46 16 00 01
    4193     jmp short 032e7h                          ; eb f2
     4251    jmp short 03337h                          ; eb f2
    41944252    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
    41954253    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    4196     call 02bbfh                               ; e8 bf f8
     4254    call 02c0fh                               ; e8 bf f8
    41974255    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    41984256    mov byte [bp+017h], 000h                  ; c6 46 17 00
    4199     jmp near 02fc1h                           ; e9 b6 fc
     4257    jmp near 03011h                           ; e9 b6 fc
    42004258    mov al, byte [bp+016h]                    ; 8a 46 16
    42014259    mov byte [bp-00ch], al                    ; 88 46 f4
     
    42094267    mov byte [bp-00eh], bl                    ; 88 5e f2
    42104268    cmp bl, 001h                              ; 80 fb 01
    4211     jnbe short 03342h                         ; 77 14
     4269    jnbe short 03392h                         ; 77 14
    42124270    cmp AL, strict byte 001h                  ; 3c 01
    4213     jnbe short 03342h                         ; 77 10
     4271    jnbe short 03392h                         ; 77 10
    42144272    cmp dl, 04fh                              ; 80 fa 4f
    4215     jnbe short 03342h                         ; 77 0b
     4273    jnbe short 03392h                         ; 77 0b
    42164274    mov al, byte [bp-00ch]                    ; 8a 46 f4
    42174275    test al, al                               ; 84 c0
    4218     je short 03342h                           ; 74 04
     4276    je short 03392h                           ; 74 04
    42194277    cmp AL, strict byte 012h                  ; 3c 12
    4220     jbe short 03357h                          ; 76 15
     4278    jbe short 033a7h                          ; 76 15
    42214279    mov ax, word [bp+016h]                    ; 8b 46 16
    42224280    xor ah, ah                                ; 30 e4
     
    42244282    mov word [bp+016h], ax                    ; 89 46 16
    42254283    mov ax, strict word 00001h                ; b8 01 00
    4226     call 02ba7h                               ; e8 54 f8
     4284    call 02bf7h                               ; e8 54 f8
    42274285    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    42284286    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    4229     call 02ebah                               ; e8 5c fb
     4287    call 02f0ah                               ; e8 5c fb
    42304288    test ax, ax                               ; 85 c0
    4231     je near 02f8fh                            ; 0f 84 2b fc
     4289    je near 02fdfh                            ; 0f 84 2b fc
    42324290    movzx dx, byte [bp-00eh]                  ; 0f b6 56 f2
    42334291    mov ax, dx                                ; 89 d0
    4234     call 02cffh                               ; e8 92 f9
     4292    call 02d4fh                               ; e8 92 f9
    42354293    test ax, ax                               ; 85 c0
    4236     jne short 0337ch                          ; 75 0b
     4294    jne short 033cch                          ; 75 0b
    42374295    mov ax, dx                                ; 89 d0
    4238     call 02dcah                               ; e8 54 fa
     4296    call 02e1ah                               ; e8 54 fa
    42394297    test ax, ax                               ; 85 c0
    4240     je near 03068h                            ; 0f 84 ec fc
     4298    je near 030b8h                            ; 0f 84 ec fc
    42414299    mov cx, word [bp+006h]                    ; 8b 4e 06
    42424300    shr cx, 00ch                              ; c1 e9 0c
     
    42474305    add bx, dx                                ; 01 d3
    42484306    cmp bx, dx                                ; 39 d3
    4249     jnc short 03395h                          ; 73 02
     4307    jnc short 033e5h                          ; 73 02
    42504308    db  0feh, 0c4h
    42514309    ; inc ah                                    ; fe c4
     
    42564314    add dx, cx                                ; 01 ca
    42574315    cmp dx, bx                                ; 39 da
    4258     jc near 030a8h                            ; 0f 82 01 fd
     4316    jc near 030f8h                            ; 0f 82 01 fd
    42594317    mov AL, strict byte 006h                  ; b0 06
    42604318    mov dx, strict word 0000ah                ; ba 0a 00
     
    42884346    out DX, AL                                ; ee
    42894347    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    4290     call 02c7eh                               ; e8 94 f8
     4348    call 02cceh                               ; e8 94 f8
    42914349    mov AL, strict byte 00fh                  ; b0 0f
    42924350    mov dx, 003f5h                            ; ba f5 03
     
    43124370    mov AL, strict byte 0f6h                  ; b0 f6
    43134371    out DX, AL                                ; ee
    4314     call 02c0dh                               ; e8 f3 f7
     4372    call 02c5dh                               ; e8 f3 f7
    43154373    test al, al                               ; 84 c0
    4316     jne short 03424h                          ; 75 06
    4317     call 02c53h                               ; e8 32 f8
    4318     jmp near 02f8fh                           ; e9 6b fb
     4374    jne short 03474h                          ; 75 06
     4375    call 02ca3h                               ; e8 32 f8
     4376    jmp near 02fdfh                           ; e9 6b fb
    43194377    mov dx, 003f4h                            ; ba f4 03
    43204378    in AL, DX                                 ; ec
     
    43234381    and AL, strict byte 0c0h                  ; 24 c0
    43244382    cmp AL, strict byte 0c0h                  ; 3c c0
    4325     je short 0343eh                           ; 74 0e
     4383    je short 0348eh                           ; 74 0e
    43264384    push 00255h                               ; 68 55 02
    43274385    push 00288h                               ; 68 88 02
    43284386    push strict byte 00007h                   ; 6a 07
    4329     call 01922h                               ; e8 e7 e4
     4387    call 01972h                               ; e8 e7 e4
    43304388    add sp, strict byte 00006h                ; 83 c4 06
    43314389    xor si, si                                ; 31 f6
    4332     jmp short 03447h                          ; eb 05
     4390    jmp short 03497h                          ; eb 05
    43334391    cmp si, strict byte 00007h                ; 83 fe 07
    4334     jnl short 0345fh                          ; 7d 18
     4392    jnl short 034afh                          ; 7d 18
    43354393    mov dx, 003f5h                            ; ba f5 03
    43364394    in AL, DX                                 ; ec
     
    43414399    lea dx, [si+042h]                         ; 8d 54 42
    43424400    mov ax, strict word 00040h                ; b8 40 00
    4343     call 0160eh                               ; e8 b2 e1
     4401    call 0165eh                               ; e8 b2 e1
    43444402    inc si                                    ; 46
    4345     jmp short 03442h                          ; eb e3
     4403    jmp short 03492h                          ; eb e3
    43464404    test byte [bp-016h], 0c0h                 ; f6 46 ea c0
    4347     je short 0347bh                           ; 74 16
     4405    je short 034cbh                           ; 74 16
    43484406    test byte [bp-015h], 002h                 ; f6 46 eb 02
    4349     jne near 032e2h                           ; 0f 85 75 fe
     4407    jne near 03332h                           ; 0f 85 75 fe
    43504408    push 00255h                               ; 68 55 02
    43514409    push 0029ch                               ; 68 9c 02
    43524410    push strict byte 00007h                   ; 6a 07
    4353     call 01922h                               ; e8 aa e4
     4411    call 01972h                               ; e8 aa e4
    43544412    add sp, strict byte 00006h                ; 83 c4 06
    43554413    xor al, al                                ; 30 c0
    43564414    mov byte [bp+017h], al                    ; 88 46 17
    43574415    xor ah, ah                                ; 30 e4
    4358     call 02ba7h                               ; e8 22 f7
     4416    call 02bf7h                               ; e8 22 f7
    43594417    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    43604418    xor dx, dx                                ; 31 d2
    4361     call 02bbfh                               ; e8 31 f7
    4362     jmp near 031d9h                           ; e9 48 fd
     4419    call 02c0fh                               ; e8 31 f7
     4420    jmp near 03229h                           ; e9 48 fd
    43634421    mov byte [bp-00eh], ah                    ; 88 66 f2
    43644422    cmp ah, 001h                              ; 80 fc 01
    4365     jbe short 034b9h                          ; 76 20
     4423    jbe short 03509h                          ; 76 20
    43664424    xor ax, ax                                ; 31 c0
    43674425    mov word [bp+016h], ax                    ; 89 46 16
     
    43744432    mov word [bp+012h], ax                    ; 89 46 12
    43754433    mov word [bp+01ch], dx                    ; 89 56 1c
    4376     jmp near 02fc1h                           ; e9 08 fb
     4434    jmp near 03011h                           ; e9 08 fb
    43774435    mov ax, strict word 00010h                ; b8 10 00
    4378     call 0165ch                               ; e8 9d e1
     4436    call 016ach                               ; e8 9d e1
    43794437    mov dl, al                                ; 88 c2
    43804438    xor cl, cl                                ; 30 c9
    43814439    test AL, strict byte 0f0h                 ; a8 f0
    4382     je short 034c9h                           ; 74 02
     4440    je short 03519h                           ; 74 02
    43834441    mov CL, strict byte 001h                  ; b1 01
    43844442    test dl, 00fh                             ; f6 c2 0f
    4385     je short 034d0h                           ; 74 02
     4443    je short 03520h                           ; 74 02
    43864444    db  0feh, 0c1h
    43874445    ; inc cl                                    ; fe c1
    43884446    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    4389     jne short 034dbh                          ; 75 05
     4447    jne short 0352bh                          ; 75 05
    43904448    shr dl, 004h                              ; c0 ea 04
    4391     jmp short 034deh                          ; eb 03
     4449    jmp short 0352eh                          ; eb 03
    43924450    and dl, 00fh                              ; 80 e2 0f
    43934451    mov byte [bp+011h], 000h                  ; c6 46 11 00
     
    44054463    mov word [bp+012h], ax                    ; 89 46 12
    44064464    cmp dl, 003h                              ; 80 fa 03
    4407     jc short 0351eh                           ; 72 15
    4408     jbe short 03545h                          ; 76 3a
     4465    jc short 0356eh                           ; 72 15
     4466    jbe short 03595h                          ; 76 3a
    44094467    cmp dl, 005h                              ; 80 fa 05
    4410     jc short 0354ch                           ; 72 3c
    4411     jbe short 03553h                          ; 76 41
     4468    jc short 0359ch                           ; 72 3c
     4469    jbe short 035a3h                          ; 76 41
    44124470    cmp dl, 00fh                              ; 80 fa 0f
    4413     je short 03561h                           ; 74 4a
     4471    je short 035b1h                           ; 74 4a
    44144472    cmp dl, 00eh                              ; 80 fa 0e
    4415     je short 0355ah                           ; 74 3e
    4416     jmp short 03568h                          ; eb 4a
     4473    je short 035aah                           ; 74 3e
     4474    jmp short 035b8h                          ; eb 4a
    44174475    cmp dl, 002h                              ; 80 fa 02
    4418     je short 0353eh                           ; 74 1b
     4476    je short 0358eh                           ; 74 1b
    44194477    cmp dl, 001h                              ; 80 fa 01
    4420     je short 03537h                           ; 74 0f
     4478    je short 03587h                           ; 74 0f
    44214479    test dl, dl                               ; 84 d2
    4422     jne short 03568h                          ; 75 3c
     4480    jne short 035b8h                          ; 75 3c
    44234481    mov word [bp+014h], strict word 00000h    ; c7 46 14 00 00
    44244482    mov byte [bp+013h], 000h                  ; c6 46 13 00
    4425     jmp short 03576h                          ; eb 3f
     4483    jmp short 035c6h                          ; eb 3f
    44264484    mov word [bp+014h], 02709h                ; c7 46 14 09 27
    4427     jmp short 03576h                          ; eb 38
     4485    jmp short 035c6h                          ; eb 38
    44284486    mov word [bp+014h], 04f0fh                ; c7 46 14 0f 4f
    4429     jmp short 03576h                          ; eb 31
     4487    jmp short 035c6h                          ; eb 31
    44304488    mov word [bp+014h], 04f09h                ; c7 46 14 09 4f
    4431     jmp short 03576h                          ; eb 2a
     4489    jmp short 035c6h                          ; eb 2a
    44324490    mov word [bp+014h], 04f12h                ; c7 46 14 12 4f
    4433     jmp short 03576h                          ; eb 23
     4491    jmp short 035c6h                          ; eb 23
    44344492    mov word [bp+014h], 04f24h                ; c7 46 14 24 4f
    4435     jmp short 03576h                          ; eb 1c
     4493    jmp short 035c6h                          ; eb 1c
    44364494    mov word [bp+014h], 0fe3fh                ; c7 46 14 3f fe
    4437     jmp short 03576h                          ; eb 15
     4495    jmp short 035c6h                          ; eb 15
    44384496    mov word [bp+014h], 0feffh                ; c7 46 14 ff fe
    4439     jmp short 03576h                          ; eb 0e
     4497    jmp short 035c6h                          ; eb 0e
    44404498    push 00255h                               ; 68 55 02
    44414499    push 002adh                               ; 68 ad 02
    44424500    push strict byte 00007h                   ; 6a 07
    4443     call 01922h                               ; e8 af e3
     4501    call 01972h                               ; e8 af e3
    44444502    add sp, strict byte 00006h                ; 83 c4 06
    44454503    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
    44464504    movzx ax, dl                              ; 0f b6 c2
    4447     call 03612h                               ; e8 91 00
     4505    call 03662h                               ; e8 91 00
    44484506    mov word [bp+008h], ax                    ; 89 46 08
    4449     jmp near 031d9h                           ; e9 52 fc
     4507    jmp near 03229h                           ; e9 52 fc
    44504508    mov byte [bp-00eh], ah                    ; 88 66 f2
    44514509    cmp ah, 001h                              ; 80 fc 01
    4452     jbe short 03595h                          ; 76 06
     4510    jbe short 035e5h                          ; 76 06
    44534511    mov word [bp+016h], si                    ; 89 76 16
    4454     jmp near 034b3h                           ; e9 1e ff
     4512    jmp near 03503h                           ; e9 1e ff
    44554513    mov ax, strict word 00010h                ; b8 10 00
    4456     call 0165ch                               ; e8 c1 e0
     4514    call 016ach                               ; e8 c1 e0
    44574515    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    4458     jne short 035a8h                          ; 75 07
     4516    jne short 035f8h                          ; 75 07
    44594517    mov dl, al                                ; 88 c2
    44604518    shr dl, 004h                              ; c0 ea 04
    4461     jmp short 035adh                          ; eb 05
     4519    jmp short 035fdh                          ; eb 05
    44624520    mov dl, al                                ; 88 c2
    44634521    and dl, 00fh                              ; 80 e2 0f
     
    44664524    xor bh, bh                                ; 30 ff
    44674525    test dl, dl                               ; 84 d2
    4468     je short 035c7h                           ; 74 0d
     4526    je short 03617h                           ; 74 0d
    44694527    cmp dl, 001h                              ; 80 fa 01
    4470     jbe short 035c4h                          ; 76 05
     4528    jbe short 03614h                          ; 76 05
    44714529    or bh, 002h                               ; 80 cf 02
    4472     jmp short 035c7h                          ; eb 03
     4530    jmp short 03617h                          ; eb 03
    44734531    or bh, 001h                               ; 80 cf 01
    44744532    mov word [bp+016h], bx                    ; 89 5e 16
    4475     jmp near 02fc1h                           ; e9 f4 f9
     4533    jmp near 03011h                           ; e9 f4 f9
    44764534    cmp ah, 001h                              ; 80 fc 01
    4477     jbe short 035deh                          ; 76 0c
     4535    jbe short 0362eh                          ; 76 0c
    44784536    mov word [bp+016h], si                    ; 89 76 16
    44794537    mov ax, strict word 00001h                ; b8 01 00
    4480     call 02ba7h                               ; e8 cc f5
    4481     jmp near 034b3h                           ; e9 d5 fe
     4538    call 02bf7h                               ; e8 cc f5
     4539    jmp near 03503h                           ; e9 d5 fe
    44824540    mov ax, word [bp+016h]                    ; 8b 46 16
    44834541    xor ah, ah                                ; 30 e4
     
    44854543    mov word [bp+016h], ax                    ; 89 46 16
    44864544    mov ax, strict word 00006h                ; b8 06 00
    4487     jmp near 02f6dh                           ; e9 7e f9
     4545    jmp near 02fbdh                           ; e9 7e f9
    44884546    mov bx, 00da2h                            ; bb a2 0d
    44894547    mov cx, ds                                ; 8c d9
    44904548    mov ax, strict word 00004h                ; b8 04 00
    4491     call 018e1h                               ; e8 e7 e2
     4549    call 01931h                               ; e8 e7 e2
    44924550    mov ax, word [bp+016h]                    ; 8b 46 16
    44934551    shr ax, 008h                              ; c1 e8 08
     
    44964554    push 002c2h                               ; 68 c2 02
    44974555    push strict byte 00004h                   ; 6a 04
    4498     call 01922h                               ; e8 16 e3
     4556    call 01972h                               ; e8 16 e3
    44994557    add sp, strict byte 00008h                ; 83 c4 08
    4500     jmp near 02f5fh                           ; e9 4d f9
    4501 get_floppy_dpt_:                             ; 0xf3612 LB 0x2f
     4558    jmp near 02fafh                           ; e9 4d f9
     4559get_floppy_dpt_:                             ; 0xf3662 LB 0x2f
    45024560    push bx                                   ; 53
    45034561    push dx                                   ; 52
     
    45064564    mov dl, al                                ; 88 c2
    45074565    xor ax, ax                                ; 31 c0
    4508     jmp short 03623h                          ; eb 06
     4566    jmp short 03673h                          ; eb 06
    45094567    inc ax                                    ; 40
    45104568    cmp ax, strict word 00007h                ; 3d 07 00
    4511     jnc short 0363ah                          ; 73 17
     4569    jnc short 0368ah                          ; 73 17
    45124570    mov bx, ax                                ; 89 c3
    45134571    add bx, ax                                ; 01 c3
    45144572    cmp dl, byte [word bx+0005bh]             ; 3a 97 5b 00
    4515     jne short 0361dh                          ; 75 f0
     4573    jne short 0366dh                          ; 75 f0
    45164574    movzx ax, byte [word bx+0005ch]           ; 0f b6 87 5c 00
    45174575    imul ax, ax, strict byte 0000dh           ; 6b c0 0d
    45184576    add ax, strict word 00000h                ; 05 00 00
    4519     jmp short 0363dh                          ; eb 03
     4577    jmp short 0368dh                          ; eb 03
    45204578    mov ax, strict word 00041h                ; b8 41 00
    45214579    pop bp                                    ; 5d
     
    45234581    pop bx                                    ; 5b
    45244582    retn                                      ; c3
    4525 dummy_soft_reset_:                           ; 0xf3641 LB 0x7
     4583dummy_soft_reset_:                           ; 0xf3691 LB 0x7
    45264584    push bp                                   ; 55
    45274585    mov bp, sp                                ; 89 e5
     
    45294587    pop bp                                    ; 5d
    45304588    retn                                      ; c3
    4531 _cdemu_init:                                 ; 0xf3648 LB 0x18
     4589_cdemu_init:                                 ; 0xf3698 LB 0x18
    45324590    push bp                                   ; 55
    45334591    mov bp, sp                                ; 89 e5
    45344592    mov dx, strict word 0000eh                ; ba 0e 00
    45354593    mov ax, strict word 00040h                ; b8 40 00
    4536     call 0161ch                               ; e8 c8 df
     4594    call 0166ch                               ; e8 c8 df
    45374595    xor bx, bx                                ; 31 db
    45384596    mov dx, 00322h                            ; ba 22 03
    4539     call 0160eh                               ; e8 b2 df
     4597    call 0165eh                               ; e8 b2 df
    45404598    mov sp, bp                                ; 89 ec
    45414599    pop bp                                    ; 5d
    45424600    retn                                      ; c3
    4543 _cdemu_isactive:                             ; 0xf3660 LB 0x16
     4601_cdemu_isactive:                             ; 0xf36b0 LB 0x16
    45444602    push bp                                   ; 55
    45454603    mov bp, sp                                ; 89 e5
    45464604    mov dx, strict word 0000eh                ; ba 0e 00
    45474605    mov ax, strict word 00040h                ; b8 40 00
    4548     call 0161ch                               ; e8 b0 df
     4606    call 0166ch                               ; e8 b0 df
    45494607    mov dx, 00322h                            ; ba 22 03
    4550     call 01600h                               ; e8 8e df
     4608    call 01650h                               ; e8 8e df
    45514609    mov sp, bp                                ; 89 ec
    45524610    pop bp                                    ; 5d
    45534611    retn                                      ; c3
    4554 _cdemu_emulated_drive:                       ; 0xf3676 LB 0x16
     4612_cdemu_emulated_drive:                       ; 0xf36c6 LB 0x16
    45554613    push bp                                   ; 55
    45564614    mov bp, sp                                ; 89 e5
    45574615    mov dx, strict word 0000eh                ; ba 0e 00
    45584616    mov ax, strict word 00040h                ; b8 40 00
    4559     call 0161ch                               ; e8 9a df
     4617    call 0166ch                               ; e8 9a df
    45604618    mov dx, 00324h                            ; ba 24 03
    4561     call 01600h                               ; e8 78 df
     4619    call 01650h                               ; e8 78 df
    45624620    mov sp, bp                                ; 89 ec
    45634621    pop bp                                    ; 5d
    45644622    retn                                      ; c3
    4565 _int13_eltorito:                             ; 0xf368c LB 0x189
     4623_int13_eltorito:                             ; 0xf36dc LB 0x189
    45664624    push bp                                   ; 55
    45674625    mov bp, sp                                ; 89 e5
     
    45704628    mov dx, strict word 0000eh                ; ba 0e 00
    45714629    mov ax, strict word 00040h                ; b8 40 00
    4572     call 0161ch                               ; e8 82 df
     4630    call 0166ch                               ; e8 82 df
    45734631    mov si, 00322h                            ; be 22 03
    45744632    mov di, ax                                ; 89 c7
     
    45764634    shr ax, 008h                              ; c1 e8 08
    45774635    cmp ax, strict word 0004bh                ; 3d 4b 00
    4578     jc short 036b4h                           ; 72 0a
    4579     jbe short 036dah                          ; 76 2e
     4636    jc short 03704h                           ; 72 0a
     4637    jbe short 0372ah                          ; 76 2e
    45804638    cmp ax, strict word 0004dh                ; 3d 4d 00
    4581     jbe short 036bbh                          ; 76 0a
    4582     jmp near 037d9h                           ; e9 25 01
     4639    jbe short 0370bh                          ; 76 0a
     4640    jmp near 03829h                           ; e9 25 01
    45834641    cmp ax, strict word 0004ah                ; 3d 4a 00
    4584     jne near 037d9h                           ; 0f 85 1e 01
     4642    jne near 03829h                           ; 0f 85 1e 01
    45854643    mov bx, 00da2h                            ; bb a2 0d
    45864644    mov cx, ds                                ; 8c d9
    45874645    mov ax, strict word 00004h                ; b8 04 00
    4588     call 018e1h                               ; e8 1b e2
     4646    call 01931h                               ; e8 1b e2
    45894647    push word [bp+016h]                       ; ff 76 16
    45904648    push 002dch                               ; 68 dc 02
    45914649    push 002ebh                               ; 68 eb 02
    45924650    push strict byte 00004h                   ; 6a 04
    4593     call 01922h                               ; e8 4e e2
     4651    call 01972h                               ; e8 4e e2
    45944652    add sp, strict byte 00008h                ; 83 c4 08
    4595     jmp near 037f4h                           ; e9 1a 01
     4653    jmp near 03844h                           ; e9 1a 01
    45964654    mov dx, word [bp+00ah]                    ; 8b 56 0a
    45974655    mov ax, word [bp+004h]                    ; 8b 46 04
    45984656    mov bx, strict word 00013h                ; bb 13 00
    4599     call 0160eh                               ; e8 28 df
     4657    call 0165eh                               ; e8 28 df
    46004658    mov es, di                                ; 8e c7
    46014659    movzx bx, byte [es:si+001h]               ; 26 0f b6 5c 01
     
    46034661    inc dx                                    ; 42
    46044662    mov ax, word [bp+004h]                    ; 8b 46 04
    4605     call 0160eh                               ; e8 17 df
     4663    call 0165eh                               ; e8 17 df
    46064664    mov es, di                                ; 8e c7
    46074665    movzx bx, byte [es:si+002h]               ; 26 0f b6 5c 02
     
    46104668    inc dx                                    ; 42
    46114669    mov ax, word [bp+004h]                    ; 8b 46 04
    4612     call 0160eh                               ; e8 05 df
     4670    call 0165eh                               ; e8 05 df
    46134671    mov es, di                                ; 8e c7
    46144672    movzx bx, byte [es:si+003h]               ; 26 0f b6 5c 03
     
    46164674    add dx, strict byte 00003h                ; 83 c2 03
    46174675    mov ax, word [bp+004h]                    ; 8b 46 04
    4618     call 0160eh                               ; e8 f2 de
     4676    call 0165eh                               ; e8 f2 de
    46194677    mov es, di                                ; 8e c7
    46204678    mov bx, word [es:si+008h]                 ; 26 8b 5c 08
     
    46234681    add dx, strict byte 00004h                ; 83 c2 04
    46244682    mov ax, word [bp+004h]                    ; 8b 46 04
    4625     call 0164ah                               ; e8 18 df
     4683    call 0169ah                               ; e8 18 df
    46264684    mov es, di                                ; 8e c7
    46274685    mov bx, word [es:si+004h]                 ; 26 8b 5c 04
     
    46294687    add dx, strict byte 00008h                ; 83 c2 08
    46304688    mov ax, word [bp+004h]                    ; 8b 46 04
    4631     call 0162ah                               ; e8 e6 de
     4689    call 0167ah                               ; e8 e6 de
    46324690    mov es, di                                ; 8e c7
    46334691    mov bx, word [es:si+006h]                 ; 26 8b 5c 06
     
    46354693    add dx, strict byte 0000ah                ; 83 c2 0a
    46364694    mov ax, word [bp+004h]                    ; 8b 46 04
    4637     call 0162ah                               ; e8 d4 de
     4695    call 0167ah                               ; e8 d4 de
    46384696    mov es, di                                ; 8e c7
    46394697    mov bx, word [es:si+00ch]                 ; 26 8b 5c 0c
     
    46414699    add dx, strict byte 0000ch                ; 83 c2 0c
    46424700    mov ax, word [bp+004h]                    ; 8b 46 04
    4643     call 0162ah                               ; e8 c2 de
     4701    call 0167ah                               ; e8 c2 de
    46444702    mov es, di                                ; 8e c7
    46454703    mov bx, word [es:si+00eh]                 ; 26 8b 5c 0e
     
    46474705    add dx, strict byte 0000eh                ; 83 c2 0e
    46484706    mov ax, word [bp+004h]                    ; 8b 46 04
    4649     call 0162ah                               ; e8 b0 de
     4707    call 0167ah                               ; e8 b0 de
    46504708    mov es, di                                ; 8e c7
    46514709    movzx bx, byte [es:si+012h]               ; 26 0f b6 5c 12
     
    46534711    add dx, strict byte 00010h                ; 83 c2 10
    46544712    mov ax, word [bp+004h]                    ; 8b 46 04
    4655     call 0160eh                               ; e8 81 de
     4713    call 0165eh                               ; e8 81 de
    46564714    mov es, di                                ; 8e c7
    46574715    movzx bx, byte [es:si+014h]               ; 26 0f b6 5c 14
     
    46594717    add dx, strict byte 00011h                ; 83 c2 11
    46604718    mov ax, word [bp+004h]                    ; 8b 46 04
    4661     call 0160eh                               ; e8 6e de
     4719    call 0165eh                               ; e8 6e de
    46624720    mov es, di                                ; 8e c7
    46634721    movzx bx, byte [es:si+010h]               ; 26 0f b6 5c 10
     
    46654723    add dx, strict byte 00012h                ; 83 c2 12
    46664724    mov ax, word [bp+004h]                    ; 8b 46 04
    4667     call 0160eh                               ; e8 5b de
     4725    call 0165eh                               ; e8 5b de
    46684726    test byte [bp+016h], 0ffh                 ; f6 46 16 ff
    4669     jne short 037bfh                          ; 75 06
     4727    jne short 0380fh                          ; 75 06
    46704728    mov es, di                                ; 8e c7
    46714729    mov byte [es:si], 000h                    ; 26 c6 04 00
     
    46744732    mov dx, strict word 00074h                ; ba 74 00
    46754733    mov ax, strict word 00040h                ; b8 40 00
    4676     call 0160eh                               ; e8 40 de
     4734    call 0165eh                               ; e8 40 de
    46774735    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    46784736    lea sp, [bp-004h]                         ; 8d 66 fc
     
    46844742    mov cx, ds                                ; 8c d9
    46854743    mov ax, strict word 00004h                ; b8 04 00
    4686     call 018e1h                               ; e8 fd e0
     4744    call 01931h                               ; e8 fd e0
    46874745    mov ax, word [bp+016h]                    ; 8b 46 16
    46884746    shr ax, 008h                              ; c1 e8 08
     
    46904748    push 002dch                               ; 68 dc 02
    46914749    push 00313h                               ; 68 13 03
    4692     jmp near 036cfh                           ; e9 db fe
     4750    jmp near 0371fh                           ; e9 db fe
    46934751    mov ax, word [bp+016h]                    ; 8b 46 16
    46944752    xor ah, ah                                ; 30 e4
     
    47004758    mov dx, strict word 00074h                ; ba 74 00
    47014759    mov ax, strict word 00040h                ; b8 40 00
    4702     call 0160eh                               ; e8 ff dd
     4760    call 0165eh                               ; e8 ff dd
    47034761    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    4704     jmp short 037d2h                          ; eb bd
    4705 device_is_cdrom_:                            ; 0xf3815 LB 0x35
     4762    jmp short 03822h                          ; eb bd
     4763device_is_cdrom_:                            ; 0xf3865 LB 0x35
    47064764    push bp                                   ; 55
    47074765    mov bp, sp                                ; 89 e5
     
    47114769    mov dx, strict word 0000eh                ; ba 0e 00
    47124770    mov ax, strict word 00040h                ; b8 40 00
    4713     call 0161ch                               ; e8 f7 dd
     4771    call 0166ch                               ; e8 f7 dd
    47144772    cmp bl, 010h                              ; 80 fb 10
    4715     jc short 0382eh                           ; 72 04
     4773    jc short 0387eh                           ; 72 04
    47164774    xor ax, ax                                ; 31 c0
    4717     jmp short 03843h                          ; eb 15
     4775    jmp short 03893h                          ; eb 15
    47184776    xor bh, bh                                ; 30 ff
    47194777    imul bx, bx, strict byte 00018h           ; 6b db 18
     
    47214779    add bx, 00122h                            ; 81 c3 22 01
    47224780    cmp byte [es:bx+01fh], 005h               ; 26 80 7f 1f 05
    4723     jne short 0382ah                          ; 75 ea
     4781    jne short 0387ah                          ; 75 ea
    47244782    mov ax, strict word 00001h                ; b8 01 00
    47254783    lea sp, [bp-004h]                         ; 8d 66 fc
     
    47284786    pop bp                                    ; 5d
    47294787    retn                                      ; c3
    4730 cdrom_boot_:                                 ; 0xf384a LB 0x416
     4788cdrom_boot_:                                 ; 0xf389a LB 0x416
    47314789    push bp                                   ; 55
    47324790    mov bp, sp                                ; 89 e5
     
    47394797    mov dx, strict word 0000eh                ; ba 0e 00
    47404798    mov ax, strict word 00040h                ; b8 40 00
    4741     call 0161ch                               ; e8 bd dd
     4799    call 0166ch                               ; e8 bd dd
    47424800    mov word [bp-018h], ax                    ; 89 46 e8
    47434801    mov si, 00322h                            ; be 22 03
     
    47464804    mov word [bp-012h], ax                    ; 89 46 ee
    47474805    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    4748     jmp short 0387fh                          ; eb 09
     4806    jmp short 038cfh                          ; eb 09
    47494807    inc byte [bp-00ch]                        ; fe 46 f4
    47504808    cmp byte [bp-00ch], 010h                  ; 80 7e f4 10
    4751     jnc short 0388ah                          ; 73 0b
     4809    jnc short 038dah                          ; 73 0b
    47524810    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    4753     call 03815h                               ; e8 8f ff
     4811    call 03865h                               ; e8 8f ff
    47544812    test ax, ax                               ; 85 c0
    4755     je short 03876h                           ; 74 ec
     4813    je short 038c6h                           ; 74 ec
    47564814    cmp byte [bp-00ch], 010h                  ; 80 7e f4 10
    4757     jc short 03896h                           ; 72 06
     4815    jc short 038e6h                           ; 72 06
    47584816    mov ax, strict word 00002h                ; b8 02 00
    4759     jmp near 03bfdh                           ; e9 67 03
     4817    jmp near 03c4dh                           ; e9 67 03
    47604818    mov cx, strict word 0000ch                ; b9 0c 00
    47614819    xor bx, bx                                ; 31 db
    47624820    mov dx, ss                                ; 8c d2
    47634821    lea ax, [bp-026h]                         ; 8d 46 da
    4764     call 0946ah                               ; e8 c7 5b
     4822    call 094aah                               ; e8 b7 5b
    47654823    mov word [bp-026h], strict word 00028h    ; c7 46 da 28 00
    47664824    mov ax, strict word 00011h                ; b8 11 00
     
    47784836    ; mov dword [es:bx+00ah], strict dword 008000001h ; 66 26 c7 47 0a 01 00 00 08
    47794837    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
    4780     jmp short 038dbh                          ; eb 09
     4838    jmp short 0392bh                          ; eb 09
    47814839    inc byte [bp-00eh]                        ; fe 46 f2
    47824840    cmp byte [bp-00eh], 004h                  ; 80 7e f2 04
    4783     jnbe short 03912h                         ; 77 37
     4841    jnbe short 03962h                         ; 77 37
    47844842    movzx di, byte [bp-00ch]                  ; 0f b6 7e f4
    47854843    imul di, di, strict byte 00018h           ; 6b ff 18
     
    48014859    call word [word di+0006ah]                ; ff 95 6a 00
    48024860    test ax, ax                               ; 85 c0
    4803     jne short 038d2h                          ; 75 c0
     4861    jne short 03922h                          ; 75 c0
    48044862    test ax, ax                               ; 85 c0
    4805     je short 0391ch                           ; 74 06
     4863    je short 0396ch                           ; 74 06
    48064864    mov ax, strict word 00003h                ; b8 03 00
    4807     jmp near 03bfdh                           ; e9 e1 02
     4865    jmp near 03c4dh                           ; e9 e1 02
    48084866    cmp byte [bp-00826h], 000h                ; 80 be da f7 00
    4809     je short 03929h                           ; 74 06
     4867    je short 03979h                           ; 74 06
    48104868    mov ax, strict word 00004h                ; b8 04 00
    4811     jmp near 03bfdh                           ; e9 d4 02
     4869    jmp near 03c4dh                           ; e9 d4 02
    48124870    xor di, di                                ; 31 ff
    4813     jmp short 03933h                          ; eb 06
     4871    jmp short 03983h                          ; eb 06
    48144872    inc di                                    ; 47
    48154873    cmp di, strict byte 00005h                ; 83 ff 05
    4816     jnc short 03943h                          ; 73 10
     4874    jnc short 03993h                          ; 73 10
    48174875    mov al, byte [bp+di-00825h]               ; 8a 83 db f7
    48184876    cmp al, byte [di+00daah]                  ; 3a 85 aa 0d
    4819     je short 0392dh                           ; 74 f0
     4877    je short 0397dh                           ; 74 f0
    48204878    mov ax, strict word 00005h                ; b8 05 00
    4821     jmp near 03bfdh                           ; e9 ba 02
     4879    jmp near 03c4dh                           ; e9 ba 02
    48224880    xor di, di                                ; 31 ff
    4823     jmp short 0394dh                          ; eb 06
     4881    jmp short 0399dh                          ; eb 06
    48244882    inc di                                    ; 47
    48254883    cmp di, strict byte 00017h                ; 83 ff 17
    4826     jnc short 0395dh                          ; 73 10
     4884    jnc short 039adh                          ; 73 10
    48274885    mov al, byte [bp+di-0081fh]               ; 8a 83 e1 f7
    48284886    cmp al, byte [di+00db0h]                  ; 3a 85 b0 0d
    4829     je short 03947h                           ; 74 f0
     4887    je short 03997h                           ; 74 f0
    48304888    mov ax, strict word 00006h                ; b8 06 00
    4831     jmp near 03bfdh                           ; e9 a0 02
     4889    jmp near 03c4dh                           ; e9 a0 02
    48324890    mov ax, word [bp-007dfh]                  ; 8b 86 21 f8
    48334891    mov dx, word [bp-007ddh]                  ; 8b 96 23 f8
     
    48604918    call word [word di+0006ah]                ; ff 95 6a 00
    48614919    test ax, ax                               ; 85 c0
    4862     je short 039bah                           ; 74 06
     4920    je short 03a0ah                           ; 74 06
    48634921    mov ax, strict word 00007h                ; b8 07 00
    4864     jmp near 03bfdh                           ; e9 43 02
     4922    jmp near 03c4dh                           ; e9 43 02
    48654923    cmp byte [bp-00826h], 001h                ; 80 be da f7 01
    4866     je short 039c7h                           ; 74 06
     4924    je short 03a17h                           ; 74 06
    48674925    mov ax, strict word 00008h                ; b8 08 00
    4868     jmp near 03bfdh                           ; e9 36 02
     4926    jmp near 03c4dh                           ; e9 36 02
    48694927    cmp byte [bp-00825h], 000h                ; 80 be db f7 00
    4870     je short 039d4h                           ; 74 06
     4928    je short 03a24h                           ; 74 06
    48714929    mov ax, strict word 00009h                ; b8 09 00
    4872     jmp near 03bfdh                           ; e9 29 02
     4930    jmp near 03c4dh                           ; e9 29 02
    48734931    cmp byte [bp-00808h], 055h                ; 80 be f8 f7 55
    4874     je short 039e1h                           ; 74 06
     4932    je short 03a31h                           ; 74 06
    48754933    mov ax, strict word 0000ah                ; b8 0a 00
    4876     jmp near 03bfdh                           ; e9 1c 02
     4934    jmp near 03c4dh                           ; e9 1c 02
    48774935    cmp byte [bp-00807h], 0aah                ; 80 be f9 f7 aa
    4878     jne short 039dbh                          ; 75 f3
     4936    jne short 03a2bh                          ; 75 f3
    48794937    cmp byte [bp-00806h], 088h                ; 80 be fa f7 88
    4880     je short 039f5h                           ; 74 06
     4938    je short 03a45h                           ; 74 06
    48814939    mov ax, strict word 0000bh                ; b8 0b 00
    4882     jmp near 03bfdh                           ; e9 08 02
     4940    jmp near 03c4dh                           ; e9 08 02
    48834941    mov al, byte [bp-00805h]                  ; 8a 86 fb f7
    48844942    mov es, [bp-010h]                         ; 8e 46 f0
    48854943    mov byte [es:si+001h], al                 ; 26 88 44 01
    48864944    cmp byte [bp-00805h], 000h                ; 80 be fb f7 00
    4887     jne short 03a0eh                          ; 75 07
     4945    jne short 03a5eh                          ; 75 07
    48884946    mov byte [es:si+002h], 0e0h               ; 26 c6 44 02 e0
    4889     jmp short 03a21h                          ; eb 13
     4947    jmp short 03a71h                          ; eb 13
    48904948    cmp byte [bp-00805h], 004h                ; 80 be fb f7 04
    4891     jnc short 03a1ch                          ; 73 07
     4949    jnc short 03a6ch                          ; 73 07
    48924950    mov byte [es:si+002h], 000h               ; 26 c6 44 02 00
    4893     jmp short 03a21h                          ; eb 05
     4951    jmp short 03a71h                          ; eb 05
    48944952    mov byte [es:si+002h], 080h               ; 26 c6 44 02 80
    48954953    movzx di, byte [bp-00ch]                  ; 0f b6 7e f4
     
    49094967    mov word [bp-016h], ax                    ; 89 46 ea
    49104968    test ax, ax                               ; 85 c0
    4911     jne short 03a4fh                          ; 75 05
     4969    jne short 03a9fh                          ; 75 05
    49124970    mov word [bp-016h], 007c0h                ; c7 46 ea c0 07
    49134971    mov ax, word [bp-016h]                    ; 8b 46 ea
     
    49184976    mov word [es:si+00eh], di                 ; 26 89 7c 0e
    49194977    test di, di                               ; 85 ff
    4920     je short 03a71h                           ; 74 06
     4978    je short 03ac1h                           ; 74 06
    49214979    cmp di, 00400h                            ; 81 ff 00 04
    4922     jbe short 03a77h                          ; 76 06
     4980    jbe short 03ac7h                          ; 76 06
    49234981    mov ax, strict word 0000ch                ; b8 0c 00
    4924     jmp near 03bfdh                           ; e9 86 01
     4982    jmp near 03c4dh                           ; e9 86 01
    49254983    mov ax, word [bp-007feh]                  ; 8b 86 02 f8
    49264984    mov dx, word [bp-007fch]                  ; 8b 96 04 f8
     
    49625020    sal ax, 1                                 ; d1 e0
    49635021    rcl di, 1                                 ; d1 d7
    4964     loop 03ae5h                               ; e2 fa
     5022    loop 03b35h                               ; e2 fa
    49655023    push di                                   ; 57
    49665024    push ax                                   ; 50
     
    49755033    mov word [es:bx+01ch], strict word 00000h ; 26 c7 47 1c 00 00
    49765034    test ax, ax                               ; 85 c0
    4977     je short 03b15h                           ; 74 06
     5035    je short 03b65h                           ; 74 06
    49785036    mov ax, strict word 0000dh                ; b8 0d 00
    4979     jmp near 03bfdh                           ; e9 e8 00
     5037    jmp near 03c4dh                           ; e9 e8 00
    49805038    mov es, [bp-010h]                         ; 8e 46 f0
    49815039    mov al, byte [es:si+001h]                 ; 26 8a 44 01
    49825040    cmp AL, strict byte 002h                  ; 3c 02
    4983     jc short 03b2dh                           ; 72 0d
    4984     jbe short 03b45h                          ; 76 23
     5041    jc short 03b7dh                           ; 72 0d
     5042    jbe short 03b95h                          ; 76 23
    49855043    cmp AL, strict byte 004h                  ; 3c 04
    4986     je short 03b5bh                           ; 74 35
     5044    je short 03babh                           ; 74 35
    49875045    cmp AL, strict byte 003h                  ; 3c 03
    4988     je short 03b50h                           ; 74 26
    4989     jmp near 03ba6h                           ; e9 79 00
     5046    je short 03ba0h                           ; 74 26
     5047    jmp near 03bf6h                           ; e9 79 00
    49905048    cmp AL, strict byte 001h                  ; 3c 01
    4991     jne short 03ba6h                          ; 75 75
     5049    jne short 03bf6h                          ; 75 75
    49925050    mov es, [bp-010h]                         ; 8e 46 f0
    49935051    db  066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 00fh, 000h
    49945052    ; mov dword [es:si+012h], strict dword 0000f0050h ; 66 26 c7 44 12 50 00 0f 00
    49955053    mov word [es:si+010h], strict word 00002h ; 26 c7 44 10 02 00
    4996     jmp short 03ba6h                          ; eb 61
     5054    jmp short 03bf6h                          ; eb 61
    49975055    db  066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 012h, 000h
    49985056    ; mov dword [es:si+012h], strict dword 000120050h ; 66 26 c7 44 12 50 00 12 00
    4999     jmp short 03b3dh                          ; eb ed
     5057    jmp short 03b8dh                          ; eb ed
    50005058    db  066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 024h, 000h
    50015059    ; mov dword [es:si+012h], strict dword 000240050h ; 66 26 c7 44 12 50 00 24 00
    5002     jmp short 03b3dh                          ; eb e2
     5060    jmp short 03b8dh                          ; eb e2
    50035061    mov dx, 001c4h                            ; ba c4 01
    50045062    mov ax, word [bp-016h]                    ; 8b 46 ea
    5005     call 01600h                               ; e8 9c da
     5063    call 01650h                               ; e8 9c da
    50065064    and AL, strict byte 03fh                  ; 24 3f
    50075065    xor ah, ah                                ; 30 e4
     
    50105068    mov dx, 001c4h                            ; ba c4 01
    50115069    mov ax, word [bp-016h]                    ; 8b 46 ea
    5012     call 01600h                               ; e8 88 da
     5070    call 01650h                               ; e8 88 da
    50135071    movzx bx, al                              ; 0f b6 d8
    50145072    sal bx, 002h                              ; c1 e3 02
    50155073    mov dx, 001c5h                            ; ba c5 01
    50165074    mov ax, word [bp-016h]                    ; 8b 46 ea
    5017     call 01600h                               ; e8 79 da
     5075    call 01650h                               ; e8 79 da
    50185076    xor ah, ah                                ; 30 e4
    50195077    add ax, bx                                ; 01 d8
     
    50235081    mov dx, 001c3h                            ; ba c3 01
    50245082    mov ax, word [bp-016h]                    ; 8b 46 ea
    5025     call 01600h                               ; e8 64 da
     5083    call 01650h                               ; e8 64 da
    50265084    xor ah, ah                                ; 30 e4
    50275085    inc ax                                    ; 40
     
    50305088    mov es, [bp-010h]                         ; 8e 46 f0
    50315089    cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
    5032     je short 03be4h                           ; 74 34
     5090    je short 03c34h                           ; 74 34
    50335091    cmp byte [es:si+002h], 000h               ; 26 80 7c 02 00
    5034     jne short 03bcdh                          ; 75 16
     5092    jne short 03c1dh                          ; 75 16
    50355093    mov dx, strict word 00010h                ; ba 10 00
    50365094    mov ax, strict word 00040h                ; b8 40 00
    5037     call 01600h                               ; e8 40 da
     5095    call 01650h                               ; e8 40 da
    50385096    or AL, strict byte 041h                   ; 0c 41
    50395097    movzx bx, al                              ; 0f b6 d8
    50405098    mov dx, strict word 00010h                ; ba 10 00
    50415099    mov ax, strict word 00040h                ; b8 40 00
    5042     jmp short 03be1h                          ; eb 14
     5100    jmp short 03c31h                          ; eb 14
    50435101    mov dx, 002c0h                            ; ba c0 02
    50445102    mov ax, word [bp-018h]                    ; 8b 46 e8
    5045     call 01600h                               ; e8 2a da
     5103    call 01650h                               ; e8 2a da
    50465104    db  0feh, 0c0h
    50475105    ; inc al                                    ; fe c0
     
    50495107    mov dx, 002c0h                            ; ba c0 02
    50505108    mov ax, word [bp-018h]                    ; 8b 46 e8
    5051     call 0160eh                               ; e8 2a da
     5109    call 0165eh                               ; e8 2a da
    50525110    mov es, [bp-010h]                         ; 8e 46 f0
    50535111    cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
    5054     je short 03bf2h                           ; 74 04
     5112    je short 03c42h                           ; 74 04
    50555113    mov byte [es:si], 001h                    ; 26 c6 04 01
    50565114    mov es, [bp-010h]                         ; 8e 46 f0
     
    50665124    retn                                      ; c3
    50675125    db  050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h
    5068     db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0f8h, 03fh, 006h
    5069     db  03dh, 050h, 03dh, 078h, 03dh, 045h, 03dh, 078h, 03dh, 045h, 03dh, 04eh, 03fh, 02bh, 03dh, 0f8h
    5070     db  03fh, 0f8h, 03fh, 02bh, 03dh, 02bh, 03dh, 02bh, 03dh, 02bh, 03dh, 02bh, 03dh, 0efh, 03fh, 02bh
    5071     db  03dh, 0f8h, 03fh, 0f8h, 03fh, 0f8h, 03fh, 0f8h, 03fh, 0f8h, 03fh, 0f8h, 03fh, 0f8h, 03fh, 0f8h
    5072     db  03fh, 0f8h, 03fh, 0f8h, 03fh, 0f8h, 03fh, 0f8h, 03fh
    5073 _int13_cdemu:                                ; 0xf3c60 LB 0x434
     5126    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 048h, 040h, 056h
     5127    db  03dh, 0a0h, 03dh, 0c8h, 03dh, 095h, 03dh, 0c8h, 03dh, 095h, 03dh, 09eh, 03fh, 07bh, 03dh, 048h
     5128    db  040h, 048h, 040h, 07bh, 03dh, 07bh, 03dh, 07bh, 03dh, 07bh, 03dh, 07bh, 03dh, 03fh, 040h, 07bh
     5129    db  03dh, 048h, 040h, 048h, 040h, 048h, 040h, 048h, 040h, 048h, 040h, 048h, 040h, 048h, 040h, 048h
     5130    db  040h, 048h, 040h, 048h, 040h, 048h, 040h, 048h, 040h
     5131_int13_cdemu:                                ; 0xf3cb0 LB 0x434
    50745132    push bp                                   ; 55
    50755133    mov bp, sp                                ; 89 e5
     
    50795137    mov dx, strict word 0000eh                ; ba 0e 00
    50805138    mov ax, strict word 00040h                ; b8 40 00
    5081     call 0161ch                               ; e8 ab d9
     5139    call 0166ch                               ; e8 ab d9
    50825140    mov di, 00322h                            ; bf 22 03
    50835141    mov cx, ax                                ; 89 c1
     
    50955153    mov dx, strict word 00074h                ; ba 74 00
    50965154    mov ax, strict word 00040h                ; b8 40 00
    5097     call 0160eh                               ; e8 6e d9
     5155    call 0165eh                               ; e8 6e d9
    50985156    mov es, cx                                ; 8e c1
    50995157    cmp byte [es:di], 000h                    ; 26 80 3d 00
    5100     je short 03cb6h                           ; 74 0e
     5158    je short 03d06h                           ; 74 0e
    51015159    movzx dx, byte [es:di+002h]               ; 26 0f b6 55 02
    51025160    mov ax, word [bp+012h]                    ; 8b 46 12
    51035161    xor ah, ah                                ; 30 e4
    51045162    cmp dx, ax                                ; 39 c2
    5105     je short 03cdfh                           ; 74 29
     5163    je short 03d2fh                           ; 74 29
    51065164    mov bx, 00da2h                            ; bb a2 0d
    51075165    mov cx, ds                                ; 8c d9
    51085166    mov ax, strict word 00004h                ; b8 04 00
    5109     call 018e1h                               ; e8 20 dc
     5167    call 01931h                               ; e8 20 dc
    51105168    mov ax, word [bp+012h]                    ; 8b 46 12
    51115169    xor ah, ah                                ; 30 e4
     
    51175175    push 00338h                               ; 68 38 03
    51185176    push strict byte 00004h                   ; 6a 04
    5119     call 01922h                               ; e8 49 dc
     5177    call 01972h                               ; e8 49 dc
    51205178    add sp, strict byte 0000ah                ; 83 c4 0a
    5121     jmp near 04018h                           ; e9 39 03
     5179    jmp near 04068h                           ; e9 39 03
    51225180    mov ax, word [bp+016h]                    ; 8b 46 16
    51235181    shr ax, 008h                              ; c1 e8 08
    51245182    cmp ax, strict word 00050h                ; 3d 50 00
    5125     jnbe near 03ff8h                          ; 0f 87 0c 03
     5183    jnbe near 04048h                          ; 0f 87 0c 03
    51265184    push CS                                   ; 0e
    51275185    pop ES                                    ; 07
    51285186    mov cx, strict word 0001eh                ; b9 1e 00
    5129     mov di, 03c07h                            ; bf 07 3c
     5187    mov di, 03c57h                            ; bf 57 3c
    51305188    repne scasb                               ; f2 ae
    51315189    sal cx, 1                                 ; d1 e1
    51325190    mov di, cx                                ; 89 cf
    5133     mov ax, word [cs:di+03c24h]               ; 2e 8b 85 24 3c
     5191    mov ax, word [cs:di+03c74h]               ; 2e 8b 85 74 3c
    51345192    mov bx, word [bp+016h]                    ; 8b 5e 16
    51355193    xor bh, bh                                ; 30 ff
     
    51425200    add bx, bx                                ; 01 db
    51435201    cmp word [word bx+0006ah], strict byte 00000h ; 83 bf 6a 00 00
    5144     je near 03d2bh                            ; 0f 84 08 00
     5202    je near 03d7bh                            ; 0f 84 08 00
    51455203    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    51465204    call word [word bx+00076h]                ; ff 97 76 00
     
    51495207    mov dx, strict word 00074h                ; ba 74 00
    51505208    mov ax, strict word 00040h                ; b8 40 00
    5151     call 0160eh                               ; e8 d4 d8
     5209    call 0165eh                               ; e8 d4 d8
    51525210    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    51535211    lea sp, [bp-004h]                         ; 8d 66 fc
     
    51595217    xor ah, ah                                ; 30 e4
    51605218    or ah, 003h                               ; 80 cc 03
    5161     jmp near 04020h                           ; e9 d0 02
     5219    jmp near 04070h                           ; e9 d0 02
    51625220    mov dx, strict word 00074h                ; ba 74 00
    51635221    mov ax, strict word 00040h                ; b8 40 00
    5164     call 01600h                               ; e8 a7 d8
     5222    call 01650h                               ; e8 a7 d8
    51655223    mov cl, al                                ; 88 c1
    51665224    movzx ax, cl                              ; 0f b6 c1
     
    51715229    mov dx, strict word 00074h                ; ba 74 00
    51725230    mov ax, strict word 00040h                ; b8 40 00
    5173     call 0160eh                               ; e8 9d d8
     5231    call 0165eh                               ; e8 9d d8
    51745232    test cl, cl                               ; 84 c9
    5175     je short 03d2fh                           ; 74 ba
    5176     jmp near 04034h                           ; e9 bc 02
     5233    je short 03d7fh                           ; 74 ba
     5234    jmp near 04084h                           ; e9 bc 02
    51775235    mov es, [bp-008h]                         ; 8e 46 f8
    51785236    mov di, word [es:si+014h]                 ; 26 8b 7c 14
     
    51985256    mov word [bp-00ah], cx                    ; 89 4e f6
    51995257    test cx, cx                               ; 85 c9
    5200     jne short 03dc5h                          ; 75 03
    5201     jmp near 03d2bh                           ; e9 66 ff
     5258    jne short 03e15h                          ; 75 03
     5259    jmp near 03d7bh                           ; e9 66 ff
    52025260    cmp di, word [bp-010h]                    ; 3b 7e f0
    5203     jc near 04018h                            ; 0f 82 4c 02
     5261    jc near 04068h                            ; 0f 82 4c 02
    52045262    cmp ax, dx                                ; 39 d0
    5205     jnc near 04018h                           ; 0f 83 46 02
     5263    jnc near 04068h                           ; 0f 83 46 02
    52065264    cmp si, bx                                ; 39 de
    5207     jnc near 04018h                           ; 0f 83 40 02
     5265    jnc near 04068h                           ; 0f 83 40 02
    52085266    mov dx, word [bp+016h]                    ; 8b 56 16
    52095267    shr dx, 008h                              ; c1 ea 08
    52105268    cmp dx, strict byte 00004h                ; 83 fa 04
    5211     jne short 03de6h                          ; 75 03
    5212     jmp near 03d2bh                           ; e9 45 ff
     5269    jne short 03e36h                          ; 75 03
     5270    jmp near 03d7bh                           ; e9 45 ff
    52135271    mov dx, word [bp+010h]                    ; 8b 56 10
    52145272    shr dx, 004h                              ; c1 ea 04
     
    52215279    xor dl, dl                                ; 30 d2
    52225280    xor cx, cx                                ; 31 c9
    5223     call 09439h                               ; e8 35 56
     5281    call 09479h                               ; e8 25 56
    52245282    xor bx, bx                                ; 31 db
    52255283    add ax, si                                ; 01 f0
     
    52275285    mov bx, di                                ; 89 fb
    52285286    xor cx, cx                                ; 31 c9
    5229     call 09439h                               ; e8 28 56
     5287    call 09479h                               ; e8 18 56
    52305288    mov bx, ax                                ; 89 c3
    52315289    mov ax, word [bp-010h]                    ; 8b 46 f0
     
    52625320    mov dx, ss                                ; 8c d2
    52635321    lea ax, [bp-02eh]                         ; 8d 46 d2
    5264     call 0946ah                               ; e8 02 56
     5322    call 094aah                               ; e8 f2 55
    52655323    mov word [bp-02eh], strict word 00028h    ; c7 46 d2 28 00
    52665324    mov ax, word [bp-014h]                    ; 8b 46 ec
     
    53105368    sal si, 1                                 ; d1 e6
    53115369    rcl di, 1                                 ; d1 d7
    5312     loop 03ee8h                               ; e2 fa
     5370    loop 03f38h                               ; e2 fa
    53135371    push di                                   ; 57
    53145372    push si                                   ; 56
     
    53255383    ; mov dword [es:bx+01ah], strict dword 000000000h ; 66 26 c7 47 1a 00 00 00 00
    53265384    test al, al                               ; 84 c0
    5327     je near 03d2bh                            ; 0f 84 13 fe
     5385    je near 03d7bh                            ; 0f 84 13 fe
    53285386    mov bx, 00da2h                            ; bb a2 0d
    53295387    mov cx, ds                                ; 8c d9
    53305388    mov ax, strict word 00004h                ; b8 04 00
    5331     call 018e1h                               ; e8 be d9
     5389    call 01931h                               ; e8 be d9
    53325390    movzx ax, dl                              ; 0f b6 c2
    53335391    push ax                                   ; 50
     
    53385396    push 0036eh                               ; 68 6e 03
    53395397    push strict byte 00004h                   ; 6a 04
    5340     call 01922h                               ; e8 e9 d9
     5398    call 01972h                               ; e8 e9 d9
    53415399    add sp, strict byte 0000ah                ; 83 c4 0a
    53425400    mov ax, word [bp+016h]                    ; 8b 46 16
     
    53455403    mov word [bp+016h], ax                    ; 89 46 16
    53465404    mov byte [bp+016h], 000h                  ; c6 46 16 00
    5347     jmp near 04023h                           ; e9 d5 00
     5405    jmp near 04073h                           ; e9 d5 00
    53485406    mov es, [bp-008h]                         ; 8e 46 f8
    53495407    mov di, word [es:si+014h]                 ; 26 8b 7c 14
     
    53845442    mov word [bp+010h], ax                    ; 89 46 10
    53855443    cmp dl, 003h                              ; 80 fa 03
    5386     je short 03fd2h                           ; 74 1a
     5444    je short 04022h                           ; 74 1a
    53875445    cmp dl, 002h                              ; 80 fa 02
    5388     je short 03fceh                           ; 74 11
     5446    je short 0401eh                           ; 74 11
    53895447    cmp dl, 001h                              ; 80 fa 01
    5390     jne short 03fd6h                          ; 75 14
     5448    jne short 04026h                          ; 75 14
    53915449    mov ax, word [bp+010h]                    ; 8b 46 10
    53925450    xor al, al                                ; 30 c0
    53935451    or AL, strict byte 002h                   ; 0c 02
    53945452    mov word [bp+010h], ax                    ; 89 46 10
    5395     jmp short 03fd6h                          ; eb 08
     5453    jmp short 04026h                          ; eb 08
    53965454    or AL, strict byte 004h                   ; 0c 04
    5397     jmp short 03fc9h                          ; eb f7
     5455    jmp short 04019h                          ; eb f7
    53985456    or AL, strict byte 005h                   ; 0c 05
    5399     jmp short 03fc9h                          ; eb f3
     5457    jmp short 04019h                          ; eb f3
    54005458    mov es, [bp-008h]                         ; 8e 46 f8
    54015459    cmp byte [es:si+001h], 004h               ; 26 80 7c 01 04
    5402     jnc near 03d2bh                           ; 0f 83 49 fd
     5460    jnc near 03d7bh                           ; 0f 83 49 fd
    54035461    mov word [bp+008h], 0efc7h                ; c7 46 08 c7 ef
    54045462    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
    5405     jmp near 03d2bh                           ; e9 3c fd
     5463    jmp near 03d7bh                           ; e9 3c fd
    54065464    or bh, 003h                               ; 80 cf 03
    54075465    mov word [bp+016h], bx                    ; 89 5e 16
    5408     jmp near 03d2fh                           ; e9 37 fd
     5466    jmp near 03d7fh                           ; e9 37 fd
    54095467    mov bx, 00da2h                            ; bb a2 0d
    54105468    mov cx, ds                                ; 8c d9
    54115469    mov ax, strict word 00004h                ; b8 04 00
    5412     call 018e1h                               ; e8 de d8
     5470    call 01931h                               ; e8 de d8
    54135471    mov ax, word [bp+016h]                    ; 8b 46 16
    54145472    shr ax, 008h                              ; c1 e8 08
     
    54175475    push 0038fh                               ; 68 8f 03
    54185476    push strict byte 00004h                   ; 6a 04
    5419     call 01922h                               ; e8 0d d9
     5477    call 01972h                               ; e8 0d d9
    54205478    add sp, strict byte 00008h                ; 83 c4 08
    54215479    mov ax, word [bp+016h]                    ; 8b 46 16
     
    54285486    mov dx, strict word 00074h                ; ba 74 00
    54295487    mov ax, strict word 00040h                ; b8 40 00
    5430     call 0160eh                               ; e8 da d5
     5488    call 0165eh                               ; e8 da d5
    54315489    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    5432     jmp near 03d3eh                           ; e9 03 fd
     5490    jmp near 03d8eh                           ; e9 03 fd
    54335491    db  050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h
    5434     db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0d9h, 045h, 055h
    5435     db  043h, 041h, 041h, 0d9h, 045h, 036h, 041h, 0d9h, 045h, 036h, 041h, 0d9h, 045h, 055h, 043h, 0d9h
    5436     db  045h, 0d9h, 045h, 055h, 043h, 055h, 043h, 055h, 043h, 055h, 043h, 055h, 043h, 06bh, 041h, 055h
    5437     db  043h, 0d9h, 045h, 074h, 041h, 087h, 041h, 036h, 041h, 087h, 041h, 0b5h, 042h, 06fh, 043h, 087h
    5438     db  041h, 096h, 043h, 092h, 045h, 09ah, 045h, 0d9h, 045h
    5439 _int13_cdrom:                                ; 0xf4094 LB 0x562
     5492    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 029h, 046h, 0a5h
     5493    db  043h, 091h, 041h, 029h, 046h, 086h, 041h, 029h, 046h, 086h, 041h, 029h, 046h, 0a5h, 043h, 029h
     5494    db  046h, 029h, 046h, 0a5h, 043h, 0a5h, 043h, 0a5h, 043h, 0a5h, 043h, 0a5h, 043h, 0bbh, 041h, 0a5h
     5495    db  043h, 029h, 046h, 0c4h, 041h, 0d7h, 041h, 086h, 041h, 0d7h, 041h, 005h, 043h, 0bfh, 043h, 0d7h
     5496    db  041h, 0e6h, 043h, 0e2h, 045h, 0eah, 045h, 029h, 046h
     5497_int13_cdrom:                                ; 0xf40e4 LB 0x562
    54405498    push bp                                   ; 55
    54415499    mov bp, sp                                ; 89 e5
     
    54455503    mov dx, strict word 0000eh                ; ba 0e 00
    54465504    mov ax, strict word 00040h                ; b8 40 00
    5447     call 0161ch                               ; e8 77 d5
     5505    call 0166ch                               ; e8 77 d5
    54485506    mov word [bp-01ah], ax                    ; 89 46 e6
    54495507    mov si, 00122h                            ; be 22 01
     
    54525510    mov dx, strict word 00074h                ; ba 74 00
    54535511    mov ax, strict word 00040h                ; b8 40 00
    5454     call 0160eh                               ; e8 55 d5
     5512    call 0165eh                               ; e8 55 d5
    54555513    mov ax, word [bp+010h]                    ; 8b 46 10
    54565514    xor ah, ah                                ; 30 e4
    54575515    cmp ax, 000e0h                            ; 3d e0 00
    5458     jc short 040c8h                           ; 72 05
     5516    jc short 04118h                           ; 72 05
    54595517    cmp ax, 000f0h                            ; 3d f0 00
    5460     jc short 040e6h                           ; 72 1e
     5518    jc short 04136h                           ; 72 1e
    54615519    mov ax, word [bp+010h]                    ; 8b 46 10
    54625520    xor ah, ah                                ; 30 e4
     
    54685526    push 003cbh                               ; 68 cb 03
    54695527    push strict byte 00004h                   ; 6a 04
    5470     call 01922h                               ; e8 42 d8
     5528    call 01972h                               ; e8 42 d8
    54715529    add sp, strict byte 0000ah                ; 83 c4 0a
    5472     jmp near 045b6h                           ; e9 d0 04
     5530    jmp near 04606h                           ; e9 d0 04
    54735531    mov ax, word [bp+010h]                    ; 8b 46 10
    54745532    xor ah, ah                                ; 30 e4
     
    54795537    mov byte [bp-008h], dl                    ; 88 56 f8
    54805538    cmp dl, 010h                              ; 80 fa 10
    5481     jc short 0410fh                           ; 72 10
     5539    jc short 0415fh                           ; 72 10
    54825540    push ax                                   ; 50
    54835541    mov ax, word [bp+018h]                    ; 8b 46 18
     
    54865544    push 003bfh                               ; 68 bf 03
    54875545    push 003f6h                               ; 68 f6 03
    5488     jmp short 040dbh                          ; eb cc
     5546    jmp short 0412bh                          ; eb cc
    54895547    mov ax, word [bp+018h]                    ; 8b 46 18
    54905548    shr ax, 008h                              ; c1 e8 08
    54915549    cmp ax, strict word 00050h                ; 3d 50 00
    5492     jnbe near 045d9h                          ; 0f 87 bd 04
     5550    jnbe near 04629h                          ; 0f 87 bd 04
    54935551    push CS                                   ; 0e
    54945552    pop ES                                    ; 07
    54955553    mov cx, strict word 0001eh                ; b9 1e 00
    5496     mov di, 0403bh                            ; bf 3b 40
     5554    mov di, 0408bh                            ; bf 8b 40
    54975555    repne scasb                               ; f2 ae
    54985556    sal cx, 1                                 ; d1 e1
    54995557    mov di, cx                                ; 89 cf
    5500     mov ax, word [cs:di+04058h]               ; 2e 8b 85 58 40
     5558    mov ax, word [cs:di+040a8h]               ; 2e 8b 85 a8 40
    55015559    mov bx, word [bp+018h]                    ; 8b 5e 18
    55025560    xor bh, bh                                ; 30 ff
     
    55055563    xor ah, ah                                ; 30 e4
    55065564    or ah, 003h                               ; 80 cc 03
    5507     jmp near 045beh                           ; e9 7d 04
     5565    jmp near 0460eh                           ; e9 7d 04
    55085566    mov dx, strict word 00074h                ; ba 74 00
    55095567    mov ax, strict word 00040h                ; b8 40 00
    5510     call 01600h                               ; e8 b6 d4
     5568    call 01650h                               ; e8 b6 d4
    55115569    mov cl, al                                ; 88 c1
    55125570    movzx ax, cl                              ; 0f b6 c1
     
    55175575    mov dx, strict word 00074h                ; ba 74 00
    55185576    mov ax, strict word 00040h                ; b8 40 00
    5519     call 0160eh                               ; e8 ac d4
     5577    call 0165eh                               ; e8 ac d4
    55205578    test cl, cl                               ; 84 c9
    5521     je near 04359h                            ; 0f 84 f1 01
    5522     jmp near 045d2h                           ; e9 67 04
     5579    je near 043a9h                            ; 0f 84 f1 01
     5580    jmp near 04622h                           ; e9 67 04
    55235581    or bh, 002h                               ; 80 cf 02
    55245582    mov word [bp+018h], bx                    ; 89 5e 18
    5525     jmp near 045c1h                           ; e9 4d 04
     5583    jmp near 04611h                           ; e9 4d 04
    55265584    mov word [bp+012h], 0aa55h                ; c7 46 12 55 aa
    55275585    or bh, 030h                               ; 80 cf 30
    55285586    mov word [bp+018h], bx                    ; 89 5e 18
    55295587    mov word [bp+016h], strict word 00007h    ; c7 46 16 07 00
    5530     jmp near 04359h                           ; e9 d2 01
     5588    jmp near 043a9h                           ; e9 d2 01
    55315589    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    55325590    mov es, [bp+006h]                         ; 8e 46 06
     
    55435601    mov di, word [es:bx+00eh]                 ; 26 8b 7f 0e
    55445602    or di, ax                                 ; 09 c7
    5545     je short 041cfh                           ; 74 18
     5603    je short 0421fh                           ; 74 18
    55465604    mov ax, word [bp+018h]                    ; 8b 46 18
    55475605    shr ax, 008h                              ; c1 e8 08
     
    55505608    push 00428h                               ; 68 28 04
    55515609    push strict byte 00007h                   ; 6a 07
    5552     call 01922h                               ; e8 59 d7
     5610    call 01972h                               ; e8 59 d7
    55535611    add sp, strict byte 00008h                ; 83 c4 08
    5554     jmp near 045b6h                           ; e9 e7 03
     5612    jmp near 04606h                           ; e9 e7 03
    55555613    les bx, [bp-014h]                         ; c4 5e ec
    55565614    mov ax, word [es:bx+008h]                 ; 26 8b 47 08
     
    55625620    mov word [bp-016h], ax                    ; 89 46 ea
    55635621    cmp ax, strict word 00044h                ; 3d 44 00
    5564     je near 04355h                            ; 0f 84 66 01
     5622    je near 043a5h                            ; 0f 84 66 01
    55655623    cmp ax, strict word 00047h                ; 3d 47 00
    5566     je near 04355h                            ; 0f 84 5f 01
     5624    je near 043a5h                            ; 0f 84 5f 01
    55675625    mov cx, strict word 0000ch                ; b9 0c 00
    55685626    xor bx, bx                                ; 31 db
    55695627    mov dx, ss                                ; 8c d2
    55705628    lea ax, [bp-02ch]                         ; 8d 46 d4
    5571     call 0946ah                               ; e8 67 52
     5629    call 094aah                               ; e8 57 52
    55725630    mov word [bp-02ch], strict word 00028h    ; c7 46 d4 28 00
    55735631    mov ax, word [bp-018h]                    ; 8b 46 e8
     
    55975655    sal ax, 1                                 ; d1 e0
    55985656    rcl bx, 1                                 ; d1 d3
    5599     loop 0424dh                               ; e2 fa
     5657    loop 0429dh                               ; e2 fa
    56005658    push bx                                   ; 53
    56015659    push ax                                   ; 50
     
    56135671    shr di, 1                                 ; d1 ef
    56145672    rcr ax, 1                                 ; d1 d8
    5615     loop 04277h                               ; e2 fa
     5673    loop 042c7h                               ; e2 fa
    56165674    les bx, [bp-014h]                         ; c4 5e ec
    56175675    mov word [es:bx+002h], ax                 ; 26 89 47 02
    56185676    test dl, dl                               ; 84 d2
    5619     je near 04355h                            ; 0f 84 cb 00
     5677    je near 043a5h                            ; 0f 84 cb 00
    56205678    mov bx, 00da2h                            ; bb a2 0d
    56215679    mov cx, ds                                ; 8c d9
    56225680    mov ax, strict word 00004h                ; b8 04 00
    5623     call 018e1h                               ; e8 4c d6
     5681    call 01931h                               ; e8 4c d6
    56245682    movzx ax, dl                              ; 0f b6 c2
    56255683    push ax                                   ; 50
     
    56285686    push 00451h                               ; 68 51 04
    56295687    push strict byte 00004h                   ; 6a 04
    5630     call 01922h                               ; e8 7b d6
     5688    call 01972h                               ; e8 7b d6
    56315689    add sp, strict byte 0000ah                ; 83 c4 0a
    56325690    mov ax, word [bp+018h]                    ; 8b 46 18
    56335691    xor ah, ah                                ; 30 e4
    56345692    or ah, 00ch                               ; 80 cc 0c
    5635     jmp near 045beh                           ; e9 09 03
     5693    jmp near 0460eh                           ; e9 09 03
    56365694    cmp bx, strict byte 00002h                ; 83 fb 02
    5637     jnbe near 045b6h                          ; 0f 87 fa 02
     5695    jnbe near 04606h                          ; 0f 87 fa 02
    56385696    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    56395697    imul ax, ax, strict byte 00018h           ; 6b c0 18
     
    56435701    mov al, byte [es:di+021h]                 ; 26 8a 45 21
    56445702    cmp bx, strict byte 00002h                ; 83 fb 02
    5645     je short 04346h                           ; 74 73
     5703    je short 04396h                           ; 74 73
    56465704    cmp bx, strict byte 00001h                ; 83 fb 01
    5647     je short 04313h                           ; 74 3b
     5705    je short 04363h                           ; 74 3b
    56485706    test bx, bx                               ; 85 db
    5649     jne near 04355h                           ; 0f 85 77 00
     5707    jne near 043a5h                           ; 0f 85 77 00
    56505708    cmp AL, strict byte 0ffh                  ; 3c ff
    5651     jne short 042f4h                          ; 75 12
     5709    jne short 04344h                          ; 75 12
    56525710    mov ax, word [bp+018h]                    ; 8b 46 18
    56535711    xor ah, ah                                ; 30 e4
     
    56565714    xor al, al                                ; 30 c0
    56575715    or AL, strict byte 001h                   ; 0c 01
    5658     jmp near 045beh                           ; e9 ca 02
     5716    jmp near 0460eh                           ; e9 ca 02
    56595717    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    56605718    imul dx, dx, strict byte 00018h           ; 6b d2 18
     
    56685726    or AL, strict byte 001h                   ; 0c 01
    56695727    mov word [bp+018h], ax                    ; 89 46 18
    5670     jmp near 04355h                           ; e9 42 00
     5728    jmp near 043a5h                           ; e9 42 00
    56715729    test al, al                               ; 84 c0
    5672     jne short 04323h                          ; 75 0c
     5730    jne short 04373h                          ; 75 0c
    56735731    or bh, 0b0h                               ; 80 cf b0
    56745732    mov word [bp+018h], bx                    ; 89 5e 18
    56755733    mov byte [bp+018h], al                    ; 88 46 18
    5676     jmp near 045c1h                           ; e9 9e 02
     5734    jmp near 04611h                           ; e9 9e 02
    56775735    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    56785736    imul dx, dx, strict byte 00018h           ; 6b d2 18
     
    56895747    xor al, al                                ; 30 c0
    56905748    or ax, dx                                 ; 09 d0
    5691     jmp short 0430dh                          ; eb c7
     5749    jmp short 0435dh                          ; eb c7
    56925750    test al, al                               ; 84 c0
    56935751    db  00fh, 095h, 0c0h
     
    57015759    mov dx, strict word 00074h                ; ba 74 00
    57025760    mov ax, strict word 00040h                ; b8 40 00
    5703     call 0160eh                               ; e8 aa d2
     5761    call 0165eh                               ; e8 aa d2
    57045762    and byte [bp+01eh], 0feh                  ; 80 66 1e fe
    57055763    lea sp, [bp-004h]                         ; 8d 66 fc
     
    57145772    mov al, byte [es:si+021h]                 ; 26 8a 44 21
    57155773    test al, al                               ; 84 c0
    5716     je short 04389h                           ; 74 06
     5774    je short 043d9h                           ; 74 06
    57175775    or bh, 0b1h                               ; 80 cf b1
    5718     jmp near 0416eh                           ; e9 e5 fd
    5719     je short 04355h                           ; 74 ca
     5776    jmp near 041beh                           ; e9 e5 fd
     5777    je short 043a5h                           ; 74 ca
    57205778    mov ax, word [bp+018h]                    ; 8b 46 18
    57215779    xor ah, ah                                ; 30 e4
    57225780    or ah, 0b1h                               ; 80 cc b1
    5723     jmp near 045beh                           ; e9 28 02
     5781    jmp near 0460eh                           ; e9 28 02
    57245782    mov dx, word [bp+00ch]                    ; 8b 56 0c
    57255783    mov cx, word [bp+006h]                    ; 8b 4e 06
     
    57315789    mov word [bp-00eh], ax                    ; 89 46 f2
    57325790    cmp ax, strict word 0001ah                ; 3d 1a 00
    5733     jc near 045b6h                            ; 0f 82 04 02
    5734     jc short 04403h                           ; 72 4f
     5791    jc near 04606h                            ; 0f 82 04 02
     5792    jc short 04453h                           ; 72 4f
    57355793    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    57365794    imul ax, ax, strict byte 00018h           ; 6b c0 18
     
    57555813    ; mov dword [es:di+014h], strict dword 0ffffffffh ; 66 26 c7 45 14 ff ff ff ff
    57565814    cmp word [bp-00eh], strict byte 0001eh    ; 83 7e f2 1e
    5757     jc near 044dah                            ; 0f 82 cf 00
     5815    jc near 0452ah                            ; 0f 82 cf 00
    57585816    mov es, [bp-00ah]                         ; 8e 46 f6
    57595817    mov word [es:bx], strict word 0001eh      ; 26 c7 07 1e 00
     
    58075865    xor cl, cl                                ; 30 c9
    58085866    xor ch, ch                                ; 30 ed
    5809     jmp short 044bdh                          ; eb 05
     5867    jmp short 0450dh                          ; eb 05
    58105868    cmp ch, 00fh                              ; 80 fd 0f
    5811     jnc short 044d0h                          ; 73 13
     5869    jnc short 04520h                          ; 73 13
    58125870    movzx dx, ch                              ; 0f b6 d5
    58135871    add dx, 00312h                            ; 81 c2 12 03
    58145872    mov ax, word [bp-01ah]                    ; 8b 46 e6
    5815     call 01600h                               ; e8 36 d1
     5873    call 01650h                               ; e8 36 d1
    58165874    add cl, al                                ; 00 c1
    58175875    db  0feh, 0c5h
    58185876    ; inc ch                                    ; fe c5
    5819     jmp short 044b8h                          ; eb e8
     5877    jmp short 04508h                          ; eb e8
    58205878    neg cl                                    ; f6 d9
    58215879    mov es, [bp-00ch]                         ; 8e 46 f4
    58225880    mov byte [es:si+001ffh], cl               ; 26 88 8c ff 01
    58235881    cmp word [bp-00eh], strict byte 00042h    ; 83 7e f2 42
    5824     jc near 04355h                            ; 0f 82 73 fe
     5882    jc near 043a5h                            ; 0f 82 73 fe
    58255883    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    58265884    cwd                                       ; 99
     
    58405898    mov word [es:bx+022h], strict word 00000h ; 26 c7 47 22 00 00
    58415899    test al, al                               ; 84 c0
    5842     jne short 04523h                          ; 75 09
     5900    jne short 04573h                          ; 75 09
    58435901    db  066h, 026h, 0c7h, 047h, 024h, 049h, 053h, 041h, 020h
    58445902    ; mov dword [es:bx+024h], strict dword 020415349h ; 66 26 c7 47 24 49 53 41 20
     
    58495907    ; mov dword [es:bx+02ch], strict dword 020202020h ; 66 26 c7 47 2c 20 20 20 20
    58505908    test al, al                               ; 84 c0
    5851     jne short 0454fh                          ; 75 13
     5909    jne short 0459fh                          ; 75 13
    58525910    mov word [es:bx+030h], dx                 ; 26 89 57 30
    58535911    db  066h, 026h, 0c7h, 047h, 032h, 000h, 000h, 000h, 000h
     
    58645922    xor al, al                                ; 30 c0
    58655923    mov AH, strict byte 01eh                  ; b4 1e
    5866     jmp short 04577h                          ; eb 05
     5924    jmp short 045c7h                          ; eb 05
    58675925    cmp ah, 040h                              ; 80 fc 40
    5868     jnc short 04586h                          ; 73 0f
     5926    jnc short 045d6h                          ; 73 0f
    58695927    movzx si, ah                              ; 0f b6 f4
    58705928    mov es, [bp-00ah]                         ; 8e 46 f6
     
    58735931    db  0feh, 0c4h
    58745932    ; inc ah                                    ; fe c4
    5875     jmp short 04572h                          ; eb ec
     5933    jmp short 045c2h                          ; eb ec
    58765934    neg al                                    ; f6 d8
    58775935    mov es, [bp-00ah]                         ; 8e 46 f6
    58785936    mov byte [es:bx+041h], al                 ; 26 88 47 41
    5879     jmp near 04355h                           ; e9 c3 fd
     5937    jmp near 043a5h                           ; e9 c3 fd
    58805938    or bh, 006h                               ; 80 cf 06
    58815939    mov word [bp+018h], bx                    ; 89 5e 18
    5882     jmp short 045d2h                          ; eb 38
     5940    jmp short 04622h                          ; eb 38
    58835941    cmp bx, strict byte 00006h                ; 83 fb 06
    5884     je near 04355h                            ; 0f 84 b4 fd
     5942    je near 043a5h                            ; 0f 84 b4 fd
    58855943    cmp bx, strict byte 00001h                ; 83 fb 01
    5886     jc short 045b6h                           ; 72 10
    5887     jbe near 04355h                           ; 0f 86 ab fd
     5944    jc short 04606h                           ; 72 10
     5945    jbe near 043a5h                           ; 0f 86 ab fd
    58885946    cmp bx, strict byte 00003h                ; 83 fb 03
    5889     jc short 045b6h                           ; 72 07
     5947    jc short 04606h                           ; 72 07
    58905948    cmp bx, strict byte 00004h                ; 83 fb 04
    5891     jbe near 04355h                           ; 0f 86 9f fd
     5949    jbe near 043a5h                           ; 0f 86 9f fd
    58925950    mov ax, word [bp+018h]                    ; 8b 46 18
    58935951    xor ah, ah                                ; 30 e4
     
    58995957    mov dx, strict word 00074h                ; ba 74 00
    59005958    mov ax, strict word 00040h                ; b8 40 00
    5901     call 0160eh                               ; e8 3c d0
     5959    call 0165eh                               ; e8 3c d0
    59025960    or byte [bp+01eh], 001h                   ; 80 4e 1e 01
    5903     jmp near 04368h                           ; e9 8f fd
     5961    jmp near 043b8h                           ; e9 8f fd
    59045962    mov bx, 00da2h                            ; bb a2 0d
    59055963    mov cx, ds                                ; 8c d9
    59065964    mov ax, strict word 00004h                ; b8 04 00
    5907     call 018e1h                               ; e8 fd d2
     5965    call 01931h                               ; e8 fd d2
    59085966    mov ax, word [bp+018h]                    ; 8b 46 18
    59095967    shr ax, 008h                              ; c1 e8 08
     
    59125970    push 00313h                               ; 68 13 03
    59135971    push strict byte 00004h                   ; 6a 04
    5914     jmp near 041c6h                           ; e9 d0 fb
    5915 print_boot_device_:                          ; 0xf45f6 LB 0x4b
     5972    jmp near 04216h                           ; e9 d0 fb
     5973print_boot_device_:                          ; 0xf4646 LB 0x4b
    59165974    push bp                                   ; 55
    59175975    mov bp, sp                                ; 89 e5
    59185976    push cx                                   ; 51
    59195977    test al, al                               ; 84 c0
    5920     je short 04603h                           ; 74 05
     5978    je short 04653h                           ; 74 05
    59215979    mov dx, strict word 00002h                ; ba 02 00
    5922     jmp short 0461dh                          ; eb 1a
     5980    jmp short 0466dh                          ; eb 1a
    59235981    test dl, dl                               ; 84 d2
    5924     je short 0460ch                           ; 74 05
     5982    je short 0465ch                           ; 74 05
    59255983    mov dx, strict word 00003h                ; ba 03 00
    5926     jmp short 0461dh                          ; eb 11
     5984    jmp short 0466dh                          ; eb 11
    59275985    test bl, 080h                             ; f6 c3 80
    5928     jne short 04615h                          ; 75 04
     5986    jne short 04665h                          ; 75 04
    59295987    xor dh, dh                                ; 30 f6
    5930     jmp short 0461dh                          ; eb 08
     5988    jmp short 0466dh                          ; eb 08
    59315989    test bl, 080h                             ; f6 c3 80
    5932     je short 0463bh                           ; 74 21
     5990    je short 0468bh                           ; 74 21
    59335991    mov dx, strict word 00001h                ; ba 01 00
    59345992    mov bx, 00da2h                            ; bb a2 0d
    59355993    mov cx, ds                                ; 8c d9
    59365994    mov ax, strict word 00004h                ; b8 04 00
    5937     call 018e1h                               ; e8 b9 d2
     5995    call 01931h                               ; e8 b9 d2
    59385996    imul dx, dx, strict byte 0000ah           ; 6b d2 0a
    59395997    add dx, 00dc8h                            ; 81 c2 c8 0d
     
    59415999    push 00474h                               ; 68 74 04
    59426000    push strict byte 00004h                   ; 6a 04
    5943     call 01922h                               ; e8 ea d2
     6001    call 01972h                               ; e8 ea d2
    59446002    add sp, strict byte 00006h                ; 83 c4 06
    59456003    lea sp, [bp-002h]                         ; 8d 66 fe
     
    59476005    pop bp                                    ; 5d
    59486006    retn                                      ; c3
    5949 print_boot_failure_:                         ; 0xf4641 LB 0x93
     6007print_boot_failure_:                         ; 0xf4691 LB 0x93
    59506008    push bp                                   ; 55
    59516009    mov bp, sp                                ; 89 e5
     
    59566014    movzx si, ah                              ; 0f b6 f4
    59576015    test al, al                               ; 84 c0
    5958     je short 0466eh                           ; 74 1b
     6016    je short 046beh                           ; 74 1b
    59596017    mov bx, 00da2h                            ; bb a2 0d
    59606018    mov cx, ds                                ; 8c d9
    59616019    mov ax, strict word 00004h                ; b8 04 00
    5962     call 018e1h                               ; e8 83 d2
     6020    call 01931h                               ; e8 83 d2
    59636021    push 00ddch                               ; 68 dc 0d
    59646022    push 00488h                               ; 68 88 04
    59656023    push strict byte 00004h                   ; 6a 04
    5966     call 01922h                               ; e8 b9 d2
     6024    call 01972h                               ; e8 b9 d2
    59676025    add sp, strict byte 00006h                ; 83 c4 06
    5968     jmp short 046b2h                          ; eb 44
     6026    jmp short 04702h                          ; eb 44
    59696027    test dl, dl                               ; 84 d2
    5970     je short 04682h                           ; 74 10
     6028    je short 046d2h                           ; 74 10
    59716029    mov bx, 00da2h                            ; bb a2 0d
    59726030    mov cx, ds                                ; 8c d9
    59736031    mov ax, strict word 00004h                ; b8 04 00
    5974     call 018e1h                               ; e8 64 d2
     6032    call 01931h                               ; e8 64 d2
    59756033    push 00de6h                               ; 68 e6 0d
    5976     jmp short 04661h                          ; eb df
     6034    jmp short 046b1h                          ; eb df
    59776035    test bl, 080h                             ; f6 c3 80
    5978     je short 04698h                           ; 74 11
     6036    je short 046e8h                           ; 74 11
    59796037    mov bx, 00da2h                            ; bb a2 0d
    59806038    mov cx, ds                                ; 8c d9
    59816039    mov ax, strict word 00004h                ; b8 04 00
    5982     call 018e1h                               ; e8 4f d2
     6040    call 01931h                               ; e8 4f d2
    59836041    push si                                   ; 56
    59846042    push 00dd2h                               ; 68 d2 0d
    5985     jmp short 046a7h                          ; eb 0f
     6043    jmp short 046f7h                          ; eb 0f
    59866044    mov bx, 00da2h                            ; bb a2 0d
    59876045    mov cx, ds                                ; 8c d9
    59886046    mov ax, strict word 00004h                ; b8 04 00
    5989     call 018e1h                               ; e8 3e d2
     6047    call 01931h                               ; e8 3e d2
    59906048    push si                                   ; 56
    59916049    push 00dc8h                               ; 68 c8 0d
    59926050    push 0049dh                               ; 68 9d 04
    59936051    push strict byte 00004h                   ; 6a 04
    5994     call 01922h                               ; e8 73 d2
     6052    call 01972h                               ; e8 73 d2
    59956053    add sp, strict byte 00008h                ; 83 c4 08
    59966054    cmp byte [bp+004h], 001h                  ; 80 7e 04 01
    5997     jne short 046cch                          ; 75 14
     6055    jne short 0471ch                          ; 75 14
    59986056    test dh, dh                               ; 84 f6
    5999     jne short 046c1h                          ; 75 05
     6057    jne short 04711h                          ; 75 05
    60006058    push 004b5h                               ; 68 b5 04
    6001     jmp short 046c4h                          ; eb 03
     6059    jmp short 04714h                          ; eb 03
    60026060    push 004dfh                               ; 68 df 04
    60036061    push strict byte 00007h                   ; 6a 07
    6004     call 01922h                               ; e8 59 d2
     6062    call 01972h                               ; e8 59 d2
    60056063    add sp, strict byte 00004h                ; 83 c4 04
    60066064    lea sp, [bp-002h]                         ; 8d 66 fe
     
    60086066    pop bp                                    ; 5d
    60096067    retn 00002h                               ; c2 02 00
    6010 print_cdromboot_failure_:                    ; 0xf46d4 LB 0x27
     6068print_cdromboot_failure_:                    ; 0xf4724 LB 0x27
    60116069    push bp                                   ; 55
    60126070    mov bp, sp                                ; 89 e5
     
    60186076    mov cx, ds                                ; 8c d9
    60196077    mov ax, strict word 00004h                ; b8 04 00
    6020     call 018e1h                               ; e8 fa d1
     6078    call 01931h                               ; e8 fa d1
    60216079    push dx                                   ; 52
    60226080    push 00514h                               ; 68 14 05
    60236081    push strict byte 00004h                   ; 6a 04
    6024     call 01922h                               ; e8 32 d2
     6082    call 01972h                               ; e8 32 d2
    60256083    add sp, strict byte 00006h                ; 83 c4 06
    60266084    lea sp, [bp-006h]                         ; 8d 66 fa
     
    60306088    pop bp                                    ; 5d
    60316089    retn                                      ; c3
    6032 _int19_function:                             ; 0xf46fb LB 0x256
     6090_int19_function:                             ; 0xf474b LB 0x256
    60336091    push bp                                   ; 55
    60346092    mov bp, sp                                ; 89 e5
     
    60386096    mov dx, strict word 0000eh                ; ba 0e 00
    60396097    mov ax, strict word 00040h                ; b8 40 00
    6040     call 0161ch                               ; e8 10 cf
     6098    call 0166ch                               ; e8 10 cf
    60416099    mov bx, ax                                ; 89 c3
    60426100    mov word [bp-00eh], ax                    ; 89 46 f2
    60436101    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    60446102    mov ax, strict word 0003dh                ; b8 3d 00
    6045     call 0165ch                               ; e8 41 cf
     6103    call 016ach                               ; e8 41 cf
    60466104    movzx si, al                              ; 0f b6 f0
    60476105    mov ax, strict word 00038h                ; b8 38 00
    6048     call 0165ch                               ; e8 38 cf
     6106    call 016ach                               ; e8 38 cf
    60496107    and AL, strict byte 0f0h                  ; 24 f0
    60506108    xor ah, ah                                ; 30 e4
     
    60526110    or si, ax                                 ; 09 c6
    60536111    mov ax, strict word 0003ch                ; b8 3c 00
    6054     call 0165ch                               ; e8 29 cf
     6112    call 016ach                               ; e8 29 cf
    60556113    and AL, strict byte 00fh                  ; 24 0f
    60566114    xor ah, ah                                ; 30 e4
     
    60596117    mov dx, 00339h                            ; ba 39 03
    60606118    mov ax, bx                                ; 89 d8
    6061     call 01600h                               ; e8 bc ce
     6119    call 01650h                               ; e8 bc ce
    60626120    test al, al                               ; 84 c0
    6063     je short 04753h                           ; 74 0b
     6121    je short 047a3h                           ; 74 0b
    60646122    mov dx, 00339h                            ; ba 39 03
    60656123    mov ax, bx                                ; 89 d8
    6066     call 01600h                               ; e8 b0 ce
     6124    call 01650h                               ; e8 b0 ce
    60676125    movzx si, al                              ; 0f b6 f0
    60686126    cmp byte [bp+004h], 001h                  ; 80 7e 04 01
    6069     jne short 04769h                          ; 75 10
     6127    jne short 047b9h                          ; 75 10
    60706128    mov ax, strict word 0003ch                ; b8 3c 00
    6071     call 0165ch                               ; e8 fd ce
     6129    call 016ach                               ; e8 fd ce
    60726130    and AL, strict byte 0f0h                  ; 24 f0
    60736131    xor ah, ah                                ; 30 e4
    60746132    sar ax, 004h                              ; c1 f8 04
    6075     call 075b3h                               ; e8 4a 2e
     6133    call 075f1h                               ; e8 38 2e
    60766134    cmp byte [bp+004h], 002h                  ; 80 7e 04 02
    6077     jne short 04772h                          ; 75 03
     6135    jne short 047c2h                          ; 75 03
    60786136    shr si, 004h                              ; c1 ee 04
    60796137    cmp byte [bp+004h], 003h                  ; 80 7e 04 03
    6080     jne short 0477bh                          ; 75 03
     6138    jne short 047cbh                          ; 75 03
    60816139    shr si, 008h                              ; c1 ee 08
    60826140    cmp byte [bp+004h], 004h                  ; 80 7e 04 04
    6083     jne short 04784h                          ; 75 03
     6141    jne short 047d4h                          ; 75 03
    60846142    shr si, 00ch                              ; c1 ee 0c
    60856143    cmp si, strict byte 00010h                ; 83 fe 10
    6086     jnc short 0478dh                          ; 73 04
     6144    jnc short 047ddh                          ; 73 04
    60876145    mov byte [bp-008h], 001h                  ; c6 46 f8 01
    60886146    xor al, al                                ; 30 c0
     
    60936151    mov cx, ds                                ; 8c d9
    60946152    mov ax, strict word 00004h                ; b8 04 00
    6095     call 018e1h                               ; e8 3e d1
     6153    call 01931h                               ; e8 3e d1
    60966154    push si                                   ; 56
    60976155    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
     
    60996157    push 00534h                               ; 68 34 05
    61006158    push strict byte 00004h                   ; 6a 04
    6101     call 01922h                               ; e8 71 d1
     6159    call 01972h                               ; e8 71 d1
    61026160    add sp, strict byte 00008h                ; 83 c4 08
    61036161    and si, strict byte 0000fh                ; 83 e6 0f
    61046162    cmp si, strict byte 00002h                ; 83 fe 02
    6105     jc short 047cah                           ; 72 0e
    6106     jbe short 047d9h                          ; 76 1b
     6163    jc short 0481ah                           ; 72 0e
     6164    jbe short 04829h                          ; 76 1b
    61076165    cmp si, strict byte 00004h                ; 83 fe 04
    6108     je short 047f7h                           ; 74 34
     6166    je short 04847h                           ; 74 34
    61096167    cmp si, strict byte 00003h                ; 83 fe 03
    6110     je short 047edh                           ; 74 25
    6111     jmp short 04824h                          ; eb 5a
     6168    je short 0483dh                           ; 74 25
     6169    jmp short 04874h                          ; eb 5a
    61126170    cmp si, strict byte 00001h                ; 83 fe 01
    6113     jne short 04824h                          ; 75 55
     6171    jne short 04874h                          ; 75 55
    61146172    xor al, al                                ; 30 c0
    61156173    mov byte [bp-006h], al                    ; 88 46 fa
    61166174    mov byte [bp-00ah], al                    ; 88 46 f6
    6117     jmp short 0483ch                          ; eb 63
     6175    jmp short 0488ch                          ; eb 63
    61186176    mov dx, 00338h                            ; ba 38 03
    61196177    mov ax, word [bp-00eh]                    ; 8b 46 f2
    6120     call 01600h                               ; e8 1e ce
     6178    call 01650h                               ; e8 1e ce
    61216179    add AL, strict byte 080h                  ; 04 80
    61226180    mov byte [bp-006h], al                    ; 88 46 fa
    61236181    mov byte [bp-00ah], 000h                  ; c6 46 f6 00
    6124     jmp short 0483ch                          ; eb 4f
     6182    jmp short 0488ch                          ; eb 4f
    61256183    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    61266184    mov byte [bp-00ah], 001h                  ; c6 46 f6 01
    6127     jmp short 04801h                          ; eb 0a
     6185    jmp short 04851h                          ; eb 0a
    61286186    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    61296187    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    6130     je short 0483ch                           ; 74 3b
    6131     call 0384ah                               ; e8 46 f0
     6188    je short 0488ch                           ; 74 3b
     6189    call 0389ah                               ; e8 46 f0
    61326190    mov bx, ax                                ; 89 c3
    61336191    test AL, strict byte 0ffh                 ; a8 ff
    6134     je short 0482bh                           ; 74 21
    6135     call 046d4h                               ; e8 c7 fe
     6192    je short 0487bh                           ; 74 21
     6193    call 04724h                               ; e8 c7 fe
    61366194    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    61376195    push ax                                   ; 50
     
    61406198    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    61416199    mov cx, strict word 00001h                ; b9 01 00
    6142     call 04641h                               ; e8 1d fe
     6200    call 04691h                               ; e8 1d fe
    61436201    xor ax, ax                                ; 31 c0
    61446202    xor dx, dx                                ; 31 d2
    6145     jmp near 0494ah                           ; e9 1f 01
     6203    jmp near 0499ah                           ; e9 1f 01
    61466204    mov dx, 0032eh                            ; ba 2e 03
    61476205    mov ax, word [bp-00eh]                    ; 8b 46 f2
    6148     call 0161ch                               ; e8 e8 cd
     6206    call 0166ch                               ; e8 e8 cd
    61496207    mov di, ax                                ; 89 c7
    61506208    shr bx, 008h                              ; c1 eb 08
    61516209    mov byte [bp-006h], bl                    ; 88 5e fa
    61526210    cmp byte [bp-00ch], 001h                  ; 80 7e f4 01
    6153     jne near 048b8h                           ; 0f 85 74 00
     6211    jne near 04908h                           ; 0f 85 74 00
    61546212    xor si, si                                ; 31 f6
    61556213    mov ax, 0e200h                            ; b8 00 e2
    61566214    mov es, ax                                ; 8e c0
    61576215    cmp word [es:si], 0aa55h                  ; 26 81 3c 55 aa
    6158     jne short 0480dh                          ; 75 bb
     6216    jne short 0485dh                          ; 75 bb
    61596217    mov cx, ax                                ; 89 c1
    61606218    mov si, word [es:si+01ah]                 ; 26 8b 74 1a
    61616219    cmp word [es:si+002h], 0506eh             ; 26 81 7c 02 6e 50
    6162     jne short 0480dh                          ; 75 ad
     6220    jne short 0485dh                          ; 75 ad
    61636221    cmp word [es:si], 05024h                  ; 26 81 3c 24 50
    6164     jne short 0480dh                          ; 75 a6
     6222    jne short 0485dh                          ; 75 a6
    61656223    mov di, word [es:si+00eh]                 ; 26 8b 7c 0e
    61666224    mov dx, word [es:di]                      ; 26 8b 15
    61676225    mov ax, word [es:di+002h]                 ; 26 8b 45 02
    61686226    cmp ax, 06568h                            ; 3d 68 65
    6169     jne short 04896h                          ; 75 1f
     6227    jne short 048e6h                          ; 75 1f
    61706228    cmp dx, 07445h                            ; 81 fa 45 74
    6171     jne short 04896h                          ; 75 19
     6229    jne short 048e6h                          ; 75 19
    61726230    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    61736231    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
    61746232    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    6175     call 045f6h                               ; e8 6a fd
     6233    call 04646h                               ; e8 6a fd
    61766234    mov word [bp-012h], strict word 00006h    ; c7 46 ee 06 00
    61776235    mov word [bp-010h], cx                    ; 89 4e f0
    6178     jmp short 048b2h                          ; eb 1c
     6236    jmp short 04902h                          ; eb 1c
    61796237    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    61806238    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
    61816239    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    6182     call 045f6h                               ; e8 51 fd
     6240    call 04646h                               ; e8 51 fd
    61836241    sti                                       ; fb
    61846242    mov word [bp-010h], cx                    ; 89 4e f0
     
    61876245    mov word [bp-012h], ax                    ; 89 46 ee
    61886246    call far [bp-012h]                        ; ff 5e ee
    6189     jmp near 0480dh                           ; e9 55 ff
     6247    jmp near 0485dh                           ; e9 55 ff
    61906248    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    6191     jne short 048e4h                          ; 75 26
     6249    jne short 04934h                          ; 75 26
    61926250    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    6193     jne short 048e4h                          ; 75 20
     6251    jne short 04934h                          ; 75 20
    61946252    mov di, 007c0h                            ; bf c0 07
    61956253    mov es, di                                ; 8e c7
     
    62046262    sbb ax, strict byte 00000h                ; 83 d8 00
    62056263    test ax, ax                               ; 85 c0
    6206     jne near 0480dh                           ; 0f 85 29 ff
     6264    jne near 0485dh                           ; 0f 85 29 ff
    62076265    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    62086266    db  00fh, 094h, 0c1h
    62096267    ; sete cl                                   ; 0f 94 c1
    62106268    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    6211     je short 048f3h                           ; 74 02
     6269    je short 04943h                           ; 74 02
    62126270    mov CL, strict byte 001h                  ; b1 01
    62136271    xor dx, dx                                ; 31 d2
    62146272    mov ax, di                                ; 89 f8
    6215     call 0161ch                               ; e8 22 cd
     6273    call 0166ch                               ; e8 22 cd
    62166274    mov bx, ax                                ; 89 c3
    62176275    mov dx, strict word 00002h                ; ba 02 00
    62186276    mov ax, di                                ; 89 f8
    6219     call 0161ch                               ; e8 18 cd
     6277    call 0166ch                               ; e8 18 cd
    62206278    cmp bx, ax                                ; 39 c3
    6221     je short 04919h                           ; 74 11
     6279    je short 04969h                           ; 74 11
    62226280    test cl, cl                               ; 84 c9
    6223     jne short 0492fh                          ; 75 23
     6281    jne short 0497fh                          ; 75 23
    62246282    mov dx, 001feh                            ; ba fe 01
    62256283    mov ax, di                                ; 89 f8
    6226     call 0161ch                               ; e8 08 cd
     6284    call 0166ch                               ; e8 08 cd
    62276285    cmp ax, 0aa55h                            ; 3d 55 aa
    6228     je short 0492fh                           ; 74 16
     6286    je short 0497fh                           ; 74 16
    62296287    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    62306288    push ax                                   ; 50
     
    62336291    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    62346292    xor cx, cx                                ; 31 c9
    6235     jmp near 04821h                           ; e9 f2 fe
     6293    jmp near 04871h                           ; e9 f2 fe
    62366294    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    62376295    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
    62386296    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    6239     call 045f6h                               ; e8 b8 fc
     6297    call 04646h                               ; e8 b8 fc
    62406298    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    62416299    xor dx, dx                                ; 31 d2
     
    62486306    pop bp                                    ; 5d
    62496307    retn                                      ; c3
    6250 keyboard_panic_:                             ; 0xf4951 LB 0x13
     6308keyboard_panic_:                             ; 0xf49a1 LB 0x13
    62516309    push bp                                   ; 55
    62526310    mov bp, sp                                ; 89 e5
     
    62546312    push 00554h                               ; 68 54 05
    62556313    push strict byte 00007h                   ; 6a 07
    6256     call 01922h                               ; e8 c5 cf
     6314    call 01972h                               ; e8 c5 cf
    62576315    add sp, strict byte 00006h                ; 83 c4 06
    62586316    mov sp, bp                                ; 89 ec
    62596317    pop bp                                    ; 5d
    62606318    retn                                      ; c3
    6261 _keyboard_init:                              ; 0xf4964 LB 0x27c
     6319_keyboard_init:                              ; 0xf49b4 LB 0x26a
    62626320    push bp                                   ; 55
    62636321    mov bp, sp                                ; 89 e5
     
    62716329    ; sub ah, ah                                ; 2a e4
    62726330    test AL, strict byte 002h                 ; a8 02
    6273     je short 04987h                           ; 74 0d
     6331    je short 049d7h                           ; 74 0d
    62746332    dec bx                                    ; 4b
    62756333    test bx, bx                               ; 85 db
    6276     jbe short 04987h                          ; 76 08
     6334    jbe short 049d7h                          ; 76 08
    62776335    xor al, al                                ; 30 c0
    62786336    mov dx, 00080h                            ; ba 80 00
    62796337    out DX, AL                                ; ee
    6280     jmp short 04970h                          ; eb e9
     6338    jmp short 049c0h                          ; eb e9
    62816339    test bx, bx                               ; 85 db
    6282     jne short 04990h                          ; 75 05
     6340    jne short 049e0h                          ; 75 05
    62836341    xor ax, ax                                ; 31 c0
    6284     call 04951h                               ; e8 c1 ff
     6342    call 049a1h                               ; e8 c1 ff
    62856343    mov bx, strict word 0ffffh                ; bb ff ff
    62866344    mov dx, strict word 00064h                ; ba 64 00
     
    62896347    ; sub ah, ah                                ; 2a e4
    62906348    test AL, strict byte 001h                 ; a8 01
    6291     jne short 049aah                          ; 75 0d
     6349    jne short 049fah                          ; 75 0d
    62926350    dec bx                                    ; 4b
    62936351    test bx, bx                               ; 85 db
    6294     jbe short 049aah                          ; 76 08
     6352    jbe short 049fah                          ; 76 08
    62956353    mov AL, strict byte 001h                  ; b0 01
    62966354    mov dx, 00080h                            ; ba 80 00
    62976355    out DX, AL                                ; ee
    6298     jmp short 04993h                          ; eb e9
     6356    jmp short 049e3h                          ; eb e9
    62996357    test bx, bx                               ; 85 db
    6300     jne short 049b4h                          ; 75 06
     6358    jne short 04a04h                          ; 75 06
    63016359    mov ax, strict word 00001h                ; b8 01 00
    6302     call 04951h                               ; e8 9d ff
     6360    call 049a1h                               ; e8 9d ff
    63036361    mov dx, strict word 00060h                ; ba 60 00
    63046362    in AL, DX                                 ; ec
     
    63066364    ; sub ah, ah                                ; 2a e4
    63076365    cmp ax, strict word 00055h                ; 3d 55 00
    6308     je short 049c5h                           ; 74 06
     6366    je short 04a15h                           ; 74 06
    63096367    mov ax, 003dfh                            ; b8 df 03
    6310     call 04951h                               ; e8 8c ff
     6368    call 049a1h                               ; e8 8c ff
    63116369    mov AL, strict byte 0abh                  ; b0 ab
    63126370    mov dx, strict word 00064h                ; ba 64 00
     
    63186376    ; sub ah, ah                                ; 2a e4
    63196377    test AL, strict byte 002h                 ; a8 02
    6320     je short 049e5h                           ; 74 0d
     6378    je short 04a35h                           ; 74 0d
    63216379    dec bx                                    ; 4b
    63226380    test bx, bx                               ; 85 db
    6323     jbe short 049e5h                          ; 76 08
     6381    jbe short 04a35h                          ; 76 08
    63246382    mov AL, strict byte 010h                  ; b0 10
    63256383    mov dx, 00080h                            ; ba 80 00
    63266384    out DX, AL                                ; ee
    6327     jmp short 049ceh                          ; eb e9
     6385    jmp short 04a1eh                          ; eb e9
    63286386    test bx, bx                               ; 85 db
    6329     jne short 049efh                          ; 75 06
     6387    jne short 04a3fh                          ; 75 06
    63306388    mov ax, strict word 0000ah                ; b8 0a 00
    6331     call 04951h                               ; e8 62 ff
     6389    call 049a1h                               ; e8 62 ff
    63326390    mov bx, strict word 0ffffh                ; bb ff ff
    63336391    mov dx, strict word 00064h                ; ba 64 00
     
    63366394    ; sub ah, ah                                ; 2a e4
    63376395    test AL, strict byte 001h                 ; a8 01
    6338     jne short 04a09h                          ; 75 0d
     6396    jne short 04a59h                          ; 75 0d
    63396397    dec bx                                    ; 4b
    63406398    test bx, bx                               ; 85 db
    6341     jbe short 04a09h                          ; 76 08
     6399    jbe short 04a59h                          ; 76 08
    63426400    mov AL, strict byte 011h                  ; b0 11
    63436401    mov dx, 00080h                            ; ba 80 00
    63446402    out DX, AL                                ; ee
    6345     jmp short 049f2h                          ; eb e9
     6403    jmp short 04a42h                          ; eb e9
    63466404    test bx, bx                               ; 85 db
    6347     jne short 04a13h                          ; 75 06
     6405    jne short 04a63h                          ; 75 06
    63486406    mov ax, strict word 0000bh                ; b8 0b 00
    6349     call 04951h                               ; e8 3e ff
     6407    call 049a1h                               ; e8 3e ff
    63506408    mov dx, strict word 00060h                ; ba 60 00
    63516409    in AL, DX                                 ; ec
     
    63536411    ; sub ah, ah                                ; 2a e4
    63546412    test ax, ax                               ; 85 c0
    6355     je short 04a23h                           ; 74 06
     6413    je short 04a73h                           ; 74 06
    63566414    mov ax, 003e0h                            ; b8 e0 03
    6357     call 04951h                               ; e8 2e ff
     6415    call 049a1h                               ; e8 2e ff
    63586416    mov AL, strict byte 0ffh                  ; b0 ff
    63596417    mov dx, strict word 00060h                ; ba 60 00
     
    63656423    ; sub ah, ah                                ; 2a e4
    63666424    test AL, strict byte 002h                 ; a8 02
    6367     je short 04a43h                           ; 74 0d
     6425    je short 04a93h                           ; 74 0d
    63686426    dec bx                                    ; 4b
    63696427    test bx, bx                               ; 85 db
    6370     jbe short 04a43h                          ; 76 08
     6428    jbe short 04a93h                          ; 76 08
    63716429    mov AL, strict byte 020h                  ; b0 20
    63726430    mov dx, 00080h                            ; ba 80 00
    63736431    out DX, AL                                ; ee
    6374     jmp short 04a2ch                          ; eb e9
     6432    jmp short 04a7ch                          ; eb e9
    63756433    test bx, bx                               ; 85 db
    6376     jne short 04a4dh                          ; 75 06
     6434    jne short 04a9dh                          ; 75 06
    63776435    mov ax, strict word 00014h                ; b8 14 00
    6378     call 04951h                               ; e8 04 ff
     6436    call 049a1h                               ; e8 04 ff
    63796437    mov bx, strict word 0ffffh                ; bb ff ff
    63806438    mov dx, strict word 00064h                ; ba 64 00
     
    63836441    ; sub ah, ah                                ; 2a e4
    63846442    test AL, strict byte 001h                 ; a8 01
    6385     jne short 04a67h                          ; 75 0d
     6443    jne short 04ab7h                          ; 75 0d
    63866444    dec bx                                    ; 4b
    63876445    test bx, bx                               ; 85 db
    6388     jbe short 04a67h                          ; 76 08
     6446    jbe short 04ab7h                          ; 76 08
    63896447    mov AL, strict byte 021h                  ; b0 21
    63906448    mov dx, 00080h                            ; ba 80 00
    63916449    out DX, AL                                ; ee
    6392     jmp short 04a50h                          ; eb e9
     6450    jmp short 04aa0h                          ; eb e9
    63936451    test bx, bx                               ; 85 db
    6394     jne short 04a71h                          ; 75 06
     6452    jne short 04ac1h                          ; 75 06
    63956453    mov ax, strict word 00015h                ; b8 15 00
    6396     call 04951h                               ; e8 e0 fe
     6454    call 049a1h                               ; e8 e0 fe
    63976455    mov dx, strict word 00060h                ; ba 60 00
    63986456    in AL, DX                                 ; ec
     
    64006458    ; sub ah, ah                                ; 2a e4
    64016459    cmp ax, 000fah                            ; 3d fa 00
    6402     je short 04a82h                           ; 74 06
     6460    je short 04ad2h                           ; 74 06
    64036461    mov ax, 003e1h                            ; b8 e1 03
    6404     call 04951h                               ; e8 cf fe
     6462    call 049a1h                               ; e8 cf fe
     6463    mov dx, strict word 00064h                ; ba 64 00
     6464    in AL, DX                                 ; ec
     6465    db  02ah, 0e4h
     6466    ; sub ah, ah                                ; 2a e4
     6467    test AL, strict byte 001h                 ; a8 01
     6468    jne short 04ae4h                          ; 75 08
     6469    mov AL, strict byte 031h                  ; b0 31
     6470    mov dx, 00080h                            ; ba 80 00
     6471    out DX, AL                                ; ee
     6472    jmp short 04ad2h                          ; eb ee
     6473    mov dx, strict word 00060h                ; ba 60 00
     6474    in AL, DX                                 ; ec
     6475    db  02ah, 0e4h
     6476    ; sub ah, ah                                ; 2a e4
     6477    cmp ax, 000aah                            ; 3d aa 00
     6478    je short 04afdh                           ; 74 0e
     6479    in AL, DX                                 ; ec
     6480    db  02ah, 0e4h
     6481    ; sub ah, ah                                ; 2a e4
     6482    cmp ax, 000aah                            ; 3d aa 00
     6483    je short 04afdh                           ; 74 06
     6484    mov ax, 003e2h                            ; b8 e2 03
     6485    call 049a1h                               ; e8 a4 fe
     6486    mov AL, strict byte 0f5h                  ; b0 f5
     6487    mov dx, strict word 00060h                ; ba 60 00
     6488    out DX, AL                                ; ee
     6489    mov bx, strict word 0ffffh                ; bb ff ff
     6490    mov dx, strict word 00064h                ; ba 64 00
     6491    in AL, DX                                 ; ec
     6492    db  02ah, 0e4h
     6493    ; sub ah, ah                                ; 2a e4
     6494    test AL, strict byte 002h                 ; a8 02
     6495    je short 04b1dh                           ; 74 0d
     6496    dec bx                                    ; 4b
     6497    test bx, bx                               ; 85 db
     6498    jbe short 04b1dh                          ; 76 08
     6499    mov AL, strict byte 040h                  ; b0 40
     6500    mov dx, 00080h                            ; ba 80 00
     6501    out DX, AL                                ; ee
     6502    jmp short 04b06h                          ; eb e9
     6503    test bx, bx                               ; 85 db
     6504    jne short 04b27h                          ; 75 06
     6505    mov ax, strict word 00028h                ; b8 28 00
     6506    call 049a1h                               ; e8 7a fe
    64056507    mov bx, strict word 0ffffh                ; bb ff ff
    64066508    mov dx, strict word 00064h                ; ba 64 00
     
    64096511    ; sub ah, ah                                ; 2a e4
    64106512    test AL, strict byte 001h                 ; a8 01
    6411     jne short 04a9ch                          ; 75 0d
     6513    jne short 04b41h                          ; 75 0d
    64126514    dec bx                                    ; 4b
    64136515    test bx, bx                               ; 85 db
    6414     jbe short 04a9ch                          ; 76 08
    6415     mov AL, strict byte 031h                  ; b0 31
     6516    jbe short 04b41h                          ; 76 08
     6517    mov AL, strict byte 041h                  ; b0 41
    64166518    mov dx, 00080h                            ; ba 80 00
    64176519    out DX, AL                                ; ee
    6418     jmp short 04a85h                          ; eb e9
     6520    jmp short 04b2ah                          ; eb e9
    64196521    test bx, bx                               ; 85 db
    6420     jne short 04aa6h                          ; 75 06
    6421     mov ax, strict word 0001fh                ; b8 1f 00
    6422     call 04951h                               ; e8 ab fe
     6522    jne short 04b4bh                          ; 75 06
     6523    mov ax, strict word 00029h                ; b8 29 00
     6524    call 049a1h                               ; e8 56 fe
    64236525    mov dx, strict word 00060h                ; ba 60 00
    64246526    in AL, DX                                 ; ec
    64256527    db  02ah, 0e4h
    64266528    ; sub ah, ah                                ; 2a e4
    6427     cmp ax, 000aah                            ; 3d aa 00
    6428     je short 04abfh                           ; 74 0e
    6429     in AL, DX                                 ; ec
    6430     db  02ah, 0e4h
    6431     ; sub ah, ah                                ; 2a e4
    6432     cmp ax, 000aah                            ; 3d aa 00
    6433     je short 04abfh                           ; 74 06
    6434     mov ax, 003e2h                            ; b8 e2 03
    6435     call 04951h                               ; e8 92 fe
    6436     mov AL, strict byte 0f5h                  ; b0 f5
    6437     mov dx, strict word 00060h                ; ba 60 00
     6529    cmp ax, 000fah                            ; 3d fa 00
     6530    je short 04b5ch                           ; 74 06
     6531    mov ax, 003e3h                            ; b8 e3 03
     6532    call 049a1h                               ; e8 45 fe
     6533    mov AL, strict byte 060h                  ; b0 60
     6534    mov dx, strict word 00064h                ; ba 64 00
    64386535    out DX, AL                                ; ee
    64396536    mov bx, strict word 0ffffh                ; bb ff ff
     
    64436540    ; sub ah, ah                                ; 2a e4
    64446541    test AL, strict byte 002h                 ; a8 02
    6445     je short 04adfh                           ; 74 0d
     6542    je short 04b7ch                           ; 74 0d
    64466543    dec bx                                    ; 4b
    64476544    test bx, bx                               ; 85 db
    6448     jbe short 04adfh                          ; 76 08
    6449     mov AL, strict byte 040h                  ; b0 40
     6545    jbe short 04b7ch                          ; 76 08
     6546    mov AL, strict byte 050h                  ; b0 50
    64506547    mov dx, 00080h                            ; ba 80 00
    64516548    out DX, AL                                ; ee
    6452     jmp short 04ac8h                          ; eb e9
     6549    jmp short 04b65h                          ; eb e9
    64536550    test bx, bx                               ; 85 db
    6454     jne short 04ae9h                          ; 75 06
    6455     mov ax, strict word 00028h                ; b8 28 00
    6456     call 04951h                               ; e8 68 fe
     6551    jne short 04b86h                          ; 75 06
     6552    mov ax, strict word 00032h                ; b8 32 00
     6553    call 049a1h                               ; e8 1b fe
     6554    mov AL, strict byte 065h                  ; b0 65
     6555    mov dx, strict word 00060h                ; ba 60 00
     6556    out DX, AL                                ; ee
     6557    mov bx, strict word 0ffffh                ; bb ff ff
     6558    mov dx, strict word 00064h                ; ba 64 00
     6559    in AL, DX                                 ; ec
     6560    db  02ah, 0e4h
     6561    ; sub ah, ah                                ; 2a e4
     6562    test AL, strict byte 002h                 ; a8 02
     6563    je short 04ba6h                           ; 74 0d
     6564    dec bx                                    ; 4b
     6565    test bx, bx                               ; 85 db
     6566    jbe short 04ba6h                          ; 76 08
     6567    mov AL, strict byte 060h                  ; b0 60
     6568    mov dx, 00080h                            ; ba 80 00
     6569    out DX, AL                                ; ee
     6570    jmp short 04b8fh                          ; eb e9
     6571    test bx, bx                               ; 85 db
     6572    jne short 04bb0h                          ; 75 06
     6573    mov ax, strict word 0003ch                ; b8 3c 00
     6574    call 049a1h                               ; e8 f1 fd
     6575    mov AL, strict byte 0f4h                  ; b0 f4
     6576    mov dx, strict word 00060h                ; ba 60 00
     6577    out DX, AL                                ; ee
     6578    mov bx, strict word 0ffffh                ; bb ff ff
     6579    mov dx, strict word 00064h                ; ba 64 00
     6580    in AL, DX                                 ; ec
     6581    db  02ah, 0e4h
     6582    ; sub ah, ah                                ; 2a e4
     6583    test AL, strict byte 002h                 ; a8 02
     6584    je short 04bd0h                           ; 74 0d
     6585    dec bx                                    ; 4b
     6586    test bx, bx                               ; 85 db
     6587    jbe short 04bd0h                          ; 76 08
     6588    mov AL, strict byte 070h                  ; b0 70
     6589    mov dx, 00080h                            ; ba 80 00
     6590    out DX, AL                                ; ee
     6591    jmp short 04bb9h                          ; eb e9
     6592    test bx, bx                               ; 85 db
     6593    jne short 04bdah                          ; 75 06
     6594    mov ax, strict word 00046h                ; b8 46 00
     6595    call 049a1h                               ; e8 c7 fd
    64576596    mov bx, strict word 0ffffh                ; bb ff ff
    64586597    mov dx, strict word 00064h                ; ba 64 00
     
    64616600    ; sub ah, ah                                ; 2a e4
    64626601    test AL, strict byte 001h                 ; a8 01
    6463     jne short 04b03h                          ; 75 0d
     6602    jne short 04bf4h                          ; 75 0d
    64646603    dec bx                                    ; 4b
    64656604    test bx, bx                               ; 85 db
    6466     jbe short 04b03h                          ; 76 08
    6467     mov AL, strict byte 041h                  ; b0 41
     6605    jbe short 04bf4h                          ; 76 08
     6606    mov AL, strict byte 071h                  ; b0 71
    64686607    mov dx, 00080h                            ; ba 80 00
    64696608    out DX, AL                                ; ee
    6470     jmp short 04aech                          ; eb e9
     6609    jmp short 04bddh                          ; eb e9
    64716610    test bx, bx                               ; 85 db
    6472     jne short 04b0dh                          ; 75 06
    6473     mov ax, strict word 00029h                ; b8 29 00
    6474     call 04951h                               ; e8 44 fe
     6611    jne short 04bfeh                          ; 75 06
     6612    mov ax, strict word 00046h                ; b8 46 00
     6613    call 049a1h                               ; e8 a3 fd
    64756614    mov dx, strict word 00060h                ; ba 60 00
    64766615    in AL, DX                                 ; ec
     
    64786617    ; sub ah, ah                                ; 2a e4
    64796618    cmp ax, 000fah                            ; 3d fa 00
    6480     je short 04b1eh                           ; 74 06
    6481     mov ax, 003e3h                            ; b8 e3 03
    6482     call 04951h                               ; e8 33 fe
    6483     mov AL, strict byte 060h                  ; b0 60
    6484     mov dx, strict word 00064h                ; ba 64 00
    6485     out DX, AL                                ; ee
    6486     mov bx, strict word 0ffffh                ; bb ff ff
    6487     mov dx, strict word 00064h                ; ba 64 00
    6488     in AL, DX                                 ; ec
    6489     db  02ah, 0e4h
    6490     ; sub ah, ah                                ; 2a e4
    6491     test AL, strict byte 002h                 ; a8 02
    6492     je short 04b3eh                           ; 74 0d
    6493     dec bx                                    ; 4b
    6494     test bx, bx                               ; 85 db
    6495     jbe short 04b3eh                          ; 76 08
    6496     mov AL, strict byte 050h                  ; b0 50
    6497     mov dx, 00080h                            ; ba 80 00
    6498     out DX, AL                                ; ee
    6499     jmp short 04b27h                          ; eb e9
    6500     test bx, bx                               ; 85 db
    6501     jne short 04b48h                          ; 75 06
    6502     mov ax, strict word 00032h                ; b8 32 00
    6503     call 04951h                               ; e8 09 fe
    6504     mov AL, strict byte 065h                  ; b0 65
    6505     mov dx, strict word 00060h                ; ba 60 00
    6506     out DX, AL                                ; ee
    6507     mov bx, strict word 0ffffh                ; bb ff ff
    6508     mov dx, strict word 00064h                ; ba 64 00
    6509     in AL, DX                                 ; ec
    6510     db  02ah, 0e4h
    6511     ; sub ah, ah                                ; 2a e4
    6512     test AL, strict byte 002h                 ; a8 02
    6513     je short 04b68h                           ; 74 0d
    6514     dec bx                                    ; 4b
    6515     test bx, bx                               ; 85 db
    6516     jbe short 04b68h                          ; 76 08
    6517     mov AL, strict byte 060h                  ; b0 60
    6518     mov dx, 00080h                            ; ba 80 00
    6519     out DX, AL                                ; ee
    6520     jmp short 04b51h                          ; eb e9
    6521     test bx, bx                               ; 85 db
    6522     jne short 04b72h                          ; 75 06
    6523     mov ax, strict word 0003ch                ; b8 3c 00
    6524     call 04951h                               ; e8 df fd
    6525     mov AL, strict byte 0f4h                  ; b0 f4
    6526     mov dx, strict word 00060h                ; ba 60 00
    6527     out DX, AL                                ; ee
    6528     mov bx, strict word 0ffffh                ; bb ff ff
    6529     mov dx, strict word 00064h                ; ba 64 00
    6530     in AL, DX                                 ; ec
    6531     db  02ah, 0e4h
    6532     ; sub ah, ah                                ; 2a e4
    6533     test AL, strict byte 002h                 ; a8 02
    6534     je short 04b92h                           ; 74 0d
    6535     dec bx                                    ; 4b
    6536     test bx, bx                               ; 85 db
    6537     jbe short 04b92h                          ; 76 08
    6538     mov AL, strict byte 070h                  ; b0 70
    6539     mov dx, 00080h                            ; ba 80 00
    6540     out DX, AL                                ; ee
    6541     jmp short 04b7bh                          ; eb e9
    6542     test bx, bx                               ; 85 db
    6543     jne short 04b9ch                          ; 75 06
    6544     mov ax, strict word 00046h                ; b8 46 00
    6545     call 04951h                               ; e8 b5 fd
    6546     mov bx, strict word 0ffffh                ; bb ff ff
    6547     mov dx, strict word 00064h                ; ba 64 00
    6548     in AL, DX                                 ; ec
    6549     db  02ah, 0e4h
    6550     ; sub ah, ah                                ; 2a e4
    6551     test AL, strict byte 001h                 ; a8 01
    6552     jne short 04bb6h                          ; 75 0d
    6553     dec bx                                    ; 4b
    6554     test bx, bx                               ; 85 db
    6555     jbe short 04bb6h                          ; 76 08
    6556     mov AL, strict byte 071h                  ; b0 71
    6557     mov dx, 00080h                            ; ba 80 00
    6558     out DX, AL                                ; ee
    6559     jmp short 04b9fh                          ; eb e9
    6560     test bx, bx                               ; 85 db
    6561     jne short 04bc0h                          ; 75 06
    6562     mov ax, strict word 00046h                ; b8 46 00
    6563     call 04951h                               ; e8 91 fd
    6564     mov dx, strict word 00060h                ; ba 60 00
    6565     in AL, DX                                 ; ec
    6566     db  02ah, 0e4h
    6567     ; sub ah, ah                                ; 2a e4
    6568     cmp ax, 000fah                            ; 3d fa 00
    6569     je short 04bd1h                           ; 74 06
     6619    je short 04c0fh                           ; 74 06
    65706620    mov ax, 003e4h                            ; b8 e4 03
    6571     call 04951h                               ; e8 80 fd
     6621    call 049a1h                               ; e8 92 fd
    65726622    mov AL, strict byte 0a8h                  ; b0 a8
    65736623    mov dx, strict word 00064h                ; ba 64 00
    65746624    out DX, AL                                ; ee
    65756625    xor ax, ax                                ; 31 c0
    6576     call 05e4bh                               ; e8 6f 12
     6626    call 05e89h                               ; e8 6f 12
    65776627    mov sp, bp                                ; 89 ec
    65786628    pop bp                                    ; 5d
    65796629    retn                                      ; c3
    6580 enqueue_key_:                                ; 0xf4be0 LB 0x93
     6630enqueue_key_:                                ; 0xf4c1e LB 0x93
    65816631    push bp                                   ; 55
    65826632    mov bp, sp                                ; 89 e5
     
    65906640    mov dx, strict word 0001ah                ; ba 1a 00
    65916641    mov ax, strict word 00040h                ; b8 40 00
    6592     call 0161ch                               ; e8 26 ca
     6642    call 0166ch                               ; e8 38 ca
    65936643    mov di, ax                                ; 89 c7
    65946644    mov dx, strict word 0001ch                ; ba 1c 00
    65956645    mov ax, strict word 00040h                ; b8 40 00
    6596     call 0161ch                               ; e8 1b ca
     6646    call 0166ch                               ; e8 2d ca
    65976647    mov si, ax                                ; 89 c6
    65986648    lea cx, [si+002h]                         ; 8d 4c 02
    65996649    cmp cx, strict byte 0003eh                ; 83 f9 3e
    6600     jc short 04c0eh                           ; 72 03
     6650    jc short 04c4ch                           ; 72 03
    66016651    mov cx, strict word 0001eh                ; b9 1e 00
    66026652    cmp cx, di                                ; 39 f9
    6603     jne short 04c16h                          ; 75 04
     6653    jne short 04c54h                          ; 75 04
    66046654    xor ax, ax                                ; 31 c0
    6605     jmp short 04c3bh                          ; eb 25
     6655    jmp short 04c79h                          ; eb 25
    66066656    xor bh, bh                                ; 30 ff
    66076657    mov dx, si                                ; 89 f2
    66086658    mov ax, strict word 00040h                ; b8 40 00
    6609     call 0160eh                               ; e8 ee c9
     6659    call 0165eh                               ; e8 00 ca
    66106660    movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
    66116661    lea dx, [si+001h]                         ; 8d 54 01
    66126662    mov ax, strict word 00040h                ; b8 40 00
    6613     call 0160eh                               ; e8 e1 c9
     6663    call 0165eh                               ; e8 f3 c9
    66146664    mov bx, cx                                ; 89 cb
    66156665    mov dx, strict word 0001ch                ; ba 1c 00
    66166666    mov ax, strict word 00040h                ; b8 40 00
    6617     call 0162ah                               ; e8 f2 c9
     6667    call 0167ah                               ; e8 04 ca
    66186668    mov ax, strict word 00001h                ; b8 01 00
    66196669    lea sp, [bp-008h]                         ; 8d 66 f8
     
    66336683    cmp bh, byte [bx+si]                      ; 3a 38
    66346684    sub bl, byte [ss:di]                      ; 36 2a 1d
    6635     lodsw                                     ; ad
     6685    jmp short 04ce1h                          ; eb 4e
     6686    js short 04ce2h                           ; 78 4d
     6687    inc di                                    ; 47
     6688    dec bp                                    ; 4d
     6689    inc di                                    ; 47
     6690    dec bp                                    ; 4d
     6691    cli                                       ; fa
     6692    dec bp                                    ; 4d
     6693    and byte [di+06ch], cl                    ; 20 4d 6c
    66366694    dec si                                    ; 4e
    6637     cmp cl, byte [di+009h]                    ; 3a 4d 09
     6695    mov bx, 0de4eh                            ; bb 4e de
     6696    dec si                                    ; 4e
     6697    mov cx, 0474dh                            ; b9 4d 47
    66386698    dec bp                                    ; 4d
    6639     or word [di-044h], cx                     ; 09 4d bc
     6699    inc di                                    ; 47
    66406700    dec bp                                    ; 4d
    6641     loop 04cabh                               ; e2 4c
    6642     db  02eh, 04eh
    6643     ; cs dec si                                 ; 2e 4e
    6644     jnl short 04cb1h                          ; 7d 4e
    6645     mov AL, byte [07b4eh]                     ; a0 4e 7b
     6701    xor cx, word [bp+039h]                    ; 33 4e 39
    66466702    dec bp                                    ; 4d
    6647     or word [di+009h], cx                     ; 09 4d 09
    6648     dec bp                                    ; 4d
    6649     cmc                                       ; f5
    6650     dec bp                                    ; 4d
    6651     sti                                       ; fb
    6652     dec sp                                    ; 4c
    6653     pop si                                    ; 5e
     6703    pushfw                                    ; 9c
    66546704    dec si                                    ; 4e
    6655     cwd                                       ; 99
     6705    xlatb                                     ; d7
    66566706    dec si                                    ; 4e
    6657 _int09_function:                             ; 0xf4c73 LB 0x35d
     6707_int09_function:                             ; 0xf4cb1 LB 0x35d
    66586708    push bp                                   ; 55
    66596709    mov bp, sp                                ; 89 e5
     
    66646714    mov byte [bp-00ah], al                    ; 88 46 f6
    66656715    test al, al                               ; 84 c0
    6666     jne short 04c9eh                          ; 75 19
     6716    jne short 04cdch                          ; 75 19
    66676717    mov bx, 00da2h                            ; bb a2 0d
    66686718    mov cx, ds                                ; 8c d9
    66696719    mov ax, strict word 00004h                ; b8 04 00
    6670     call 018e1h                               ; e8 51 cc
     6720    call 01931h                               ; e8 63 cc
    66716721    push 00567h                               ; 68 67 05
    66726722    push strict byte 00004h                   ; 6a 04
    6673     call 01922h                               ; e8 8a cc
     6723    call 01972h                               ; e8 9c cc
    66746724    add sp, strict byte 00004h                ; 83 c4 04
    6675     jmp near 04fc9h                           ; e9 2b 03
     6725    jmp near 05007h                           ; e9 2b 03
    66766726    mov dx, strict word 00017h                ; ba 17 00
    66776727    mov ax, strict word 00040h                ; b8 40 00
    6678     call 01600h                               ; e8 59 c9
     6728    call 01650h                               ; e8 6b c9
    66796729    mov byte [bp-00eh], al                    ; 88 46 f2
    66806730    mov bl, al                                ; 88 c3
    66816731    mov dx, strict word 00018h                ; ba 18 00
    66826732    mov ax, strict word 00040h                ; b8 40 00
    6683     call 01600h                               ; e8 4b c9
     6733    call 01650h                               ; e8 5d c9
    66846734    mov byte [bp-010h], al                    ; 88 46 f0
    66856735    mov byte [bp-00ch], al                    ; 88 46 f4
    66866736    mov dx, 00096h                            ; ba 96 00
    66876737    mov ax, strict word 00040h                ; b8 40 00
    6688     call 01600h                               ; e8 3c c9
     6738    call 01650h                               ; e8 4e c9
    66896739    mov byte [bp-008h], al                    ; 88 46 f8
    66906740    mov byte [bp-006h], al                    ; 88 46 fa
     
    66936743    pop ES                                    ; 07
    66946744    mov cx, strict word 00010h                ; b9 10 00
    6695     mov di, 04c44h                            ; bf 44 4c
     6745    mov di, 04c82h                            ; bf 82 4c
    66966746    repne scasb                               ; f2 ae
    66976747    sal cx, 1                                 ; d1 e1
    66986748    mov di, cx                                ; 89 cf
    6699     mov ax, word [cs:di+04c53h]               ; 2e 8b 85 53 4c
     6749    mov ax, word [cs:di+04c91h]               ; 2e 8b 85 91 4c
    67006750    jmp ax                                    ; ff e0
    67016751    xor bl, 040h                              ; 80 f3 40
     
    67036753    mov dx, strict word 00017h                ; ba 17 00
    67046754    mov ax, strict word 00040h                ; b8 40 00
    6705     call 0160eh                               ; e8 1e c9
     6755    call 0165eh                               ; e8 30 c9
    67066756    or byte [bp-00ch], 040h                   ; 80 4e f4 40
    67076757    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    6708     jmp near 04e71h                           ; e9 76 01
     6758    jmp near 04eafh                           ; e9 76 01
    67096759    mov al, byte [bp-010h]                    ; 8a 46 f0
    67106760    and AL, strict byte 0bfh                  ; 24 bf
    67116761    mov byte [bp-00ch], al                    ; 88 46 f4
    67126762    movzx bx, al                              ; 0f b6 d8
    6713     jmp near 04e71h                           ; e9 68 01
     6763    jmp near 04eafh                           ; e9 68 01
    67146764    test byte [bp-006h], 002h                 ; f6 46 fa 02
    6715     jne near 04fabh                           ; 0f 85 9a 02
     6765    jne near 04fe9h                           ; 0f 85 9a 02
    67166766    mov al, byte [bp-00ah]                    ; 8a 46 f6
    67176767    and AL, strict byte 07fh                  ; 24 7f
     
    67226772    inc ax                                    ; 40
    67236773    test byte [bp-00ah], 080h                 ; f6 46 f6 80
    6724     je short 04d2ah                           ; 74 06
     6774    je short 04d68h                           ; 74 06
    67256775    not al                                    ; f6 d0
    67266776    and bl, al                                ; 20 c3
    6727     jmp short 04d2ch                          ; eb 02
     6777    jmp short 04d6ah                          ; eb 02
    67286778    or bl, al                                 ; 08 c3
    67296779    xor bh, bh                                ; 30 ff
    67306780    mov dx, strict word 00017h                ; ba 17 00
    67316781    mov ax, strict word 00040h                ; b8 40 00
    6732     call 0160eh                               ; e8 d7 c8
    6733     jmp near 04fabh                           ; e9 71 02
     6782    call 0165eh                               ; e8 e9 c8
     6783    jmp near 04fe9h                           ; e9 71 02
    67346784    test byte [bp-008h], 001h                 ; f6 46 f8 01
    6735     jne near 04fabh                           ; 0f 85 69 02
     6785    jne near 04fe9h                           ; 0f 85 69 02
    67366786    or bl, 004h                               ; 80 cb 04
    67376787    xor bh, bh                                ; 30 ff
    67386788    mov dx, strict word 00017h                ; ba 17 00
    67396789    mov ax, strict word 00040h                ; b8 40 00
    6740     call 0160eh                               ; e8 be c8
     6790    call 0165eh                               ; e8 d0 c8
    67416791    mov al, byte [bp-008h]                    ; 8a 46 f8
    67426792    test AL, strict byte 002h                 ; a8 02
    6743     je short 04d64h                           ; 74 0d
     6793    je short 04da2h                           ; 74 0d
    67446794    or AL, strict byte 004h                   ; 0c 04
    67456795    mov byte [bp-006h], al                    ; 88 46 fa
    67466796    movzx bx, al                              ; 0f b6 d8
    67476797    mov dx, 00096h                            ; ba 96 00
    6748     jmp short 04d72h                          ; eb 0e
     6798    jmp short 04db0h                          ; eb 0e
    67496799    mov al, byte [bp-010h]                    ; 8a 46 f0
    67506800    or AL, strict byte 001h                   ; 0c 01
     
    67536803    mov dx, strict word 00018h                ; ba 18 00
    67546804    mov ax, strict word 00040h                ; b8 40 00
    6755     call 0160eh                               ; e8 96 c8
    6756     jmp near 04fabh                           ; e9 30 02
     6805    call 0165eh                               ; e8 a8 c8
     6806    jmp near 04fe9h                           ; e9 30 02
    67576807    test byte [bp-008h], 001h                 ; f6 46 f8 01
    6758     jne near 04fabh                           ; 0f 85 28 02
     6808    jne near 04fe9h                           ; 0f 85 28 02
    67596809    and bl, 0fbh                              ; 80 e3 fb
    67606810    xor bh, bh                                ; 30 ff
    67616811    mov dx, strict word 00017h                ; ba 17 00
    67626812    mov ax, strict word 00040h                ; b8 40 00
    6763     call 0160eh                               ; e8 7d c8
     6813    call 0165eh                               ; e8 8f c8
    67646814    mov al, byte [bp-008h]                    ; 8a 46 f8
    67656815    test AL, strict byte 002h                 ; a8 02
    6766     je short 04da5h                           ; 74 0d
     6816    je short 04de3h                           ; 74 0d
    67676817    and AL, strict byte 0fbh                  ; 24 fb
    67686818    mov byte [bp-006h], al                    ; 88 46 fa
    67696819    movzx bx, al                              ; 0f b6 d8
    67706820    mov dx, 00096h                            ; ba 96 00
    6771     jmp short 04db3h                          ; eb 0e
     6821    jmp short 04df1h                          ; eb 0e
    67726822    mov al, byte [bp-010h]                    ; 8a 46 f0
    67736823    and AL, strict byte 0feh                  ; 24 fe
     
    67766826    mov dx, strict word 00018h                ; ba 18 00
    67776827    mov ax, strict word 00040h                ; b8 40 00
    6778     call 0160eh                               ; e8 55 c8
    6779     jmp near 04fabh                           ; e9 ef 01
     6828    call 0165eh                               ; e8 67 c8
     6829    jmp near 04fe9h                           ; e9 ef 01
    67806830    or bl, 008h                               ; 80 cb 08
    67816831    xor bh, bh                                ; 30 ff
    67826832    mov dx, strict word 00017h                ; ba 17 00
    67836833    mov ax, strict word 00040h                ; b8 40 00
    6784     call 0160eh                               ; e8 44 c8
     6834    call 0165eh                               ; e8 56 c8
    67856835    mov al, byte [bp-008h]                    ; 8a 46 f8
    67866836    test AL, strict byte 002h                 ; a8 02
    6787     je short 04ddeh                           ; 74 0d
     6837    je short 04e1ch                           ; 74 0d
    67886838    or AL, strict byte 008h                   ; 0c 08
    67896839    mov byte [bp-006h], al                    ; 88 46 fa
    67906840    movzx bx, al                              ; 0f b6 d8
    67916841    mov dx, 00096h                            ; ba 96 00
    6792     jmp short 04dech                          ; eb 0e
     6842    jmp short 04e2ah                          ; eb 0e
    67936843    mov al, byte [bp-010h]                    ; 8a 46 f0
    67946844    or AL, strict byte 002h                   ; 0c 02
     
    67976847    mov dx, strict word 00018h                ; ba 18 00
    67986848    mov ax, strict word 00040h                ; b8 40 00
    6799     call 0160eh                               ; e8 1c c8
    6800     jmp near 04fabh                           ; e9 b6 01
     6849    call 0165eh                               ; e8 2e c8
     6850    jmp near 04fe9h                           ; e9 b6 01
    68016851    and bl, 0f7h                              ; 80 e3 f7
    68026852    xor bh, bh                                ; 30 ff
    68036853    mov dx, strict word 00017h                ; ba 17 00
    68046854    mov ax, strict word 00040h                ; b8 40 00
    6805     call 0160eh                               ; e8 0b c8
     6855    call 0165eh                               ; e8 1d c8
    68066856    mov al, byte [bp-008h]                    ; 8a 46 f8
    68076857    test AL, strict byte 002h                 ; a8 02
    6808     je short 04e17h                           ; 74 0d
     6858    je short 04e55h                           ; 74 0d
    68096859    and AL, strict byte 0f7h                  ; 24 f7
    68106860    mov byte [bp-006h], al                    ; 88 46 fa
    68116861    movzx bx, al                              ; 0f b6 d8
    68126862    mov dx, 00096h                            ; ba 96 00
    6813     jmp short 04e25h                          ; eb 0e
     6863    jmp short 04e63h                          ; eb 0e
    68146864    mov al, byte [bp-010h]                    ; 8a 46 f0
    68156865    and AL, strict byte 0fdh                  ; 24 fd
     
    68186868    mov dx, strict word 00018h                ; ba 18 00
    68196869    mov ax, strict word 00040h                ; b8 40 00
    6820     call 0160eh                               ; e8 e3 c7
    6821     jmp near 04fabh                           ; e9 7d 01
     6870    call 0165eh                               ; e8 f5 c7
     6871    jmp near 04fe9h                           ; e9 7d 01
    68226872    test byte [bp-008h], 003h                 ; f6 46 f8 03
    6823     jne near 04fabh                           ; 0f 85 75 01
     6873    jne near 04fe9h                           ; 0f 85 75 01
    68246874    mov al, byte [bp-010h]                    ; 8a 46 f0
    68256875    or AL, strict byte 020h                   ; 0c 20
     
    68286878    mov dx, strict word 00018h                ; ba 18 00
    68296879    mov ax, strict word 00040h                ; b8 40 00
    6830     call 0160eh                               ; e8 c4 c7
     6880    call 0165eh                               ; e8 d6 c7
    68316881    mov bl, byte [bp-00eh]                    ; 8a 5e f2
    68326882    xor bl, 020h                              ; 80 f3 20
     
    68346884    mov dx, strict word 00017h                ; ba 17 00
    68356885    mov ax, strict word 00040h                ; b8 40 00
    6836     call 0160eh                               ; e8 b3 c7
    6837     jmp near 04fabh                           ; e9 4d 01
     6886    call 0165eh                               ; e8 c5 c7
     6887    jmp near 04fe9h                           ; e9 4d 01
    68386888    test byte [bp-008h], 003h                 ; f6 46 f8 03
    6839     jne near 04fabh                           ; 0f 85 45 01
     6889    jne near 04fe9h                           ; 0f 85 45 01
    68406890    mov al, byte [bp-010h]                    ; 8a 46 f0
    68416891    and AL, strict byte 0dfh                  ; 24 df
     
    68446894    mov dx, strict word 00018h                ; ba 18 00
    68456895    mov ax, strict word 00040h                ; b8 40 00
    6846     call 0160eh                               ; e8 94 c7
    6847     jmp near 04fabh                           ; e9 2e 01
     6896    call 0165eh                               ; e8 a6 c7
     6897    jmp near 04fe9h                           ; e9 2e 01
    68486898    mov al, byte [bp-010h]                    ; 8a 46 f0
    68496899    or AL, strict byte 010h                   ; 0c 10
     
    68526902    mov dx, strict word 00018h                ; ba 18 00
    68536903    mov ax, strict word 00040h                ; b8 40 00
    6854     call 0160eh                               ; e8 7d c7
     6904    call 0165eh                               ; e8 8f c7
    68556905    mov bl, byte [bp-00eh]                    ; 8a 5e f2
    68566906    xor bl, 010h                              ; 80 f3 10
    6857     jmp short 04e50h                          ; eb b7
     6907    jmp short 04e8eh                          ; eb b7
    68586908    mov al, byte [bp-010h]                    ; 8a 46 f0
    68596909    and AL, strict byte 0efh                  ; 24 ef
    6860     jmp short 04e6bh                          ; eb cb
     6910    jmp short 04ea9h                          ; eb cb
    68616911    mov al, bl                                ; 88 d8
    68626912    and AL, strict byte 00ch                  ; 24 0c
    68636913    cmp AL, strict byte 00ch                  ; 3c 0c
    6864     jne short 04eadh                          ; 75 05
     6914    jne short 04eebh                          ; 75 05
    68656915    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    68666916    test byte [bp-00ah], 080h                 ; f6 46 f6 80
    6867     jne near 04fabh                           ; 0f 85 f6 00
     6917    jne near 04fe9h                           ; 0f 85 f6 00
    68686918    cmp byte [bp-00ah], 058h                  ; 80 7e f6 58
    6869     jbe short 04ed9h                          ; 76 1e
     6919    jbe short 04f17h                          ; 76 1e
    68706920    mov bx, 00da2h                            ; bb a2 0d
    68716921    mov cx, ds                                ; 8c d9
    68726922    mov ax, strict word 00004h                ; b8 04 00
    6873     call 018e1h                               ; e8 1b ca
     6923    call 01931h                               ; e8 2d ca
    68746924    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    68756925    push ax                                   ; 50
    68766926    push 00581h                               ; 68 81 05
    68776927    push strict byte 00004h                   ; 6a 04
    6878     call 01922h                               ; e8 4f ca
     6928    call 01972h                               ; e8 61 ca
    68796929    add sp, strict byte 00006h                ; 83 c4 06
    6880     jmp near 04fc9h                           ; e9 f0 00
     6930    jmp near 05007h                           ; e9 f0 00
    68816931    test bl, 008h                             ; f6 c3 08
    6882     je short 04ef0h                           ; 74 12
     6932    je short 04f2eh                           ; 74 12
    68836933    movzx si, byte [bp-00ah]                  ; 0f b6 76 f6
    68846934    imul si, si, strict byte 0000ah           ; 6b f6 0a
    68856935    mov dl, byte [si+00df6h]                  ; 8a 94 f6 0d
    68866936    mov ax, word [si+00df6h]                  ; 8b 84 f6 0d
    6887     jmp near 04f7ch                           ; e9 8c 00
     6937    jmp near 04fbah                           ; e9 8c 00
    68886938    test bl, 004h                             ; f6 c3 04
    6889     je short 04f07h                           ; 74 12
     6939    je short 04f45h                           ; 74 12
    68906940    movzx si, byte [bp-00ah]                  ; 0f b6 76 f6
    68916941    imul si, si, strict byte 0000ah           ; 6b f6 0a
    68926942    mov dl, byte [si+00df4h]                  ; 8a 94 f4 0d
    68936943    mov ax, word [si+00df4h]                  ; 8b 84 f4 0d
    6894     jmp near 04f7ch                           ; e9 75 00
     6944    jmp near 04fbah                           ; e9 75 00
    68956945    mov al, byte [bp-006h]                    ; 8a 46 fa
    68966946    and AL, strict byte 002h                  ; 24 02
    68976947    test al, al                               ; 84 c0
    6898     jbe short 04f25h                          ; 76 15
     6948    jbe short 04f63h                          ; 76 15
    68996949    mov al, byte [bp-00ah]                    ; 8a 46 f6
    69006950    cmp AL, strict byte 047h                  ; 3c 47
    6901     jc short 04f25h                           ; 72 0e
     6951    jc short 04f63h                           ; 72 0e
    69026952    cmp AL, strict byte 053h                  ; 3c 53
    6903     jnbe short 04f25h                         ; 77 0a
     6953    jnbe short 04f63h                         ; 77 0a
    69046954    mov DL, strict byte 0e0h                  ; b2 e0
    69056955    movzx si, al                              ; 0f b6 f0
    69066956    imul si, si, strict byte 0000ah           ; 6b f6 0a
    6907     jmp short 04f78h                          ; eb 53
     6957    jmp short 04fb6h                          ; eb 53
    69086958    test bl, 003h                             ; f6 c3 03
    6909     je short 04f57h                           ; 74 2d
     6959    je short 04f95h                           ; 74 2d
    69106960    movzx si, byte [bp-00ah]                  ; 0f b6 76 f6
    69116961    imul si, si, strict byte 0000ah           ; 6b f6 0a
     
    69136963    movzx dx, bl                              ; 0f b6 d3
    69146964    test dx, ax                               ; 85 c2
    6915     je short 04f47h                           ; 74 0a
     6965    je short 04f85h                           ; 74 0a
    69166966    mov dl, byte [si+00df0h]                  ; 8a 94 f0 0d
    69176967    mov ax, word [si+00df0h]                  ; 8b 84 f0 0d
    6918     jmp short 04f4fh                          ; eb 08
     6968    jmp short 04f8dh                          ; eb 08
    69196969    mov dl, byte [si+00df2h]                  ; 8a 94 f2 0d
    69206970    mov ax, word [si+00df2h]                  ; 8b 84 f2 0d
    69216971    shr ax, 008h                              ; c1 e8 08
    69226972    mov byte [bp-00ah], al                    ; 88 46 f6
    6923     jmp short 04f82h                          ; eb 2b
     6973    jmp short 04fc0h                          ; eb 2b
    69246974    movzx si, byte [bp-00ah]                  ; 0f b6 76 f6
    69256975    imul si, si, strict byte 0000ah           ; 6b f6 0a
     
    69276977    movzx dx, bl                              ; 0f b6 d3
    69286978    test dx, ax                               ; 85 c2
    6929     je short 04f74h                           ; 74 0a
     6979    je short 04fb2h                           ; 74 0a
    69306980    mov dl, byte [si+00df2h]                  ; 8a 94 f2 0d
    69316981    mov ax, word [si+00df2h]                  ; 8b 84 f2 0d
    6932     jmp short 04f7ch                          ; eb 08
     6982    jmp short 04fbah                          ; eb 08
    69336983    mov dl, byte [si+00df0h]                  ; 8a 94 f0 0d
    69346984    mov ax, word [si+00df0h]                  ; 8b 84 f0 0d
     
    69366986    mov byte [bp-00ah], al                    ; 88 46 f6
    69376987    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    6938     jne short 04fa2h                          ; 75 1a
     6988    jne short 04fe0h                          ; 75 1a
    69396989    test dl, dl                               ; 84 d2
    6940     jne short 04fa2h                          ; 75 16
     6990    jne short 04fe0h                          ; 75 16
    69416991    mov bx, 00da2h                            ; bb a2 0d
    69426992    mov cx, ds                                ; 8c d9
    69436993    mov ax, strict word 00004h                ; b8 04 00
    6944     call 018e1h                               ; e8 4a c9
     6994    call 01931h                               ; e8 5c c9
    69456995    push 005b8h                               ; 68 b8 05
    69466996    push strict byte 00004h                   ; 6a 04
    6947     call 01922h                               ; e8 83 c9
     6997    call 01972h                               ; e8 95 c9
    69486998    add sp, strict byte 00004h                ; 83 c4 04
    69496999    xor dh, dh                                ; 30 f6
    69507000    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    6951     call 04be0h                               ; e8 35 fc
     7001    call 04c1eh                               ; e8 35 fc
    69527002    mov al, byte [bp-00ah]                    ; 8a 46 f6
    69537003    and AL, strict byte 07fh                  ; 24 7f
    69547004    cmp AL, strict byte 01dh                  ; 3c 1d
    6955     je short 04fb8h                           ; 74 04
     7005    je short 04ff6h                           ; 74 04
    69567006    and byte [bp-006h], 0feh                  ; 80 66 fa fe
    69577007    and byte [bp-006h], 0fdh                  ; 80 66 fa fd
     
    69597009    mov dx, 00096h                            ; ba 96 00
    69607010    mov ax, strict word 00040h                ; b8 40 00
    6961     call 0160eh                               ; e8 45 c6
     7011    call 0165eh                               ; e8 57 c6
    69627012    lea sp, [bp-004h]                         ; 8d 66 fc
    69637013    pop di                                    ; 5f
     
    69657015    pop bp                                    ; 5d
    69667016    retn                                      ; c3
    6967 dequeue_key_:                                ; 0xf4fd0 LB 0x94
     7017dequeue_key_:                                ; 0xf500e LB 0x94
    69687018    push bp                                   ; 55
    69697019    mov bp, sp                                ; 89 e5
     
    69787028    mov dx, strict word 0001ah                ; ba 1a 00
    69797029    mov ax, strict word 00040h                ; b8 40 00
    6980     call 0161ch                               ; e8 32 c6
     7030    call 0166ch                               ; e8 44 c6
    69817031    mov bx, ax                                ; 89 c3
    69827032    mov dx, strict word 0001ch                ; ba 1c 00
    69837033    mov ax, strict word 00040h                ; b8 40 00
    6984     call 0161ch                               ; e8 27 c6
     7034    call 0166ch                               ; e8 39 c6
    69857035    cmp bx, ax                                ; 39 c3
    6986     je short 05036h                           ; 74 3d
     7036    je short 05074h                           ; 74 3d
    69877037    mov dx, bx                                ; 89 da
    69887038    mov ax, strict word 00040h                ; b8 40 00
    6989     call 01600h                               ; e8 ff c5
     7039    call 01650h                               ; e8 11 c6
    69907040    mov cl, al                                ; 88 c1
    69917041    lea dx, [bx+001h]                         ; 8d 57 01
    69927042    mov ax, strict word 00040h                ; b8 40 00
    6993     call 01600h                               ; e8 f4 c5
     7043    call 01650h                               ; e8 06 c6
    69947044    mov es, [bp-008h]                         ; 8e 46 f8
    69957045    mov byte [es:si], cl                      ; 26 88 0c
     
    69977047    mov byte [es:di], al                      ; 26 88 05
    69987048    cmp word [bp+004h], strict byte 00000h    ; 83 7e 04 00
    6999     je short 05031h                           ; 74 13
     7049    je short 0506fh                           ; 74 13
    70007050    inc bx                                    ; 43
    70017051    inc bx                                    ; 43
    70027052    cmp bx, strict byte 0003eh                ; 83 fb 3e
    7003     jc short 05028h                           ; 72 03
     7053    jc short 05066h                           ; 72 03
    70047054    mov bx, strict word 0001eh                ; bb 1e 00
    70057055    mov dx, strict word 0001ah                ; ba 1a 00
    70067056    mov ax, strict word 00040h                ; b8 40 00
    7007     call 0162ah                               ; e8 f9 c5
     7057    call 0167ah                               ; e8 0b c6
    70087058    mov ax, strict word 00001h                ; b8 01 00
    7009     jmp short 05038h                          ; eb 02
     7059    jmp short 05076h                          ; eb 02
    70107060    xor ax, ax                                ; 31 c0
    70117061    lea sp, [bp-004h]                         ; 8d 66 fc
     
    70187068    or cl, byte [bx+di]                       ; 0a 09
    70197069    add ax, 00102h                            ; 05 02 01
    7020     add byte [bp+si], al                      ; 00 02
     7070    add byte [bx+si+053h], al                 ; 00 40 53
     7071    push si                                   ; 56
     7072    push cx                                   ; 51
     7073    popfw                                     ; 9d
     7074    push cx                                   ; 51
     7075    jmp near 049e4h                           ; e9 51 f9
     7076    push cx                                   ; 51
     7077    and dx, word [bp+si+02ch]                 ; 23 52 2c
     7078    push dx                                   ; 52
     7079    popfw                                     ; 9d
     7080    push dx                                   ; 52
     7081    into                                      ; ce
     7082    push dx                                   ; 52
     7083    sti                                       ; fb
     7084    push dx                                   ; 52
     7085    xor ax, 08353h                            ; 35 53 83
    70217086    push bx                                   ; 53
    7022     sbb byte [bx+di+05fh], dl                 ; 18 51 5f
    7023     push cx                                   ; 51
    7024     stosw                                     ; ab
    7025     push cx                                   ; 51
    7026     mov bx, 0e551h                            ; bb 51 e5
    7027     push cx                                   ; 51
    7028     out DX, AL                                ; ee
    7029     push cx                                   ; 51
    7030     pop di                                    ; 5f
    7031     push dx                                   ; 52
    7032     nop                                       ; 90
    7033     push dx                                   ; 52
    7034     mov bp, 0f752h                            ; bd 52 f7
    7035     push dx                                   ; 52
    7036     inc bp                                    ; 45
    7037     push bx                                   ; 53
    7038 _int16_function:                             ; 0xf5064 LB 0x2e7
     7087_int16_function:                             ; 0xf50a2 LB 0x2e7
    70397088    push bp                                   ; 55
    70407089    mov bp, sp                                ; 89 e5
     
    70437092    mov dx, strict word 00017h                ; ba 17 00
    70447093    mov ax, strict word 00040h                ; b8 40 00
    7045     call 01600h                               ; e8 8c c5
     7094    call 01650h                               ; e8 9e c5
    70467095    mov cl, al                                ; 88 c1
    70477096    mov bh, al                                ; 88 c7
    70487097    mov dx, 00097h                            ; ba 97 00
    70497098    mov ax, strict word 00040h                ; b8 40 00
    7050     call 01600h                               ; e8 7f c5
     7099    call 01650h                               ; e8 91 c5
    70517100    mov bl, al                                ; 88 c3
    70527101    movzx dx, cl                              ; 0f b6 d1
     
    70577106    xor al, dl                                ; 30 d0
    70587107    test ax, ax                               ; 85 c0
    7059     je short 050f6h                           ; 74 60
     7108    je short 05134h                           ; 74 60
    70607109    cli                                       ; fa
    70617110    mov AL, strict byte 0edh                  ; b0 ed
     
    70677116    ; sub ah, ah                                ; 2a e4
    70687117    test AL, strict byte 001h                 ; a8 01
    7069     jne short 050afh                          ; 75 08
     7118    jne short 050edh                          ; 75 08
    70707119    mov AL, strict byte 021h                  ; b0 21
    70717120    mov dx, 00080h                            ; ba 80 00
    70727121    out DX, AL                                ; ee
    7073     jmp short 0509dh                          ; eb ee
     7122    jmp short 050dbh                          ; eb ee
    70747123    mov dx, strict word 00060h                ; ba 60 00
    70757124    in AL, DX                                 ; ec
     
    70777126    ; sub ah, ah                                ; 2a e4
    70787127    cmp ax, 000fah                            ; 3d fa 00
    7079     jne short 050f5h                          ; 75 3b
     7128    jne short 05133h                          ; 75 3b
    70807129    and bl, 0f8h                              ; 80 e3 f8
    70817130    movzx ax, bh                              ; 0f b6 c7
     
    70937142    ; sub ah, ah                                ; 2a e4
    70947143    test AL, strict byte 001h                 ; a8 01
    7095     jne short 050e4h                          ; 75 08
     7144    jne short 05122h                          ; 75 08
    70967145    mov AL, strict byte 021h                  ; b0 21
    70977146    mov dx, 00080h                            ; ba 80 00
    70987147    out DX, AL                                ; ee
    7099     jmp short 050d2h                          ; eb ee
     7148    jmp short 05110h                          ; eb ee
    71007149    mov dx, strict word 00060h                ; ba 60 00
    71017150    in AL, DX                                 ; ec
     
    71057154    mov dx, 00097h                            ; ba 97 00
    71067155    mov ax, strict word 00040h                ; b8 40 00
    7107     call 0160eh                               ; e8 19 c5
     7156    call 0165eh                               ; e8 2b c5
    71087157    sti                                       ; fb
    71097158    mov ax, word [bp+012h]                    ; 8b 46 12
    71107159    shr ax, 008h                              ; c1 e8 08
    71117160    cmp ax, 000a2h                            ; 3d a2 00
    7112     jnbe near 05302h                          ; 0f 87 ff 01
     7161    jnbe near 05340h                          ; 0f 87 ff 01
    71137162    push CS                                   ; 0e
    71147163    pop ES                                    ; 07
    71157164    mov cx, strict word 0000ch                ; b9 0c 00
    7116     mov di, 05041h                            ; bf 41 50
     7165    mov di, 0507fh                            ; bf 7f 50
    71177166    repne scasb                               ; f2 ae
    71187167    sal cx, 1                                 ; d1 e1
    71197168    mov di, cx                                ; 89 cf
    7120     mov ax, word [cs:di+0504ch]               ; 2e 8b 85 4c 50
     7169    mov ax, word [cs:di+0508ah]               ; 2e 8b 85 8a 50
    71217170    jmp ax                                    ; ff e0
    71227171    push strict byte 00001h                   ; 6a 01
     
    71257174    mov dx, ss                                ; 8c d2
    71267175    lea ax, [bp-006h]                         ; 8d 46 fa
    7127     call 04fd0h                               ; e8 a9 fe
     7176    call 0500eh                               ; e8 a9 fe
    71287177    test ax, ax                               ; 85 c0
    7129     jne short 05136h                          ; 75 0b
     7178    jne short 05174h                          ; 75 0b
    71307179    push 005efh                               ; 68 ef 05
    71317180    push strict byte 00007h                   ; 6a 07
    7132     call 01922h                               ; e8 ef c7
     7181    call 01972h                               ; e8 01 c8
    71337182    add sp, strict byte 00004h                ; 83 c4 04
    71347183    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    7135     je short 05142h                           ; 74 06
     7184    je short 05180h                           ; 74 06
    71367185    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    7137     je short 05148h                           ; 74 06
     7186    je short 05186h                           ; 74 06
    71387187    cmp byte [bp-008h], 0e0h                  ; 80 7e f8 e0
    7139     jne short 0514ch                          ; 75 04
     7188    jne short 0518ah                          ; 75 04
    71407189    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    71417190    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
     
    71447193    or dx, ax                                 ; 09 c2
    71457194    mov word [bp+012h], dx                    ; 89 56 12
    7146     jmp near 05345h                           ; e9 e6 01
     7195    jmp near 05383h                           ; e9 e6 01
    71477196    or word [bp+01ch], 00200h                 ; 81 4e 1c 00 02
    71487197    push strict byte 00000h                   ; 6a 00
     
    71517200    mov dx, ss                                ; 8c d2
    71527201    lea ax, [bp-006h]                         ; 8d 46 fa
    7153     call 04fd0h                               ; e8 5d fe
     7202    call 0500eh                               ; e8 5d fe
    71547203    test ax, ax                               ; 85 c0
    7155     jne short 0517eh                          ; 75 07
     7204    jne short 051bch                          ; 75 07
    71567205    or word [bp+01ch], strict byte 00040h     ; 83 4e 1c 40
    7157     jmp near 05345h                           ; e9 c7 01
     7206    jmp near 05383h                           ; e9 c7 01
    71587207    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    7159     je short 0518ah                           ; 74 06
     7208    je short 051c8h                           ; 74 06
    71607209    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    7161     je short 05190h                           ; 74 06
     7210    je short 051ceh                           ; 74 06
    71627211    cmp byte [bp-008h], 0e0h                  ; 80 7e f8 e0
    7163     jne short 05194h                          ; 75 04
     7212    jne short 051d2h                          ; 75 04
    71647213    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    71657214    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
     
    71697218    mov word [bp+012h], dx                    ; 89 56 12
    71707219    and word [bp+01ch], strict byte 0ffbfh    ; 83 66 1c bf
    7171     jmp near 05345h                           ; e9 9a 01
     7220    jmp near 05383h                           ; e9 9a 01
    71727221    mov dx, strict word 00017h                ; ba 17 00
    71737222    mov ax, strict word 00040h                ; b8 40 00
    7174     call 01600h                               ; e8 4c c4
     7223    call 01650h                               ; e8 5e c4
    71757224    mov dx, word [bp+012h]                    ; 8b 56 12
    71767225    mov dl, al                                ; 88 c2
    7177     jmp short 05159h                          ; eb 9e
     7226    jmp short 05197h                          ; eb 9e
    71787227    mov al, byte [bp+010h]                    ; 8a 46 10
    71797228    movzx dx, al                              ; 0f b6 d0
     
    71817230    shr ax, 008h                              ; c1 e8 08
    71827231    xor ah, ah                                ; 30 e4
    7183     call 04be0h                               ; e8 14 fa
     7232    call 04c1eh                               ; e8 14 fa
    71847233    test ax, ax                               ; 85 c0
    7185     jne short 051ddh                          ; 75 0d
     7234    jne short 0521bh                          ; 75 0d
    71867235    mov ax, word [bp+012h]                    ; 8b 46 12
    71877236    xor al, al                                ; 30 c0
    71887237    or AL, strict byte 001h                   ; 0c 01
    71897238    mov word [bp+012h], ax                    ; 89 46 12
    7190     jmp near 05345h                           ; e9 68 01
     7239    jmp near 05383h                           ; e9 68 01
    71917240    and word [bp+012h], 0ff00h                ; 81 66 12 00 ff
    7192     jmp near 05345h                           ; e9 60 01
     7241    jmp near 05383h                           ; e9 60 01
    71937242    mov ax, word [bp+012h]                    ; 8b 46 12
    71947243    xor al, al                                ; 30 c0
    71957244    or AL, strict byte 030h                   ; 0c 30
    7196     jmp short 051d7h                          ; eb e9
     7245    jmp short 05215h                          ; eb e9
    71977246    mov byte [bp-004h], 002h                  ; c6 46 fc 02
    71987247    xor cx, cx                                ; 31 c9
     
    72077256    ; sub ah, ah                                ; 2a e4
    72087257    test AL, strict byte 001h                 ; a8 01
    7209     jne short 05215h                          ; 75 0d
     7258    jne short 05253h                          ; 75 0d
    72107259    dec bx                                    ; 4b
    72117260    test bx, bx                               ; 85 db
    7212     jbe short 05215h                          ; 76 08
     7261    jbe short 05253h                          ; 76 08
    72137262    mov dx, 00080h                            ; ba 80 00
    72147263    in AL, DX                                 ; ec
    72157264    db  02ah, 0e4h
    72167265    ; sub ah, ah                                ; 2a e4
    7217     jmp short 051feh                          ; eb e9
     7266    jmp short 0523ch                          ; eb e9
    72187267    test bx, bx                               ; 85 db
    7219     jbe short 05259h                          ; 76 40
     7268    jbe short 05297h                          ; 76 40
    72207269    mov dx, strict word 00060h                ; ba 60 00
    72217270    in AL, DX                                 ; ec
     
    72237272    ; sub ah, ah                                ; 2a e4
    72247273    cmp ax, 000fah                            ; 3d fa 00
    7225     jne short 05259h                          ; 75 35
     7274    jne short 05297h                          ; 75 35
    72267275    mov bx, strict word 0ffffh                ; bb ff ff
    72277276    mov dx, strict word 00064h                ; ba 64 00
     
    72307279    ; sub ah, ah                                ; 2a e4
    72317280    test AL, strict byte 001h                 ; a8 01
    7232     jne short 0523eh                          ; 75 0d
     7281    jne short 0527ch                          ; 75 0d
    72337282    dec bx                                    ; 4b
    72347283    test bx, bx                               ; 85 db
    7235     jbe short 0523eh                          ; 76 08
     7284    jbe short 0527ch                          ; 76 08
    72367285    mov dx, 00080h                            ; ba 80 00
    72377286    in AL, DX                                 ; ec
    72387287    db  02ah, 0e4h
    72397288    ; sub ah, ah                                ; 2a e4
    7240     jmp short 05227h                          ; eb e9
     7289    jmp short 05265h                          ; eb e9
    72417290    test bx, bx                               ; 85 db
    7242     jbe short 05250h                          ; 76 0e
     7291    jbe short 0528eh                          ; 76 0e
    72437292    shr cx, 008h                              ; c1 e9 08
    72447293    mov dx, strict word 00060h                ; ba 60 00
     
    72507299    dec byte [bp-004h]                        ; fe 4e fc
    72517300    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    7252     jnbe short 05224h                         ; 77 cb
     7301    jnbe short 05262h                         ; 77 cb
    72537302    mov word [bp+00ch], cx                    ; 89 4e 0c
    7254     jmp near 05345h                           ; e9 e6 00
     7303    jmp near 05383h                           ; e9 e6 00
    72557304    push strict byte 00001h                   ; 6a 01
    72567305    mov cx, ss                                ; 8c d1
     
    72587307    mov dx, ss                                ; 8c d2
    72597308    lea ax, [bp-006h]                         ; 8d 46 fa
    7260     call 04fd0h                               ; e8 62 fd
     7309    call 0500eh                               ; e8 62 fd
    72617310    test ax, ax                               ; 85 c0
    7262     jne short 0527dh                          ; 75 0b
     7311    jne short 052bbh                          ; 75 0b
    72637312    push 005efh                               ; 68 ef 05
    72647313    push strict byte 00007h                   ; 6a 07
    7265     call 01922h                               ; e8 a8 c6
     7314    call 01972h                               ; e8 ba c6
    72667315    add sp, strict byte 00004h                ; 83 c4 04
    72677316    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    7268     je near 0514ch                            ; 0f 84 c7 fe
     7317    je near 0518ah                            ; 0f 84 c7 fe
    72697318    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    7270     je near 05148h                            ; 0f 84 bb fe
    7271     jmp near 0514ch                           ; e9 bc fe
     7319    je near 05186h                            ; 0f 84 bb fe
     7320    jmp near 0518ah                           ; e9 bc fe
    72727321    or word [bp+01ch], 00200h                 ; 81 4e 1c 00 02
    72737322    push strict byte 00000h                   ; 6a 00
     
    72767325    mov dx, ss                                ; 8c d2
    72777326    lea ax, [bp-006h]                         ; 8d 46 fa
    7278     call 04fd0h                               ; e8 2c fd
     7327    call 0500eh                               ; e8 2c fd
    72797328    test ax, ax                               ; 85 c0
    7280     je near 05177h                            ; 0f 84 cd fe
     7329    je near 051b5h                            ; 0f 84 cd fe
    72817330    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    7282     je near 05194h                            ; 0f 84 e2 fe
     7331    je near 051d2h                            ; 0f 84 e2 fe
    72837332    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    7284     je near 05190h                            ; 0f 84 d6 fe
    7285     jmp near 05194h                           ; e9 d7 fe
     7333    je near 051ceh                            ; 0f 84 d6 fe
     7334    jmp near 051d2h                           ; e9 d7 fe
    72867335    mov dx, strict word 00017h                ; ba 17 00
    72877336    mov ax, strict word 00040h                ; b8 40 00
    7288     call 01600h                               ; e8 3a c3
     7337    call 01650h                               ; e8 4c c3
    72897338    mov dx, word [bp+012h]                    ; 8b 56 12
    72907339    mov dl, al                                ; 88 c2
     
    72927341    mov dx, strict word 00018h                ; ba 18 00
    72937342    mov ax, strict word 00040h                ; b8 40 00
    7294     call 01600h                               ; e8 29 c3
     7343    call 01650h                               ; e8 3b c3
    72957344    mov bh, al                                ; 88 c7
    72967345    and bh, 073h                              ; 80 e7 73
    72977346    mov dx, 00096h                            ; ba 96 00
    72987347    mov ax, strict word 00040h                ; b8 40 00
    7299     call 01600h                               ; e8 1b c3
     7348    call 01650h                               ; e8 2d c3
    73007349    and AL, strict byte 00ch                  ; 24 0c
    73017350    or bh, al                                 ; 08 c7
     
    73047353    movzx ax, bh                              ; 0f b6 c7
    73057354    sal ax, 008h                              ; c1 e0 08
    7306     jmp near 05157h                           ; e9 60 fe
     7355    jmp near 05195h                           ; e9 60 fe
    73077356    mov ax, word [bp+012h]                    ; 8b 46 12
    73087357    xor ah, ah                                ; 30 e4
    73097358    or ah, 080h                               ; 80 cc 80
    7310     jmp near 051d7h                           ; e9 d5 fe
     7359    jmp near 05215h                           ; e9 d5 fe
    73117360    mov bx, 00da2h                            ; bb a2 0d
    73127361    mov cx, ds                                ; 8c d9
    73137362    mov ax, strict word 00004h                ; b8 04 00
    7314     call 018e1h                               ; e8 d4 c5
     7363    call 01931h                               ; e8 e6 c5
    73157364    mov ax, word [bp+012h]                    ; 8b 46 12
    73167365    shr ax, 008h                              ; c1 e8 08
     
    73187367    push 00613h                               ; 68 13 06
    73197368    push strict byte 00004h                   ; 6a 04
    7320     call 01922h                               ; e8 06 c6
     7369    call 01972h                               ; e8 18 c6
    73217370    add sp, strict byte 00006h                ; 83 c4 06
    73227371    mov bx, 00da2h                            ; bb a2 0d
    73237372    mov cx, ds                                ; 8c d9
    73247373    mov ax, strict word 00004h                ; b8 04 00
    7325     call 018e1h                               ; e8 b7 c5
     7374    call 01931h                               ; e8 c9 c5
    73267375    mov ax, word [bp+00eh]                    ; 8b 46 0e
    73277376    push ax                                   ; 50
     
    73347383    push 0063bh                               ; 68 3b 06
    73357384    push strict byte 00004h                   ; 6a 04
    7336     call 01922h                               ; e8 e0 c5
     7385    call 01972h                               ; e8 f2 c5
    73377386    add sp, strict byte 0000ch                ; 83 c4 0c
    73387387    lea sp, [bp-002h]                         ; 8d 66 fe
     
    73407389    pop bp                                    ; 5d
    73417390    retn                                      ; c3
    7342 set_geom_lba_:                               ; 0xf534b LB 0x9e
     7391set_geom_lba_:                               ; 0xf5389 LB 0x9e
    73437392    push si                                   ; 56
    73447393    push di                                   ; 57
     
    73527401    mov di, 000ffh                            ; bf ff 00
    73537402    xor bx, bx                                ; 31 db
    7354     jmp short 0536ch                          ; eb 05
     7403    jmp short 053aah                          ; eb 05
    73557404    cmp bx, strict byte 00004h                ; 83 fb 04
    7356     jnl short 05382h                          ; 7d 16
     7405    jnl short 053c0h                          ; 7d 16
    73577406    cmp dx, word [bp-002h]                    ; 3b 56 fe
    7358     jnbe short 05378h                         ; 77 07
    7359     jne short 0537bh                          ; 75 08
     7407    jnbe short 053b6h                         ; 77 07
     7408    jne short 053b9h                          ; 75 08
    73607409    cmp ax, word [bp-004h]                    ; 3b 46 fc
    7361     jc short 0537bh                           ; 72 03
     7410    jc short 053b9h                           ; 72 03
    73627411    inc di                                    ; 47
    73637412    shr di, 1                                 ; d1 ef
     
    73657414    rcr ax, 1                                 ; d1 d8
    73667415    inc bx                                    ; 43
    7367     jmp short 05367h                          ; eb e5
     7416    jmp short 053a5h                          ; eb e5
    73687417    mov ax, di                                ; 89 f8
    73697418    xor dx, dx                                ; 31 d2
    73707419    mov bx, strict word 0003fh                ; bb 3f 00
    73717420    xor cx, cx                                ; 31 c9
    7372     call 09439h                               ; e8 ab 40
     7421    call 09479h                               ; e8 ad 40
    73737422    mov bx, ax                                ; 89 c3
    73747423    mov cx, dx                                ; 89 d1
    73757424    mov ax, word [bp-004h]                    ; 8b 46 fc
    73767425    mov dx, word [bp-002h]                    ; 8b 56 fe
    7377     call 09400h                               ; e8 65 40
     7426    call 09440h                               ; e8 67 40
    73787427    mov word [es:si+002h], ax                 ; 26 89 44 02
    73797428    cmp ax, 00400h                            ; 3d 00 04
    7380     jbe short 053aah                          ; 76 06
     7429    jbe short 053e8h                          ; 76 06
    73817430    mov word [es:si+002h], 00400h             ; 26 c7 44 02 00 04
    73827431    mov word [es:si], di                      ; 26 89 3c
     
    73867435    pop si                                    ; 5e
    73877436    retn                                      ; c3
    7388     jnc short 0540dh                          ; 73 54
    7389     cwd                                       ; 99
     7437    mov CL, strict byte 054h                  ; b1 54
     7438    xlatb                                     ; d7
    73907439    push sp                                   ; 54
    7391     db  0c6h, 054h, 0c6h, 054h
    7392     ; mov byte [si-03ah], 054h                  ; c6 54 c6 54
    7393     db  0c6h, 054h, 09eh, 056h
    7394     ; mov byte [si-062h], 056h                  ; c6 54 9e 56
    7395     int3                                      ; cc
     7440    add AL, strict byte 055h                  ; 04 55
     7441    add AL, strict byte 055h                  ; 04 55
     7442    add AL, strict byte 055h                  ; 04 55
     7443    fcom qword [bp+00ah]                      ; dc 56 0a
     7444    pop ax                                    ; 58
     7445    or bl, byte [bx+si-00bh]                  ; 0a 58 f5
     7446    push si                                   ; 56
     7447    out 057h, ax                              ; e7 57
     7448    or bl, byte [bx+si+00ah]                  ; 0a 58 0a
     7449    pop ax                                    ; 58
     7450    out 057h, ax                              ; e7 57
     7451    out 057h, ax                              ; e7 57
     7452    or bl, byte [bx+si+00ah]                  ; 0a 58 0a
     7453    pop ax                                    ; 58
     7454    imul dx, word [bx-019h], strict byte 00057h ; 6b 57 e7 57
     7455    or bl, byte [bx+si+00ah]                  ; 0a 58 0a
     7456    pop ax                                    ; 58
     7457    out 057h, ax                              ; e7 57
     7458    wait                                      ; 9b
    73967459    push di                                   ; 57
    7397     int3                                      ; cc
    7398     push di                                   ; 57
    7399     mov BH, strict byte 056h                  ; b7 56
    7400     test ax, 0cc57h                           ; a9 57 cc
    7401     push di                                   ; 57
    7402     int3                                      ; cc
    7403     push di                                   ; 57
    7404     test ax, 0a957h                           ; a9 57 a9
    7405     push di                                   ; 57
    7406     int3                                      ; cc
    7407     push di                                   ; 57
    7408     int3                                      ; cc
    7409     push di                                   ; 57
    7410     sub ax, 0a957h                            ; 2d 57 a9
    7411     push di                                   ; 57
    7412     int3                                      ; cc
    7413     push di                                   ; 57
    7414     int3                                      ; cc
    7415     push di                                   ; 57
    7416     test ax, 05d57h                           ; a9 57 5d
    7417     push di                                   ; 57
    7418     int3                                      ; cc
    7419     push di                                   ; 57
    7420     int3                                      ; cc
    7421     push di                                   ; 57
    7422     int3                                      ; cc
    7423     push di                                   ; 57
    7424 _int13_harddisk:                             ; 0xf53e9 LB 0x441
     7460    or bl, byte [bx+si+00ah]                  ; 0a 58 0a
     7461    pop ax                                    ; 58
     7462    db  00ah
     7463    pop ax                                    ; 58
     7464_int13_harddisk:                             ; 0xf5427 LB 0x441
    74257465    push bp                                   ; 55
    74267466    mov bp, sp                                ; 89 e5
     
    74287468    mov dx, strict word 0000eh                ; ba 0e 00
    74297469    mov ax, strict word 00040h                ; b8 40 00
    7430     call 0161ch                               ; e8 24 c2
     7470    call 0166ch                               ; e8 36 c2
    74317471    mov si, 00122h                            ; be 22 01
    74327472    mov word [bp-004h], ax                    ; 89 46 fc
     
    74347474    mov dx, 0008eh                            ; ba 8e 00
    74357475    mov ax, strict word 00040h                ; b8 40 00
    7436     call 0160eh                               ; e8 05 c2
     7476    call 0165eh                               ; e8 17 c2
    74377477    mov ax, word [bp+00eh]                    ; 8b 46 0e
    74387478    xor ah, ah                                ; 30 e4
    74397479    cmp ax, 00080h                            ; 3d 80 00
    7440     jc short 05418h                           ; 72 05
     7480    jc short 05456h                           ; 72 05
    74417481    cmp ax, 00090h                            ; 3d 90 00
    7442     jc short 05436h                           ; 72 1e
     7482    jc short 05474h                           ; 72 1e
    74437483    mov ax, word [bp+00eh]                    ; 8b 46 0e
    74447484    xor ah, ah                                ; 30 e4
     
    74507490    push 0066dh                               ; 68 6d 06
    74517491    push strict byte 00004h                   ; 6a 04
    7452     call 01922h                               ; e8 f2 c4
     7492    call 01972h                               ; e8 04 c5
    74537493    add sp, strict byte 0000ah                ; 83 c4 0a
    7454     jmp near 057e7h                           ; e9 b1 03
     7494    jmp near 05825h                           ; e9 b1 03
    74557495    mov ax, word [bp+00eh]                    ; 8b 46 0e
    74567496    xor ah, ah                                ; 30 e4
     
    74617501    mov byte [bp-002h], dl                    ; 88 56 fe
    74627502    cmp dl, 010h                              ; 80 fa 10
    7463     jc short 0545fh                           ; 72 10
     7503    jc short 0549dh                           ; 72 10
    74647504    push ax                                   ; 50
    74657505    mov ax, word [bp+016h]                    ; 8b 46 16
     
    74687508    push 0065eh                               ; 68 5e 06
    74697509    push 00698h                               ; 68 98 06
    7470     jmp short 0542bh                          ; eb cc
     7510    jmp short 05469h                          ; eb cc
    74717511    mov bx, word [bp+016h]                    ; 8b 5e 16
    74727512    shr bx, 008h                              ; c1 eb 08
    74737513    cmp bx, strict byte 00018h                ; 83 fb 18
    7474     jnbe near 057cch                          ; 0f 87 60 03
     7514    jnbe near 0580ah                          ; 0f 87 60 03
    74757515    add bx, bx                                ; 01 db
    7476     jmp word [cs:bx+053b7h]                   ; 2e ff a7 b7 53
     7516    jmp word [cs:bx+053f5h]                   ; 2e ff a7 f5 53
    74777517    cmp byte [bp-002h], 008h                  ; 80 7e fe 08
    7478     jnc near 05482h                           ; 0f 83 07 00
     7518    jnc near 054c0h                           ; 0f 83 07 00
    74797519    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    7480     call 01c21h                               ; e8 9f c7
     7520    call 01c71h                               ; e8 b1 c7
    74817521    mov byte [bp+017h], 000h                  ; c6 46 17 00
    74827522    xor bx, bx                                ; 31 db
    74837523    mov dx, strict word 00074h                ; ba 74 00
    74847524    mov ax, strict word 00040h                ; b8 40 00
    7485     call 0160eh                               ; e8 7d c1
     7525    call 0165eh                               ; e8 8f c1
    74867526    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    74877527    mov sp, bp                                ; 89 ec
     
    74907530    mov dx, strict word 00074h                ; ba 74 00
    74917531    mov ax, strict word 00040h                ; b8 40 00
    7492     call 01600h                               ; e8 5e c1
     7532    call 01650h                               ; e8 70 c1
    74937533    mov cl, al                                ; 88 c1
    74947534    mov dx, word [bp+016h]                    ; 8b 56 16
     
    75017541    mov dx, strict word 00074h                ; ba 74 00
    75027542    mov ax, strict word 00040h                ; b8 40 00
    7503     call 0160eh                               ; e8 4f c1
     7543    call 0165eh                               ; e8 61 c1
    75047544    test cl, cl                               ; 84 c9
    7505     je short 05486h                           ; 74 c3
    7506     jmp near 05803h                           ; e9 3d 03
     7545    je short 054c4h                           ; 74 c3
     7546    jmp near 05841h                           ; e9 3d 03
    75077547    mov ax, word [bp+016h]                    ; 8b 46 16
    75087548    xor ah, ah                                ; 30 e4
     
    75247564    mov ax, word [bp-00ch]                    ; 8b 46 f4
    75257565    cmp ax, 00080h                            ; 3d 80 00
    7526     jnbe short 05501h                         ; 77 04
     7566    jnbe short 0553fh                         ; 77 04
    75277567    test ax, ax                               ; 85 c0
    7528     jne short 05524h                          ; 75 23
     7568    jne short 05562h                          ; 75 23
    75297569    mov bx, 00da2h                            ; bb a2 0d
    75307570    mov cx, ds                                ; 8c d9
    75317571    mov ax, strict word 00004h                ; b8 04 00
    7532     call 018e1h                               ; e8 d5 c3
     7572    call 01931h                               ; e8 e7 c3
    75337573    mov ax, word [bp+016h]                    ; 8b 46 16
    75347574    shr ax, 008h                              ; c1 e8 08
     
    75377577    push 006cah                               ; 68 ca 06
    75387578    push strict byte 00004h                   ; 6a 04
    7539     call 01922h                               ; e8 04 c4
     7579    call 01972h                               ; e8 16 c4
    75407580    add sp, strict byte 00008h                ; 83 c4 08
    7541     jmp near 057e7h                           ; e9 c3 02
     7581    jmp near 05825h                           ; e9 c3 02
    75427582    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    75437583    imul ax, ax, strict byte 00018h           ; 6b c0 18
     
    75507590    mov word [bp-00ah], dx                    ; 89 56 f6
    75517591    cmp di, ax                                ; 39 c7
    7552     jnc short 05551h                          ; 73 0c
     7592    jnc short 0558fh                          ; 73 0c
    75537593    cmp cx, word [bp-008h]                    ; 3b 4e f8
    7554     jbe short 05551h                          ; 76 07
     7594    jbe short 0558fh                          ; 76 07
    75557595    mov ax, word [bp-006h]                    ; 8b 46 fa
    75567596    cmp ax, dx                                ; 39 d0
    7557     jbe short 0557fh                          ; 76 2e
     7597    jbe short 055bdh                          ; 76 2e
    75587598    mov bx, 00da2h                            ; bb a2 0d
    75597599    mov cx, ds                                ; 8c d9
    75607600    mov ax, strict word 00004h                ; b8 04 00
    7561     call 018e1h                               ; e8 85 c3
     7601    call 01931h                               ; e8 97 c3
    75627602    push dword [bp-008h]                      ; 66 ff 76 f8
    75637603    push di                                   ; 57
     
    75717611    push 006f2h                               ; 68 f2 06
    75727612    push strict byte 00004h                   ; 6a 04
    7573     call 01922h                               ; e8 a9 c3
     7613    call 01972h                               ; e8 bb c3
    75747614    add sp, strict byte 00010h                ; 83 c4 10
    7575     jmp near 057e7h                           ; e9 68 02
     7615    jmp near 05825h                           ; e9 68 02
    75767616    mov ax, word [bp+016h]                    ; 8b 46 16
    75777617    shr ax, 008h                              ; c1 e8 08
    75787618    cmp ax, strict word 00004h                ; 3d 04 00
    7579     jne short 0558dh                          ; 75 03
    7580     jmp near 05482h                           ; e9 f5 fe
     7619    jne short 055cbh                          ; 75 03
     7620    jmp near 054c0h                           ; e9 f5 fe
    75817621    movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
    75827622    imul bx, bx, strict byte 00018h           ; 6b db 18
     
    75847624    add bx, si                                ; 01 f3
    75857625    cmp cx, word [es:bx+02ch]                 ; 26 3b 4f 2c
    7586     jne short 055aeh                          ; 75 0f
     7626    jne short 055ech                          ; 75 0f
    75877627    mov ax, word [es:bx+030h]                 ; 26 8b 47 30
    75887628    cmp ax, word [bp-00ah]                    ; 3b 46 f6
    7589     jne short 055aeh                          ; 75 06
     7629    jne short 055ech                          ; 75 06
    75907630    cmp byte [bp-002h], 008h                  ; 80 7e fe 08
    7591     jc short 055deh                           ; 72 30
     7631    jc short 0561ch                           ; 72 30
    75927632    mov ax, di                                ; 89 f8
    75937633    xor dx, dx                                ; 31 d2
    75947634    mov bx, cx                                ; 89 cb
    75957635    xor cx, cx                                ; 31 c9
    7596     call 09439h                               ; e8 80 3e
     7636    call 09479h                               ; e8 82 3e
    75977637    xor bx, bx                                ; 31 db
    75987638    add ax, word [bp-008h]                    ; 03 46 f8
     
    76007640    mov bx, word [bp-00ah]                    ; 8b 5e f6
    76017641    xor cx, cx                                ; 31 c9
    7602     call 09439h                               ; e8 71 3e
     7642    call 09479h                               ; e8 73 3e
    76037643    xor bx, bx                                ; 31 db
    76047644    add ax, word [bp-006h]                    ; 03 46 fa
     
    76537693    mov word [bp+016h], bx                    ; 89 5e 16
    76547694    test dl, dl                               ; 84 d2
    7655     je near 05482h                            ; 0f 84 13 fe
     7695    je near 054c0h                            ; 0f 84 13 fe
    76567696    mov bx, 00da2h                            ; bb a2 0d
    76577697    mov cx, ds                                ; 8c d9
    76587698    mov ax, strict word 00004h                ; b8 04 00
    7659     call 018e1h                               ; e8 67 c2
     7699    call 01931h                               ; e8 79 c2
    76607700    movzx ax, dl                              ; 0f b6 c2
    76617701    push ax                                   ; 50
     
    76667706    push 00739h                               ; 68 39 07
    76677707    push strict byte 00004h                   ; 6a 04
    7668     call 01922h                               ; e8 92 c2
     7708    call 01972h                               ; e8 a4 c2
    76697709    add sp, strict byte 0000ah                ; 83 c4 0a
    76707710    mov ax, word [bp+016h]                    ; 8b 46 16
    76717711    xor ah, ah                                ; 30 e4
    76727712    or ah, 00ch                               ; 80 cc 0c
    7673     jmp near 057efh                           ; e9 51 01
     7713    jmp near 0582dh                           ; e9 51 01
    76747714    mov bx, 00da2h                            ; bb a2 0d
    76757715    mov cx, ds                                ; 8c d9
    76767716    mov ax, strict word 00004h                ; b8 04 00
    7677     call 018e1h                               ; e8 38 c2
     7717    call 01931h                               ; e8 4a c2
    76787718    push 0075ah                               ; 68 5a 07
    76797719    push strict byte 00004h                   ; 6a 04
    7680     call 01922h                               ; e8 71 c2
     7720    call 01972h                               ; e8 83 c2
    76817721    add sp, strict byte 00004h                ; 83 c4 04
    7682     jmp near 05482h                           ; e9 cb fd
     7722    jmp near 054c0h                           ; e9 cb fd
    76837723    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    76847724    imul ax, ax, strict byte 00018h           ; 6b c0 18
     
    77237763    or dx, ax                                 ; 09 c2
    77247764    mov word [bp+012h], dx                    ; 89 56 12
    7725     jmp near 05482h                           ; e9 55 fd
     7765    jmp near 054c0h                           ; e9 55 fd
    77267766    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    77277767    cwd                                       ; 99
     
    77397779    and AL, strict byte 0c0h                  ; 24 c0
    77407780    cmp AL, strict byte 040h                  ; 3c 40
    7741     jne short 05752h                          ; 75 03
    7742     jmp near 05482h                           ; e9 30 fd
     7781    jne short 05790h                          ; 75 03
     7782    jmp near 054c0h                           ; e9 30 fd
    77437783    mov ax, word [bp+016h]                    ; 8b 46 16
    77447784    xor ah, ah                                ; 30 e4
    77457785    or ah, 0aah                               ; 80 cc aa
    7746     jmp near 057efh                           ; e9 92 00
     7786    jmp near 0582dh                           ; e9 92 00
    77477787    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    77487788    imul ax, ax, strict byte 00018h           ; 6b c0 18
     
    77587798    mov bx, word [bp-008h]                    ; 8b 5e f8
    77597799    xor cx, cx                                ; 31 c9
    7760     call 09439h                               ; e8 b2 3c
     7800    call 09479h                               ; e8 b4 3c
    77617801    mov bx, word [bp-006h]                    ; 8b 5e fa
    77627802    xor cx, cx                                ; 31 c9
    7763     call 09439h                               ; e8 aa 3c
     7803    call 09479h                               ; e8 ac 3c
    77647804    mov word [bp-010h], ax                    ; 89 46 f0
    77657805    mov word [bp-00eh], dx                    ; 89 56 f2
     
    77707810    or ah, 003h                               ; 80 cc 03
    77717811    mov word [bp+016h], ax                    ; 89 46 16
    7772     jmp near 05486h                           ; e9 dd fc
     7812    jmp near 054c4h                           ; e9 dd fc
    77737813    mov bx, 00da2h                            ; bb a2 0d
    77747814    mov cx, ds                                ; 8c d9
    77757815    mov ax, strict word 00004h                ; b8 04 00
    7776     call 018e1h                               ; e8 2d c1
     7816    call 01931h                               ; e8 3f c1
    77777817    mov ax, word [bp+016h]                    ; 8b 46 16
    77787818    shr ax, 008h                              ; c1 e8 08
     
    77817821    push 00774h                               ; 68 74 07
    77827822    push strict byte 00004h                   ; 6a 04
    7783     call 01922h                               ; e8 5c c1
     7823    call 01972h                               ; e8 6e c1
    77847824    add sp, strict byte 00008h                ; 83 c4 08
    7785     jmp near 05482h                           ; e9 b6 fc
     7825    jmp near 054c0h                           ; e9 b6 fc
    77867826    mov bx, 00da2h                            ; bb a2 0d
    77877827    mov cx, ds                                ; 8c d9
    77887828    mov ax, strict word 00004h                ; b8 04 00
    7789     call 018e1h                               ; e8 0a c1
     7829    call 01931h                               ; e8 1c c1
    77907830    mov ax, word [bp+016h]                    ; 8b 46 16
    77917831    shr ax, 008h                              ; c1 e8 08
     
    77937833    push 0065eh                               ; 68 5e 06
    77947834    push 007a7h                               ; 68 a7 07
    7795     jmp near 05519h                           ; e9 32 fd
     7835    jmp near 05557h                           ; e9 32 fd
    77967836    mov ax, word [bp+016h]                    ; 8b 46 16
    77977837    xor ah, ah                                ; 30 e4
     
    78037843    mov dx, strict word 00074h                ; ba 74 00
    78047844    mov ax, strict word 00040h                ; b8 40 00
    7805     call 0160eh                               ; e8 0b be
     7845    call 0165eh                               ; e8 1d be
    78067846    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    7807     jmp near 05495h                           ; e9 8b fc
    7808     lds bx, [bx+si-023h]                      ; c5 58 dd
    7809     pop ax                                    ; 58
    7810     fstp qword [bx+si-023h]                   ; dd 58 dd
    7811     pop ax                                    ; 58
    7812     mov [si+020h], ds                         ; 8c 5c 20
     7847    jmp near 054d3h                           ; e9 8b fc
     7848    add bx, word [bx+di+01bh]                 ; 03 59 1b
     7849    pop cx                                    ; 59
     7850    sbb bx, word [bx+di+01bh]                 ; 1b 59 1b
     7851    pop cx                                    ; 59
     7852    retf 05e5ch                               ; ca 5c 5e
    78137853    pop dx                                    ; 5a
    7814     fstp qword [bx+si+026h]                   ; dd 58 26
     7854    sbb bx, word [bx+di+064h]                 ; 1b 59 64
    78157855    pop dx                                    ; 5a
    7816     mov [si-025h], ds                         ; 8c 5c db
     7856    retf 0195ch                               ; ca 5c 19
     7857    pop bp                                    ; 5d
     7858    sbb word [di+019h], bx                    ; 19 5d 19
     7859    pop bp                                    ; 5d
     7860    sbb word [di-01fh], bx                    ; 19 5d e1
    78177861    pop sp                                    ; 5c
    7818     fistp dword [si-025h]                     ; db 5c db
    7819     pop sp                                    ; 5c
    7820     fistp dword [si-05dh]                     ; db 5c a3
    7821     pop sp                                    ; 5c
    7822     fistp dword [si-025h]                     ; db 5c db
    7823     pop sp                                    ; 5c
    7824 _int13_harddisk_ext:                         ; 0xf582a LB 0x4cc
     7862    sbb word [di+019h], bx                    ; 19 5d 19
     7863    pop bp                                    ; 5d
     7864_int13_harddisk_ext:                         ; 0xf5868 LB 0x4cc
    78257865    push bp                                   ; 55
    78267866    mov bp, sp                                ; 89 e5
     
    78287868    mov dx, strict word 0000eh                ; ba 0e 00
    78297869    mov ax, strict word 00040h                ; b8 40 00
    7830     call 0161ch                               ; e8 e3 bd
     7870    call 0166ch                               ; e8 f5 bd
    78317871    mov word [bp-014h], ax                    ; 89 46 ec
    78327872    mov dx, strict word 0000eh                ; ba 0e 00
    78337873    mov ax, strict word 00040h                ; b8 40 00
    7834     call 0161ch                               ; e8 d7 bd
     7874    call 0166ch                               ; e8 e9 bd
    78357875    mov si, 00122h                            ; be 22 01
    78367876    mov word [bp-026h], ax                    ; 89 46 da
     
    78387878    mov dx, 0008eh                            ; ba 8e 00
    78397879    mov ax, strict word 00040h                ; b8 40 00
    7840     call 0160eh                               ; e8 b8 bd
     7880    call 0165eh                               ; e8 ca bd
    78417881    mov ax, word [bp+00eh]                    ; 8b 46 0e
    78427882    xor ah, ah                                ; 30 e4
    78437883    cmp ax, 00080h                            ; 3d 80 00
    7844     jc short 05865h                           ; 72 05
     7884    jc short 058a3h                           ; 72 05
    78457885    cmp ax, 00090h                            ; 3d 90 00
    7846     jc short 05883h                           ; 72 1e
     7886    jc short 058c1h                           ; 72 1e
    78477887    mov ax, word [bp+00eh]                    ; 8b 46 0e
    78487888    xor ah, ah                                ; 30 e4
     
    78547894    push 0066dh                               ; 68 6d 06
    78557895    push strict byte 00004h                   ; 6a 04
    7856     call 01922h                               ; e8 a5 c0
     7896    call 01972h                               ; e8 b7 c0
    78577897    add sp, strict byte 0000ah                ; 83 c4 0a
    7858     jmp near 05cb9h                           ; e9 36 04
     7898    jmp near 05cf7h                           ; e9 36 04
    78597899    mov ax, word [bp+00eh]                    ; 8b 46 0e
    78607900    xor ah, ah                                ; 30 e4
     
    78647904    mov cl, byte [es:bx+0011fh]               ; 26 8a 8f 1f 01
    78657905    cmp cl, 010h                              ; 80 f9 10
    7866     jc short 058a9h                           ; 72 10
     7906    jc short 058e7h                           ; 72 10
    78677907    push ax                                   ; 50
    78687908    mov ax, word [bp+016h]                    ; 8b 46 16
     
    78717911    push 007d5h                               ; 68 d5 07
    78727912    push 00698h                               ; 68 98 06
    7873     jmp short 05878h                          ; eb cf
     7913    jmp short 058b6h                          ; eb cf
    78747914    mov bx, word [bp+016h]                    ; 8b 5e 16
    78757915    shr bx, 008h                              ; c1 eb 08
    78767916    sub bx, strict byte 00041h                ; 83 eb 41
    78777917    cmp bx, strict byte 0000fh                ; 83 fb 0f
    7878     jnbe near 05cdbh                          ; 0f 87 22 04
     7918    jnbe near 05d19h                          ; 0f 87 22 04
    78797919    add bx, bx                                ; 01 db
    78807920    mov ax, word [bp+016h]                    ; 8b 46 16
    78817921    xor ah, ah                                ; 30 e4
    7882     jmp word [cs:bx+0580ah]                   ; 2e ff a7 0a 58
     7922    jmp word [cs:bx+05848h]                   ; 2e ff a7 48 58
    78837923    mov word [bp+010h], 0aa55h                ; c7 46 10 55 aa
    78847924    mov ax, word [bp+016h]                    ; 8b 46 16
     
    78877927    mov word [bp+016h], ax                    ; 89 46 16
    78887928    mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
    7889     jmp near 05c90h                           ; e9 b3 03
     7929    jmp near 05cceh                           ; e9 b3 03
    78907930    mov bx, word [bp+00ah]                    ; 8b 5e 0a
    78917931    mov es, [bp+004h]                         ; 8e 46 04
     
    79027942    mov ax, word [es:bx+00eh]                 ; 26 8b 47 0e
    79037943    or ax, word [bp-00ah]                     ; 0b 46 f6
    7904     je short 0591eh                           ; 74 11
     7944    je short 0595ch                           ; 74 11
    79057945    mov ax, word [bp+016h]                    ; 8b 46 16
    79067946    shr ax, 008h                              ; c1 e8 08
     
    79097949    push 007e8h                               ; 68 e8 07
    79107950    push strict byte 00007h                   ; 6a 07
    7911     jmp short 05968h                          ; eb 4a
     7951    jmp short 059a6h                          ; eb 4a
    79127952    mov es, [bp-010h]                         ; 8e 46 f0
    79137953    mov ax, word [es:di+008h]                 ; 26 8b 45 08
     
    79217961    mov ch, byte [es:bx+01eh]                 ; 26 8a 6f 1e
    79227962    cmp ax, word [es:bx+034h]                 ; 26 3b 47 34
    7923     jnbe short 0594eh                         ; 77 0b
    7924     jne short 05971h                          ; 75 2c
     7963    jnbe short 0598ch                         ; 77 0b
     7964    jne short 059afh                          ; 75 2c
    79257965    mov dx, word [bp-00ah]                    ; 8b 56 f6
    79267966    cmp dx, word [es:bx+032h]                 ; 26 3b 57 32
    7927     jc short 05971h                           ; 72 23
     7967    jc short 059afh                           ; 72 23
    79287968    mov bx, 00da2h                            ; bb a2 0d
    79297969    mov cx, ds                                ; 8c d9
    79307970    mov ax, strict word 00004h                ; b8 04 00
    7931     call 018e1h                               ; e8 88 bf
     7971    call 01931h                               ; e8 9a bf
    79327972    mov ax, word [bp+016h]                    ; 8b 46 16
    79337973    shr ax, 008h                              ; c1 e8 08
     
    79367976    push 00811h                               ; 68 11 08
    79377977    push strict byte 00004h                   ; 6a 04
    7938     call 01922h                               ; e8 b7 bf
     7978    call 01972h                               ; e8 c9 bf
    79397979    add sp, strict byte 00008h                ; 83 c4 08
    7940     jmp near 05cb9h                           ; e9 48 03
     7980    jmp near 05cf7h                           ; e9 48 03
    79417981    mov dx, word [bp+016h]                    ; 8b 56 16
    79427982    shr dx, 008h                              ; c1 ea 08
    79437983    mov word [bp-00ch], dx                    ; 89 56 f4
    79447984    cmp dx, strict byte 00044h                ; 83 fa 44
    7945     je near 05c8ch                            ; 0f 84 0b 03
     7985    je near 05ccah                            ; 0f 84 0b 03
    79467986    cmp dx, strict byte 00047h                ; 83 fa 47
    7947     je near 05c8ch                            ; 0f 84 04 03
     7987    je near 05ccah                            ; 0f 84 04 03
    79487988    mov es, [bp-026h]                         ; 8e 46 da
    79497989    db  066h, 026h, 0c7h, 044h, 014h, 000h, 000h, 000h, 000h
     
    79778017    mov word [es:di+002h], ax                 ; 26 89 45 02
    79788018    test dl, dl                               ; 84 d2
    7979     je near 05c8ch                            ; 0f 84 97 02
     8019    je near 05ccah                            ; 0f 84 97 02
    79808020    mov bx, 00da2h                            ; bb a2 0d
    79818021    mov cx, ds                                ; 8c d9
    79828022    mov ax, strict word 00004h                ; b8 04 00
    7983     call 018e1h                               ; e8 e1 be
     8023    call 01931h                               ; e8 f3 be
    79848024    movzx ax, dl                              ; 0f b6 c2
    79858025    push ax                                   ; 50
     
    79888028    push 00739h                               ; 68 39 07
    79898029    push strict byte 00004h                   ; 6a 04
    7990     call 01922h                               ; e8 10 bf
     8030    call 01972h                               ; e8 22 bf
    79918031    add sp, strict byte 0000ah                ; 83 c4 0a
    79928032    mov ax, word [bp+016h]                    ; 8b 46 16
    79938033    xor ah, ah                                ; 30 e4
    79948034    or ah, 00ch                               ; 80 cc 0c
    7995     jmp near 05cc1h                           ; e9 a1 02
     8035    jmp near 05cffh                           ; e9 a1 02
    79968036    or ah, 0b2h                               ; 80 cc b2
    7997     jmp near 05cc1h                           ; e9 9b 02
     8037    jmp near 05cffh                           ; e9 9b 02
    79988038    mov bx, word [bp+00ah]                    ; 8b 5e 0a
    79998039    mov ax, word [bp+004h]                    ; 8b 46 04
     
    80058045    mov word [bp-00eh], ax                    ; 89 46 f2
    80068046    cmp ax, strict word 0001ah                ; 3d 1a 00
    8007     jc near 05cb9h                            ; 0f 82 76 02
    8008     jc near 05acah                            ; 0f 82 83 00
     8047    jc near 05cf7h                            ; 0f 82 76 02
     8048    jc near 05b08h                            ; 0f 82 83 00
    80098049    movzx ax, cl                              ; 0f b6 c1
    80108050    imul ax, ax, strict byte 00018h           ; 6b c0 18
     
    80448084    ; mov dword [es:di+014h], strict dword 000000000h ; 66 26 c7 45 14 00 00 00 00
    80458085    cmp word [bp-00eh], strict byte 0001eh    ; 83 7e f2 1e
    8046     jc near 05bd6h                            ; 0f 82 04 01
     8086    jc near 05c14h                            ; 0f 82 04 01
    80478087    mov es, [bp-004h]                         ; 8e 46 fc
    80488088    mov word [es:bx], strict word 0001eh      ; 26 c7 07 1e 00
     
    80708110    mov al, byte [es:di+023h]                 ; 26 8a 45 23
    80718111    test al, al                               ; 84 c0
    8072     jne short 05b28h                          ; 75 04
     8112    jne short 05b66h                          ; 75 04
    80738113    xor dx, dx                                ; 31 d2
    8074     jmp short 05b2bh                          ; eb 03
     8114    jmp short 05b69h                          ; eb 03
    80758115    mov dx, strict word 00008h                ; ba 08 00
    80768116    or dl, 010h                               ; 80 ca 10
     
    80878127    or word [bp-008h], dx                     ; 09 56 f8
    80888128    cmp AL, strict byte 003h                  ; 3c 03
    8089     jne short 05b51h                          ; 75 05
     8129    jne short 05b8fh                          ; 75 05
    80908130    mov ax, strict word 00003h                ; b8 03 00
    8091     jmp short 05b53h                          ; eb 02
     8131    jmp short 05b91h                          ; eb 02
    80928132    xor ax, ax                                ; 31 c0
    80938133    or word [bp-008h], ax                     ; 09 46 f8
     
    81148154    xor ch, ch                                ; 30 ed
    81158155    mov byte [bp-002h], ch                    ; 88 6e fe
    8116     jmp short 05bb7h                          ; eb 06
     8156    jmp short 05bf5h                          ; eb 06
    81178157    cmp byte [bp-002h], 00fh                  ; 80 7e fe 0f
    8118     jnc short 05bcch                          ; 73 15
     8158    jnc short 05c0ah                          ; 73 15
    81198159    movzx dx, byte [bp-002h]                  ; 0f b6 56 fe
    81208160    add dx, 00312h                            ; 81 c2 12 03
    81218161    mov ax, word [bp-014h]                    ; 8b 46 ec
    8122     call 01600h                               ; e8 3b ba
     8162    call 01650h                               ; e8 4d ba
    81238163    add ch, al                                ; 00 c5
    81248164    inc byte [bp-002h]                        ; fe 46 fe
    8125     jmp short 05bb1h                          ; eb e5
     8165    jmp short 05befh                          ; eb e5
    81268166    neg ch                                    ; f6 dd
    81278167    mov es, [bp-026h]                         ; 8e 46 da
    81288168    mov byte [es:si+001ffh], ch               ; 26 88 ac ff 01
    81298169    cmp word [bp-00eh], strict byte 00042h    ; 83 7e f2 42
    8130     jc near 05c8ch                            ; 0f 82 ae 00
     8170    jc near 05ccah                            ; 0f 82 ae 00
    81318171    movzx ax, cl                              ; 0f b6 c1
    81328172    cwd                                       ; 99
     
    81468186    mov word [es:bx+022h], strict word 00000h ; 26 c7 47 22 00 00
    81478187    test al, al                               ; 84 c0
    8148     jne short 05c1eh                          ; 75 09
     8188    jne short 05c5ch                          ; 75 09
    81498189    db  066h, 026h, 0c7h, 047h, 024h, 049h, 053h, 041h, 020h
    81508190    ; mov dword [es:bx+024h], strict dword 020415349h ; 66 26 c7 47 24 49 53 41 20
     
    81558195    ; mov dword [es:bx+02ch], strict dword 020202020h ; 66 26 c7 47 2c 20 20 20 20
    81568196    test al, al                               ; 84 c0
    8157     jne short 05c4ah                          ; 75 13
     8197    jne short 05c88h                          ; 75 13
    81588198    mov word [es:bx+030h], dx                 ; 26 89 57 30
    81598199    db  066h, 026h, 0c7h, 047h, 032h, 000h, 000h, 000h, 000h
     
    81708210    xor cl, cl                                ; 30 c9
    81718211    mov CH, strict byte 01eh                  ; b5 1e
    8172     jmp short 05c71h                          ; eb 05
     8212    jmp short 05cafh                          ; eb 05
    81738213    cmp ch, 040h                              ; 80 fd 40
    8174     jnc short 05c83h                          ; 73 12
     8214    jnc short 05cc1h                          ; 73 12
    81758215    movzx dx, ch                              ; 0f b6 d5
    81768216    add dx, word [bp+00ah]                    ; 03 56 0a
    81778217    mov ax, word [bp+004h]                    ; 8b 46 04
    8178     call 01600h                               ; e8 83 b9
     8218    call 01650h                               ; e8 95 b9
    81798219    add cl, al                                ; 00 c1
    81808220    db  0feh, 0c5h
    81818221    ; inc ch                                    ; fe c5
    8182     jmp short 05c6ch                          ; eb e9
     8222    jmp short 05caah                          ; eb e9
    81838223    neg cl                                    ; f6 d9
    81848224    mov es, [bp-004h]                         ; 8e 46 fc
     
    81888228    mov dx, strict word 00074h                ; ba 74 00
    81898229    mov ax, strict word 00040h                ; b8 40 00
    8190     call 0160eh                               ; e8 73 b9
     8230    call 0165eh                               ; e8 85 b9
    81918231    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    81928232    mov sp, bp                                ; 89 ec
     
    81948234    retn                                      ; c3
    81958235    cmp ax, strict word 00006h                ; 3d 06 00
    8196     je short 05c8ch                           ; 74 e4
     8236    je short 05ccah                           ; 74 e4
    81978237    cmp ax, strict word 00001h                ; 3d 01 00
    8198     jc short 05cb9h                           ; 72 0c
    8199     jbe short 05c8ch                          ; 76 dd
     8238    jc short 05cf7h                           ; 72 0c
     8239    jbe short 05ccah                          ; 76 dd
    82008240    cmp ax, strict word 00003h                ; 3d 03 00
    8201     jc short 05cb9h                           ; 72 05
     8241    jc short 05cf7h                           ; 72 05
    82028242    cmp ax, strict word 00004h                ; 3d 04 00
    8203     jbe short 05c8ch                          ; 76 d3
     8243    jbe short 05ccah                          ; 76 d3
    82048244    mov ax, word [bp+016h]                    ; 8b 46 16
    82058245    xor ah, ah                                ; 30 e4
     
    82118251    mov dx, strict word 00074h                ; ba 74 00
    82128252    mov ax, strict word 00040h                ; b8 40 00
    8213     call 0160eh                               ; e8 39 b9
     8253    call 0165eh                               ; e8 4b b9
    82148254    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    8215     jmp short 05c9fh                          ; eb c4
     8255    jmp short 05cddh                          ; eb c4
    82168256    mov bx, 00da2h                            ; bb a2 0d
    82178257    mov cx, ds                                ; 8c d9
    82188258    mov ax, strict word 00004h                ; b8 04 00
    8219     call 018e1h                               ; e8 fb bb
     8259    call 01931h                               ; e8 0d bc
    82208260    mov ax, word [bp+016h]                    ; 8b 46 16
    82218261    shr ax, 008h                              ; c1 e8 08
     
    82238263    push 007d5h                               ; 68 d5 07
    82248264    push 007a7h                               ; 68 a7 07
    8225     jmp near 05966h                           ; e9 70 fc
    8226 _int14_function:                             ; 0xf5cf6 LB 0x155
     8265    jmp near 059a4h                           ; e9 70 fc
     8266_int14_function:                             ; 0xf5d34 LB 0x155
    82278267    push bp                                   ; 55
    82288268    mov bp, sp                                ; 89 e5
     
    82328272    add dx, dx                                ; 01 d2
    82338273    mov ax, strict word 00040h                ; b8 40 00
    8234     call 0161ch                               ; e8 16 b9
     8274    call 0166ch                               ; e8 28 b9
    82358275    mov si, ax                                ; 89 c6
    82368276    mov bx, ax                                ; 89 c3
     
    82388278    add dx, strict byte 0007ch                ; 83 c2 7c
    82398279    mov ax, strict word 00040h                ; b8 40 00
    8240     call 01600h                               ; e8 ea b8
     8280    call 01650h                               ; e8 fc b8
    82418281    mov cl, al                                ; 88 c1
    82428282    cmp word [bp+00eh], strict byte 00004h    ; 83 7e 0e 04
    8243     jnc near 05e41h                           ; 0f 83 21 01
     8283    jnc near 05e7fh                           ; 0f 83 21 01
    82448284    test si, si                               ; 85 f6
    8245     jbe near 05e41h                           ; 0f 86 1b 01
     8285    jbe near 05e7fh                           ; 0f 86 1b 01
    82468286    mov al, byte [bp+013h]                    ; 8a 46 13
    82478287    cmp AL, strict byte 001h                  ; 3c 01
    8248     jc short 05d3eh                           ; 72 11
    8249     jbe short 05d92h                          ; 76 63
     8288    jc short 05d7ch                           ; 72 11
     8289    jbe short 05dd0h                          ; 76 63
    82508290    cmp AL, strict byte 003h                  ; 3c 03
    8251     je near 05e2ah                            ; 0f 84 f5 00
     8291    je near 05e68h                            ; 0f 84 f5 00
    82528292    cmp AL, strict byte 002h                  ; 3c 02
    8253     je near 05de0h                            ; 0f 84 a5 00
    8254     jmp near 05e3bh                           ; e9 fd 00
     8293    je near 05e1eh                            ; 0f 84 a5 00
     8294    jmp near 05e79h                           ; e9 fd 00
    82558295    test al, al                               ; 84 c0
    8256     jne near 05e3bh                           ; 0f 85 f7 00
     8296    jne near 05e79h                           ; 0f 85 f7 00
    82578297    lea dx, [bx+003h]                         ; 8d 57 03
    82588298    in AL, DX                                 ; ec
     
    82868326    ; sub ah, ah                                ; 2a e4
    82878327    mov byte [bp+012h], al                    ; 88 46 12
    8288     jmp near 05e1ch                           ; e9 97 00
     8328    jmp near 05e5ah                           ; e9 97 00
    82898329    mov AL, strict byte 017h                  ; b0 17
    82908330    mov dx, bx                                ; 89 da
     
    82938333    mov AL, strict byte 004h                  ; b0 04
    82948334    out DX, AL                                ; ee
    8295     jmp short 05d67h                          ; eb d5
     8335    jmp short 05da5h                          ; eb d5
    82968336    mov dx, strict word 0006ch                ; ba 6c 00
    82978337    mov ax, strict word 00040h                ; b8 40 00
    8298     call 0161ch                               ; e8 81 b8
     8338    call 0166ch                               ; e8 93 b8
    82998339    mov si, ax                                ; 89 c6
    83008340    lea dx, [bx+005h]                         ; 8d 57 05
     
    83048344    and ax, strict word 00060h                ; 25 60 00
    83058345    cmp ax, strict word 00060h                ; 3d 60 00
    8306     je short 05dc2h                           ; 74 17
     8346    je short 05e00h                           ; 74 17
    83078347    test cl, cl                               ; 84 c9
    8308     je short 05dc2h                           ; 74 13
     8348    je short 05e00h                           ; 74 13
    83098349    mov dx, strict word 0006ch                ; ba 6c 00
    83108350    mov ax, strict word 00040h                ; b8 40 00
    8311     call 0161ch                               ; e8 64 b8
     8351    call 0166ch                               ; e8 76 b8
    83128352    cmp ax, si                                ; 39 f0
    8313     je short 05d9dh                           ; 74 e1
     8353    je short 05ddbh                           ; 74 e1
    83148354    mov si, ax                                ; 89 c6
    83158355    db  0feh, 0c9h
    83168356    ; dec cl                                    ; fe c9
    8317     jmp short 05d9dh                          ; eb db
     8357    jmp short 05ddbh                          ; eb db
    83188358    test cl, cl                               ; 84 c9
    8319     je short 05dcch                           ; 74 06
     8359    je short 05e0ah                           ; 74 06
    83208360    mov al, byte [bp+012h]                    ; 8a 46 12
    83218361    mov dx, bx                                ; 89 da
     
    83278367    mov byte [bp+013h], al                    ; 88 46 13
    83288368    test cl, cl                               ; 84 c9
    8329     jne short 05e1ch                          ; 75 43
     8369    jne short 05e5ah                          ; 75 43
    83308370    or AL, strict byte 080h                   ; 0c 80
    83318371    mov byte [bp+013h], al                    ; 88 46 13
    8332     jmp short 05e1ch                          ; eb 3c
     8372    jmp short 05e5ah                          ; eb 3c
    83338373    mov dx, strict word 0006ch                ; ba 6c 00
    83348374    mov ax, strict word 00040h                ; b8 40 00
    8335     call 0161ch                               ; e8 33 b8
     8375    call 0166ch                               ; e8 45 b8
    83368376    mov si, ax                                ; 89 c6
    83378377    lea dx, [bx+005h]                         ; 8d 57 05
     
    83408380    ; sub ah, ah                                ; 2a e4
    83418381    test AL, strict byte 001h                 ; a8 01
    8342     jne short 05e0ch                          ; 75 17
     8382    jne short 05e4ah                          ; 75 17
    83438383    test cl, cl                               ; 84 c9
    8344     je short 05e0ch                           ; 74 13
     8384    je short 05e4ah                           ; 74 13
    83458385    mov dx, strict word 0006ch                ; ba 6c 00
    83468386    mov ax, strict word 00040h                ; b8 40 00
    8347     call 0161ch                               ; e8 1a b8
     8387    call 0166ch                               ; e8 2c b8
    83488388    cmp ax, si                                ; 39 f0
    8349     je short 05debh                           ; 74 e5
     8389    je short 05e29h                           ; 74 e5
    83508390    mov si, ax                                ; 89 c6
    83518391    db  0feh, 0c9h
    83528392    ; dec cl                                    ; fe c9
    8353     jmp short 05debh                          ; eb df
     8393    jmp short 05e29h                          ; eb df
    83548394    test cl, cl                               ; 84 c9
    8355     je short 05e22h                           ; 74 12
     8395    je short 05e60h                           ; 74 12
    83568396    mov byte [bp+013h], 000h                  ; c6 46 13 00
    83578397    mov dx, bx                                ; 89 da
     
    83618401    mov byte [bp+012h], al                    ; 88 46 12
    83628402    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    8363     jmp short 05e45h                          ; eb 23
     8403    jmp short 05e83h                          ; eb 23
    83648404    lea dx, [bx+005h]                         ; 8d 57 05
    83658405    in AL, DX                                 ; ec
    83668406    db  02ah, 0e4h
    83678407    ; sub ah, ah                                ; 2a e4
    8368     jmp short 05ddbh                          ; eb b1
     8408    jmp short 05e19h                          ; eb b1
    83698409    lea dx, [si+005h]                         ; 8d 54 05
    83708410    in AL, DX                                 ; ec
     
    83768416    db  02ah, 0e4h
    83778417    ; sub ah, ah                                ; 2a e4
    8378     jmp short 05e19h                          ; eb de
     8418    jmp short 05e57h                          ; eb de
    83798419    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    8380     jmp short 05e45h                          ; eb 04
     8420    jmp short 05e83h                          ; eb 04
    83818421    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    83828422    lea sp, [bp-002h]                         ; 8d 66 fe
     
    83848424    pop bp                                    ; 5d
    83858425    retn                                      ; c3
    8386 set_enable_a20_:                             ; 0xf5e4b LB 0x2c
     8426set_enable_a20_:                             ; 0xf5e89 LB 0x2c
    83878427    push bp                                   ; 55
    83888428    mov bp, sp                                ; 89 e5
     
    83978437    mov cl, al                                ; 88 c1
    83988438    test bx, bx                               ; 85 db
    8399     je short 05e64h                           ; 74 05
     8439    je short 05ea2h                           ; 74 05
    84008440    or AL, strict byte 002h                   ; 0c 02
    84018441    out DX, AL                                ; ee
    8402     jmp short 05e67h                          ; eb 03
     8442    jmp short 05ea5h                          ; eb 03
    84038443    and AL, strict byte 0fdh                  ; 24 fd
    84048444    out DX, AL                                ; ee
     
    84138453    pop bp                                    ; 5d
    84148454    retn                                      ; c3
    8415 set_e820_range_:                             ; 0xf5e77 LB 0x8c
     8455set_e820_range_:                             ; 0xf5eb5 LB 0x8c
    84168456    push si                                   ; 56
    84178457    push bp                                   ; 55
     
    84428482    retn 0000ah                               ; c2 0a 00
    84438483    in AL, DX                                 ; ec
    8444     jmp near 020aah                           ; e9 d8 c1
     8484    jmp near 020e8h                           ; e9 d8 c1
    84458485    sar byte [bx-06f6fh], 089h                ; c0 bf 91 90 89
    84468486    mov byte [bx+05283h], al                  ; 88 87 83 52
     
    84488488    inc cx                                    ; 41
    84498489    and AL, strict byte 000h                  ; 24 00
    8450     mov byte [04263h], AL                     ; a2 63 42
    8451     pop di                                    ; 5f
    8452     push bp                                   ; 55
    8453     pop di                                    ; 5f
    8454     jmp far 0f55fh:0f05fh                     ; ea 5f f0 5f f5
    8455     pop di                                    ; 5f
    8456     cli                                       ; fa
    8457     pop di                                    ; 5f
    8458     pushfw                                    ; 9c
     8490    loopne 05f82h                             ; e0 63
     8491    sbb byte [bx-06dh], 05fh                  ; 80 5f 93 5f
     8492    sub byte [bx+si+02eh], ah                 ; 28 60 2e
    84598493    pushaw                                    ; 60
    8460     cmp word [bp+si+05fh], sp                 ; 39 62 5f
    8461     db  062h
    8462     jcxz 05f54h                               ; e3 5f
    8463     jcxz 05f56h                               ; e3 5f
    8464     sub AL, strict byte 063h                  ; 2c 63
    8465     push sp                                   ; 54
    8466     arpl word [bx+063h], sp                   ; 63 67 63
    8467     jbe short 05f62h                          ; 76 63
    8468     db  0eah
    8469     pop di                                    ; 5f
    8470     jnl short 05f66h                          ; 7d 63
    8471 _int15_function:                             ; 0xf5f03 LB 0x4cd
     8494    xor sp, word [bx+si+038h]                 ; 33 60 38
     8495    pushaw                                    ; 60
     8496    fisub dword [bx+si+077h]                  ; da 60 77
     8497    bound bx, [di+02162h]                     ; 62 9d 62 21
     8498    pushaw                                    ; 60
     8499    and word [bx+si+06ah], sp                 ; 21 60 6a
     8500    arpl word [bp+si-05a9dh], dx              ; 63 92 63 a5
     8501    arpl word [si+02863h], si                 ; 63 b4 63 28
     8502    pushaw                                    ; 60
     8503    db  0bbh
     8504    db  063h
     8505_int15_function:                             ; 0xf5f41 LB 0x4cd
    84728506    push bp                                   ; 55
    84738507    mov bp, sp                                ; 89 e5
     
    84798513    shr ax, 008h                              ; c1 e8 08
    84808514    cmp ax, 000ech                            ; 3d ec 00
    8481     jnbe near 063a2h                          ; 0f 87 8b 04
     8515    jnbe near 063e0h                          ; 0f 87 8b 04
    84828516    push CS                                   ; 0e
    84838517    pop ES                                    ; 07
    84848518    mov cx, strict word 00012h                ; b9 12 00
    8485     mov di, 05eceh                            ; bf ce 5e
     8519    mov di, 05f0ch                            ; bf 0c 5f
    84868520    repne scasb                               ; f2 ae
    84878521    sal cx, 1                                 ; d1 e1
    84888522    mov di, cx                                ; 89 cf
    8489     mov si, word [cs:di+05edfh]               ; 2e 8b b5 df 5e
     8523    mov si, word [cs:di+05f1dh]               ; 2e 8b b5 1d 5f
    84908524    mov ax, word [bp+012h]                    ; 8b 46 12
    84918525    xor ah, ah                                ; 30 e4
     
    85008534    xor ah, ah                                ; 30 e4
    85018535    cmp ax, 000c0h                            ; 3d c0 00
    8502     jne near 063a2h                           ; 0f 85 54 04
     8536    jne near 063e0h                           ; 0f 85 54 04
    85038537    or byte [bp+018h], 001h                   ; 80 4e 18 01
    8504     jmp near 0634bh                           ; e9 f6 03
     8538    jmp near 06389h                           ; e9 f6 03
    85058539    mov dx, ax                                ; 89 c2
    85068540    cmp ax, strict word 00001h                ; 3d 01 00
    8507     jc short 05f6ah                           ; 72 0e
    8508     jbe short 05f7eh                          ; 76 20
     8541    jc short 05fa8h                           ; 72 0e
     8542    jbe short 05fbch                          ; 76 20
    85098543    cmp ax, strict word 00003h                ; 3d 03 00
    8510     je short 05fabh                           ; 74 48
     8544    je short 05fe9h                           ; 74 48
    85118545    cmp ax, strict word 00002h                ; 3d 02 00
    8512     je short 05f8eh                           ; 74 26
    8513     jmp short 05fb8h                          ; eb 4e
     8546    je short 05fcch                           ; 74 26
     8547    jmp short 05ff6h                          ; eb 4e
    85148548    test ax, ax                               ; 85 c0
    8515     jne short 05fb8h                          ; 75 4a
     8549    jne short 05ff6h                          ; 75 4a
    85168550    xor ax, ax                                ; 31 c0
    8517     call 05e4bh                               ; e8 d8 fe
     8551    call 05e89h                               ; e8 d8 fe
    85188552    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    85198553    mov byte [bp+013h], 000h                  ; c6 46 13 00
    8520     jmp near 05fe3h                           ; e9 65 00
     8554    jmp near 06021h                           ; e9 65 00
    85218555    mov ax, strict word 00001h                ; b8 01 00
    8522     call 05e4bh                               ; e8 c7 fe
     8556    call 05e89h                               ; e8 c7 fe
    85238557    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    85248558    mov byte [bp+013h], dh                    ; 88 76 13
    8525     jmp near 05fe3h                           ; e9 55 00
     8559    jmp near 06021h                           ; e9 55 00
    85268560    mov dx, 00092h                            ; ba 92 00
    85278561    in AL, DX                                 ; ec
     
    85358569    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    85368570    mov byte [bp+013h], ah                    ; 88 66 13
    8537     jmp near 05fe3h                           ; e9 38 00
     8571    jmp near 06021h                           ; e9 38 00
    85388572    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    85398573    mov byte [bp+013h], ah                    ; 88 66 13
    85408574    mov word [bp+00ch], ax                    ; 89 46 0c
    8541     jmp near 05fe3h                           ; e9 2b 00
     8575    jmp near 06021h                           ; e9 2b 00
    85428576    mov bx, 00da2h                            ; bb a2 0d
    85438577    mov cx, ds                                ; 8c d9
    85448578    mov ax, strict word 00004h                ; b8 04 00
    8545     call 018e1h                               ; e8 1e b9
     8579    call 01931h                               ; e8 30 b9
    85468580    mov ax, word [bp+012h]                    ; 8b 46 12
    85478581    xor ah, ah                                ; 30 e4
     
    85498583    push 00836h                               ; 68 36 08
    85508584    push strict byte 00004h                   ; 6a 04
    8551     call 01922h                               ; e8 51 b9
     8585    call 01972h                               ; e8 63 b9
    85528586    add sp, strict byte 00006h                ; 83 c4 06
    85538587    or byte [bp+018h], 001h                   ; 80 4e 18 01
     
    85628596    retn                                      ; c3
    85638597    mov word [bp+018h], bx                    ; 89 5e 18
    8564     jmp near 06096h                           ; e9 a6 00
     8598    jmp near 060d4h                           ; e9 a6 00
    85658599    mov word [bp+018h], bx                    ; 89 5e 18
    8566     jmp short 05fe3h                          ; eb ee
     8600    jmp short 06021h                          ; eb ee
    85678601    mov word [bp+018h], cx                    ; 89 4e 18
    8568     jmp short 05fe0h                          ; eb e6
     8602    jmp short 0601eh                          ; eb e6
    85698603    test byte [bp+012h], 0ffh                 ; f6 46 12 ff
    8570     je short 0606ch                           ; 74 6c
     8604    je short 060aah                           ; 74 6c
    85718605    mov dx, 000a0h                            ; ba a0 00
    85728606    mov ax, strict word 00040h                ; b8 40 00
    8573     call 01600h                               ; e8 f7 b5
     8607    call 01650h                               ; e8 09 b6
    85748608    test AL, strict byte 001h                 ; a8 01
    8575     jne near 06342h                           ; 0f 85 33 03
     8609    jne near 06380h                           ; 0f 85 33 03
    85768610    mov bx, strict word 00001h                ; bb 01 00
    85778611    mov dx, 000a0h                            ; ba a0 00
    85788612    mov ax, strict word 00040h                ; b8 40 00
    8579     call 0160eh                               ; e8 f3 b5
     8613    call 0165eh                               ; e8 05 b6
    85808614    mov bx, word [bp+014h]                    ; 8b 5e 14
    85818615    mov dx, 00098h                            ; ba 98 00
    85828616    mov ax, strict word 00040h                ; b8 40 00
    8583     call 0162ah                               ; e8 03 b6
     8617    call 0167ah                               ; e8 15 b6
    85848618    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    85858619    mov dx, 0009ah                            ; ba 9a 00
    85868620    mov ax, strict word 00040h                ; b8 40 00
    8587     call 0162ah                               ; e8 f7 b5
     8621    call 0167ah                               ; e8 09 b6
    85888622    mov bx, word [bp+00eh]                    ; 8b 5e 0e
    85898623    mov dx, 0009ch                            ; ba 9c 00
    85908624    mov ax, strict word 00040h                ; b8 40 00
    8591     call 0162ah                               ; e8 eb b5
     8625    call 0167ah                               ; e8 fd b5
    85928626    mov bx, word [bp+010h]                    ; 8b 5e 10
    85938627    mov dx, 0009eh                            ; ba 9e 00
    85948628    mov ax, strict word 00040h                ; b8 40 00
    8595     call 0162ah                               ; e8 df b5
     8629    call 0167ah                               ; e8 f1 b5
    85968630    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    85978631    mov dx, 000a1h                            ; ba a1 00
     
    86028636    out DX, AL                                ; ee
    86038637    mov ax, strict word 0000bh                ; b8 0b 00
    8604     call 0165ch                               ; e8 fe b5
     8638    call 016ach                               ; e8 10 b6
    86058639    or AL, strict byte 040h                   ; 0c 40
    86068640    movzx dx, al                              ; 0f b6 d0
    86078641    mov ax, strict word 0000bh                ; b8 0b 00
    8608     call 01679h                               ; e8 10 b6
    8609     jmp near 05fe3h                           ; e9 77 ff
     8642    call 016c9h                               ; e8 22 b6
     8643    jmp near 06021h                           ; e9 77 ff
    86108644    cmp ax, strict word 00001h                ; 3d 01 00
    8611     jne short 0608ah                          ; 75 19
     8645    jne short 060c8h                          ; 75 19
    86128646    xor bx, bx                                ; 31 db
    86138647    mov dx, 000a0h                            ; ba a0 00
    86148648    mov ax, strict word 00040h                ; b8 40 00
    8615     call 0160eh                               ; e8 92 b5
     8649    call 0165eh                               ; e8 a4 b5
    86168650    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    86178651    mov ax, strict word 0000bh                ; b8 0b 00
    8618     call 0165ch                               ; e8 d6 b5
     8652    call 016ach                               ; e8 e8 b5
    86198653    and AL, strict byte 0bfh                  ; 24 bf
    8620     jmp short 06060h                          ; eb d6
     8654    jmp short 0609eh                          ; eb d6
    86218655    mov word [bp+018h], bx                    ; 89 5e 18
    86228656    mov ax, dx                                ; 89 d0
     
    86268660    or dx, ax                                 ; 09 c2
    86278661    mov word [bp+012h], dx                    ; 89 56 12
    8628     jmp near 05fe3h                           ; e9 47 ff
     8662    jmp near 06021h                           ; e9 47 ff
    86298663    cli                                       ; fa
    86308664    mov ax, strict word 00001h                ; b8 01 00
    8631     call 05e4bh                               ; e8 a8 fd
     8665    call 05e89h                               ; e8 a8 fd
    86328666    mov di, ax                                ; 89 c7
    86338667    mov ax, word [bp+014h]                    ; 8b 46 14
     
    86398673    mov byte [bp-006h], dl                    ; 88 56 fa
    86408674    cmp cx, ax                                ; 39 c1
    8641     jnc short 060c2h                          ; 73 05
     8675    jnc short 06100h                          ; 73 05
    86428676    db  0feh, 0c2h
    86438677    ; inc dl                                    ; fe c2
     
    86478681    mov ax, word [bp+014h]                    ; 8b 46 14
    86488682    mov bx, strict word 0002fh                ; bb 2f 00
    8649     call 0162ah                               ; e8 59 b5
     8683    call 0167ah                               ; e8 6b b5
    86508684    mov dx, word [bp+006h]                    ; 8b 56 06
    86518685    add dx, strict byte 0000ah                ; 83 c2 0a
    86528686    mov ax, word [bp+014h]                    ; 8b 46 14
    86538687    mov bx, cx                                ; 89 cb
    8654     call 0162ah                               ; e8 4b b5
     8688    call 0167ah                               ; e8 5d b5
    86558689    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    86568690    mov dx, word [bp+006h]                    ; 8b 56 06
    86578691    add dx, strict byte 0000ch                ; 83 c2 0c
    86588692    mov ax, word [bp+014h]                    ; 8b 46 14
    8659     call 0160eh                               ; e8 1f b5
     8693    call 0165eh                               ; e8 31 b5
    86608694    mov dx, word [bp+006h]                    ; 8b 56 06
    86618695    add dx, strict byte 0000dh                ; 83 c2 0d
    86628696    mov ax, word [bp+014h]                    ; 8b 46 14
    86638697    mov bx, 00093h                            ; bb 93 00
    8664     call 0160eh                               ; e8 10 b5
     8698    call 0165eh                               ; e8 22 b5
    86658699    mov dx, word [bp+006h]                    ; 8b 56 06
    86668700    add dx, strict byte 0000eh                ; 83 c2 0e
    86678701    mov ax, word [bp+014h]                    ; 8b 46 14
    86688702    xor bx, bx                                ; 31 db
    8669     call 0162ah                               ; e8 1e b5
     8703    call 0167ah                               ; e8 30 b5
    86708704    mov dx, word [bp+006h]                    ; 8b 56 06
    86718705    add dx, strict byte 00020h                ; 83 c2 20
    86728706    mov ax, word [bp+014h]                    ; 8b 46 14
    86738707    mov bx, strict word 0ffffh                ; bb ff ff
    8674     call 0162ah                               ; e8 0f b5
     8708    call 0167ah                               ; e8 21 b5
    86758709    mov dx, word [bp+006h]                    ; 8b 56 06
    86768710    add dx, strict byte 00022h                ; 83 c2 22
    86778711    mov ax, word [bp+014h]                    ; 8b 46 14
    86788712    xor bx, bx                                ; 31 db
    8679     call 0162ah                               ; e8 01 b5
     8713    call 0167ah                               ; e8 13 b5
    86808714    mov dx, word [bp+006h]                    ; 8b 56 06
    86818715    add dx, strict byte 00024h                ; 83 c2 24
    86828716    mov ax, word [bp+014h]                    ; 8b 46 14
    86838717    mov bx, strict word 0000fh                ; bb 0f 00
    8684     call 0160eh                               ; e8 d6 b4
     8718    call 0165eh                               ; e8 e8 b4
    86858719    mov dx, word [bp+006h]                    ; 8b 56 06
    86868720    add dx, strict byte 00025h                ; 83 c2 25
    86878721    mov ax, word [bp+014h]                    ; 8b 46 14
    86888722    mov bx, 0009bh                            ; bb 9b 00
    8689     call 0160eh                               ; e8 c7 b4
     8723    call 0165eh                               ; e8 d9 b4
    86908724    mov dx, word [bp+006h]                    ; 8b 56 06
    86918725    add dx, strict byte 00026h                ; 83 c2 26
    86928726    mov ax, word [bp+014h]                    ; 8b 46 14
    86938727    xor bx, bx                                ; 31 db
    8694     call 0162ah                               ; e8 d5 b4
     8728    call 0167ah                               ; e8 e7 b4
    86958729    mov ax, ss                                ; 8c d0
    86968730    mov cx, ax                                ; 89 c1
     
    87028736    mov ax, word [bp+014h]                    ; 8b 46 14
    87038737    mov bx, strict word 0ffffh                ; bb ff ff
    8704     call 0162ah                               ; e8 b9 b4
     8738    call 0167ah                               ; e8 cb b4
    87058739    mov dx, word [bp+006h]                    ; 8b 56 06
    87068740    add dx, strict byte 0002ah                ; 83 c2 2a
    87078741    mov ax, word [bp+014h]                    ; 8b 46 14
    87088742    mov bx, cx                                ; 89 cb
    8709     call 0162ah                               ; e8 ab b4
     8743    call 0167ah                               ; e8 bd b4
    87108744    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
    87118745    mov dx, word [bp+006h]                    ; 8b 56 06
    87128746    add dx, strict byte 0002ch                ; 83 c2 2c
    87138747    mov ax, word [bp+014h]                    ; 8b 46 14
    8714     call 0160eh                               ; e8 7f b4
     8748    call 0165eh                               ; e8 91 b4
    87158749    mov dx, word [bp+006h]                    ; 8b 56 06
    87168750    add dx, strict byte 0002dh                ; 83 c2 2d
    87178751    mov ax, word [bp+014h]                    ; 8b 46 14
    87188752    mov bx, 00093h                            ; bb 93 00
    8719     call 0160eh                               ; e8 70 b4
     8753    call 0165eh                               ; e8 82 b4
    87208754    mov dx, word [bp+006h]                    ; 8b 56 06
    87218755    add dx, strict byte 0002eh                ; 83 c2 2e
    87228756    mov ax, word [bp+014h]                    ; 8b 46 14
    87238757    xor bx, bx                                ; 31 db
    8724     call 0162ah                               ; e8 7e b4
     8758    call 0167ah                               ; e8 90 b4
    87258759    mov si, word [bp+006h]                    ; 8b 76 06
    87268760    mov es, [bp+014h]                         ; 8e 46 14
     
    87338767    mov word [00467h], sp                     ; 89 26 67 04
    87348768    mov [00469h], ss                          ; 8c 16 69 04
    8735     call 061c8h                               ; e8 00 00
     8769    call 06206h                               ; e8 00 00
    87368770    pop di                                    ; 5f
    87378771    add di, strict byte 0001bh                ; 83 c7 1b
     
    87568790    cld                                       ; fc
    87578791    rep movsw                                 ; f3 a5
    8758     call 061fch                               ; e8 00 00
     8792    call 0623ah                               ; e8 00 00
    87598793    pop ax                                    ; 58
    87608794    push 0f000h                               ; 68 00 f0
     
    87778811    pop DS                                    ; 1f
    87788812    mov ax, di                                ; 89 f8
    8779     call 05e4bh                               ; e8 1e fc
     8813    call 05e89h                               ; e8 1e fc
    87808814    sti                                       ; fb
    87818815    mov byte [bp+013h], 000h                  ; c6 46 13 00
    87828816    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    8783     jmp near 05fe3h                           ; e9 aa fd
     8817    jmp near 06021h                           ; e9 aa fd
    87848818    mov ax, strict word 00031h                ; b8 31 00
    8785     call 0165ch                               ; e8 1d b4
     8819    call 016ach                               ; e8 2f b4
    87868820    xor ah, ah                                ; 30 e4
    87878821    mov dx, ax                                ; 89 c2
    87888822    sal dx, 008h                              ; c1 e2 08
    87898823    mov ax, strict word 00030h                ; b8 30 00
    8790     call 0165ch                               ; e8 10 b4
     8824    call 016ach                               ; e8 22 b4
    87918825    xor ah, ah                                ; 30 e4
    87928826    or dx, ax                                 ; 09 c2
    87938827    mov word [bp+012h], dx                    ; 89 56 12
    87948828    cmp dx, strict byte 0ffc0h                ; 83 fa c0
    8795     jbe short 06232h                          ; 76 da
     8829    jbe short 06270h                          ; 76 da
    87968830    mov word [bp+012h], strict word 0ffc0h    ; c7 46 12 c0 ff
    8797     jmp short 06232h                          ; eb d3
     8831    jmp short 06270h                          ; eb d3
    87988832    cli                                       ; fa
    87998833    mov ax, strict word 00001h                ; b8 01 00
    8800     call 05e4bh                               ; e8 e5 fb
     8834    call 05e89h                               ; e8 e5 fb
    88018835    mov dx, word [bp+006h]                    ; 8b 56 06
    88028836    add dx, strict byte 00038h                ; 83 c2 38
    88038837    mov ax, word [bp+014h]                    ; 8b 46 14
    88048838    mov bx, strict word 0ffffh                ; bb ff ff
    8805     call 0162ah                               ; e8 b5 b3
     8839    call 0167ah                               ; e8 c7 b3
    88068840    mov dx, word [bp+006h]                    ; 8b 56 06
    88078841    add dx, strict byte 0003ah                ; 83 c2 3a
    88088842    mov ax, word [bp+014h]                    ; 8b 46 14
    88098843    xor bx, bx                                ; 31 db
    8810     call 0162ah                               ; e8 a7 b3
     8844    call 0167ah                               ; e8 b9 b3
    88118845    mov dx, word [bp+006h]                    ; 8b 56 06
    88128846    add dx, strict byte 0003ch                ; 83 c2 3c
    88138847    mov ax, word [bp+014h]                    ; 8b 46 14
    88148848    mov bx, strict word 0000fh                ; bb 0f 00
    8815     call 0160eh                               ; e8 7c b3
     8849    call 0165eh                               ; e8 8e b3
    88168850    mov dx, word [bp+006h]                    ; 8b 56 06
    88178851    add dx, strict byte 0003dh                ; 83 c2 3d
    88188852    mov ax, word [bp+014h]                    ; 8b 46 14
    88198853    mov bx, 0009bh                            ; bb 9b 00
    8820     call 0160eh                               ; e8 6d b3
     8854    call 0165eh                               ; e8 7f b3
    88218855    mov dx, word [bp+006h]                    ; 8b 56 06
    88228856    add dx, strict byte 0003eh                ; 83 c2 3e
    88238857    mov ax, word [bp+014h]                    ; 8b 46 14
    88248858    xor bx, bx                                ; 31 db
    8825     call 0162ah                               ; e8 7b b3
     8859    call 0167ah                               ; e8 8d b3
    88268860    mov AL, strict byte 011h                  ; b0 11
    88278861    mov dx, strict word 00020h                ; ba 20 00
     
    88538887    out DX, AL                                ; ee
    88548888    mov si, word [bp+006h]                    ; 8b 76 06
    8855     call 062f0h                               ; e8 00 00
     8889    call 0632eh                               ; e8 00 00
    88568890    pop di                                    ; 5f
    88578891    add di, strict byte 00018h                ; 83 c7 18
     
    88818915    push cx                                   ; 51
    88828916    retf                                      ; cb
    8883     jmp near 05fe3h                           ; e9 b7 fc
     8917    jmp near 06021h                           ; e9 b7 fc
    88848918    mov bx, 00da2h                            ; bb a2 0d
    88858919    mov cx, ds                                ; 8c d9
    88868920    mov ax, strict word 00004h                ; b8 04 00
    8887     call 018e1h                               ; e8 aa b5
     8921    call 01931h                               ; e8 bc b5
    88888922    push 00876h                               ; 68 76 08
    88898923    push strict byte 00004h                   ; 6a 04
    8890     call 01922h                               ; e8 e3 b5
     8924    call 01972h                               ; e8 f5 b5
    88918925    add sp, strict byte 00004h                ; 83 c4 04
    88928926    or byte [bp+018h], 001h                   ; 80 4e 18 01
     
    88958929    or ah, 086h                               ; 80 cc 86
    88968930    mov word [bp+012h], ax                    ; 89 46 12
    8897     jmp near 05fe3h                           ; e9 8f fc
     8931    jmp near 06021h                           ; e9 8f fc
    88988932    mov word [bp+018h], cx                    ; 89 4e 18
    88998933    mov word [bp+012h], ax                    ; 89 46 12
    89008934    mov word [bp+00ch], 0e6f5h                ; c7 46 0c f5 e6
    89018935    mov word [bp+014h], 0f000h                ; c7 46 14 00 f0
    8902     jmp near 05fe3h                           ; e9 7c fc
     8936    jmp near 06021h                           ; e9 7c fc
    89038937    mov dx, strict word 0000eh                ; ba 0e 00
    89048938    mov ax, strict word 00040h                ; b8 40 00
    8905     call 0161ch                               ; e8 ac b2
     8939    call 0166ch                               ; e8 be b2
    89068940    mov word [bp+014h], ax                    ; 89 46 14
    8907     jmp near 06232h                           ; e9 bc fe
     8941    jmp near 06270h                           ; e9 bc fe
    89088942    push 008a5h                               ; 68 a5 08
    89098943    push strict byte 00008h                   ; 6a 08
    8910     jmp short 0633ch                          ; eb bf
     8944    jmp short 0637ah                          ; eb bf
    89118945    test byte [bp+012h], 0ffh                 ; f6 46 12 ff
    8912     jne short 063a2h                          ; 75 1f
     8946    jne short 063e0h                          ; 75 1f
    89138947    mov word [bp+012h], ax                    ; 89 46 12
    89148948    mov ax, word [bp+00ch]                    ; 8b 46 0c
    89158949    xor ah, ah                                ; 30 e4
    89168950    cmp ax, strict word 00001h                ; 3d 01 00
    8917     jc short 0639bh                           ; 72 0b
     8951    jc short 063d9h                           ; 72 0b
    89188952    cmp ax, strict word 00003h                ; 3d 03 00
    8919     jnbe short 0639bh                         ; 77 06
     8953    jnbe short 063d9h                         ; 77 06
    89208954    mov word [bp+018h], cx                    ; 89 4e 18
    8921     jmp near 05fe3h                           ; e9 48 fc
     8955    jmp near 06021h                           ; e9 48 fc
    89228956    or byte [bp+018h], 001h                   ; 80 4e 18 01
    8923     jmp near 05fe3h                           ; e9 41 fc
     8957    jmp near 06021h                           ; e9 41 fc
    89248958    mov bx, 00da2h                            ; bb a2 0d
    89258959    mov cx, ds                                ; 8c d9
    89268960    mov ax, strict word 00004h                ; b8 04 00
    8927     call 018e1h                               ; e8 34 b5
     8961    call 01931h                               ; e8 46 b5
    89288962    push word [bp+00ch]                       ; ff 76 0c
    89298963    push word [bp+012h]                       ; ff 76 12
    89308964    push 008bch                               ; 68 bc 08
    89318965    push strict byte 00004h                   ; 6a 04
    8932     call 01922h                               ; e8 67 b5
     8966    call 01972h                               ; e8 79 b5
    89338967    add sp, strict byte 00008h                ; 83 c4 08
    8934     jmp short 06342h                          ; eb 82
    8935     jns short 06427h                          ; 79 65
    8936     wait                                      ; 9b
    8937     db  065h, 0beh, 065h, 0e0h
    8938     ; gs mov si, 0e065h                         ; 65 be 65 e0
    8939     add byte [gs:bp+021h], ah                 ; 65 00 66 21
    8940     pushad                                    ; 66 60
    8941     db  066h
    8942     db  08ch
    8943     db  066h
    8944 _int15_function32:                           ; 0xf63d0 LB 0x37e
     8968    jmp short 06380h                          ; eb 82
     8969    mov BH, strict byte 065h                  ; b7 65
     8970    fldenv [di-004h]                          ; d9 65 fc
     8971    db  065h, 01eh
     8972    ; gs push DS                                ; 65 1e
     8973    db  066h, 03eh, 066h, 05fh
     8974    ; ds pop edi                                ; 66 3e 66 5f
     8975    db  066h, 09eh, 066h, 0cah, 066h
     8976_int15_function32:                           ; 0xf640e LB 0x37e
    89458977    push bp                                   ; 55
    89468978    mov bp, sp                                ; 89 e5
     
    89548986    xor ah, ah                                ; 30 e4
    89558987    cmp dx, 000e8h                            ; 81 fa e8 00
    8956     je near 0649dh                            ; 0f 84 ad 00
     8988    je near 064dbh                            ; 0f 84 ad 00
    89578989    cmp dx, 000d0h                            ; 81 fa d0 00
    8958     je short 06438h                           ; 74 42
     8990    je short 06476h                           ; 74 42
    89598991    cmp dx, 00086h                            ; 81 fa 86 00
    8960     jne near 0671eh                           ; 0f 85 20 03
     8992    jne near 0675ch                           ; 0f 85 20 03
    89618993    sti                                       ; fb
    89628994    mov ax, word [bp+01ch]                    ; 8b 46 1c
     
    89779009    db  066h, 00bh, 0c9h
    89789010    ; or ecx, ecx                               ; 66 0b c9
    8979     je near 06435h                            ; 0f 84 0e 00
     9011    je near 06473h                            ; 0f 84 0e 00
    89809012    in AL, strict byte 061h                   ; e4 61
    89819013    and AL, strict byte 010h                  ; 24 10
    89829014    db  03ah, 0c4h
    89839015    ; cmp al, ah                                ; 3a c4
    8984     je short 06427h                           ; 74 f8
     9016    je short 06465h                           ; 74 f8
    89859017    db  08ah, 0e0h
    89869018    ; mov ah, al                                ; 8a e0
    89879019    dec ecx                                   ; 66 49
    8988     jne short 06427h                          ; 75 f2
    8989     jmp near 06748h                           ; e9 10 03
     9020    jne short 06465h                          ; 75 f2
     9021    jmp near 06786h                           ; e9 10 03
    89909022    cmp ax, strict word 0004fh                ; 3d 4f 00
    8991     jne near 0671eh                           ; 0f 85 df 02
     9023    jne near 0675ch                           ; 0f 85 df 02
    89929024    cmp word [bp+016h], 05052h                ; 81 7e 16 52 50
    8993     jne near 0671eh                           ; 0f 85 d6 02
     9025    jne near 0675ch                           ; 0f 85 d6 02
    89949026    cmp word [bp+014h], 04f43h                ; 81 7e 14 43 4f
    8995     jne near 0671eh                           ; 0f 85 cd 02
     9027    jne near 0675ch                           ; 0f 85 cd 02
    89969028    cmp word [bp+01eh], 04d4fh                ; 81 7e 1e 4f 4d
    8997     jne near 0671eh                           ; 0f 85 c4 02
     9029    jne near 0675ch                           ; 0f 85 c4 02
    89989030    cmp word [bp+01ch], 04445h                ; 81 7e 1c 45 44
    8999     jne near 0671eh                           ; 0f 85 bb 02
     9031    jne near 0675ch                           ; 0f 85 bb 02
    90009032    mov ax, word [bp+00ah]                    ; 8b 46 0a
    90019033    or ax, word [bp+008h]                     ; 0b 46 08
    9002     jne near 0671eh                           ; 0f 85 b1 02
     9034    jne near 0675ch                           ; 0f 85 b1 02
    90039035    mov ax, word [bp+006h]                    ; 8b 46 06
    90049036    or ax, word [bp+004h]                     ; 0b 46 04
    9005     jne near 0671eh                           ; 0f 85 a7 02
     9037    jne near 0675ch                           ; 0f 85 a7 02
    90069038    mov word [bp+028h], bx                    ; 89 5e 28
    90079039    mov ax, word [bp+014h]                    ; 8b 46 14
     
    90149046    mov word [bp+006h], ax                    ; 89 46 06
    90159047    mov dword [bp+020h], strict dword 049413332h ; 66 c7 46 20 32 33 41 49
    9016     jmp near 06748h                           ; e9 ab 02
     9048    jmp near 06786h                           ; e9 ab 02
    90179049    cmp ax, strict word 00020h                ; 3d 20 00
    9018     je short 064ach                           ; 74 0a
     9050    je short 064eah                           ; 74 0a
    90199051    cmp ax, strict word 00001h                ; 3d 01 00
    9020     je near 066d3h                            ; 0f 84 2a 02
    9021     jmp near 0671eh                           ; e9 72 02
     9052    je near 06711h                            ; 0f 84 2a 02
     9053    jmp near 0675ch                           ; e9 72 02
    90229054    cmp word [bp+01ah], 0534dh                ; 81 7e 1a 4d 53
    9023     jne near 0671eh                           ; 0f 85 69 02
     9055    jne near 0675ch                           ; 0f 85 69 02
    90249056    cmp word [bp+018h], 04150h                ; 81 7e 18 50 41
    9025     jne near 0671eh                           ; 0f 85 60 02
     9057    jne near 0675ch                           ; 0f 85 60 02
    90269058    mov ax, strict word 00035h                ; b8 35 00
    9027     call 0165ch                               ; e8 98 b1
     9059    call 016ach                               ; e8 aa b1
    90289060    movzx bx, al                              ; 0f b6 d8
    90299061    xor dx, dx                                ; 31 d2
     
    90319063    sal bx, 1                                 ; d1 e3
    90329064    rcl dx, 1                                 ; d1 d2
    9033     loop 064cch                               ; e2 fa
     9065    loop 0650ah                               ; e2 fa
    90349066    mov ax, strict word 00034h                ; b8 34 00
    9035     call 0165ch                               ; e8 84 b1
     9067    call 016ach                               ; e8 96 b1
    90369068    xor ah, ah                                ; 30 e4
    90379069    mov dx, bx                                ; 89 da
     
    90419073    adc dx, 00100h                            ; 81 d2 00 01
    90429074    cmp dx, 00100h                            ; 81 fa 00 01
    9043     jc short 064f2h                           ; 72 06
    9044     jne short 0651fh                          ; 75 31
     9075    jc short 06530h                           ; 72 06
     9076    jne short 0655dh                          ; 75 31
    90459077    test bx, bx                               ; 85 db
    9046     jnbe short 0651fh                         ; 77 2d
     9078    jnbe short 0655dh                         ; 77 2d
    90479079    mov ax, strict word 00031h                ; b8 31 00
    9048     call 0165ch                               ; e8 64 b1
     9080    call 016ach                               ; e8 76 b1
    90499081    movzx bx, al                              ; 0f b6 d8
    90509082    xor dx, dx                                ; 31 d2
     
    90529084    sal bx, 1                                 ; d1 e3
    90539085    rcl dx, 1                                 ; d1 d2
    9054     loop 06500h                               ; e2 fa
     9086    loop 0653eh                               ; e2 fa
    90559087    mov ax, strict word 00030h                ; b8 30 00
    9056     call 0165ch                               ; e8 50 b1
     9088    call 016ach                               ; e8 62 b1
    90579089    xor ah, ah                                ; 30 e4
    90589090    or bx, ax                                 ; 09 c3
     
    90609092    sal bx, 1                                 ; d1 e3
    90619093    rcl dx, 1                                 ; d1 d2
    9062     loop 06513h                               ; e2 fa
     9094    loop 06551h                               ; e2 fa
    90639095    add bx, strict byte 00000h                ; 83 c3 00
    90649096    adc dx, strict byte 00010h                ; 83 d2 10
    90659097    mov ax, strict word 00062h                ; b8 62 00
    9066     call 0165ch                               ; e8 37 b1
     9098    call 016ach                               ; e8 49 b1
    90679099    xor ah, ah                                ; 30 e4
    90689100    mov word [bp-00ah], ax                    ; 89 46 f6
     
    90729104    sal word [bp-00ah], 1                     ; d1 66 f6
    90739105    rcl word [bp-008h], 1                     ; d1 56 f8
    9074     loop 06532h                               ; e2 f8
     9106    loop 06570h                               ; e2 f8
    90759107    mov ax, strict word 00061h                ; b8 61 00
    9076     call 0165ch                               ; e8 1c b1
     9108    call 016ach                               ; e8 2e b1
    90779109    xor ah, ah                                ; 30 e4
    90789110    or word [bp-00ah], ax                     ; 09 46 f6
     
    90819113    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
    90829114    mov ax, strict word 00063h                ; b8 63 00
    9083     call 0165ch                               ; e8 06 b1
     9115    call 016ach                               ; e8 18 b1
    90849116    mov byte [bp-004h], al                    ; 88 46 fc
    90859117    mov byte [bp-006h], al                    ; 88 46 fa
    90869118    mov ax, word [bp+014h]                    ; 8b 46 14
    90879119    cmp ax, strict word 00007h                ; 3d 07 00
    9088     jnbe near 0671eh                          ; 0f 87 b8 01
     9120    jnbe near 0675ch                          ; 0f 87 b8 01
    90899121    mov si, ax                                ; 89 c6
    90909122    add si, ax                                ; 01 c6
     
    90939125    mov ax, dx                                ; 89 d0
    90949126    adc ax, strict word 0ffffh                ; 15 ff ff
    9095     jmp word [cs:si+063c0h]                   ; 2e ff a4 c0 63
     9127    jmp word [cs:si+063feh]                   ; 2e ff a4 fe 63
    90969128    push strict byte 00001h                   ; 6a 01
    90979129    push dword 000000000h                     ; 66 6a 00
     
    91029134    xor bx, bx                                ; 31 db
    91039135    xor cx, cx                                ; 31 c9
    9104     call 05e77h                               ; e8 e7 f8
     9136    call 05eb5h                               ; e8 e7 f8
    91059137    mov dword [bp+014h], strict dword 000000001h ; 66 c7 46 14 01 00 00 00
    9106     jmp near 066bdh                           ; e9 22 01
     9138    jmp near 066fbh                           ; e9 22 01
    91079139    push strict byte 00002h                   ; 6a 02
    91089140    push dword 000000000h                     ; 66 6a 00
     
    91139145    mov bx, 0fc00h                            ; bb 00 fc
    91149146    mov cx, strict word 00009h                ; b9 09 00
    9115     call 05e77h                               ; e8 c4 f8
     9147    call 05eb5h                               ; e8 c4 f8
    91169148    mov dword [bp+014h], strict dword 000000002h ; 66 c7 46 14 02 00 00 00
    9117     jmp near 066bdh                           ; e9 ff 00
     9149    jmp near 066fbh                           ; e9 ff 00
    91189150    push strict byte 00002h                   ; 6a 02
    91199151    push dword 000000000h                     ; 66 6a 00
     
    91249156    xor bx, bx                                ; 31 db
    91259157    mov cx, strict word 0000fh                ; b9 0f 00
    9126     call 05e77h                               ; e8 a2 f8
     9158    call 05eb5h                               ; e8 a2 f8
    91279159    mov dword [bp+014h], strict dword 000000003h ; 66 c7 46 14 03 00 00 00
    9128     jmp near 066bdh                           ; e9 dd 00
     9160    jmp near 066fbh                           ; e9 dd 00
    91299161    push strict byte 00001h                   ; 6a 01
    91309162    push dword 000000000h                     ; 66 6a 00
     
    91359167    xor bx, bx                                ; 31 db
    91369168    mov cx, strict word 00010h                ; b9 10 00
    9137     call 05e77h                               ; e8 82 f8
     9169    call 05eb5h                               ; e8 82 f8
    91389170    mov dword [bp+014h], strict dword 000000004h ; 66 c7 46 14 04 00 00 00
    9139     jmp near 066bdh                           ; e9 bd 00
     9171    jmp near 066fbh                           ; e9 bd 00
    91409172    push strict byte 00003h                   ; 6a 03
    91419173    push dword 000000000h                     ; 66 6a 00
     
    91479179    mov cx, ax                                ; 89 c1
    91489180    mov ax, si                                ; 89 f0
    9149     call 05e77h                               ; e8 61 f8
     9181    call 05eb5h                               ; e8 61 f8
    91509182    mov dword [bp+014h], strict dword 000000005h ; 66 c7 46 14 05 00 00 00
    9151     jmp near 066bdh                           ; e9 9c 00
     9183    jmp near 066fbh                           ; e9 9c 00
    91529184    push strict byte 00002h                   ; 6a 02
    91539185    push dword 000000000h                     ; 66 6a 00
     
    91579189    xor bx, bx                                ; 31 db
    91589190    mov cx, strict word 0fffch                ; b9 fc ff
    9159     call 05e77h                               ; e8 40 f8
     9191    call 05eb5h                               ; e8 40 f8
    91609192    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    9161     jne short 06644h                          ; 75 07
     9193    jne short 06682h                          ; 75 07
    91629194    mov ax, word [bp-008h]                    ; 8b 46 f8
    91639195    test ax, ax                               ; 85 c0
    9164     je short 06658h                           ; 74 14
     9196    je short 06696h                           ; 74 14
    91659197    mov dword [bp+014h], strict dword 000000007h ; 66 c7 46 14 07 00 00 00
    9166     jmp short 066bdh                          ; eb 6f
     9198    jmp short 066fbh                          ; eb 6f
    91679199    mov dword [bp+014h], strict dword 000000006h ; 66 c7 46 14 06 00 00 00
    9168     jmp short 066bdh                          ; eb 65
     9200    jmp short 066fbh                          ; eb 65
    91699201    mov word [bp+014h], ax                    ; 89 46 14
    91709202    mov word [bp+016h], ax                    ; 89 46 16
    9171     jmp short 066bdh                          ; eb 5d
     9203    jmp short 066fbh                          ; eb 5d
    91729204    push strict byte 00002h                   ; 6a 02
    91739205    push dword 000000000h                     ; 66 6a 00
     
    91779209    xor bx, bx                                ; 31 db
    91789210    xor cx, cx                                ; 31 c9
    9179     call 05e77h                               ; e8 02 f8
     9211    call 05eb5h                               ; e8 02 f8
    91809212    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    9181     jne short 06682h                          ; 75 07
     9213    jne short 066c0h                          ; 75 07
    91829214    mov ax, word [bp-008h]                    ; 8b 46 f8
    91839215    test ax, ax                               ; 85 c0
    9184     je short 06684h                           ; 74 02
    9185     jmp short 06644h                          ; eb c0
     9216    je short 066c2h                           ; 74 02
     9217    jmp short 06682h                          ; eb c0
    91869218    mov word [bp+014h], ax                    ; 89 46 14
    91879219    mov word [bp+016h], ax                    ; 89 46 16
    9188     jmp short 066bdh                          ; eb 31
     9220    jmp short 066fbh                          ; eb 31
    91899221    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    9190     jne short 06698h                          ; 75 06
     9222    jne short 066d6h                          ; 75 06
    91919223    cmp word [bp-008h], strict byte 00000h    ; 83 7e f8 00
    9192     je short 066bdh                           ; 74 25
     9224    je short 066fbh                           ; 74 25
    91939225    push strict byte 00001h                   ; 6a 01
    91949226    mov al, byte [bp-006h]                    ; 8a 46 fa
     
    92039235    xor bx, bx                                ; 31 db
    92049236    xor cx, cx                                ; 31 c9
    9205     call 05e77h                               ; e8 c2 f7
     9237    call 05eb5h                               ; e8 c2 f7
    92069238    xor ax, ax                                ; 31 c0
    92079239    mov word [bp+014h], ax                    ; 89 46 14
     
    92109242    mov dword [bp+01ch], strict dword 000000014h ; 66 c7 46 1c 14 00 00 00
    92119243    and byte [bp+028h], 0feh                  ; 80 66 28 fe
    9212     jmp short 06748h                          ; eb 75
     9244    jmp short 06786h                          ; eb 75
    92139245    mov word [bp+028h], bx                    ; 89 5e 28
    92149246    mov ax, strict word 00031h                ; b8 31 00
    9215     call 0165ch                               ; e8 80 af
     9247    call 016ach                               ; e8 92 af
    92169248    movzx dx, al                              ; 0f b6 d0
    92179249    sal dx, 008h                              ; c1 e2 08
    92189250    mov ax, strict word 00030h                ; b8 30 00
    9219     call 0165ch                               ; e8 74 af
     9251    call 016ach                               ; e8 86 af
    92209252    xor ah, ah                                ; 30 e4
    92219253    or dx, ax                                 ; 09 c2
    92229254    mov word [bp+01ch], dx                    ; 89 56 1c
    92239255    cmp dx, 03c00h                            ; 81 fa 00 3c
    9224     jbe short 066fah                          ; 76 05
     9256    jbe short 06738h                          ; 76 05
    92259257    mov word [bp+01ch], 03c00h                ; c7 46 1c 00 3c
    92269258    mov ax, strict word 00035h                ; b8 35 00
    9227     call 0165ch                               ; e8 5c af
     9259    call 016ach                               ; e8 6e af
    92289260    movzx dx, al                              ; 0f b6 d0
    92299261    sal dx, 008h                              ; c1 e2 08
    92309262    mov ax, strict word 00034h                ; b8 34 00
    9231     call 0165ch                               ; e8 50 af
     9263    call 016ach                               ; e8 62 af
    92329264    xor ah, ah                                ; 30 e4
    92339265    or dx, ax                                 ; 09 c2
     
    92369268    mov word [bp+020h], ax                    ; 89 46 20
    92379269    mov word [bp+014h], dx                    ; 89 56 14
    9238     jmp short 06748h                          ; eb 2a
     9270    jmp short 06786h                          ; eb 2a
    92399271    mov bx, 00da2h                            ; bb a2 0d
    92409272    mov cx, ds                                ; 8c d9
    92419273    mov ax, strict word 00004h                ; b8 04 00
    9242     call 018e1h                               ; e8 b8 b1
     9274    call 01931h                               ; e8 ca b1
    92439275    push word [bp+014h]                       ; ff 76 14
    92449276    push word [bp+020h]                       ; ff 76 20
    92459277    push 008bch                               ; 68 bc 08
    92469278    push strict byte 00004h                   ; 6a 04
    9247     call 01922h                               ; e8 eb b1
     9279    call 01972h                               ; e8 fd b1
    92489280    add sp, strict byte 00008h                ; 83 c4 08
    92499281    or byte [bp+028h], 001h                   ; 80 4e 28 01
     
    92569288    pop bp                                    ; 5d
    92579289    retn                                      ; c3
    9258 _inv_op_handler:                             ; 0xf674e LB 0x195
     9290_inv_op_handler:                             ; 0xf678c LB 0x195
    92599291    push bp                                   ; 55
    92609292    mov bp, sp                                ; 89 e5
     
    92659297    les bx, [bp+018h]                         ; c4 5e 18
    92669298    cmp byte [es:bx], 0f0h                    ; 26 80 3f f0
    9267     jne short 06764h                          ; 75 06
     9299    jne short 067a2h                          ; 75 06
    92689300    inc word [bp+018h]                        ; ff 46 18
    9269     jmp near 068dch                           ; e9 78 01
     9301    jmp near 0691ah                           ; e9 78 01
    92709302    cmp word [es:bx], 0050fh                  ; 26 81 3f 0f 05
    9271     jne near 068d8h                           ; 0f 85 6b 01
     9303    jne near 06916h                           ; 0f 85 6b 01
    92729304    mov si, 00800h                            ; be 00 08
    92739305    xor ax, ax                                ; 31 c0
     
    92979329    sal ax, 1                                 ; d1 e0
    92989330    rcl dx, 1                                 ; d1 d2
    9299     loop 067bdh                               ; e2 fa
     9331    loop 067fbh                               ; e2 fa
    93009332    cmp bx, dx                                ; 39 d3
    9301     jne short 067cbh                          ; 75 04
     9333    jne short 06809h                          ; 75 04
    93029334    cmp di, ax                                ; 39 c7
    9303     je short 067d0h                           ; 74 05
     9335    je short 0680eh                           ; 74 05
    93049336    mov word [bp-008h], strict word 00001h    ; c7 46 f8 01 00
    93059337    mov es, [bp-006h]                         ; 8e 46 fa
     
    93119343    sal ax, 1                                 ; d1 e0
    93129344    rcl dx, 1                                 ; d1 d2
    9313     loop 067e5h                               ; e2 fa
     9345    loop 06823h                               ; e2 fa
    93149346    cmp di, dx                                ; 39 d7
    9315     jne short 067f3h                          ; 75 04
     9347    jne short 06831h                          ; 75 04
    93169348    cmp bx, ax                                ; 39 c3
    9317     je short 067f7h                           ; 74 04
     9349    je short 06835h                           ; 74 04
    93189350    or byte [bp-008h], 002h                   ; 80 4e f8 02
    93199351    push strict byte 00000h                   ; 6a 00
     
    93659397    mov ax, strict word 00008h                ; b8 08 00
    93669398    test cx, strict word 00001h               ; f7 c1 01 00
    9367     je near 06895h                            ; 0f 84 02 00
     9399    je near 068d3h                            ; 0f 84 02 00
    93689400    mov es, ax                                ; 8e c0
    93699401    test cx, strict word 00002h               ; f7 c1 02 00
    9370     je near 068bdh                            ; 0f 84 20 00
     9402    je near 068fbh                            ; 0f 84 20 00
    93719403    mov bx, word [word ss:00000h]             ; 36 8b 1e 00 00
    93729404    mov word [word ss:00008h], bx             ; 36 89 1e 08 00
     
    93859417    mov ss, [word ss:00020h]                  ; 36 8e 16 20 00
    93869418    iret                                      ; cf
    9387     jmp short 068dch                          ; eb 04
     9419    jmp short 0691ah                          ; eb 04
    93889420    sti                                       ; fb
    93899421    hlt                                       ; f4
    9390     jmp short 068d9h                          ; eb fd
     9422    jmp short 06917h                          ; eb fd
    93919423    lea sp, [bp-004h]                         ; 8d 66 fc
    93929424    pop di                                    ; 5f
     
    93949426    pop bp                                    ; 5d
    93959427    retn                                      ; c3
    9396 init_rtc_:                                   ; 0xf68e3 LB 0x28
     9428init_rtc_:                                   ; 0xf6921 LB 0x28
    93979429    push bp                                   ; 55
    93989430    mov bp, sp                                ; 89 e5
     
    94009432    mov dx, strict word 00026h                ; ba 26 00
    94019433    mov ax, strict word 0000ah                ; b8 0a 00
    9402     call 01679h                               ; e8 89 ad
     9434    call 016c9h                               ; e8 9b ad
    94039435    mov dx, strict word 00002h                ; ba 02 00
    94049436    mov ax, strict word 0000bh                ; b8 0b 00
    9405     call 01679h                               ; e8 80 ad
     9437    call 016c9h                               ; e8 92 ad
    94069438    mov ax, strict word 0000ch                ; b8 0c 00
    9407     call 0165ch                               ; e8 5d ad
     9439    call 016ach                               ; e8 6f ad
    94089440    mov ax, strict word 0000dh                ; b8 0d 00
    9409     call 0165ch                               ; e8 57 ad
     9441    call 016ach                               ; e8 69 ad
    94109442    lea sp, [bp-002h]                         ; 8d 66 fe
    94119443    pop dx                                    ; 5a
    94129444    pop bp                                    ; 5d
    94139445    retn                                      ; c3
    9414 rtc_updating_:                               ; 0xf690b LB 0x21
     9446rtc_updating_:                               ; 0xf6949 LB 0x21
    94159447    push bp                                   ; 55
    94169448    mov bp, sp                                ; 89 e5
     
    94189450    mov dx, 061a8h                            ; ba a8 61
    94199451    dec dx                                    ; 4a
    9420     je short 06923h                           ; 74 0e
     9452    je short 06961h                           ; 74 0e
    94219453    mov ax, strict word 0000ah                ; b8 0a 00
    9422     call 0165ch                               ; e8 41 ad
     9454    call 016ach                               ; e8 53 ad
    94239455    test AL, strict byte 080h                 ; a8 80
    9424     jne short 06912h                          ; 75 f3
     9456    jne short 06950h                          ; 75 f3
    94259457    xor ax, ax                                ; 31 c0
    9426     jmp short 06926h                          ; eb 03
     9458    jmp short 06964h                          ; eb 03
    94279459    mov ax, strict word 00001h                ; b8 01 00
    94289460    lea sp, [bp-002h]                         ; 8d 66 fe
     
    94309462    pop bp                                    ; 5d
    94319463    retn                                      ; c3
    9432 _int70_function:                             ; 0xf692c LB 0xbe
     9464_int70_function:                             ; 0xf696a LB 0xbe
    94339465    push bp                                   ; 55
    94349466    mov bp, sp                                ; 89 e5
     
    94369468    push ax                                   ; 50
    94379469    mov ax, strict word 0000bh                ; b8 0b 00
    9438     call 0165ch                               ; e8 25 ad
     9470    call 016ach                               ; e8 37 ad
    94399471    mov dl, al                                ; 88 c2
    94409472    mov byte [bp-004h], al                    ; 88 46 fc
    94419473    mov ax, strict word 0000ch                ; b8 0c 00
    9442     call 0165ch                               ; e8 1a ad
     9474    call 016ach                               ; e8 2c ad
    94439475    mov dh, al                                ; 88 c6
    94449476    test dl, 060h                             ; f6 c2 60
    9445     je near 069d1h                            ; 0f 84 86 00
     9477    je near 06a0fh                            ; 0f 84 86 00
    94469478    test AL, strict byte 020h                 ; a8 20
    9447     je short 06953h                           ; 74 04
     9479    je short 06991h                           ; 74 04
    94489480    sti                                       ; fb
    94499481    int 04ah                                  ; cd 4a
    94509482    cli                                       ; fa
    94519483    test dh, 040h                             ; f6 c6 40
    9452     je near 069d1h                            ; 0f 84 77 00
     9484    je near 06a0fh                            ; 0f 84 77 00
    94539485    mov dx, 000a0h                            ; ba a0 00
    94549486    mov ax, strict word 00040h                ; b8 40 00
    9455     call 01600h                               ; e8 9d ac
     9487    call 01650h                               ; e8 af ac
    94569488    test al, al                               ; 84 c0
    9457     je short 069d1h                           ; 74 6a
     9489    je short 06a0fh                           ; 74 6a
    94589490    mov dx, 0009ch                            ; ba 9c 00
    94599491    mov ax, strict word 00040h                ; b8 40 00
    9460     call 01638h                               ; e8 c8 ac
     9492    call 01688h                               ; e8 da ac
    94619493    test dx, dx                               ; 85 d2
    9462     jne short 069bdh                          ; 75 49
     9494    jne short 069fbh                          ; 75 49
    94639495    cmp ax, 003d1h                            ; 3d d1 03
    9464     jnc short 069bdh                          ; 73 44
     9496    jnc short 069fbh                          ; 73 44
    94659497    mov dx, 00098h                            ; ba 98 00
    94669498    mov ax, strict word 00040h                ; b8 40 00
    9467     call 0161ch                               ; e8 9a ac
     9499    call 0166ch                               ; e8 ac ac
    94689500    mov si, ax                                ; 89 c6
    94699501    mov dx, 0009ah                            ; ba 9a 00
    94709502    mov ax, strict word 00040h                ; b8 40 00
    9471     call 0161ch                               ; e8 8f ac
     9503    call 0166ch                               ; e8 a1 ac
    94729504    mov cx, ax                                ; 89 c1
    94739505    xor bx, bx                                ; 31 db
    94749506    mov dx, 000a0h                            ; ba a0 00
    94759507    mov ax, strict word 00040h                ; b8 40 00
    9476     call 0160eh                               ; e8 74 ac
     9508    call 0165eh                               ; e8 86 ac
    94779509    mov al, byte [bp-004h]                    ; 8a 46 fc
    94789510    and AL, strict byte 037h                  ; 24 37
    94799511    movzx dx, al                              ; 0f b6 d0
    94809512    mov ax, strict word 0000bh                ; b8 0b 00
    9481     call 01679h                               ; e8 d1 ac
     9513    call 016c9h                               ; e8 e3 ac
    94829514    mov dx, cx                                ; 89 ca
    94839515    mov ax, si                                ; 89 f0
    9484     call 01600h                               ; e8 51 ac
     9516    call 01650h                               ; e8 63 ac
    94859517    or AL, strict byte 080h                   ; 0c 80
    94869518    movzx bx, al                              ; 0f b6 d8
    94879519    mov dx, cx                                ; 89 ca
    94889520    mov ax, si                                ; 89 f0
    9489     call 0160eh                               ; e8 53 ac
    9490     jmp short 069d1h                          ; eb 14
     9521    call 0165eh                               ; e8 65 ac
     9522    jmp short 06a0fh                          ; eb 14
    94919523    mov bx, ax                                ; 89 c3
    94929524    add bx, 0fc2fh                            ; 81 c3 2f fc
     
    94959527    mov dx, 0009ch                            ; ba 9c 00
    94969528    mov ax, strict word 00040h                ; b8 40 00
    9497     call 0164ah                               ; e8 79 ac
    9498     call 0e03bh                               ; e8 67 76
     9529    call 0169ah                               ; e8 8b ac
     9530    call 0e03bh                               ; e8 29 76
    94999531    lea sp, [bp-002h]                         ; 8d 66 fe
    95009532    pop si                                    ; 5e
    95019533    pop bp                                    ; 5d
    95029534    retn                                      ; c3
    9503     add word [bp+si+02ah], bp                 ; 01 6a 2a
    9504     push strict byte 0004fh                   ; 6a 4f
    9505     push strict byte 0ff81h                   ; 6a 81
    9506     push strict byte 0ffd0h                   ; 6a d0
    9507     push strict byte 00008h                   ; 6a 08
    9508     imul cx, word [bp+di+06bh], strict byte 0ffa2h ; 6b 4b 6b a2
    9509     db  06bh
    9510 _int1a_function:                             ; 0xf69ea LB 0x1c8
     9535    aas                                       ; 3f
     9536    push strict byte 00068h                   ; 6a 68
     9537    push strict byte 0ff8dh                   ; 6a 8d
     9538    push strict byte 0ffbfh                   ; 6a bf
     9539    push strict byte 0000eh                   ; 6a 0e
     9540    imul ax, word [bp+06bh], strict byte 0ff89h ; 6b 46 6b 89
     9541    imul sp, ax, strict byte 0006bh           ; 6b e0 6b
     9542_int1a_function:                             ; 0xf6a28 LB 0x1c8
    95119543    push bp                                   ; 55
    95129544    mov bp, sp                                ; 89 e5
     
    95149546    mov al, byte [bp+013h]                    ; 8a 46 13
    95159547    cmp AL, strict byte 007h                  ; 3c 07
    9516     jnbe near 06a26h                          ; 0f 87 2f 00
     9548    jnbe near 06a64h                          ; 0f 87 2f 00
    95179549    movzx bx, al                              ; 0f b6 d8
    95189550    add bx, bx                                ; 01 db
    9519     jmp word [cs:bx+069dah]                   ; 2e ff a7 da 69
     9551    jmp word [cs:bx+06a18h]                   ; 2e ff a7 18 6a
    95209552    cli                                       ; fa
    95219553    mov bx, 0046eh                            ; bb 6e 04
     
    95489580    sti                                       ; fb
    95499581    mov byte [bp+013h], 000h                  ; c6 46 13 00
    9550     jmp short 06a26h                          ; eb d7
    9551     call 0690bh                               ; e8 b9 fe
     9582    jmp short 06a64h                          ; eb d7
     9583    call 06949h                               ; e8 b9 fe
    95529584    test ax, ax                               ; 85 c0
    9553     je short 06a58h                           ; 74 02
    9554     jmp short 06a26h                          ; eb ce
     9585    je short 06a96h                           ; 74 02
     9586    jmp short 06a64h                          ; eb ce
    95559587    xor ax, ax                                ; 31 c0
    9556     call 0165ch                               ; e8 ff ab
     9588    call 016ach                               ; e8 11 ac
    95579589    mov byte [bp+00fh], al                    ; 88 46 0f
    95589590    mov ax, strict word 00002h                ; b8 02 00
    9559     call 0165ch                               ; e8 f6 ab
     9591    call 016ach                               ; e8 08 ac
    95609592    mov byte [bp+010h], al                    ; 88 46 10
    95619593    mov ax, strict word 00004h                ; b8 04 00
    9562     call 0165ch                               ; e8 ed ab
     9594    call 016ach                               ; e8 ff ab
    95639595    mov bl, al                                ; 88 c3
    95649596    mov byte [bp+011h], al                    ; 88 46 11
    95659597    mov ax, strict word 0000bh                ; b8 0b 00
    9566     call 0165ch                               ; e8 e2 ab
     9598    call 016ach                               ; e8 f4 ab
    95679599    and AL, strict byte 001h                  ; 24 01
    95689600    mov byte [bp+00eh], al                    ; 88 46 0e
    9569     jmp short 06ac6h                          ; eb 45
    9570     call 0690bh                               ; e8 87 fe
     9601    jmp short 06b04h                          ; eb 45
     9602    call 06949h                               ; e8 87 fe
    95719603    test ax, ax                               ; 85 c0
    9572     je short 06a8bh                           ; 74 03
    9573     call 068e3h                               ; e8 58 fe
     9604    je short 06ac9h                           ; 74 03
     9605    call 06921h                               ; e8 58 fe
    95749606    movzx dx, byte [bp+00fh]                  ; 0f b6 56 0f
    95759607    xor ax, ax                                ; 31 c0
    9576     call 01679h                               ; e8 e5 ab
     9608    call 016c9h                               ; e8 f7 ab
    95779609    movzx dx, byte [bp+010h]                  ; 0f b6 56 10
    95789610    mov ax, strict word 00002h                ; b8 02 00
    9579     call 01679h                               ; e8 db ab
     9611    call 016c9h                               ; e8 ed ab
    95809612    movzx dx, byte [bp+011h]                  ; 0f b6 56 11
    95819613    mov ax, strict word 00004h                ; b8 04 00
    9582     call 01679h                               ; e8 d1 ab
     9614    call 016c9h                               ; e8 e3 ab
    95839615    mov ax, strict word 0000bh                ; b8 0b 00
    9584     call 0165ch                               ; e8 ae ab
     9616    call 016ach                               ; e8 c0 ab
    95859617    mov bl, al                                ; 88 c3
    95869618    and bl, 060h                              ; 80 e3 60
     
    95919623    movzx dx, bl                              ; 0f b6 d3
    95929624    mov ax, strict word 0000bh                ; b8 0b 00
    9593     call 01679h                               ; e8 b3 ab
     9625    call 016c9h                               ; e8 c5 ab
    95949626    mov byte [bp+013h], 000h                  ; c6 46 13 00
    95959627    mov byte [bp+012h], bl                    ; 88 5e 12
    9596     jmp near 06a26h                           ; e9 56 ff
     9628    jmp near 06a64h                           ; e9 56 ff
    95979629    mov byte [bp+013h], 000h                  ; c6 46 13 00
    9598     call 0690bh                               ; e8 34 fe
     9630    call 06949h                               ; e8 34 fe
    95999631    test ax, ax                               ; 85 c0
    9600     je short 06adeh                           ; 74 03
    9601     jmp near 06a26h                           ; e9 48 ff
     9632    je short 06b1ch                           ; 74 03
     9633    jmp near 06a64h                           ; e9 48 ff
    96029634    mov ax, strict word 00009h                ; b8 09 00
    9603     call 0165ch                               ; e8 78 ab
     9635    call 016ach                               ; e8 8a ab
    96049636    mov byte [bp+010h], al                    ; 88 46 10
    96059637    mov ax, strict word 00008h                ; b8 08 00
    9606     call 0165ch                               ; e8 6f ab
     9638    call 016ach                               ; e8 81 ab
    96079639    mov byte [bp+00fh], al                    ; 88 46 0f
    96089640    mov ax, strict word 00007h                ; b8 07 00
    9609     call 0165ch                               ; e8 66 ab
     9641    call 016ach                               ; e8 78 ab
    96109642    mov byte [bp+00eh], al                    ; 88 46 0e
    96119643    mov ax, strict word 00032h                ; b8 32 00
    9612     call 0165ch                               ; e8 5d ab
     9644    call 016ach                               ; e8 6f ab
    96139645    mov byte [bp+011h], al                    ; 88 46 11
    96149646    mov byte [bp+012h], al                    ; 88 46 12
    9615     jmp near 06a26h                           ; e9 1e ff
    9616     call 0690bh                               ; e8 00 fe
     9647    jmp near 06a64h                           ; e9 1e ff
     9648    call 06949h                               ; e8 00 fe
    96179649    test ax, ax                               ; 85 c0
    9618     je short 06b15h                           ; 74 06
    9619     call 068e3h                               ; e8 d1 fd
    9620     jmp near 06a26h                           ; e9 11 ff
     9650    je short 06b53h                           ; 74 06
     9651    call 06921h                               ; e8 d1 fd
     9652    jmp near 06a64h                           ; e9 11 ff
    96219653    movzx dx, byte [bp+010h]                  ; 0f b6 56 10
    96229654    mov ax, strict word 00009h                ; b8 09 00
    9623     call 01679h                               ; e8 5a ab
     9655    call 016c9h                               ; e8 6c ab
    96249656    movzx dx, byte [bp+00fh]                  ; 0f b6 56 0f
    96259657    mov ax, strict word 00008h                ; b8 08 00
    9626     call 01679h                               ; e8 50 ab
     9658    call 016c9h                               ; e8 62 ab
    96279659    movzx dx, byte [bp+00eh]                  ; 0f b6 56 0e
    96289660    mov ax, strict word 00007h                ; b8 07 00
    9629     call 01679h                               ; e8 46 ab
     9661    call 016c9h                               ; e8 58 ab
    96309662    movzx dx, byte [bp+011h]                  ; 0f b6 56 11
    96319663    mov ax, strict word 00032h                ; b8 32 00
    9632     call 01679h                               ; e8 3c ab
     9664    call 016c9h                               ; e8 4e ab
    96339665    mov ax, strict word 0000bh                ; b8 0b 00
    9634     call 0165ch                               ; e8 19 ab
     9666    call 016ach                               ; e8 2b ab
    96359667    mov bl, al                                ; 88 c3
    96369668    and bl, 07fh                              ; 80 e3 7f
    9637     jmp near 06abdh                           ; e9 72 ff
     9669    jmp near 06afbh                           ; e9 72 ff
    96389670    mov ax, strict word 0000bh                ; b8 0b 00
    9639     call 0165ch                               ; e8 0b ab
     9671    call 016ach                               ; e8 1d ab
    96409672    mov bl, al                                ; 88 c3
    96419673    mov word [bp+012h], strict word 00000h    ; c7 46 12 00 00
    96429674    test AL, strict byte 020h                 ; a8 20
    9643     je short 06b5fh                           ; 74 03
    9644     jmp near 06a26h                           ; e9 c7 fe
    9645     call 0690bh                               ; e8 a9 fd
     9675    je short 06b9dh                           ; 74 03
     9676    jmp near 06a64h                           ; e9 c7 fe
     9677    call 06949h                               ; e8 a9 fd
    96469678    test ax, ax                               ; 85 c0
    9647     je short 06b69h                           ; 74 03
    9648     call 068e3h                               ; e8 7a fd
     9679    je short 06ba7h                           ; 74 03
     9680    call 06921h                               ; e8 7a fd
    96499681    movzx dx, byte [bp+00fh]                  ; 0f b6 56 0f
    96509682    mov ax, strict word 00001h                ; b8 01 00
    9651     call 01679h                               ; e8 06 ab
     9683    call 016c9h                               ; e8 18 ab
    96529684    movzx dx, byte [bp+010h]                  ; 0f b6 56 10
    96539685    mov ax, strict word 00003h                ; b8 03 00
    9654     call 01679h                               ; e8 fc aa
     9686    call 016c9h                               ; e8 0e ab
    96559687    movzx dx, byte [bp+011h]                  ; 0f b6 56 11
    96569688    mov ax, strict word 00005h                ; b8 05 00
    9657     call 01679h                               ; e8 f2 aa
     9689    call 016c9h                               ; e8 04 ab
    96589690    mov dx, 000a1h                            ; ba a1 00
    96599691    in AL, DX                                 ; ec
     
    96679699    movzx dx, al                              ; 0f b6 d0
    96689700    mov ax, strict word 0000bh                ; b8 0b 00
    9669     call 01679h                               ; e8 da aa
    9670     jmp near 06a26h                           ; e9 84 fe
     9701    call 016c9h                               ; e8 ec aa
     9702    jmp near 06a64h                           ; e9 84 fe
    96719703    mov ax, strict word 0000bh                ; b8 0b 00
    9672     call 0165ch                               ; e8 b4 aa
     9704    call 016ach                               ; e8 c6 aa
    96739705    mov bl, al                                ; 88 c3
    96749706    and AL, strict byte 057h                  ; 24 57
    96759707    movzx dx, al                              ; 0f b6 d0
    9676     jmp near 06ac0h                           ; e9 0e ff
    9677 send_to_mouse_ctrl_:                         ; 0xf6bb2 LB 0x34
     9708    jmp near 06afeh                           ; e9 0e ff
     9709send_to_mouse_ctrl_:                         ; 0xf6bf0 LB 0x34
    96789710    push bp                                   ; 55
    96799711    mov bp, sp                                ; 89 e5
     
    96869718    ; sub ah, ah                                ; 2a e4
    96879719    test AL, strict byte 002h                 ; a8 02
    9688     je short 06bd1h                           ; 74 0e
     9720    je short 06c0fh                           ; 74 0e
    96899721    push 008f6h                               ; 68 f6 08
    96909722    push 0116ah                               ; 68 6a 11
    96919723    push strict byte 00007h                   ; 6a 07
    9692     call 01922h                               ; e8 54 ad
     9724    call 01972h                               ; e8 66 ad
    96939725    add sp, strict byte 00006h                ; 83 c4 06
    96949726    mov AL, strict byte 0d4h                  ; b0 d4
     
    97049736    pop bp                                    ; 5d
    97059737    retn                                      ; c3
    9706 get_mouse_data_:                             ; 0xf6be6 LB 0x3b
     9738get_mouse_data_:                             ; 0xf6c24 LB 0x3b
    97079739    push bp                                   ; 55
    97089740    mov bp, sp                                ; 89 e5
     
    97189750    and ax, strict word 00021h                ; 25 21 00
    97199751    cmp ax, strict word 00021h                ; 3d 21 00
    9720     je short 06c07h                           ; 74 07
     9752    je short 06c45h                           ; 74 07
    97219753    test cx, cx                               ; 85 c9
    9722     je short 06c07h                           ; 74 03
     9754    je short 06c45h                           ; 74 03
    97239755    dec cx                                    ; 49
    9724     jmp short 06bf2h                          ; eb eb
     9756    jmp short 06c30h                          ; eb eb
    97259757    test cx, cx                               ; 85 c9
    9726     jne short 06c0fh                          ; 75 04
     9758    jne short 06c4dh                          ; 75 04
    97279759    mov AL, strict byte 001h                  ; b0 01
    9728     jmp short 06c1ah                          ; eb 0b
     9760    jmp short 06c58h                          ; eb 0b
    97299761    mov dx, strict word 00060h                ; ba 60 00
    97309762    in AL, DX                                 ; ec
     
    97389770    pop bp                                    ; 5d
    97399771    retn                                      ; c3
    9740 set_kbd_command_byte_:                       ; 0xf6c21 LB 0x32
     9772set_kbd_command_byte_:                       ; 0xf6c5f LB 0x32
    97419773    push bp                                   ; 55
    97429774    mov bp, sp                                ; 89 e5
     
    97499781    ; sub ah, ah                                ; 2a e4
    97509782    test AL, strict byte 002h                 ; a8 02
    9751     je short 06c40h                           ; 74 0e
     9783    je short 06c7eh                           ; 74 0e
    97529784    push 00900h                               ; 68 00 09
    97539785    push 0116ah                               ; 68 6a 11
    97549786    push strict byte 00007h                   ; 6a 07
    9755     call 01922h                               ; e8 e5 ac
     9787    call 01972h                               ; e8 f7 ac
    97569788    add sp, strict byte 00006h                ; 83 c4 06
    97579789    mov AL, strict byte 060h                  ; b0 60
     
    97669798    pop bp                                    ; 5d
    97679799    retn                                      ; c3
    9768 _int74_function:                             ; 0xf6c53 LB 0xca
     9800_int74_function:                             ; 0xf6c91 LB 0xca
    97699801    push bp                                   ; 55
    97709802    mov bp, sp                                ; 89 e5
     
    97729804    mov dx, strict word 0000eh                ; ba 0e 00
    97739805    mov ax, strict word 00040h                ; b8 40 00
    9774     call 0161ch                               ; e8 ba a9
     9806    call 0166ch                               ; e8 cc a9
    97759807    mov cx, ax                                ; 89 c1
    97769808    mov word [bp+004h], strict word 00000h    ; c7 46 04 00 00
     
    97819813    and AL, strict byte 021h                  ; 24 21
    97829814    cmp AL, strict byte 021h                  ; 3c 21
    9783     jne near 06d09h                           ; 0f 85 92 00
     9815    jne near 06d47h                           ; 0f 85 92 00
    97849816    mov dx, strict word 00060h                ; ba 60 00
    97859817    in AL, DX                                 ; ec
     
    97899821    mov dx, strict word 00026h                ; ba 26 00
    97909822    mov ax, cx                                ; 89 c8
    9791     call 01600h                               ; e8 79 a9
     9823    call 01650h                               ; e8 8b a9
    97929824    mov byte [bp-006h], al                    ; 88 46 fa
    97939825    mov dx, strict word 00027h                ; ba 27 00
    97949826    mov ax, cx                                ; 89 c8
    9795     call 01600h                               ; e8 6e a9
     9827    call 01650h                               ; e8 80 a9
    97969828    mov byte [bp-008h], al                    ; 88 46 f8
    97979829    test AL, strict byte 080h                 ; a8 80
    9798     je short 06d09h                           ; 74 70
     9830    je short 06d47h                           ; 74 70
    97999831    mov al, byte [bp-008h]                    ; 8a 46 f8
    98009832    and AL, strict byte 007h                  ; 24 07
     
    98079839    add dx, strict byte 00028h                ; 83 c2 28
    98089840    mov ax, cx                                ; 89 c8
    9809     call 0160eh                               ; e8 58 a9
     9841    call 0165eh                               ; e8 6a a9
    98109842    mov al, byte [bp-004h]                    ; 8a 46 fc
    98119843    cmp al, byte [bp-002h]                    ; 3a 46 fe
    9812     jc short 06cfah                           ; 72 3c
     9844    jc short 06d38h                           ; 72 3c
    98139845    mov dx, strict word 00028h                ; ba 28 00
    98149846    mov ax, cx                                ; 89 c8
    9815     call 01600h                               ; e8 3a a9
     9847    call 01650h                               ; e8 4c a9
    98169848    xor ah, ah                                ; 30 e4
    98179849    mov word [bp+00ch], ax                    ; 89 46 0c
    98189850    mov dx, strict word 00029h                ; ba 29 00
    98199851    mov ax, cx                                ; 89 c8
    9820     call 01600h                               ; e8 2d a9
     9852    call 01650h                               ; e8 3f a9
    98219853    xor ah, ah                                ; 30 e4
    98229854    mov word [bp+00ah], ax                    ; 89 46 0a
    98239855    mov dx, strict word 0002ah                ; ba 2a 00
    98249856    mov ax, cx                                ; 89 c8
    9825     call 01600h                               ; e8 20 a9
     9857    call 01650h                               ; e8 32 a9
    98269858    xor ah, ah                                ; 30 e4
    98279859    mov word [bp+008h], ax                    ; 89 46 08
     
    98309862    mov byte [bp-006h], ah                    ; 88 66 fa
    98319863    test byte [bp-008h], 080h                 ; f6 46 f8 80
    9832     je short 06cfdh                           ; 74 0a
     9864    je short 06d3bh                           ; 74 0a
    98339865    mov word [bp+004h], strict word 00001h    ; c7 46 04 01 00
    9834     jmp short 06cfdh                          ; eb 03
     9866    jmp short 06d3bh                          ; eb 03
    98359867    inc byte [bp-006h]                        ; fe 46 fa
    98369868    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    98379869    mov dx, strict word 00026h                ; ba 26 00
    98389870    mov ax, cx                                ; 89 c8
    9839     call 0160eh                               ; e8 05 a9
     9871    call 0165eh                               ; e8 17 a9
    98409872    mov sp, bp                                ; 89 ec
    98419873    pop bp                                    ; 5d
    98429874    retn                                      ; c3
    9843     popaw                                     ; 61
     9875    lahf                                      ; 9f
    98449876    insw                                      ; 6d
    9845     xlatb                                     ; d7
    9846     insw                                      ; 6d
    9847     pop dx                                    ; 5a
     9877    adc ax, 0986eh                            ; 15 6e 98
    98489878    outsb                                     ; 6e
    9849     jmp short 06d83h                          ; eb 6e
    9850     pop cx                                    ; 59
     9879    sub word [bx-069h], bp                    ; 29 6f 97
    98519880    outsw                                     ; 6f
    9852     lodsw                                     ; ad
    9853     insw                                      ; 6d
    9854     db  081h
    9855     outsw                                     ; 6f
    9856     inc si                                    ; 46
     9881    jmp short 06dc4h                          ; eb 6d
     9882    mov di, 0846fh                            ; bf 6f 84
    98579883    db  070h
    9858 _int15_function_mouse:                       ; 0xf6d1d LB 0x38b
     9884_int15_function_mouse:                       ; 0xf6d5b LB 0x38b
    98599885    push bp                                   ; 55
    98609886    mov bp, sp                                ; 89 e5
     
    98639889    mov dx, strict word 0000eh                ; ba 0e 00
    98649890    mov ax, strict word 00040h                ; b8 40 00
    9865     call 0161ch                               ; e8 ef a8
     9891    call 0166ch                               ; e8 01 a9
    98669892    mov cx, ax                                ; 89 c1
    98679893    cmp byte [bp+012h], 007h                  ; 80 7e 12 07
    9868     jbe short 06d40h                          ; 76 0b
     9894    jbe short 06d7eh                          ; 76 0b
    98699895    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    98709896    mov byte [bp+013h], 001h                  ; c6 46 13 01
    9871     jmp near 070a2h                           ; e9 62 03
     9897    jmp near 070e0h                           ; e9 62 03
    98729898    mov ax, strict word 00065h                ; b8 65 00
    9873     call 06c21h                               ; e8 db fe
     9899    call 06c5fh                               ; e8 db fe
    98749900    and word [bp+018h], strict byte 0fffeh    ; 83 66 18 fe
    98759901    mov byte [bp+013h], 000h                  ; c6 46 13 00
    98769902    mov al, byte [bp+012h]                    ; 8a 46 12
    98779903    cmp AL, strict byte 007h                  ; 3c 07
    9878     jnbe near 07089h                          ; 0f 87 32 03
     9904    jnbe near 070c7h                          ; 0f 87 32 03
    98799905    movzx si, al                              ; 0f b6 f0
    98809906    add si, si                                ; 01 f6
    9881     jmp word [cs:si+06d0dh]                   ; 2e ff a4 0d 6d
     9907    jmp word [cs:si+06d4bh]                   ; 2e ff a4 4b 6d
    98829908    cmp byte [bp+00dh], 001h                  ; 80 7e 0d 01
    9883     jnbe near 07094h                          ; 0f 87 2b 03
     9909    jnbe near 070d2h                          ; 0f 87 2b 03
    98849910    mov dx, strict word 00027h                ; ba 27 00
    98859911    mov ax, cx                                ; 89 c8
    9886     call 01600h                               ; e8 8f a8
     9912    call 01650h                               ; e8 a1 a8
    98879913    test AL, strict byte 080h                 ; a8 80
    9888     jne short 06d80h                          ; 75 0b
     9914    jne short 06dbeh                          ; 75 0b
    98899915    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    98909916    mov byte [bp+013h], 005h                  ; c6 46 13 05
    9891     jmp near 0709ch                           ; e9 1c 03
     9917    jmp near 070dah                           ; e9 1c 03
    98929918    cmp byte [bp+00dh], 000h                  ; 80 7e 0d 00
    98939919    db  00fh, 094h, 0c0h
     
    98959921    add AL, strict byte 0f4h                  ; 04 f4
    98969922    xor ah, ah                                ; 30 e4
    9897     call 06bb2h                               ; e8 24 fe
     9923    call 06bf0h                               ; e8 24 fe
    98989924    test al, al                               ; 84 c0
    9899     jne near 07022h                           ; 0f 85 8e 02
     9925    jne near 07060h                           ; 0f 85 8e 02
    99009926    mov dx, ss                                ; 8c d2
    99019927    lea ax, [bp-008h]                         ; 8d 46 f8
    9902     call 06be6h                               ; e8 4a fe
     9928    call 06c24h                               ; e8 4a fe
    99039929    test al, al                               ; 84 c0
    9904     je near 0709ch                            ; 0f 84 fa 02
     9930    je near 070dah                            ; 0f 84 fa 02
    99059931    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    9906     jne near 07022h                           ; 0f 85 78 02
    9907     jmp near 0709ch                           ; e9 ef 02
     9932    jne near 07060h                           ; 0f 85 78 02
     9933    jmp near 070dah                           ; e9 ef 02
    99089934    mov al, byte [bp+00dh]                    ; 8a 46 0d
    99099935    cmp AL, strict byte 001h                  ; 3c 01
    9910     jc short 06db8h                           ; 72 04
     9936    jc short 06df6h                           ; 72 04
    99119937    cmp AL, strict byte 008h                  ; 3c 08
    9912     jbe short 06dbbh                          ; 76 03
    9913     jmp near 06f4eh                           ; e9 93 01
     9938    jbe short 06df9h                          ; 76 03
     9939    jmp near 06f8ch                           ; e9 93 01
    99149940    mov dx, strict word 00027h                ; ba 27 00
    99159941    mov ax, cx                                ; 89 c8
    9916     call 01600h                               ; e8 3d a8
     9942    call 01650h                               ; e8 4f a8
    99179943    mov ah, byte [bp+00dh]                    ; 8a 66 0d
    99189944    db  0feh, 0cch
     
    99239949    mov dx, strict word 00027h                ; ba 27 00
    99249950    mov ax, cx                                ; 89 c8
    9925     call 0160eh                               ; e8 37 a8
     9951    call 0165eh                               ; e8 49 a8
    99269952    mov dx, strict word 00026h                ; ba 26 00
    99279953    mov ax, cx                                ; 89 c8
    9928     call 01600h                               ; e8 21 a8
     9954    call 01650h                               ; e8 33 a8
    99299955    and AL, strict byte 0f8h                  ; 24 f8
    99309956    movzx bx, al                              ; 0f b6 d8
    99319957    mov dx, strict word 00026h                ; ba 26 00
    99329958    mov ax, cx                                ; 89 c8
    9933     call 0160eh                               ; e8 22 a8
     9959    call 0165eh                               ; e8 34 a8
    99349960    mov ax, 000ffh                            ; b8 ff 00
    9935     call 06bb2h                               ; e8 c0 fd
     9961    call 06bf0h                               ; e8 c0 fd
    99369962    test al, al                               ; 84 c0
    9937     jne near 07022h                           ; 0f 85 2a 02
     9963    jne near 07060h                           ; 0f 85 2a 02
    99389964    mov dx, ss                                ; 8c d2
    99399965    lea ax, [bp-004h]                         ; 8d 46 fc
    9940     call 06be6h                               ; e8 e6 fd
     9966    call 06c24h                               ; e8 e6 fd
    99419967    mov cl, al                                ; 88 c1
    99429968    cmp byte [bp-004h], 0feh                  ; 80 7e fc fe
    9943     jne short 06e13h                          ; 75 0b
     9969    jne short 06e51h                          ; 75 0b
    99449970    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    99459971    mov byte [bp+013h], 004h                  ; c6 46 13 04
    9946     jmp near 0709ch                           ; e9 89 02
     9972    jmp near 070dah                           ; e9 89 02
    99479973    cmp byte [bp-004h], 0fah                  ; 80 7e fc fa
    9948     je short 06e29h                           ; 74 10
     9974    je short 06e67h                           ; 74 10
    99499975    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    99509976    push ax                                   ; 50
    99519977    push 0090bh                               ; 68 0b 09
    99529978    push strict byte 00007h                   ; 6a 07
    9953     call 01922h                               ; e8 fc aa
     9979    call 01972h                               ; e8 0e ab
    99549980    add sp, strict byte 00006h                ; 83 c4 06
    99559981    test cl, cl                               ; 84 c9
    9956     jne near 07022h                           ; 0f 85 f3 01
     9982    jne near 07060h                           ; 0f 85 f3 01
    99579983    mov dx, ss                                ; 8c d2
    99589984    lea ax, [bp-008h]                         ; 8d 46 f8
    9959     call 06be6h                               ; e8 af fd
     9985    call 06c24h                               ; e8 af fd
    99609986    test al, al                               ; 84 c0
    9961     jne near 07022h                           ; 0f 85 e5 01
     9987    jne near 07060h                           ; 0f 85 e5 01
    99629988    mov dx, ss                                ; 8c d2
    99639989    lea ax, [bp-006h]                         ; 8d 46 fa
    9964     call 06be6h                               ; e8 a1 fd
     9990    call 06c24h                               ; e8 a1 fd
    99659991    test al, al                               ; 84 c0
    9966     jne near 07022h                           ; 0f 85 d7 01
     9992    jne near 07060h                           ; 0f 85 d7 01
    99679993    mov al, byte [bp-008h]                    ; 8a 46 f8
    99689994    mov byte [bp+00ch], al                    ; 88 46 0c
    99699995    mov al, byte [bp-006h]                    ; 8a 46 fa
    99709996    mov byte [bp+00dh], al                    ; 88 46 0d
    9971     jmp near 0709ch                           ; e9 42 02
     9997    jmp near 070dah                           ; e9 42 02
    99729998    mov al, byte [bp+00dh]                    ; 8a 46 0d
    99739999    cmp AL, strict byte 003h                  ; 3c 03
    9974     jc short 06e71h                           ; 72 10
    9975     jbe short 06e8fh                          ; 76 2c
     10000    jc short 06eafh                           ; 72 10
     10001    jbe short 06ecdh                          ; 76 2c
    997610002    cmp AL, strict byte 006h                  ; 3c 06
    9977     je short 06ea1h                           ; 74 3a
     10003    je short 06edfh                           ; 74 3a
    997810004    cmp AL, strict byte 005h                  ; 3c 05
    9979     je short 06e9bh                           ; 74 30
     10005    je short 06ed9h                           ; 74 30
    998010006    cmp AL, strict byte 004h                  ; 3c 04
    9981     je short 06e95h                           ; 74 26
    9982     jmp short 06ea7h                          ; eb 36
     10007    je short 06ed3h                           ; 74 26
     10008    jmp short 06ee5h                          ; eb 36
    998310009    cmp AL, strict byte 002h                  ; 3c 02
    9984     je short 06e89h                           ; 74 14
     10010    je short 06ec7h                           ; 74 14
    998510011    cmp AL, strict byte 001h                  ; 3c 01
    9986     je short 06e83h                           ; 74 0a
     10012    je short 06ec1h                           ; 74 0a
    998710013    test al, al                               ; 84 c0
    9988     jne short 06ea7h                          ; 75 2a
     10014    jne short 06ee5h                          ; 75 2a
    998910015    mov byte [bp-008h], 00ah                  ; c6 46 f8 0a
    9990     jmp short 06eabh                          ; eb 28
     10016    jmp short 06ee9h                          ; eb 28
    999110017    mov byte [bp-008h], 014h                  ; c6 46 f8 14
    9992     jmp short 06eabh                          ; eb 22
     10018    jmp short 06ee9h                          ; eb 22
    999310019    mov byte [bp-008h], 028h                  ; c6 46 f8 28
    9994     jmp short 06eabh                          ; eb 1c
     10020    jmp short 06ee9h                          ; eb 1c
    999510021    mov byte [bp-008h], 03ch                  ; c6 46 f8 3c
    9996     jmp short 06eabh                          ; eb 16
     10022    jmp short 06ee9h                          ; eb 16
    999710023    mov byte [bp-008h], 050h                  ; c6 46 f8 50
    9998     jmp short 06eabh                          ; eb 10
     10024    jmp short 06ee9h                          ; eb 10
    999910025    mov byte [bp-008h], 064h                  ; c6 46 f8 64
    10000     jmp short 06eabh                          ; eb 0a
     10026    jmp short 06ee9h                          ; eb 0a
    1000110027    mov byte [bp-008h], 0c8h                  ; c6 46 f8 c8
    10002     jmp short 06eabh                          ; eb 04
     10028    jmp short 06ee9h                          ; eb 04
    1000310029    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1000410030    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    10005     jbe short 06ee0h                          ; 76 2f
     10031    jbe short 06f1eh                          ; 76 2f
    1000610032    mov ax, 000f3h                            ; b8 f3 00
    10007     call 06bb2h                               ; e8 fb fc
     10033    call 06bf0h                               ; e8 fb fc
    1000810034    test al, al                               ; 84 c0
    10009     jne short 06ed5h                          ; 75 1a
     10035    jne short 06f13h                          ; 75 1a
    1001010036    mov dx, ss                                ; 8c d2
    1001110037    lea ax, [bp-006h]                         ; 8d 46 fa
    10012     call 06be6h                               ; e8 23 fd
     10038    call 06c24h                               ; e8 23 fd
    1001310039    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    10014     call 06bb2h                               ; e8 e8 fc
     10040    call 06bf0h                               ; e8 e8 fc
    1001510041    mov dx, ss                                ; 8c d2
    1001610042    lea ax, [bp-006h]                         ; 8d 46 fa
    10017     call 06be6h                               ; e8 14 fd
    10018     jmp near 0709ch                           ; e9 c7 01
     10043    call 06c24h                               ; e8 14 fd
     10044    jmp near 070dah                           ; e9 c7 01
    1001910045    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1002010046    mov byte [bp+013h], 003h                  ; c6 46 13 03
    10021     jmp near 0709ch                           ; e9 bc 01
     10047    jmp near 070dah                           ; e9 bc 01
    1002210048    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1002310049    mov byte [bp+013h], 002h                  ; c6 46 13 02
    10024     jmp near 0709ch                           ; e9 b1 01
     10050    jmp near 070dah                           ; e9 b1 01
    1002510051    cmp byte [bp+00dh], 004h                  ; 80 7e 0d 04
    10026     jnc short 06f4eh                          ; 73 5d
     10052    jnc short 06f8ch                          ; 73 5d
    1002710053    mov ax, 000e8h                            ; b8 e8 00
    10028     call 06bb2h                               ; e8 bb fc
     10054    call 06bf0h                               ; e8 bb fc
    1002910055    test al, al                               ; 84 c0
    10030     jne short 06f43h                          ; 75 48
     10056    jne short 06f81h                          ; 75 48
    1003110057    mov dx, ss                                ; 8c d2
    1003210058    lea ax, [bp-008h]                         ; 8d 46 f8
    10033     call 06be6h                               ; e8 e3 fc
     10059    call 06c24h                               ; e8 e3 fc
    1003410060    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    10035     je short 06f19h                           ; 74 10
     10061    je short 06f57h                           ; 74 10
    1003610062    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    1003710063    push ax                                   ; 50
    1003810064    push 00936h                               ; 68 36 09
    1003910065    push strict byte 00007h                   ; 6a 07
    10040     call 01922h                               ; e8 0c aa
     10066    call 01972h                               ; e8 1e aa
    1004110067    add sp, strict byte 00006h                ; 83 c4 06
    1004210068    movzx ax, byte [bp+00dh]                  ; 0f b6 46 0d
    10043     call 06bb2h                               ; e8 92 fc
     10069    call 06bf0h                               ; e8 92 fc
    1004410070    mov dx, ss                                ; 8c d2
    1004510071    lea ax, [bp-008h]                         ; 8d 46 f8
    10046     call 06be6h                               ; e8 be fc
     10072    call 06c24h                               ; e8 be fc
    1004710073    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    10048     je near 0709ch                            ; 0f 84 6c 01
     10074    je near 070dah                            ; 0f 84 6c 01
    1004910075    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    1005010076    push ax                                   ; 50
    1005110077    push 00936h                               ; 68 36 09
    1005210078    push strict byte 00007h                   ; 6a 07
    10053     call 01922h                               ; e8 e5 a9
     10079    call 01972h                               ; e8 f7 a9
    1005410080    add sp, strict byte 00006h                ; 83 c4 06
    10055     jmp near 0709ch                           ; e9 59 01
     10081    jmp near 070dah                           ; e9 59 01
    1005610082    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1005710083    mov byte [bp+013h], 003h                  ; c6 46 13 03
    10058     jmp near 0709ch                           ; e9 4e 01
     10084    jmp near 070dah                           ; e9 4e 01
    1005910085    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1006010086    mov byte [bp+013h], 002h                  ; c6 46 13 02
    10061     jmp near 0709ch                           ; e9 43 01
     10087    jmp near 070dah                           ; e9 43 01
    1006210088    mov ax, 000f2h                            ; b8 f2 00
    10063     call 06bb2h                               ; e8 53 fc
     10089    call 06bf0h                               ; e8 53 fc
    1006410090    test al, al                               ; 84 c0
    10065     jne short 06f76h                          ; 75 13
     10091    jne short 06fb4h                          ; 75 13
    1006610092    mov dx, ss                                ; 8c d2
    1006710093    lea ax, [bp-008h]                         ; 8d 46 f8
    10068     call 06be6h                               ; e8 7b fc
     10094    call 06c24h                               ; e8 7b fc
    1006910095    mov dx, ss                                ; 8c d2
    1007010096    lea ax, [bp-006h]                         ; 8d 46 fa
    10071     call 06be6h                               ; e8 73 fc
    10072     jmp near 06e51h                           ; e9 db fe
     10097    call 06c24h                               ; e8 73 fc
     10098    jmp near 06e8fh                           ; e9 db fe
    1007310099    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1007410100    mov byte [bp+013h], 003h                  ; c6 46 13 03
    10075     jmp near 0709ch                           ; e9 1b 01
     10101    jmp near 070dah                           ; e9 1b 01
    1007610102    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1007710103    test al, al                               ; 84 c0
    10078     jbe short 06f8fh                          ; 76 07
     10104    jbe short 06fcdh                          ; 76 07
    1007910105    cmp AL, strict byte 002h                  ; 3c 02
    10080     jbe short 06ff8h                          ; 76 6c
    10081     jmp near 0702ch                           ; e9 9d 00
     10106    jbe short 07036h                          ; 76 6c
     10107    jmp near 0706ah                           ; e9 9d 00
    1008210108    mov ax, 000e9h                            ; b8 e9 00
    10083     call 06bb2h                               ; e8 1d fc
     10109    call 06bf0h                               ; e8 1d fc
    1008410110    test al, al                               ; 84 c0
    10085     jne near 07022h                           ; 0f 85 87 00
     10111    jne near 07060h                           ; 0f 85 87 00
    1008610112    mov dx, ss                                ; 8c d2
    1008710113    lea ax, [bp-008h]                         ; 8d 46 f8
    10088     call 06be6h                               ; e8 43 fc
     10114    call 06c24h                               ; e8 43 fc
    1008910115    mov cl, al                                ; 88 c1
    1009010116    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    10091     je short 06fbbh                           ; 74 10
     10117    je short 06ff9h                           ; 74 10
    1009210118    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    1009310119    push ax                                   ; 50
    1009410120    push 00936h                               ; 68 36 09
    1009510121    push strict byte 00007h                   ; 6a 07
    10096     call 01922h                               ; e8 6a a9
     10122    call 01972h                               ; e8 7c a9
    1009710123    add sp, strict byte 00006h                ; 83 c4 06
    1009810124    test cl, cl                               ; 84 c9
    10099     jne short 07022h                          ; 75 63
     10125    jne short 07060h                          ; 75 63
    1010010126    mov dx, ss                                ; 8c d2
    1010110127    lea ax, [bp-008h]                         ; 8d 46 f8
    10102     call 06be6h                               ; e8 1f fc
     10128    call 06c24h                               ; e8 1f fc
    1010310129    test al, al                               ; 84 c0
    10104     jne short 07022h                          ; 75 57
     10130    jne short 07060h                          ; 75 57
    1010510131    mov dx, ss                                ; 8c d2
    1010610132    lea ax, [bp-006h]                         ; 8d 46 fa
    10107     call 06be6h                               ; e8 13 fc
     10133    call 06c24h                               ; e8 13 fc
    1010810134    test al, al                               ; 84 c0
    10109     jne short 07022h                          ; 75 4b
     10135    jne short 07060h                          ; 75 4b
    1011010136    mov dx, ss                                ; 8c d2
    1011110137    lea ax, [bp-004h]                         ; 8d 46 fc
    10112     call 06be6h                               ; e8 07 fc
     10138    call 06c24h                               ; e8 07 fc
    1011310139    test al, al                               ; 84 c0
    10114     jne short 07022h                          ; 75 3f
     10140    jne short 07060h                          ; 75 3f
    1011510141    mov al, byte [bp-008h]                    ; 8a 46 f8
    1011610142    mov byte [bp+00ch], al                    ; 88 46 0c
     
    1011910145    mov al, byte [bp-004h]                    ; 8a 46 fc
    1012010146    mov byte [bp+00eh], al                    ; 88 46 0e
    10121     jmp near 0709ch                           ; e9 a4 00
     10147    jmp near 070dah                           ; e9 a4 00
    1012210148    cmp AL, strict byte 001h                  ; 3c 01
    10123     jne short 07001h                          ; 75 05
     10149    jne short 0703fh                          ; 75 05
    1012410150    mov ax, 000e6h                            ; b8 e6 00
    10125     jmp short 07004h                          ; eb 03
     10151    jmp short 07042h                          ; eb 03
    1012610152    mov ax, 000e7h                            ; b8 e7 00
    10127     call 06bb2h                               ; e8 ab fb
     10153    call 06bf0h                               ; e8 ab fb
    1012810154    mov cl, al                                ; 88 c1
    1012910155    test cl, cl                               ; 84 c9
    10130     jne short 0701ch                          ; 75 0f
     10156    jne short 0705ah                          ; 75 0f
    1013110157    mov dx, ss                                ; 8c d2
    1013210158    lea ax, [bp-008h]                         ; 8d 46 f8
    10133     call 06be6h                               ; e8 d1 fb
     10159    call 06c24h                               ; e8 d1 fb
    1013410160    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    1013510161    db  00fh, 095h, 0c1h
    1013610162    ; setne cl                                  ; 0f 95 c1
    1013710163    test cl, cl                               ; 84 c9
    10138     je near 0709ch                            ; 0f 84 7a 00
     10164    je near 070dah                            ; 0f 84 7a 00
    1013910165    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1014010166    mov byte [bp+013h], 003h                  ; c6 46 13 03
    10141     jmp short 0709ch                          ; eb 70
     10167    jmp short 070dah                          ; eb 70
    1014210168    movzx ax, byte [bp+00dh]                  ; 0f b6 46 0d
    1014310169    push ax                                   ; 50
    1014410170    push 00962h                               ; 68 62 09
    1014510171    push strict byte 00007h                   ; 6a 07
    10146     call 01922h                               ; e8 e9 a8
     10172    call 01972h                               ; e8 fb a8
    1014710173    add sp, strict byte 00006h                ; 83 c4 06
    1014810174    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1014910175    mov byte [bp+013h], 001h                  ; c6 46 13 01
    10150     jmp short 0709ch                          ; eb 56
     10176    jmp short 070dah                          ; eb 56
    1015110177    mov si, word [bp+00ch]                    ; 8b 76 0c
    1015210178    mov bx, si                                ; 89 f3
    1015310179    mov dx, strict word 00022h                ; ba 22 00
    1015410180    mov ax, cx                                ; 89 c8
    10155     call 0162ah                               ; e8 d7 a5
     10181    call 0167ah                               ; e8 e9 a5
    1015610182    mov bx, word [bp+014h]                    ; 8b 5e 14
    1015710183    mov dx, strict word 00024h                ; ba 24 00
    1015810184    mov ax, cx                                ; 89 c8
    10159     call 0162ah                               ; e8 cc a5
     10185    call 0167ah                               ; e8 de a5
    1016010186    mov dx, strict word 00027h                ; ba 27 00
    1016110187    mov ax, cx                                ; 89 c8
    10162     call 01600h                               ; e8 9a a5
     10188    call 01650h                               ; e8 ac a5
    1016310189    mov ah, al                                ; 88 c4
    1016410190    test si, si                               ; 85 f6
    10165     jne short 0707ah                          ; 75 0e
     10191    jne short 070b8h                          ; 75 0e
    1016610192    cmp word [bp+014h], strict byte 00000h    ; 83 7e 14 00
    10167     jne short 0707ah                          ; 75 08
     10193    jne short 070b8h                          ; 75 08
    1016810194    test AL, strict byte 080h                 ; a8 80
    10169     je short 0707ch                           ; 74 06
     10195    je short 070bah                           ; 74 06
    1017010196    and AL, strict byte 07fh                  ; 24 7f
    10171     jmp short 0707ch                          ; eb 02
     10197    jmp short 070bah                          ; eb 02
    1017210198    or AL, strict byte 080h                   ; 0c 80
    1017310199    movzx bx, al                              ; 0f b6 d8
    1017410200    mov dx, strict word 00027h                ; ba 27 00
    1017510201    mov ax, cx                                ; 89 c8
    10176     call 0160eh                               ; e8 87 a5
    10177     jmp short 0709ch                          ; eb 13
     10202    call 0165eh                               ; e8 99 a5
     10203    jmp short 070dah                          ; eb 13
    1017810204    push 0097ch                               ; 68 7c 09
    1017910205    push strict byte 00007h                   ; 6a 07
    10180     call 01922h                               ; e8 91 a8
     10206    call 01972h                               ; e8 a3 a8
    1018110207    add sp, strict byte 00004h                ; 83 c4 04
    1018210208    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1018310209    mov byte [bp+013h], 001h                  ; c6 46 13 01
    1018410210    mov ax, strict word 00047h                ; b8 47 00
    10185     call 06c21h                               ; e8 7f fb
     10211    call 06c5fh                               ; e8 7f fb
    1018610212    lea sp, [bp-002h]                         ; 8d 66 fe
    1018710213    pop si                                    ; 5e
    1018810214    pop bp                                    ; 5d
    1018910215    retn                                      ; c3
    10190 _int17_function:                             ; 0xf70a8 LB 0xb3
     10216_int17_function:                             ; 0xf70e6 LB 0xb3
    1019110217    push bp                                   ; 55
    1019210218    mov bp, sp                                ; 89 e5
     
    1019810224    add dx, strict byte 00008h                ; 83 c2 08
    1019910225    mov ax, strict word 00040h                ; b8 40 00
    10200     call 0161ch                               ; e8 60 a5
     10226    call 0166ch                               ; e8 72 a5
    1020110227    mov bx, ax                                ; 89 c3
    1020210228    mov si, ax                                ; 89 c6
    1020310229    cmp byte [bp+013h], 003h                  ; 80 7e 13 03
    10204     jnc near 07151h                           ; 0f 83 89 00
     10230    jnc near 0718fh                           ; 0f 83 89 00
    1020510231    mov ax, word [bp+00eh]                    ; 8b 46 0e
    1020610232    cmp ax, strict word 00003h                ; 3d 03 00
    10207     jnc near 07151h                           ; 0f 83 7f 00
     10233    jnc near 0718fh                           ; 0f 83 7f 00
    1020810234    test bx, bx                               ; 85 db
    10209     jbe near 07151h                           ; 0f 86 79 00
     10235    jbe near 0718fh                           ; 0f 86 79 00
    1021010236    mov dx, ax                                ; 89 c2
    1021110237    add dx, strict byte 00078h                ; 83 c2 78
    1021210238    mov ax, strict word 00040h                ; b8 40 00
    10213     call 01600h                               ; e8 1d a5
     10239    call 01650h                               ; e8 2f a5
    1021410240    movzx cx, al                              ; 0f b6 c8
    1021510241    sal cx, 008h                              ; c1 e1 08
    1021610242    cmp byte [bp+013h], 000h                  ; 80 7e 13 00
    10217     jne short 0711ch                          ; 75 2d
     10243    jne short 0715ah                          ; 75 2d
    1021810244    mov al, byte [bp+012h]                    ; 8a 46 12
    1021910245    mov dx, bx                                ; 89 da
     
    1023510261    ; sub ah, ah                                ; 2a e4
    1023610262    test AL, strict byte 040h                 ; a8 40
    10237     je short 0711ch                           ; 74 07
     10263    je short 0715ah                           ; 74 07
    1023810264    test cx, cx                               ; 85 c9
    10239     je short 0711ch                           ; 74 03
     10265    je short 0715ah                           ; 74 03
    1024010266    dec cx                                    ; 49
    10241     jmp short 0710bh                          ; eb ef
     10267    jmp short 07149h                          ; eb ef
    1024210268    cmp byte [bp+013h], 001h                  ; 80 7e 13 01
    10243     jne short 07138h                          ; 75 16
     10269    jne short 07176h                          ; 75 16
    1024410270    lea dx, [si+002h]                         ; 8d 54 02
    1024510271    in AL, DX                                 ; ec
     
    1026010286    mov byte [bp+013h], al                    ; 88 46 13
    1026110287    test cx, cx                               ; 85 c9
    10262     jne short 0714bh                          ; 75 04
     10288    jne short 07189h                          ; 75 04
    1026310289    or byte [bp+013h], 001h                   ; 80 4e 13 01
    1026410290    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    10265     jmp short 07155h                          ; eb 04
     10291    jmp short 07193h                          ; eb 04
    1026610292    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    1026710293    lea sp, [bp-002h]                         ; 8d 66 fe
     
    1026910295    pop bp                                    ; 5d
    1027010296    retn                                      ; c3
    10271 wait_:                                       ; 0xf715b LB 0xb2
     10297wait_:                                       ; 0xf7199 LB 0xb2
    1027210298    push bp                                   ; 55
    1027310299    mov bp, sp                                ; 89 e5
     
    1028710313    mov dx, 0046ch                            ; ba 6c 04
    1028810314    xor ax, ax                                ; 31 c0
    10289     call 01638h                               ; e8 ba a4
     10315    call 01688h                               ; e8 cc a4
    1029010316    mov word [bp-00eh], ax                    ; 89 46 f2
    1029110317    mov bx, dx                                ; 89 d3
     
    1029310319    mov dx, 0046ch                            ; ba 6c 04
    1029410320    xor ax, ax                                ; 31 c0
    10295     call 01638h                               ; e8 ac a4
     10321    call 01688h                               ; e8 be a4
    1029610322    mov word [bp-012h], ax                    ; 89 46 ee
    1029710323    mov di, dx                                ; 89 d7
    1029810324    cmp dx, bx                                ; 39 da
    10299     jnbe short 0719ch                         ; 77 07
    10300     jne short 071a3h                          ; 75 0c
     10325    jnbe short 071dah                         ; 77 07
     10326    jne short 071e1h                          ; 75 0c
    1030110327    cmp ax, word [bp-00eh]                    ; 3b 46 f2
    10302     jbe short 071a3h                          ; 76 07
     10328    jbe short 071e1h                          ; 76 07
    1030310329    sub ax, word [bp-00eh]                    ; 2b 46 f2
    1030410330    sbb dx, bx                                ; 19 da
    10305     jmp short 071aeh                          ; eb 0b
     10331    jmp short 071ech                          ; eb 0b
    1030610332    cmp dx, bx                                ; 39 da
    10307     jc short 071aeh                           ; 72 07
    10308     jne short 071b2h                          ; 75 09
     10333    jc short 071ech                           ; 72 07
     10334    jne short 071f0h                          ; 75 09
    1030910335    cmp ax, word [bp-00eh]                    ; 3b 46 f2
    10310     jnc short 071b2h                          ; 73 04
     10336    jnc short 071f0h                          ; 73 04
    1031110337    sub si, ax                                ; 29 c6
    1031210338    sbb cx, dx                                ; 19 d1
     
    1031610342    mov ax, 00100h                            ; b8 00 01
    1031710343    int 016h                                  ; cd 16
    10318     je near 071c8h                            ; 0f 84 05 00
     10344    je near 07206h                            ; 0f 84 05 00
    1031910345    mov AL, strict byte 001h                  ; b0 01
    10320     jmp near 071cah                           ; e9 02 00
     10346    jmp near 07208h                           ; e9 02 00
    1032110347    db  032h, 0c0h
    1032210348    ; xor al, al                                ; 32 c0
    1032310349    test al, al                               ; 84 c0
    10324     je short 071f2h                           ; 74 24
     10350    je short 07230h                           ; 74 24
    1032510351    db  033h, 0c0h
    1032610352    ; xor ax, ax                                ; 33 c0
     
    1033310359    push 0099eh                               ; 68 9e 09
    1033410360    push strict byte 00004h                   ; 6a 04
    10335     call 01922h                               ; e8 3d a7
     10361    call 01972h                               ; e8 4f a7
    1033610362    add sp, strict byte 00006h                ; 83 c4 06
    1033710363    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    10338     je short 071f2h                           ; 74 04
     10364    je short 07230h                           ; 74 04
    1033910365    mov al, dl                                ; 88 d0
    10340     jmp short 07204h                          ; eb 12
     10366    jmp short 07242h                          ; eb 12
    1034110367    test cx, cx                               ; 85 c9
    10342     jnle short 07183h                         ; 7f 8d
    10343     jne short 071fch                          ; 75 04
     10368    jnle short 071c1h                         ; 7f 8d
     10369    jne short 0723ah                          ; 75 04
    1034410370    test si, si                               ; 85 f6
    10345     jnbe short 07183h                         ; 77 87
     10371    jnbe short 071c1h                         ; 77 87
    1034610372    mov ax, word [bp-010h]                    ; 8b 46 f0
    1034710373    push ax                                   ; 50
     
    1035510381    pop bp                                    ; 5d
    1035610382    retn                                      ; c3
    10357 read_logo_byte_:                             ; 0xf720d LB 0x16
     10383read_logo_byte_:                             ; 0xf724b LB 0x16
    1035810384    push bp                                   ; 55
    1035910385    mov bp, sp                                ; 89 e5
     
    1037010396    pop bp                                    ; 5d
    1037110397    retn                                      ; c3
    10372 read_logo_word_:                             ; 0xf7223 LB 0x14
     10398read_logo_word_:                             ; 0xf7261 LB 0x14
    1037310399    push bp                                   ; 55
    1037410400    mov bp, sp                                ; 89 e5
     
    1038310409    pop bp                                    ; 5d
    1038410410    retn                                      ; c3
    10385 print_detected_harddisks_:                   ; 0xf7237 LB 0x130
     10411print_detected_harddisks_:                   ; 0xf7275 LB 0x130
    1038610412    push bp                                   ; 55
    1038710413    mov bp, sp                                ; 89 e5
     
    1039510421    mov dx, strict word 0000eh                ; ba 0e 00
    1039610422    mov ax, strict word 00040h                ; b8 40 00
    10397     call 0161ch                               ; e8 d2 a3
     10423    call 0166ch                               ; e8 e4 a3
    1039810424    mov si, ax                                ; 89 c6
    1039910425    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
     
    1040110427    xor ch, ch                                ; 30 ed
    1040210428    mov dx, 002c0h                            ; ba c0 02
    10403     call 01600h                               ; e8 a6 a3
     10429    call 01650h                               ; e8 b8 a3
    1040410430    mov byte [bp-00eh], al                    ; 88 46 f2
    1040510431    xor bl, bl                                ; 30 db
    1040610432    cmp bl, byte [bp-00eh]                    ; 3a 5e f2
    10407     jnc near 07339h                           ; 0f 83 d3 00
     10433    jnc near 07377h                           ; 0f 83 d3 00
    1040810434    movzx dx, bl                              ; 0f b6 d3
    1040910435    add dx, 002c1h                            ; 81 c2 c1 02
    1041010436    mov ax, si                                ; 89 f0
    10411     call 01600h                               ; e8 8e a3
     10437    call 01650h                               ; e8 a0 a3
    1041210438    mov bh, al                                ; 88 c7
    1041310439    cmp AL, strict byte 00ch                  ; 3c 0c
    10414     jc short 0729ch                           ; 72 24
     10440    jc short 072dah                           ; 72 24
    1041510441    test cl, cl                               ; 84 c9
    10416     jne short 07289h                          ; 75 0d
     10442    jne short 072c7h                          ; 75 0d
    1041710443    push 009afh                               ; 68 af 09
    1041810444    push strict byte 00002h                   ; 6a 02
    10419     call 01922h                               ; e8 9e a6
     10445    call 01972h                               ; e8 b0 a6
    1042010446    add sp, strict byte 00004h                ; 83 c4 04
    1042110447    mov CL, strict byte 001h                  ; b1 01
     
    1042510451    push 009c3h                               ; 68 c3 09
    1042610452    push strict byte 00002h                   ; 6a 02
    10427     call 01922h                               ; e8 8c a6
     10453    call 01972h                               ; e8 9e a6
    1042810454    add sp, strict byte 00006h                ; 83 c4 06
    10429     jmp near 07334h                           ; e9 98 00
     10455    jmp near 07372h                           ; e9 98 00
    1043010456    cmp AL, strict byte 008h                  ; 3c 08
    10431     jc short 072b3h                           ; 72 13
     10457    jc short 072f1h                           ; 72 13
    1043210458    test ch, ch                               ; 84 ed
    10433     jne short 072b1h                          ; 75 0d
     10459    jne short 072efh                          ; 75 0d
    1043410460    push 009d6h                               ; 68 d6 09
    1043510461    push strict byte 00002h                   ; 6a 02
    10436     call 01922h                               ; e8 76 a6
     10462    call 01972h                               ; e8 88 a6
    1043710463    add sp, strict byte 00004h                ; 83 c4 04
    1043810464    mov CH, strict byte 001h                  ; b5 01
    10439     jmp short 07289h                          ; eb d6
     10465    jmp short 072c7h                          ; eb d6
    1044010466    cmp AL, strict byte 004h                  ; 3c 04
    10441     jnc short 072ceh                          ; 73 17
     10467    jnc short 0730ch                          ; 73 17
    1044210468    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    10443     jne short 072ceh                          ; 75 11
     10469    jne short 0730ch                          ; 75 11
    1044410470    push 009eah                               ; 68 ea 09
    1044510471    push strict byte 00002h                   ; 6a 02
    10446     call 01922h                               ; e8 5d a6
     10472    call 01972h                               ; e8 6f a6
    1044710473    add sp, strict byte 00004h                ; 83 c4 04
    1044810474    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    10449     jmp short 072e4h                          ; eb 16
     10475    jmp short 07322h                          ; eb 16
    1045010476    cmp bh, 004h                              ; 80 ff 04
    10451     jc short 072e4h                           ; 72 11
     10477    jc short 07322h                           ; 72 11
    1045210478    test cl, cl                               ; 84 c9
    10453     jne short 072e4h                          ; 75 0d
     10479    jne short 07322h                          ; 75 0d
    1045410480    push 009afh                               ; 68 af 09
    1045510481    push strict byte 00002h                   ; 6a 02
    10456     call 01922h                               ; e8 43 a6
     10482    call 01972h                               ; e8 55 a6
    1045710483    add sp, strict byte 00004h                ; 83 c4 04
    1045810484    mov CL, strict byte 001h                  ; b1 01
     
    1046210488    push 009fbh                               ; 68 fb 09
    1046310489    push strict byte 00002h                   ; 6a 02
    10464     call 01922h                               ; e8 31 a6
     10490    call 01972h                               ; e8 43 a6
    1046510491    add sp, strict byte 00006h                ; 83 c4 06
    1046610492    cmp bh, 004h                              ; 80 ff 04
    10467     jc short 072fch                           ; 72 03
     10493    jc short 0733ah                           ; 72 03
    1046810494    sub bh, 004h                              ; 80 ef 04
    1046910495    movzx ax, bh                              ; 0f b6 c7
     
    1047310499    sar ax, 1                                 ; d1 f8
    1047410500    test ax, ax                               ; 85 c0
    10475     je short 0730dh                           ; 74 05
     10501    je short 0734bh                           ; 74 05
    1047610502    push 00a05h                               ; 68 05 0a
    10477     jmp short 07310h                          ; eb 03
     10503    jmp short 0734eh                          ; eb 03
    1047810504    push 00a10h                               ; 68 10 0a
    1047910505    push strict byte 00002h                   ; 6a 02
    10480     call 01922h                               ; e8 0d a6
     10506    call 01972h                               ; e8 1f a6
    1048110507    add sp, strict byte 00004h                ; 83 c4 04
    1048210508    movzx ax, bh                              ; 0f b6 c7
     
    1048510511    idiv di                                   ; f7 ff
    1048610512    test dx, dx                               ; 85 d2
    10487     je short 0732ah                           ; 74 05
     10513    je short 07368h                           ; 74 05
    1048810514    push 00a19h                               ; 68 19 0a
    10489     jmp short 0732dh                          ; eb 03
     10515    jmp short 0736bh                          ; eb 03
    1049010516    push 00a1fh                               ; 68 1f 0a
    1049110517    push di                                   ; 57
    10492     call 01922h                               ; e8 f1 a5
     10518    call 01972h                               ; e8 03 a6
    1049310519    add sp, strict byte 00004h                ; 83 c4 04
    1049410520    db  0feh, 0c3h
    1049510521    ; inc bl                                    ; fe c3
    10496     jmp near 0725fh                           ; e9 26 ff
     10522    jmp near 0729dh                           ; e9 26 ff
    1049710523    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    10498     jne short 07352h                          ; 75 13
     10524    jne short 07390h                          ; 75 13
    1049910525    test cl, cl                               ; 84 c9
    10500     jne short 07352h                          ; 75 0f
     10526    jne short 07390h                          ; 75 0f
    1050110527    test ch, ch                               ; 84 ed
    10502     jne short 07352h                          ; 75 0b
     10528    jne short 07390h                          ; 75 0b
    1050310529    push 00a26h                               ; 68 26 0a
    1050410530    push strict byte 00002h                   ; 6a 02
    10505     call 01922h                               ; e8 d3 a5
     10531    call 01972h                               ; e8 e5 a5
    1050610532    add sp, strict byte 00004h                ; 83 c4 04
    1050710533    push 00a3ah                               ; 68 3a 0a
    1050810534    push strict byte 00002h                   ; 6a 02
    10509     call 01922h                               ; e8 c8 a5
     10535    call 01972h                               ; e8 da a5
    1051010536    add sp, strict byte 00004h                ; 83 c4 04
    1051110537    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1051710543    pop bp                                    ; 5d
    1051810544    retn                                      ; c3
    10519 get_boot_drive_:                             ; 0xf7367 LB 0x28
     10545get_boot_drive_:                             ; 0xf73a5 LB 0x28
    1052010546    push bp                                   ; 55
    1052110547    mov bp, sp                                ; 89 e5
     
    1052510551    mov dx, strict word 0000eh                ; ba 0e 00
    1052610552    mov ax, strict word 00040h                ; b8 40 00
    10527     call 0161ch                               ; e8 a5 a2
     10553    call 0166ch                               ; e8 b7 a2
    1052810554    mov dx, 002c0h                            ; ba c0 02
    10529     call 01600h                               ; e8 83 a2
     10555    call 01650h                               ; e8 95 a2
    1053010556    sub bl, 002h                              ; 80 eb 02
    1053110557    cmp bl, al                                ; 38 c3
    10532     jc short 07386h                           ; 72 02
     10558    jc short 073c4h                           ; 72 02
    1053310559    mov BL, strict byte 0ffh                  ; b3 ff
    1053410560    mov al, bl                                ; 88 d8
     
    1053810564    pop bp                                    ; 5d
    1053910565    retn                                      ; c3
    10540 show_logo_:                                  ; 0xf738f LB 0x224
     10566show_logo_:                                  ; 0xf73cd LB 0x224
    1054110567    push bp                                   ; 55
    1054210568    mov bp, sp                                ; 89 e5
     
    1054910575    mov dx, strict word 0000eh                ; ba 0e 00
    1055010576    mov ax, strict word 00040h                ; b8 40 00
    10551     call 0161ch                               ; e8 79 a2
     10577    call 0166ch                               ; e8 8b a2
    1055210578    mov si, ax                                ; 89 c6
    1055310579    xor cl, cl                                ; 30 c9
     
    1056010586    out strict byte 040h, AL                  ; e6 40
    1056110587    movzx ax, dl                              ; 0f b6 c2
    10562     call 07223h                               ; e8 68 fe
     10588    call 07261h                               ; e8 68 fe
    1056310589    cmp ax, 066bbh                            ; 3d bb 66
    10564     jne near 07493h                           ; 0f 85 d1 00
     10590    jne near 074d1h                           ; 0f 85 d1 00
    1056510591    push SS                                   ; 16
    1056610592    pop ES                                    ; 07
     
    1057010596    mov word [es:di], bx                      ; 26 89 1d
    1057110597    cmp ax, strict word 0004fh                ; 3d 4f 00
    10572     jne near 07493h                           ; 0f 85 bd 00
     10598    jne near 074d1h                           ; 0f 85 bd 00
    1057310599    mov al, dl                                ; 88 d0
    1057410600    add AL, strict byte 004h                  ; 04 04
    1057510601    xor ah, ah                                ; 30 e4
    10576     call 0720dh                               ; e8 2e fe
     10602    call 0724bh                               ; e8 2e fe
    1057710603    mov ch, al                                ; 88 c5
    1057810604    mov byte [bp-00ch], al                    ; 88 46 f4
     
    1058010606    add AL, strict byte 005h                  ; 04 05
    1058110607    xor ah, ah                                ; 30 e4
    10582     call 0720dh                               ; e8 20 fe
     10608    call 0724bh                               ; e8 20 fe
    1058310609    mov dh, al                                ; 88 c6
    1058410610    mov byte [bp-010h], al                    ; 88 46 f0
     
    1058610612    add AL, strict byte 002h                  ; 04 02
    1058710613    xor ah, ah                                ; 30 e4
    10588     call 07223h                               ; e8 28 fe
     10614    call 07261h                               ; e8 28 fe
    1058910615    mov bx, ax                                ; 89 c3
    1059010616    mov word [bp-014h], ax                    ; 89 46 ec
     
    1059210618    add AL, strict byte 006h                  ; 04 06
    1059310619    xor ah, ah                                ; 30 e4
    10594     call 0720dh                               ; e8 04 fe
     10620    call 0724bh                               ; e8 04 fe
    1059510621    mov byte [bp-012h], al                    ; 88 46 ee
    1059610622    test ch, ch                               ; 84 ed
    10597     jne short 0741ah                          ; 75 0a
     10623    jne short 07458h                          ; 75 0a
    1059810624    test dh, dh                               ; 84 f6
    10599     jne short 0741ah                          ; 75 06
     10625    jne short 07458h                          ; 75 06
    1060010626    test bx, bx                               ; 85 db
    10601     je near 07493h                            ; 0f 84 79 00
     10627    je near 074d1h                            ; 0f 84 79 00
    1060210628    mov bx, 00142h                            ; bb 42 01
    1060310629    mov ax, 04f02h                            ; b8 02 4f
    1060410630    int 010h                                  ; cd 10
    1060510631    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    10606     je short 0744bh                           ; 74 23
     10632    je short 07489h                           ; 74 23
    1060710633    xor bx, bx                                ; 31 db
    10608     jmp short 07432h                          ; eb 06
     10634    jmp short 07470h                          ; eb 06
    1060910635    inc bx                                    ; 43
    1061010636    cmp bx, strict byte 00010h                ; 83 fb 10
    10611     jnbe short 07452h                         ; 77 20
     10637    jnbe short 07490h                         ; 77 20
    1061210638    mov ax, bx                                ; 89 d8
    1061310639    or ah, 002h                               ; 80 cc 02
     
    1061610642    xor dx, dx                                ; 31 d2
    1061710643    mov ax, strict word 00001h                ; b8 01 00
    10618     call 0715bh                               ; e8 18 fd
     10644    call 07199h                               ; e8 18 fd
    1061910645    cmp AL, strict byte 086h                  ; 3c 86
    10620     jne short 0742ch                          ; 75 e5
     10646    jne short 0746ah                          ; 75 e5
    1062110647    mov CL, strict byte 001h                  ; b1 01
    10622     jmp short 07452h                          ; eb 07
     10648    jmp short 07490h                          ; eb 07
    1062310649    mov ax, 00210h                            ; b8 10 02
    1062410650    mov dx, 003b8h                            ; ba b8 03
    1062510651    out DX, ax                                ; ef
    1062610652    test cl, cl                               ; 84 c9
    10627     jne short 07468h                          ; 75 12
     10653    jne short 074a6h                          ; 75 12
    1062810654    mov ax, word [bp-014h]                    ; 8b 46 ec
    1062910655    shr ax, 004h                              ; c1 e8 04
    1063010656    mov dx, strict word 00001h                ; ba 01 00
    10631     call 0715bh                               ; e8 f9 fc
     10657    call 07199h                               ; e8 f9 fc
    1063210658    cmp AL, strict byte 086h                  ; 3c 86
    10633     jne short 07468h                          ; 75 02
     10659    jne short 074a6h                          ; 75 02
    1063410660    mov CL, strict byte 001h                  ; b1 01
    1063510661    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    10636     je short 07493h                           ; 74 25
     10662    je short 074d1h                           ; 74 25
    1063710663    test cl, cl                               ; 84 c9
    10638     jne short 07493h                          ; 75 21
     10664    jne short 074d1h                          ; 75 21
    1063910665    mov bx, strict word 00010h                ; bb 10 00
    10640     jmp short 0747ch                          ; eb 05
     10666    jmp short 074bah                          ; eb 05
    1064110667    dec bx                                    ; 4b
    1064210668    test bx, bx                               ; 85 db
    10643     jbe short 07493h                          ; 76 17
     10669    jbe short 074d1h                          ; 76 17
    1064410670    mov ax, bx                                ; 89 d8
    1064510671    or ah, 002h                               ; 80 cc 02
     
    1064810674    xor dx, dx                                ; 31 d2
    1064910675    mov ax, strict word 00001h                ; b8 01 00
    10650     call 0715bh                               ; e8 ce fc
     10676    call 07199h                               ; e8 ce fc
    1065110677    cmp AL, strict byte 086h                  ; 3c 86
    10652     jne short 07477h                          ; 75 e6
     10678    jne short 074b5h                          ; 75 e6
    1065310679    mov CL, strict byte 001h                  ; b1 01
    1065410680    xor bx, bx                                ; 31 db
    1065510681    mov dx, 00339h                            ; ba 39 03
    1065610682    mov ax, si                                ; 89 f0
    10657     call 0160eh                               ; e8 71 a1
     10683    call 0165eh                               ; e8 83 a1
    1065810684    mov AL, strict byte 003h                  ; b0 03
    1065910685    mov AH, strict byte 000h                  ; b4 00
    1066010686    int 010h                                  ; cd 10
    1066110687    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
    10662     je near 07594h                            ; 0f 84 e9 00
     10688    je near 075d2h                            ; 0f 84 e9 00
    1066310689    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    10664     jne short 074e1h                          ; 75 30
     10690    jne short 0751fh                          ; 75 30
    1066510691    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    10666     jne short 074e1h                          ; 75 2a
     10692    jne short 0751fh                          ; 75 2a
    1066710693    cmp word [bp-014h], strict byte 00000h    ; 83 7e ec 00
    10668     jne short 074e1h                          ; 75 24
     10694    jne short 0751fh                          ; 75 24
    1066910695    cmp byte [bp-012h], 002h                  ; 80 7e ee 02
    10670     jne short 074ceh                          ; 75 0b
     10696    jne short 0750ch                          ; 75 0b
    1067110697    push 00a3ch                               ; 68 3c 0a
    1067210698    push strict byte 00002h                   ; 6a 02
    10673     call 01922h                               ; e8 57 a4
     10699    call 01972h                               ; e8 69 a4
    1067410700    add sp, strict byte 00004h                ; 83 c4 04
    1067510701    test cl, cl                               ; 84 c9
    10676     jne short 074e1h                          ; 75 0f
     10702    jne short 0751fh                          ; 75 0f
    1067710703    mov dx, strict word 00001h                ; ba 01 00
    1067810704    mov ax, 000c0h                            ; b8 c0 00
    10679     call 0715bh                               ; e8 80 fc
     10705    call 07199h                               ; e8 80 fc
    1068010706    cmp AL, strict byte 086h                  ; 3c 86
    10681     jne short 074e1h                          ; 75 02
     10707    jne short 0751fh                          ; 75 02
    1068210708    mov CL, strict byte 001h                  ; b1 01
    1068310709    test cl, cl                               ; 84 c9
    10684     je near 07594h                            ; 0f 84 ad 00
     10710    je near 075d2h                            ; 0f 84 ad 00
    1068510711    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
    1068610712    mov ax, 00100h                            ; b8 00 01
     
    1070110727    push 00a5eh                               ; 68 5e 0a
    1070210728    push strict byte 00002h                   ; 6a 02
    10703     call 01922h                               ; e8 12 a4
     10729    call 01972h                               ; e8 24 a4
    1070410730    add sp, strict byte 00004h                ; 83 c4 04
    10705     call 07237h                               ; e8 21 fd
     10731    call 07275h                               ; e8 21 fd
    1070610732    push 00aa2h                               ; 68 a2 0a
    1070710733    push strict byte 00002h                   ; 6a 02
    10708     call 01922h                               ; e8 04 a4
     10734    call 01972h                               ; e8 16 a4
    1070910735    add sp, strict byte 00004h                ; 83 c4 04
    1071010736    mov dx, strict word 00001h                ; ba 01 00
    1071110737    mov ax, strict word 00040h                ; b8 40 00
    10712     call 0715bh                               ; e8 31 fc
     10738    call 07199h                               ; e8 31 fc
    1071310739    mov bl, al                                ; 88 c3
    1071410740    test al, al                               ; 84 c0
    10715     je short 07521h                           ; 74 f1
     10741    je short 0755fh                           ; 74 f1
    1071610742    cmp AL, strict byte 030h                  ; 3c 30
    10717     je short 07582h                           ; 74 4e
     10743    je short 075c0h                           ; 74 4e
    1071810744    cmp bl, 002h                              ; 80 fb 02
    10719     jc short 0755bh                           ; 72 22
     10745    jc short 07599h                           ; 72 22
    1072010746    cmp bl, 009h                              ; 80 fb 09
    10721     jnbe short 0755bh                         ; 77 1d
     10747    jnbe short 07599h                         ; 77 1d
    1072210748    movzx ax, bl                              ; 0f b6 c3
    10723     call 07367h                               ; e8 23 fe
     10749    call 073a5h                               ; e8 23 fe
    1072410750    cmp AL, strict byte 0ffh                  ; 3c ff
    10725     jne short 0754ah                          ; 75 02
    10726     jmp short 07521h                          ; eb d7
     10751    jne short 07588h                          ; 75 02
     10752    jmp short 0755fh                          ; eb d7
    1072710753    movzx bx, al                              ; 0f b6 d8
    1072810754    mov dx, 00338h                            ; ba 38 03
    1072910755    mov ax, si                                ; 89 f0
    10730     call 0160eh                               ; e8 b9 a0
     10756    call 0165eh                               ; e8 cb a0
    1073110757    mov byte [bp-00eh], 002h                  ; c6 46 f2 02
    10732     jmp short 07582h                          ; eb 27
     10758    jmp short 075c0h                          ; eb 27
    1073310759    cmp bl, 02eh                              ; 80 fb 2e
    10734     je short 07570h                           ; 74 10
     10760    je short 075aeh                           ; 74 10
    1073510761    cmp bl, 026h                              ; 80 fb 26
    10736     je short 07576h                           ; 74 11
     10762    je short 075b4h                           ; 74 11
    1073710763    cmp bl, 021h                              ; 80 fb 21
    10738     jne short 0757ch                          ; 75 12
     10764    jne short 075bah                          ; 75 12
    1073910765    mov byte [bp-00eh], 001h                  ; c6 46 f2 01
    10740     jmp short 07582h                          ; eb 12
     10766    jmp short 075c0h                          ; eb 12
    1074110767    mov byte [bp-00eh], 003h                  ; c6 46 f2 03
    10742     jmp short 07582h                          ; eb 0c
     10768    jmp short 075c0h                          ; eb 0c
    1074310769    mov byte [bp-00eh], 004h                  ; c6 46 f2 04
    10744     jmp short 07582h                          ; eb 06
     10770    jmp short 075c0h                          ; eb 06
    1074510771    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    10746     je short 07521h                           ; 74 9f
     10772    je short 0755fh                           ; 74 9f
    1074710773    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
    1074810774    mov dx, 00339h                            ; ba 39 03
    1074910775    mov ax, si                                ; 89 f0
    10750     call 0160eh                               ; e8 80 a0
     10776    call 0165eh                               ; e8 92 a0
    1075110777    mov AL, strict byte 003h                  ; b0 03
    1075210778    mov AH, strict byte 000h                  ; b4 00
     
    1076110787    push DS                                   ; 1e
    1076210788    mov ds, ax                                ; 8e d8
    10763     call 0edbfh                               ; e8 19 78
     10789    call 0edbfh                               ; e8 db 77
    1076410790    pop DS                                    ; 1f
    1076510791    popad                                     ; 66 61
     
    1077210798    pop bp                                    ; 5d
    1077310799    retn                                      ; c3
    10774 delay_boot_:                                 ; 0xf75b3 LB 0x67
     10800delay_boot_:                                 ; 0xf75f1 LB 0x67
    1077510801    push bp                                   ; 55
    1077610802    mov bp, sp                                ; 89 e5
     
    1077910805    mov dx, ax                                ; 89 c2
    1078010806    test ax, ax                               ; 85 c0
    10781     je short 07613h                           ; 74 55
     10807    je short 07651h                           ; 74 55
    1078210808    mov AL, strict byte 034h                  ; b0 34
    1078310809    out strict byte 043h, AL                  ; e6 43
     
    1078910815    push 00aech                               ; 68 ec 0a
    1079010816    push strict byte 00002h                   ; 6a 02
    10791     call 01922h                               ; e8 4f a3
     10817    call 01972h                               ; e8 61 a3
    1079210818    add sp, strict byte 00006h                ; 83 c4 06
    1079310819    mov bx, dx                                ; 89 d3
    1079410820    test bx, bx                               ; 85 db
    10795     jbe short 075f3h                          ; 76 17
     10821    jbe short 07631h                          ; 76 17
    1079610822    push bx                                   ; 53
    1079710823    push 00b0ah                               ; 68 0a 0b
    1079810824    push strict byte 00002h                   ; 6a 02
    10799     call 01922h                               ; e8 3d a3
     10825    call 01972h                               ; e8 4f a3
    1080010826    add sp, strict byte 00006h                ; 83 c4 06
    1080110827    xor dx, dx                                ; 31 d2
    1080210828    mov ax, strict word 00040h                ; b8 40 00
    10803     call 0715bh                               ; e8 6b fb
     10829    call 07199h                               ; e8 6b fb
    1080410830    dec bx                                    ; 4b
    10805     jmp short 075d8h                          ; eb e5
     10831    jmp short 07616h                          ; eb e5
    1080610832    push 00a3ah                               ; 68 3a 0a
    1080710833    push strict byte 00002h                   ; 6a 02
    10808     call 01922h                               ; e8 27 a3
     10834    call 01972h                               ; e8 39 a3
    1080910835    add sp, strict byte 00004h                ; 83 c4 04
    1081010836    mov AL, strict byte 034h                  ; b0 34
     
    1081710843    push DS                                   ; 1e
    1081810844    mov ds, ax                                ; 8e d8
    10819     call 0edbfh                               ; e8 af 77
     10845    call 0edbfh                               ; e8 71 77
    1082010846    pop DS                                    ; 1f
    1082110847    popad                                     ; 66 61
     
    1082510851    pop bp                                    ; 5d
    1082610852    retn                                      ; c3
    10827 scsi_cmd_data_in_:                           ; 0xf761a LB 0xb2
     10853scsi_cmd_data_in_:                           ; 0xf7658 LB 0xb2
    1082810854    push bp                                   ; 55
    1082910855    mov bp, sp                                ; 89 e5
     
    1084110867    ; sub ah, ah                                ; 2a e4
    1084210868    test AL, strict byte 001h                 ; a8 01
    10843     jne short 07630h                          ; 75 f7
     10869    jne short 0766eh                          ; 75 f7
    1084410870    mov ax, bx                                ; 89 d8
    1084510871    mov dx, word [bp+00ch]                    ; 8b 56 0c
     
    1084710873    shr dx, 1                                 ; d1 ea
    1084810874    rcr ax, 1                                 ; d1 d8
    10849     loop 07641h                               ; e2 fa
     10875    loop 0767fh                               ; e2 fa
    1085010876    and ax, 000f0h                            ; 25 f0 00
    1085110877    movzx cx, byte [bp+004h]                  ; 0f b6 4e 04
     
    1086510891    shr dx, 1                                 ; d1 ea
    1086610892    rcr ax, 1                                 ; d1 d8
    10867     loop 07667h                               ; e2 fa
     10893    loop 076a5h                               ; e2 fa
    1086810894    mov dx, si                                ; 89 f2
    1086910895    out DX, AL                                ; ee
     
    1087110897    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    1087210898    cmp cx, ax                                ; 39 c1
    10873     jnc short 07688h                          ; 73 0e
     10899    jnc short 076c6h                          ; 73 0e
    1087410900    les di, [bp-00ah]                         ; c4 7e f6
    1087510901    add di, cx                                ; 01 cf
     
    1087810904    out DX, AL                                ; ee
    1087910905    inc cx                                    ; 41
    10880     jmp short 07672h                          ; eb ea
     10906    jmp short 076b0h                          ; eb ea
    1088110907    mov dx, si                                ; 89 f2
    1088210908    in AL, DX                                 ; ec
     
    1088410910    ; sub ah, ah                                ; 2a e4
    1088510911    test AL, strict byte 001h                 ; a8 01
    10886     jne short 07688h                          ; 75 f7
     10912    jne short 076c6h                          ; 75 f7
    1088710913    lea dx, [si+001h]                         ; 8d 54 01
    1088810914    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    10889     jne short 076a0h                          ; 75 06
     10915    jne short 076deh                          ; 75 06
    1089010916    cmp bx, 08000h                            ; 81 fb 00 80
    10891     jbe short 076bah                          ; 76 1a
     10917    jbe short 076f8h                          ; 76 1a
    1089210918    mov cx, 08000h                            ; b9 00 80
    1089310919    les di, [bp+006h]                         ; c4 7e 06
     
    1089810924    add ax, 00800h                            ; 05 00 08
    1089910925    mov word [bp+008h], ax                    ; 89 46 08
    10900     jmp short 07691h                          ; eb d7
     10926    jmp short 076cfh                          ; eb d7
    1090110927    mov cx, bx                                ; 89 d9
    1090210928    les di, [bp+006h]                         ; c4 7e 06
     
    1090810934    pop bp                                    ; 5d
    1090910935    retn 0000ah                               ; c2 0a 00
    10910 scsi_cmd_data_out_:                          ; 0xf76cc LB 0xb4
     10936scsi_cmd_data_out_:                          ; 0xf770a LB 0xb4
    1091110937    push bp                                   ; 55
    1091210938    mov bp, sp                                ; 89 e5
     
    1092410950    ; sub ah, ah                                ; 2a e4
    1092510951    test AL, strict byte 001h                 ; a8 01
    10926     jne short 076e2h                          ; 75 f7
     10952    jne short 07720h                          ; 75 f7
    1092710953    mov ax, bx                                ; 89 d8
    1092810954    mov dx, word [bp+00ch]                    ; 8b 56 0c
     
    1093010956    shr dx, 1                                 ; d1 ea
    1093110957    rcr ax, 1                                 ; d1 d8
    10932     loop 076f3h                               ; e2 fa
     10958    loop 07731h                               ; e2 fa
    1093310959    and ax, 000f0h                            ; 25 f0 00
    1093410960    movzx cx, byte [bp+004h]                  ; 0f b6 4e 04
     
    1094810974    shr dx, 1                                 ; d1 ea
    1094910975    rcr ax, 1                                 ; d1 d8
    10950     loop 07719h                               ; e2 fa
     10976    loop 07757h                               ; e2 fa
    1095110977    mov dx, di                                ; 89 fa
    1095210978    out DX, AL                                ; ee
     
    1095410980    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    1095510981    cmp cx, ax                                ; 39 c1
    10956     jnc short 0773ah                          ; 73 0e
     10982    jnc short 07778h                          ; 73 0e
    1095710983    les si, [bp-00ah]                         ; c4 76 f6
    1095810984    add si, cx                                ; 01 ce
     
    1096110987    out DX, AL                                ; ee
    1096210988    inc cx                                    ; 41
    10963     jmp short 07724h                          ; eb ea
     10989    jmp short 07762h                          ; eb ea
    1096410990    lea dx, [di+001h]                         ; 8d 55 01
    1096510991    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    10966     jne short 07749h                          ; 75 06
     10992    jne short 07787h                          ; 75 06
    1096710993    cmp bx, 08000h                            ; 81 fb 00 80
    10968     jbe short 07764h                          ; 76 1b
     10994    jbe short 077a2h                          ; 76 1b
    1096910995    mov cx, 08000h                            ; b9 00 80
    1097010996    les si, [bp+006h]                         ; c4 76 06
     
    1097611002    add ax, 00800h                            ; 05 00 08
    1097711003    mov word [bp+008h], ax                    ; 89 46 08
    10978     jmp short 0773ah                          ; eb d6
     11004    jmp short 07778h                          ; eb d6
    1097911005    mov cx, bx                                ; 89 d9
    1098011006    les si, [bp+006h]                         ; c4 76 06
     
    1098611012    ; sub ah, ah                                ; 2a e4
    1098711013    test AL, strict byte 001h                 ; a8 01
    10988     jne short 0776ch                          ; 75 f7
     11014    jne short 077aah                          ; 75 f7
    1098911015    xor ax, ax                                ; 31 c0
    1099011016    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1099311019    pop bp                                    ; 5d
    1099411020    retn 0000ah                               ; c2 0a 00
    10995 @scsi_read_sectors:                          ; 0xf7780 LB 0xb6
     11021@scsi_read_sectors:                          ; 0xf77be LB 0xb6
    1099611022    push bp                                   ; 55
    1099711023    mov bp, sp                                ; 89 e5
     
    1100411030    sub bl, 008h                              ; 80 eb 08
    1100511031    cmp bl, 004h                              ; 80 fb 04
    11006     jbe short 077a9h                          ; 76 0f
     11032    jbe short 077e7h                          ; 76 0f
    1100711033    movzx ax, bl                              ; 0f b6 c3
    1100811034    push ax                                   ; 50
    1100911035    push 00b0eh                               ; 68 0e 0b
    1101011036    push strict byte 00007h                   ; 6a 07
    11011     call 01922h                               ; e8 7c a1
     11037    call 01972h                               ; e8 8e a1
    1101211038    add sp, strict byte 00006h                ; 83 c4 06
    1101311039    mov es, [bp+006h]                         ; 8e 46 06
     
    1103611062    sal word [bp-008h], 1                     ; d1 66 f8
    1103711063    rcl word [bp-006h], 1                     ; d1 56 fa
    11038     loop 077f2h                               ; e2 f8
     11064    loop 07830h                               ; e2 f8
    1103911065    push dword [bp-008h]                      ; 66 ff 76 f8
    1104011066    db  066h, 026h, 0ffh, 074h, 004h
     
    1104411070    mov cx, ss                                ; 8c d1
    1104511071    lea bx, [bp-012h]                         ; 8d 5e ee
    11046     call 0761ah                               ; e8 0b fe
     11072    call 07658h                               ; e8 0b fe
    1104711073    mov ah, al                                ; 88 c4
    1104811074    test al, al                               ; 84 c0
    11049     jne short 0782ah                          ; 75 15
     11075    jne short 07868h                          ; 75 15
    1105011076    mov es, [bp+006h]                         ; 8e 46 06
    1105111077    mov word [es:si+014h], di                 ; 26 89 7c 14
     
    1106011086    pop bp                                    ; 5d
    1106111087    retn 00004h                               ; c2 04 00
    11062 @scsi_write_sectors:                         ; 0xf7836 LB 0xb6
     11088@scsi_write_sectors:                         ; 0xf7874 LB 0xb6
    1106311089    push bp                                   ; 55
    1106411090    mov bp, sp                                ; 89 e5
     
    1107111097    sub bl, 008h                              ; 80 eb 08
    1107211098    cmp bl, 004h                              ; 80 fb 04
    11073     jbe short 0785fh                          ; 76 0f
     11099    jbe short 0789dh                          ; 76 0f
    1107411100    movzx ax, bl                              ; 0f b6 c3
    1107511101    push ax                                   ; 50
    1107611102    push 00b3ch                               ; 68 3c 0b
    1107711103    push strict byte 00007h                   ; 6a 07
    11078     call 01922h                               ; e8 c6 a0
     11104    call 01972h                               ; e8 d8 a0
    1107911105    add sp, strict byte 00006h                ; 83 c4 06
    1108011106    mov es, [bp+006h]                         ; 8e 46 06
     
    1110311129    sal word [bp-008h], 1                     ; d1 66 f8
    1110411130    rcl word [bp-006h], 1                     ; d1 56 fa
    11105     loop 078a8h                               ; e2 f8
     11131    loop 078e6h                               ; e2 f8
    1110611132    push dword [bp-008h]                      ; 66 ff 76 f8
    1110711133    db  066h, 026h, 0ffh, 074h, 004h
     
    1111111137    mov cx, ss                                ; 8c d1
    1111211138    lea bx, [bp-012h]                         ; 8d 5e ee
    11113     call 076cch                               ; e8 07 fe
     11139    call 0770ah                               ; e8 07 fe
    1111411140    mov ah, al                                ; 88 c4
    1111511141    test al, al                               ; 84 c0
    11116     jne short 078e0h                          ; 75 15
     11142    jne short 0791eh                          ; 75 15
    1111711143    mov es, [bp+006h]                         ; 8e 46 06
    1111811144    mov word [es:si+014h], di                 ; 26 89 7c 14
     
    1112711153    pop bp                                    ; 5d
    1112811154    retn 00004h                               ; c2 04 00
    11129 scsi_cmd_packet_:                            ; 0xf78ec LB 0x166
     11155scsi_cmd_packet_:                            ; 0xf792a LB 0x166
    1113011156    push bp                                   ; 55
    1113111157    mov bp, sp                                ; 89 e5
     
    1113911165    mov dx, strict word 0000eh                ; ba 0e 00
    1114011166    mov ax, strict word 00040h                ; b8 40 00
    11141     call 0161ch                               ; e8 14 9d
     11167    call 0166ch                               ; e8 26 9d
    1114211168    mov si, 00122h                            ; be 22 01
    1114311169    mov word [bp-00eh], ax                    ; 89 46 f2
    1114411170    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    11145     jne short 07933h                          ; 75 1f
     11171    jne short 07971h                          ; 75 1f
    1114611172    mov bx, 00da2h                            ; bb a2 0d
    1114711173    mov cx, ds                                ; 8c d9
    1114811174    mov ax, strict word 00004h                ; b8 04 00
    11149     call 018e1h                               ; e8 c2 9f
     11175    call 01931h                               ; e8 d4 9f
    1115011176    push 00b6bh                               ; 68 6b 0b
    1115111177    push 00b7bh                               ; 68 7b 0b
    1115211178    push strict byte 00004h                   ; 6a 04
    11153     call 01922h                               ; e8 f8 9f
     11179    call 01972h                               ; e8 0a a0
    1115411180    add sp, strict byte 00006h                ; 83 c4 06
    1115511181    mov dx, strict word 00001h                ; ba 01 00
    11156     jmp near 07a47h                           ; e9 14 01
     11182    jmp near 07a85h                           ; e9 14 01
    1115711183    sub di, strict byte 00008h                ; 83 ef 08
    1115811184    sal di, 002h                              ; c1 e7 02
     
    1116811194    ; sub ah, ah                                ; 2a e4
    1116911195    test AL, strict byte 001h                 ; a8 01
    11170     jne short 0794fh                          ; 75 f7
     11196    jne short 0798dh                          ; 75 f7
    1117111197    xor ax, ax                                ; 31 c0
    1117211198    mov dx, word [bp+006h]                    ; 8b 56 06
     
    1118411210    shr dx, 1                                 ; d1 ea
    1118511211    rcr ax, 1                                 ; d1 d8
    11186     loop 0797ah                               ; e2 fa
     11212    loop 079b8h                               ; e2 fa
    1118711213    and ax, 000f0h                            ; 25 f0 00
    1118811214    movzx cx, byte [bp-006h]                  ; 0f b6 4e fa
     
    1120211228    shr dx, 1                                 ; d1 ea
    1120311229    rcr ax, 1                                 ; d1 d8
    11204     loop 079a1h                               ; e2 fa
     11230    loop 079dfh                               ; e2 fa
    1120511231    mov dx, bx                                ; 89 da
    1120611232    out DX, AL                                ; ee
     
    1120811234    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    1120911235    cmp cx, ax                                ; 39 c1
    11210     jnc short 079c2h                          ; 73 0e
     11236    jnc short 07a00h                          ; 73 0e
    1121111237    les di, [bp-00ch]                         ; c4 7e f4
    1121211238    add di, cx                                ; 01 cf
     
    1121511241    out DX, AL                                ; ee
    1121611242    inc cx                                    ; 41
    11217     jmp short 079ach                          ; eb ea
     11243    jmp short 079eah                          ; eb ea
    1121811244    mov dx, bx                                ; 89 da
    1121911245    in AL, DX                                 ; ec
     
    1122111247    ; sub ah, ah                                ; 2a e4
    1122211248    test AL, strict byte 001h                 ; a8 01
    11223     jne short 079c2h                          ; 75 f7
     11249    jne short 07a00h                          ; 75 f7
    1122411250    test AL, strict byte 002h                 ; a8 02
    11225     je short 079ddh                           ; 74 0e
     11251    je short 07a1bh                           ; 74 0e
    1122611252    lea dx, [bx+003h]                         ; 8d 57 03
    1122711253    xor al, al                                ; 30 c0
     
    1123111257    ; sub ah, ah                                ; 2a e4
    1123211258    mov dx, strict word 00003h                ; ba 03 00
    11233     jmp short 07a47h                          ; eb 6a
     11259    jmp short 07a85h                          ; eb 6a
    1123411260    mov ax, word [bp+004h]                    ; 8b 46 04
    1123511261    test ax, ax                               ; 85 c0
    11236     je short 079ech                           ; 74 08
     11262    je short 07a2ah                           ; 74 08
    1123711263    lea dx, [bx+001h]                         ; 8d 57 01
    1123811264    mov cx, ax                                ; 89 c1
    1123911265    in AL, DX                                 ; ec
    11240     loop 079e9h                               ; e2 fd
     11266    loop 07a27h                               ; e2 fd
    1124111267    mov ax, word [bp+006h]                    ; 8b 46 06
    1124211268    mov es, [bp-00eh]                         ; 8e 46 f2
     
    1124611272    lea ax, [bx+001h]                         ; 8d 47 01
    1124711273    cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
    11248     jne short 07a0dh                          ; 75 07
     11274    jne short 07a4bh                          ; 75 07
    1124911275    cmp word [bp+006h], 08000h                ; 81 7e 06 00 80
    11250     jbe short 07a2ah                          ; 76 1d
     11276    jbe short 07a68h                          ; 76 1d
    1125111277    mov dx, ax                                ; 89 c2
    1125211278    mov cx, 08000h                            ; b9 00 80
     
    1125811284    add ax, 00800h                            ; 05 00 08
    1125911285    mov word [bp+00eh], ax                    ; 89 46 0e
    11260     jmp short 079fdh                          ; eb d3
     11286    jmp short 07a3bh                          ; eb d3
    1126111287    mov dx, ax                                ; 89 c2
    1126211288    mov cx, word [bp+006h]                    ; 8b 4e 06
     
    1126511291    mov es, [bp-00eh]                         ; 8e 46 f2
    1126611292    cmp word [es:si+01ch], strict byte 00000h ; 26 83 7c 1c 00
    11267     je short 07a45h                           ; 74 07
     11293    je short 07a83h                           ; 74 07
    1126811294    mov cx, word [es:si+01ch]                 ; 26 8b 4c 1c
    1126911295    in AL, DX                                 ; ec
    11270     loop 07a42h                               ; e2 fd
     11296    loop 07a80h                               ; e2 fd
    1127111297    xor dx, dx                                ; 31 d2
    1127211298    mov ax, dx                                ; 89 d0
     
    1127611302    pop bp                                    ; 5d
    1127711303    retn 0000ch                               ; c2 0c 00
    11278 scsi_enumerate_attached_devices_:            ; 0xf7a52 LB 0x3e5
     11304scsi_enumerate_attached_devices_:            ; 0xf7a90 LB 0x3e5
    1127911305    push bp                                   ; 55
    1128011306    mov bp, sp                                ; 89 e5
     
    1128811314    mov dx, strict word 0000eh                ; ba 0e 00
    1128911315    mov ax, strict word 00040h                ; b8 40 00
    11290     call 0161ch                               ; e8 b4 9b
     11316    call 0166ch                               ; e8 c6 9b
    1129111317    mov si, 00122h                            ; be 22 01
    1129211318    mov word [bp-01ah], ax                    ; 89 46 e6
    1129311319    mov word [bp-010h], strict word 00000h    ; c7 46 f0 00 00
    11294     jmp near 07dc5h                           ; e9 4f 03
     11320    jmp near 07e03h                           ; e9 4f 03
    1129511321    mov es, [bp-01ah]                         ; 8e 46 e6
    1129611322    cmp byte [es:si+001e8h], 004h             ; 26 80 bc e8 01 04
    11297     jnc near 07e2dh                           ; 0f 83 aa 03
     11323    jnc near 07e6bh                           ; 0f 83 aa 03
    1129811324    mov cx, strict word 0000ah                ; b9 0a 00
    1129911325    xor bx, bx                                ; 31 db
    1130011326    mov dx, ss                                ; 8c d2
    1130111327    lea ax, [bp-026h]                         ; 8d 46 da
    11302     call 0946ah                               ; e8 da 19
     11328    call 094aah                               ; e8 dc 19
    1130311329    mov byte [bp-026h], 025h                  ; c6 46 da 25
    1130411330    push dword 000000008h                     ; 66 6a 08
     
    1131111337    lea bx, [bp-026h]                         ; 8d 5e da
    1131211338    mov ax, word [bp-00228h]                  ; 8b 86 d8 fd
    11313     call 0761ah                               ; e8 6b fb
     11339    call 07658h                               ; e8 6b fb
    1131411340    test al, al                               ; 84 c0
    11315     je short 07ac1h                           ; 74 0e
     11341    je short 07affh                           ; 74 0e
    1131611342    push 00b9bh                               ; 68 9b 0b
    1131711343    push 00bd4h                               ; 68 d4 0b
    1131811344    push strict byte 00007h                   ; 6a 07
    11319     call 01922h                               ; e8 64 9e
     11345    call 01972h                               ; e8 76 9e
    1132011346    add sp, strict byte 00006h                ; 83 c4 06
    1132111347    movzx ax, byte [bp-00225h]                ; 0f b6 86 db fd
     
    1132911355    sal ax, 1                                 ; d1 e0
    1133011356    rcl dx, 1                                 ; d1 d2
    11331     loop 07adch                               ; e2 fa
     11357    loop 07b1ah                               ; e2 fa
    1133211358    or bx, ax                                 ; 09 c3
    1133311359    or dx, di                                 ; 09 fa
     
    1134611372    sal ax, 1                                 ; d1 e0
    1134711373    rcl dx, 1                                 ; d1 d2
    11348     loop 07b0eh                               ; e2 fa
     11374    loop 07b4ch                               ; e2 fa
    1134911375    or ax, bx                                 ; 09 d8
    1135011376    or dx, di                                 ; 09 fa
     
    1135311379    mov word [bp-016h], ax                    ; 89 46 ea
    1135411380    test dx, dx                               ; 85 d2
    11355     jne short 07b2bh                          ; 75 05
     11381    jne short 07b69h                          ; 75 05
    1135611382    cmp ax, 00200h                            ; 3d 00 02
    11357     je short 07b4bh                           ; 74 20
     11383    je short 07b89h                           ; 74 20
    1135811384    mov bx, 00da2h                            ; bb a2 0d
    1135911385    mov cx, ds                                ; 8c d9
    1136011386    mov ax, strict word 00004h                ; b8 04 00
    11361     call 018e1h                               ; e8 ab 9d
     11387    call 01931h                               ; e8 bd 9d
    1136211388    push dx                                   ; 52
    1136311389    push word [bp-016h]                       ; ff 76 ea
     
    1136511391    push 00bf3h                               ; 68 f3 0b
    1136611392    push strict byte 00004h                   ; 6a 04
    11367     call 01922h                               ; e8 dd 9d
     11393    call 01972h                               ; e8 ef 9d
    1136811394    add sp, strict byte 0000ah                ; 83 c4 0a
    11369     jmp near 07dbch                           ; e9 71 02
     11395    jmp near 07dfah                           ; e9 71 02
    1137011396    mov es, [bp-01ah]                         ; 8e 46 e6
    1137111397    mov al, byte [es:si+001e8h]               ; 26 8a 84 e8 01
    1137211398    mov byte [bp-00ch], al                    ; 88 46 f4
    1137311399    cmp AL, strict byte 001h                  ; 3c 01
    11374     jc short 07b66h                           ; 72 0c
    11375     jbe short 07b6eh                          ; 76 12
     11400    jc short 07ba4h                           ; 72 0c
     11401    jbe short 07bach                          ; 76 12
    1137611402    cmp AL, strict byte 003h                  ; 3c 03
    11377     je short 07b76h                           ; 74 16
     11403    je short 07bb4h                           ; 74 16
    1137811404    cmp AL, strict byte 002h                  ; 3c 02
    11379     je short 07b72h                           ; 74 0e
    11380     jmp short 07bc2h                          ; eb 5c
     11405    je short 07bb0h                           ; 74 0e
     11406    jmp short 07c00h                          ; eb 5c
    1138111407    test al, al                               ; 84 c0
    11382     jne short 07bc2h                          ; 75 58
     11408    jne short 07c00h                          ; 75 58
    1138311409    mov BL, strict byte 090h                  ; b3 90
    11384     jmp short 07b78h                          ; eb 0a
     11410    jmp short 07bb6h                          ; eb 0a
    1138511411    mov BL, strict byte 098h                  ; b3 98
    11386     jmp short 07b78h                          ; eb 06
     11412    jmp short 07bb6h                          ; eb 06
    1138711413    mov BL, strict byte 0a0h                  ; b3 a0
    11388     jmp short 07b78h                          ; eb 02
     11414    jmp short 07bb6h                          ; eb 02
    1138911415    mov BL, strict byte 0a8h                  ; b3 a8
    1139011416    mov al, bl                                ; 88 d8
     
    1139211418    movzx cx, al                              ; 0f b6 c8
    1139311419    mov ax, cx                                ; 89 c8
    11394     call 0165ch                               ; e8 d8 9a
     11420    call 016ach                               ; e8 ea 9a
    1139511421    test al, al                               ; 84 c0
    11396     je short 07bc2h                           ; 74 3a
     11422    je short 07c00h                           ; 74 3a
    1139711423    mov al, bl                                ; 88 d8
    1139811424    db  0feh, 0c0h
    1139911425    ; inc al                                    ; fe c0
    1140011426    xor ah, ah                                ; 30 e4
    11401     call 0165ch                               ; e8 cb 9a
     11427    call 016ach                               ; e8 dd 9a
    1140211428    xor ah, ah                                ; 30 e4
    1140311429    mov dx, ax                                ; 89 c2
    1140411430    sal dx, 008h                              ; c1 e2 08
    1140511431    movzx ax, bl                              ; 0f b6 c3
    11406     call 0165ch                               ; e8 be 9a
     11432    call 016ach                               ; e8 d0 9a
    1140711433    xor ah, ah                                ; 30 e4
    1140811434    add ax, dx                                ; 01 d0
     
    1141311439    add AL, strict byte 002h                  ; 04 02
    1141411440    xor ah, ah                                ; 30 e4
    11415     call 0165ch                               ; e8 ab 9a
     11441    call 016ach                               ; e8 bd 9a
    1141611442    xor ah, ah                                ; 30 e4
    1141711443    mov word [bp-014h], ax                    ; 89 46 ec
    1141811444    mov ax, cx                                ; 89 c8
    11419     call 0165ch                               ; e8 a1 9a
     11445    call 016ach                               ; e8 b3 9a
    1142011446    xor ah, ah                                ; 30 e4
    1142111447    mov word [bp-01ch], ax                    ; 89 46 e4
    11422     jmp short 07c07h                          ; eb 45
     11448    jmp short 07c45h                          ; eb 45
    1142311449    mov ax, word [bp-018h]                    ; 8b 46 e8
    1142411450    cmp ax, strict word 00040h                ; 3d 40 00
    11425     jnbe short 07bcch                         ; 77 02
    11426     jne short 07bd8h                          ; 75 0c
     11451    jnbe short 07c0ah                         ; 77 02
     11452    jne short 07c16h                          ; 75 0c
    1142711453    mov word [bp-014h], 000ffh                ; c7 46 ec ff 00
    1142811454    mov word [bp-01ch], strict word 0003fh    ; c7 46 e4 3f 00
    11429     jmp short 07bf0h                          ; eb 18
     11455    jmp short 07c2eh                          ; eb 18
    1143011456    cmp ax, strict word 00020h                ; 3d 20 00
    11431     jnbe short 07bdfh                         ; 77 02
    11432     jne short 07be6h                          ; 75 07
     11457    jnbe short 07c1dh                         ; 77 02
     11458    jne short 07c24h                          ; 75 07
    1143311459    mov word [bp-014h], 00080h                ; c7 46 ec 80 00
    11434     jmp short 07bebh                          ; eb 05
     11460    jmp short 07c29h                          ; eb 05
    1143511461    mov word [bp-014h], strict word 00040h    ; c7 46 ec 40 00
    1143611462    mov word [bp-01ch], strict word 00020h    ; c7 46 e4 20 00
     
    1144011466    mov dx, word [bp-018h]                    ; 8b 56 e8
    1144111467    xor cx, cx                                ; 31 c9
    11442     call 09400h                               ; e8 fe 17
     11468    call 09440h                               ; e8 00 18
    1144311469    mov di, ax                                ; 89 c7
    1144411470    mov word [bp-012h], dx                    ; 89 56 ee
     
    1146711493    mov word [es:bx+02ah], ax                 ; 26 89 47 2a
    1146811494    cmp word [bp-012h], strict byte 00000h    ; 83 7e ee 00
    11469     jne short 07c63h                          ; 75 06
     11495    jne short 07ca1h                          ; 75 06
    1147011496    cmp di, 00400h                            ; 81 ff 00 04
    11471     jbe short 07c6bh                          ; 76 08
     11497    jbe short 07ca9h                          ; 76 08
    1147211498    mov word [es:bx+028h], 00400h             ; 26 c7 47 28 00 04
    11473     jmp short 07c6fh                          ; eb 04
     11499    jmp short 07cadh                          ; eb 04
    1147411500    mov word [es:bx+028h], di                 ; 26 89 7f 28
    1147511501    mov bx, 00da2h                            ; bb a2 0d
    1147611502    mov cx, ds                                ; 8c d9
    1147711503    mov ax, strict word 00004h                ; b8 04 00
    11478     call 018e1h                               ; e8 67 9c
     11504    call 01931h                               ; e8 79 9c
    1147911505    push word [bp-018h]                       ; ff 76 e8
    1148011506    push word [bp-00eh]                       ; ff 76 f2
     
    1148711513    push 00c21h                               ; 68 21 0c
    1148811514    push strict byte 00004h                   ; 6a 04
    11489     call 01922h                               ; e8 8b 9c
     11515    call 01972h                               ; e8 9d 9c
    1149011516    add sp, strict byte 00012h                ; 83 c4 12
    1149111517    movzx ax, dl                              ; 0f b6 c2
     
    1149911525    mov word [es:bx+030h], ax                 ; 26 89 47 30
    1150011526    cmp word [bp-012h], strict byte 00000h    ; 83 7e ee 00
    11501     jne short 07cc1h                          ; 75 06
     11527    jne short 07cffh                          ; 75 06
    1150211528    cmp di, 00400h                            ; 81 ff 00 04
    11503     jbe short 07cc9h                          ; 76 08
     11529    jbe short 07d07h                          ; 76 08
    1150411530    mov word [es:bx+02eh], 00400h             ; 26 c7 47 2e 00 04
    11505     jmp short 07ccdh                          ; eb 04
     11531    jmp short 07d0bh                          ; eb 04
    1150611532    mov word [es:bx+02eh], di                 ; 26 89 7f 2e
    1150711533    movzx ax, dl                              ; 0f b6 c2
     
    1152511551    mov dx, strict word 00075h                ; ba 75 00
    1152611552    mov ax, strict word 00040h                ; b8 40 00
    11527     call 01600h                               ; e8 f3 98
     11553    call 01650h                               ; e8 05 99
    1152811554    db  0feh, 0c0h
    1152911555    ; inc al                                    ; fe c0
     
    1153111557    mov dx, strict word 00075h                ; ba 75 00
    1153211558    mov ax, strict word 00040h                ; b8 40 00
    11533     call 0160eh                               ; e8 f3 98
     11559    call 0165eh                               ; e8 05 99
    1153411560    inc byte [bp-00ch]                        ; fe 46 f4
    1153511561    mov al, byte [bp-00ch]                    ; 8a 46 f4
    1153611562    mov es, [bp-01ah]                         ; 8e 46 e6
    1153711563    mov byte [es:si+001e8h], al               ; 26 88 84 e8 01
    11538     jmp near 07dbch                           ; e9 90 00
     11564    jmp near 07dfah                           ; e9 90 00
    1153911565    mov bx, 00da2h                            ; bb a2 0d
    1154011566    mov cx, ds                                ; 8c d9
    1154111567    mov ax, strict word 00004h                ; b8 04 00
    11542     call 018e1h                               ; e8 aa 9b
     11568    call 01931h                               ; e8 bc 9b
    1154311569    push word [bp-010h]                       ; ff 76 f0
    1154411570    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     
    1154611572    push 00c4bh                               ; 68 4b 0c
    1154711573    push strict byte 00004h                   ; 6a 04
    11548     call 01922h                               ; e8 db 9b
     11574    call 01972h                               ; e8 ed 9b
    1154911575    add sp, strict byte 00008h                ; 83 c4 08
    1155011576    mov dl, byte [bp-00ch]                    ; 8a 56 f4
     
    1158511611    inc word [bp-010h]                        ; ff 46 f0
    1158611612    cmp word [bp-010h], strict byte 00010h    ; 83 7e f0 10
    11587     jnl short 07e2dh                          ; 7d 68
     11613    jnl short 07e6bh                          ; 7d 68
    1158811614    mov byte [bp-026h], 012h                  ; c6 46 da 12
    1158911615    xor al, al                                ; 30 c0
     
    1160211628    lea bx, [bp-026h]                         ; 8d 5e da
    1160311629    mov ax, word [bp-00228h]                  ; 8b 86 d8 fd
    11604     call 0761ah                               ; e8 24 f8
     11630    call 07658h                               ; e8 24 f8
    1160511631    test al, al                               ; 84 c0
    11606     je short 07e08h                           ; 74 0e
     11632    je short 07e46h                           ; 74 0e
    1160711633    push 00b9bh                               ; 68 9b 0b
    1160811634    push 00bbbh                               ; 68 bb 0b
    1160911635    push strict byte 00007h                   ; 6a 07
    11610     call 01922h                               ; e8 1d 9b
     11636    call 01972h                               ; e8 2f 9b
    1161111637    add sp, strict byte 00006h                ; 83 c4 06
    1161211638    test byte [bp-00226h], 0e0h               ; f6 86 da fd e0
    11613     jne short 07e18h                          ; 75 09
     11639    jne short 07e56h                          ; 75 09
    1161411640    test byte [bp-00226h], 01fh               ; f6 86 da fd 1f
    11615     je near 07a76h                            ; 0f 84 5e fc
     11641    je near 07ab4h                            ; 0f 84 5e fc
    1161611642    test byte [bp-00226h], 0e0h               ; f6 86 da fd e0
    11617     jne short 07dbch                          ; 75 9d
     11643    jne short 07dfah                          ; 75 9d
    1161811644    mov al, byte [bp-00226h]                  ; 8a 86 da fd
    1161911645    and AL, strict byte 01fh                  ; 24 1f
    1162011646    cmp AL, strict byte 005h                  ; 3c 05
    11621     je near 07d2ch                            ; 0f 84 01 ff
    11622     jmp short 07dbch                          ; eb 8f
     11647    je near 07d6ah                            ; 0f 84 01 ff
     11648    jmp short 07dfah                          ; eb 8f
    1162311649    lea sp, [bp-00ah]                         ; 8d 66 f6
    1162411650    pop di                                    ; 5f
     
    1162911655    pop bp                                    ; 5d
    1163011656    retn                                      ; c3
    11631 _scsi_init:                                  ; 0xf7e37 LB 0x66
     11657_scsi_init:                                  ; 0xf7e75 LB 0x66
    1163211658    push bp                                   ; 55
    1163311659    mov bp, sp                                ; 89 e5
    1163411660    mov dx, strict word 0000eh                ; ba 0e 00
    1163511661    mov ax, strict word 00040h                ; b8 40 00
    11636     call 0161ch                               ; e8 d9 97
     11662    call 0166ch                               ; e8 eb 97
    1163711663    mov bx, 00122h                            ; bb 22 01
    1163811664    mov es, ax                                ; 8e c0
     
    1164511671    ; sub ah, ah                                ; 2a e4
    1164611672    cmp AL, strict byte 055h                  ; 3c 55
    11647     jne short 07e67h                          ; 75 0c
     11673    jne short 07ea5h                          ; 75 0c
    1164811674    xor al, al                                ; 30 c0
    1164911675    mov dx, 00433h                            ; ba 33 04
    1165011676    out DX, AL                                ; ee
    1165111677    mov ax, 00430h                            ; b8 30 04
    11652     call 07a52h                               ; e8 eb fb
     11678    call 07a90h                               ; e8 eb fb
    1165311679    mov AL, strict byte 055h                  ; b0 55
    1165411680    mov dx, 00436h                            ; ba 36 04
     
    1165811684    ; sub ah, ah                                ; 2a e4
    1165911685    cmp AL, strict byte 055h                  ; 3c 55
    11660     jne short 07e80h                          ; 75 0c
     11686    jne short 07ebeh                          ; 75 0c
    1166111687    xor al, al                                ; 30 c0
    1166211688    mov dx, 00437h                            ; ba 37 04
    1166311689    out DX, AL                                ; ee
    1166411690    mov ax, 00434h                            ; b8 34 04
    11665     call 07a52h                               ; e8 d2 fb
     11691    call 07a90h                               ; e8 d2 fb
    1166611692    mov AL, strict byte 055h                  ; b0 55
    1166711693    mov dx, 0043ah                            ; ba 3a 04
     
    1167111697    ; sub ah, ah                                ; 2a e4
    1167211698    cmp AL, strict byte 055h                  ; 3c 55
    11673     jne short 07e99h                          ; 75 0c
     11699    jne short 07ed7h                          ; 75 0c
    1167411700    xor al, al                                ; 30 c0
    1167511701    mov dx, 0043bh                            ; ba 3b 04
    1167611702    out DX, AL                                ; ee
    1167711703    mov ax, 00438h                            ; b8 38 04
    11678     call 07a52h                               ; e8 b9 fb
     11704    call 07a90h                               ; e8 b9 fb
    1167911705    mov sp, bp                                ; 89 ec
    1168011706    pop bp                                    ; 5d
    1168111707    retn                                      ; c3
    11682 high_bits_save_:                             ; 0xf7e9d LB 0x17
     11708high_bits_save_:                             ; 0xf7edb LB 0x17
    1168311709    push bp                                   ; 55
    1168411710    mov bp, sp                                ; 89 e5
     
    1169211718    pop bp                                    ; 5d
    1169311719    retn                                      ; c3
    11694 high_bits_restore_:                          ; 0xf7eb4 LB 0x17
     11720high_bits_restore_:                          ; 0xf7ef2 LB 0x17
    1169511721    push bp                                   ; 55
    1169611722    mov bp, sp                                ; 89 e5
     
    1170411730    pop bp                                    ; 5d
    1170511731    retn                                      ; c3
    11706 ahci_ctrl_set_bits_:                         ; 0xf7ecb LB 0x43
     11732ahci_ctrl_set_bits_:                         ; 0xf7f09 LB 0x43
    1170711733    push bp                                   ; 55
    1170811734    mov bp, sp                                ; 89 e5
     
    1174211768    pop bp                                    ; 5d
    1174311769    retn                                      ; c3
    11744 ahci_ctrl_clear_bits_:                       ; 0xf7f0e LB 0x47
     11770ahci_ctrl_clear_bits_:                       ; 0xf7f4c LB 0x47
    1174511771    push bp                                   ; 55
    1174611772    mov bp, sp                                ; 89 e5
     
    1178211808    pop bp                                    ; 5d
    1178311809    retn                                      ; c3
    11784 ahci_ctrl_is_bit_set_:                       ; 0xf7f55 LB 0x39
     11810ahci_ctrl_is_bit_set_:                       ; 0xf7f93 LB 0x39
    1178511811    push bp                                   ; 55
    1178611812    mov bp, sp                                ; 89 e5
     
    1180411830    xchg dx, ax                               ; 92
    1180511831    test dx, di                               ; 85 fa
    11806     jne short 07f81h                          ; 75 04
     11832    jne short 07fbfh                          ; 75 04
    1180711833    test ax, bx                               ; 85 d8
    11808     je short 07f85h                           ; 74 04
     11834    je short 07fc3h                           ; 74 04
    1180911835    mov AL, strict byte 001h                  ; b0 01
    11810     jmp short 07f87h                          ; eb 02
     11836    jmp short 07fc5h                          ; eb 02
    1181111837    xor al, al                                ; 30 c0
    1181211838    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1181511841    pop bp                                    ; 5d
    1181611842    retn                                      ; c3
    11817 ahci_ctrl_extract_bits_:                     ; 0xf7f8e LB 0x1b
     11843ahci_ctrl_extract_bits_:                     ; 0xf7fcc LB 0x1b
    1181811844    push si                                   ; 56
    1181911845    push bp                                   ; 55
     
    1182311849    and dx, cx                                ; 21 ca
    1182411850    movzx cx, byte [bp+006h]                  ; 0f b6 4e 06
    11825     jcxz 07fa4h                               ; e3 06
     11851    jcxz 07fe2h                               ; e3 06
    1182611852    shr dx, 1                                 ; d1 ea
    1182711853    rcr ax, 1                                 ; d1 d8
    11828     loop 07f9eh                               ; e2 fa
     11854    loop 07fdch                               ; e2 fa
    1182911855    pop bp                                    ; 5d
    1183011856    pop si                                    ; 5e
    1183111857    retn 00002h                               ; c2 02 00
    11832 ahci_addr_to_phys_:                          ; 0xf7fa9 LB 0x1e
     11858ahci_addr_to_phys_:                          ; 0xf7fe7 LB 0x1e
    1183311859    push bx                                   ; 53
    1183411860    push cx                                   ; 51
     
    1184111867    sal ax, 1                                 ; d1 e0
    1184211868    rcl dx, 1                                 ; d1 d2
    11843     loop 07fb7h                               ; e2 fa
     11869    loop 07ff5h                               ; e2 fa
    1184411870    xor cx, cx                                ; 31 c9
    1184511871    add ax, bx                                ; 01 d8
     
    1184911875    pop bx                                    ; 5b
    1185011876    retn                                      ; c3
    11851 ahci_port_cmd_sync_:                         ; 0xf7fc7 LB 0xd5
     11877ahci_port_cmd_sync_:                         ; 0xf8005 LB 0xd5
    1185211878    push bp                                   ; 55
    1185311879    mov bp, sp                                ; 89 e5
     
    1186311889    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
    1186411890    cmp AL, strict byte 0ffh                  ; 3c ff
    11865     je near 08094h                            ; 0f 84 aa 00
     11891    je near 080d2h                            ; 0f 84 aa 00
    1186611892    movzx cx, byte [es:si+00263h]             ; 26 0f b6 8c 63 02
    1186711893    xor dx, dx                                ; 31 d2
     
    1187511901    lea ax, [si+00080h]                       ; 8d 84 80 00
    1187611902    mov dx, es                                ; 8c c2
    11877     call 07fa9h                               ; e8 96 ff
     11903    call 07fe7h                               ; e8 96 ff
    1187811904    mov es, [bp-00ah]                         ; 8e 46 f6
    1187911905    mov word [es:si+008h], ax                 ; 26 89 44 08
     
    1188511911    xor cx, cx                                ; 31 c9
    1188611912    mov ax, di                                ; 89 f8
    11887     call 07ecbh                               ; e8 98 fe
     11913    call 07f09h                               ; e8 98 fe
    1188811914    lea ax, [si+00138h]                       ; 8d 84 38 01
    1188911915    cwd                                       ; 99
     
    1191211938    mov dx, si                                ; 89 f2
    1191311939    mov ax, di                                ; 89 f8
    11914     call 07f55h                               ; e8 e2 fe
     11940    call 07f93h                               ; e8 e2 fe
    1191511941    test al, al                               ; 84 c0
    11916     je short 08056h                           ; 74 df
     11942    je short 08094h                           ; 74 df
    1191711943    mov bx, strict word 00001h                ; bb 01 00
    1191811944    xor cx, cx                                ; 31 c9
    1191911945    mov dx, si                                ; 89 f2
    1192011946    mov ax, di                                ; 89 f8
    11921     call 07ecbh                               ; e8 48 fe
     11947    call 07f09h                               ; e8 48 fe
    1192211948    mov dx, word [bp-00ch]                    ; 8b 56 f4
    1192311949    add dx, 00118h                            ; 81 c2 18 01
     
    1192511951    xor cx, cx                                ; 31 c9
    1192611952    mov ax, di                                ; 89 f8
    11927     call 07f0eh                               ; e8 7a fe
     11953    call 07f4ch                               ; e8 7a fe
    1192811954    lea sp, [bp-006h]                         ; 8d 66 fa
    1192911955    pop di                                    ; 5f
     
    1193211958    pop bp                                    ; 5d
    1193311959    retn                                      ; c3
    11934 ahci_cmd_data_:                              ; 0xf809c LB 0x1ca
     11960ahci_cmd_data_:                              ; 0xf80da LB 0x1ca
    1193511961    push bp                                   ; 55
    1193611962    mov bp, sp                                ; 89 e5
     
    1195611982    mov ax, 00080h                            ; b8 80 00
    1195711983    mov dx, word [bp-00ah]                    ; 8b 56 f6
    11958     call 0946ah                               ; e8 8f 13
     11984    call 094aah                               ; e8 91 13
    1195911985    mov es, [bp-00ah]                         ; 8e 46 f6
    1196011986    mov word [es:si+00080h], 08027h           ; 26 c7 84 80 00 27 80
     
    1197211998    shr bx, 1                                 ; d1 eb
    1197311999    rcr ax, 1                                 ; d1 d8
    11974     loop 0810eh                               ; e2 fa
     12000    loop 0814ch                               ; e2 fa
    1197512001    mov es, [bp-00ah]                         ; 8e 46 f6
    1197612002    mov byte [es:si+00085h], al               ; 26 88 84 85 00
     
    1199712023    mov bx, word [bp-016h]                    ; 8b 5e ea
    1199812024    xor cx, cx                                ; 31 c9
    11999     call 09439h                               ; e8 c2 12
     12025    call 09479h                               ; e8 c4 12
    1200012026    push dx                                   ; 52
    1200112027    push ax                                   ; 50
     
    1200512031    mov ax, 0026ah                            ; b8 6a 02
    1200612032    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12007     call 09351h                               ; e8 c4 11
     12033    call 0938fh                               ; e8 c4 11
    1200812034    mov es, [bp-00ah]                         ; 8e 46 f6
    1200912035    movzx ax, byte [es:si+00263h]             ; 26 0f b6 84 63 02
     
    1202512051    mov es, [bp-012h]                         ; 8e 46 ee
    1202612052    cmp word [es:di+01ch], strict byte 00000h ; 26 83 7d 1c 00
    12027     je short 08206h                           ; 74 2c
     12053    je short 08244h                           ; 74 2c
    1202812054    mov dx, word [es:di+01ch]                 ; 26 8b 55 1c
    1202912055    dec dx                                    ; 4a
     
    1204412070    movzx dx, byte [es:bx+00263h]             ; 26 0f b6 97 63 02
    1204512071    cmp ax, dx                                ; 39 d0
    12046     jnc short 08220h                          ; 73 03
     12072    jnc short 0825eh                          ; 73 03
    1204712073    inc ax                                    ; 40
    12048     jmp short 08210h                          ; eb f0
     12074    jmp short 0824eh                          ; eb f0
    1204912075    mov al, byte [bp-008h]                    ; 8a 46 f8
    1205012076    cmp AL, strict byte 035h                  ; 3c 35
    12051     jne short 0822dh                          ; 75 06
     12077    jne short 0826bh                          ; 75 06
    1205212078    mov byte [bp-008h], 040h                  ; c6 46 f8 40
    12053     jmp short 08241h                          ; eb 14
     12079    jmp short 0827fh                          ; eb 14
    1205412080    cmp AL, strict byte 0a0h                  ; 3c a0
    12055     jne short 0823dh                          ; 75 0c
     12081    jne short 0827bh                          ; 75 0c
    1205612082    or byte [bp-008h], 020h                   ; 80 4e f8 20
    1205712083    or byte [es:bx+00083h], 001h              ; 26 80 8f 83 00 01
    12058     jmp short 08241h                          ; eb 04
     12084    jmp short 0827fh                          ; eb 04
    1205912085    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1206012086    or byte [bp-008h], 005h                   ; 80 4e f8 05
     
    1206212088    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1206312089    mov dx, word [bp-00ch]                    ; 8b 56 f4
    12064     call 07fc7h                               ; e8 75 fd
     12090    call 08005h                               ; e8 75 fd
    1206512091    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1206612092    add ax, 0026ah                            ; 05 6a 02
    1206712093    mov dx, word [bp-00ch]                    ; 8b 56 f4
    12068     call 093cah                               ; e8 6c 11
     12094    call 09408h                               ; e8 6c 11
    1206912095    lea sp, [bp-006h]                         ; 8d 66 fa
    1207012096    pop di                                    ; 5f
     
    1207312099    pop bp                                    ; 5d
    1207412100    retn                                      ; c3
    12075 ahci_port_deinit_current_:                   ; 0xf8266 LB 0x144
     12101ahci_port_deinit_current_:                   ; 0xf82a4 LB 0x144
    1207612102    push bp                                   ; 55
    1207712103    mov bp, sp                                ; 89 e5
     
    1208812114    mov byte [bp-00ah], al                    ; 88 46 f6
    1208912115    cmp AL, strict byte 0ffh                  ; 3c ff
    12090     je near 083a1h                            ; 0f 84 17 01
     12116    je near 083dfh                            ; 0f 84 17 01
    1209112117    movzx dx, al                              ; 0f b6 d0
    1209212118    sal dx, 007h                              ; c1 e2 07
     
    1209512121    xor cx, cx                                ; 31 c9
    1209612122    mov ax, si                                ; 89 f0
    12097     call 07f0eh                               ; e8 70 fc
     12123    call 07f4ch                               ; e8 70 fc
    1209812124    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    1209912125    sal ax, 007h                              ; c1 e0 07
     
    1210412130    xor cx, cx                                ; 31 c9
    1210512131    mov ax, si                                ; 89 f0
    12106     call 07f55h                               ; e8 9d fc
     12132    call 07f93h                               ; e8 9d fc
    1210712133    cmp AL, strict byte 001h                  ; 3c 01
    12108     je short 0829eh                           ; 74 e2
     12134    je short 082dch                           ; 74 e2
    1210912135    mov cx, strict word 00020h                ; b9 20 00
    1211012136    xor bx, bx                                ; 31 db
    1211112137    mov ax, di                                ; 89 f8
    1211212138    mov dx, word [bp-00ch]                    ; 8b 56 f4
    12113     call 0946ah                               ; e8 a1 11
     12139    call 094aah                               ; e8 a3 11
    1211412140    lea ax, [di+00080h]                       ; 8d 85 80 00
    1211512141    mov cx, strict word 00040h                ; b9 40 00
    1211612142    xor bx, bx                                ; 31 db
    1211712143    mov dx, word [bp-00ch]                    ; 8b 56 f4
    12118     call 0946ah                               ; e8 92 11
     12144    call 094aah                               ; e8 94 11
    1211912145    lea ax, [di+00200h]                       ; 8d 85 00 02
    1212012146    mov cx, strict word 00060h                ; b9 60 00
    1212112147    xor bx, bx                                ; 31 db
    1212212148    mov dx, word [bp-00ch]                    ; 8b 56 f4
    12123     call 0946ah                               ; e8 83 11
     12149    call 094aah                               ; e8 85 11
    1212412150    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1212512151    add ax, 00108h                            ; 05 08 01
     
    1222312249    pop bp                                    ; 5d
    1222412250    retn                                      ; c3
    12225 ahci_port_init_:                             ; 0xf83aa LB 0x206
     12251ahci_port_init_:                             ; 0xf83e8 LB 0x206
    1222612252    push bp                                   ; 55
    1222712253    mov bp, sp                                ; 89 e5
     
    1223312259    mov word [bp-00ah], dx                    ; 89 56 f6
    1223412260    mov byte [bp-008h], bl                    ; 88 5e f8
    12235     call 08266h                               ; e8 a8 fe
     12261    call 082a4h                               ; e8 a8 fe
    1223612262    movzx dx, bl                              ; 0f b6 d3
    1223712263    sal dx, 007h                              ; c1 e2 07
     
    1224112267    mov bx, strict word 00011h                ; bb 11 00
    1224212268    xor cx, cx                                ; 31 c9
    12243     call 07f0eh                               ; e8 36 fb
     12269    call 07f4ch                               ; e8 36 fb
    1224412270    movzx di, byte [bp-008h]                  ; 0f b6 7e f8
    1224512271    sal di, 007h                              ; c1 e7 07
     
    1224912275    mov bx, 0c011h                            ; bb 11 c0
    1225012276    xor cx, cx                                ; 31 c9
    12251     call 07f55h                               ; e8 62 fb
     12277    call 07f93h                               ; e8 62 fb
    1225212278    cmp AL, strict byte 001h                  ; 3c 01
    12253     je short 083d8h                           ; 74 e1
     12279    je short 08416h                           ; 74 e1
    1225412280    mov cx, strict word 00020h                ; b9 20 00
    1225512281    xor bx, bx                                ; 31 db
    1225612282    mov ax, si                                ; 89 f0
    1225712283    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12258     call 0946ah                               ; e8 66 10
     12284    call 094aah                               ; e8 68 10
    1225912285    lea ax, [si+00080h]                       ; 8d 84 80 00
    1226012286    mov cx, strict word 00040h                ; b9 40 00
    1226112287    xor bx, bx                                ; 31 db
    1226212288    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12263     call 0946ah                               ; e8 57 10
     12289    call 094aah                               ; e8 59 10
    1226412290    mov ax, si                                ; 89 f0
    1226512291    add ah, 002h                              ; 80 c4 02
     
    1226812294    xor bx, bx                                ; 31 db
    1226912295    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12270     call 0946ah                               ; e8 44 10
     12296    call 094aah                               ; e8 46 10
    1227112297    lea ax, [di+00108h]                       ; 8d 85 08 01
    1227212298    cwd                                       ; 99
     
    1228212308    mov ax, word [bp-00ch]                    ; 8b 46 f4
    1228312309    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12284     call 07fa9h                               ; e8 60 fb
     12310    call 07fe7h                               ; e8 60 fb
    1228512311    mov es, [bp-00ah]                         ; 8e 46 f6
    1228612312    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
     
    1232712353    mov ax, si                                ; 89 f0
    1232812354    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12329     call 07fa9h                               ; e8 f4 fa
     12355    call 07fe7h                               ; e8 f4 fa
    1233012356    mov es, [bp-00ah]                         ; 8e 46 f6
    1233112357    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
     
    1243212458    pop bp                                    ; 5d
    1243312459    retn                                      ; c3
    12434 @ahci_read_sectors:                          ; 0xf85b0 LB 0x94
     12460@ahci_read_sectors:                          ; 0xf85ee LB 0x94
    1243512461    push bp                                   ; 55
    1243612462    mov bp, sp                                ; 89 e5
     
    1244112467    sub di, strict byte 0000ch                ; 83 ef 0c
    1244212468    cmp di, strict byte 00004h                ; 83 ff 04
    12443     jbe short 085d4h                          ; 76 0f
     12469    jbe short 08612h                          ; 76 0f
    1244412470    push di                                   ; 57
    1244512471    push 00c66h                               ; 68 66 0c
    1244612472    push 00c78h                               ; 68 78 0c
    1244712473    push strict byte 00007h                   ; 6a 07
    12448     call 01922h                               ; e8 51 93
     12474    call 01972h                               ; e8 63 93
    1244912475    add sp, strict byte 00008h                ; 83 c4 08
    1245012476    les bx, [bp+004h]                         ; c4 5e 04
    1245112477    mov dx, word [es:bx+001eeh]               ; 26 8b 97 ee 01
    1245212478    xor ax, ax                                ; 31 c0
    12453     call 07e9dh                               ; e8 bc f8
     12479    call 07edbh                               ; e8 bc f8
    1245412480    mov es, [bp+006h]                         ; 8e 46 06
    1245512481    add di, bx                                ; 01 df
     
    1245812484    mov dx, word [es:di+001eeh]               ; 26 8b 95 ee 01
    1245912485    xor ax, ax                                ; 31 c0
    12460     call 083aah                               ; e8 b1 fd
     12486    call 083e8h                               ; e8 b1 fd
    1246112487    mov bx, strict word 00025h                ; bb 25 00
    1246212488    mov ax, di                                ; 89 f8
    1246312489    mov dx, word [bp+006h]                    ; 8b 56 06
    12464     call 0809ch                               ; e8 98 fa
     12490    call 080dah                               ; e8 98 fa
    1246512491    mov es, [bp+006h]                         ; 8e 46 06
    1246612492    mov bx, di                                ; 89 fb
     
    1248212508    mov dx, word [es:bx+001eeh]               ; 26 8b 97 ee 01
    1248312509    xor ax, ax                                ; 31 c0
    12484     call 07eb4h                               ; e8 7b f8
     12510    call 07ef2h                               ; e8 7b f8
    1248512511    xor ax, ax                                ; 31 c0
    1248612512    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1248912515    pop bp                                    ; 5d
    1249012516    retn 00004h                               ; c2 04 00
    12491 @ahci_write_sectors:                         ; 0xf8644 LB 0x70
     12517@ahci_write_sectors:                         ; 0xf8682 LB 0x70
    1249212518    push bp                                   ; 55
    1249312519    mov bp, sp                                ; 89 e5
     
    1249912525    sub bx, strict byte 0000ch                ; 83 eb 0c
    1250012526    cmp bx, strict byte 00004h                ; 83 fb 04
    12501     jbe short 0866ch                          ; 76 0f
     12527    jbe short 086aah                          ; 76 0f
    1250212528    push bx                                   ; 53
    1250312529    push 00c97h                               ; 68 97 0c
    1250412530    push 00c78h                               ; 68 78 0c
    1250512531    push strict byte 00007h                   ; 6a 07
    12506     call 01922h                               ; e8 b9 92
     12532    call 01972h                               ; e8 cb 92
    1250712533    add sp, strict byte 00008h                ; 83 c4 08
    1250812534    mov es, cx                                ; 8e c1
    1250912535    mov dx, word [es:si+001eeh]               ; 26 8b 94 ee 01
    1251012536    xor ax, ax                                ; 31 c0
    12511     call 07e9dh                               ; e8 25 f8
     12537    call 07edbh                               ; e8 25 f8
    1251212538    mov es, cx                                ; 8e c1
    1251312539    add bx, si                                ; 01 f3
     
    1251512541    mov dx, word [es:si+001eeh]               ; 26 8b 94 ee 01
    1251612542    xor ax, ax                                ; 31 c0
    12517     call 083aah                               ; e8 1e fd
     12543    call 083e8h                               ; e8 1e fd
    1251812544    mov bx, strict word 00035h                ; bb 35 00
    1251912545    mov ax, si                                ; 89 f0
    1252012546    mov dx, cx                                ; 89 ca
    12521     call 0809ch                               ; e8 06 fa
     12547    call 080dah                               ; e8 06 fa
    1252212548    mov es, cx                                ; 8e c1
    1252312549    mov dx, word [es:si+00ah]                 ; 26 8b 54 0a
     
    1252512551    mov dx, word [es:si+001eeh]               ; 26 8b 94 ee 01
    1252612552    xor ax, ax                                ; 31 c0
    12527     call 07eb4h                               ; e8 0a f8
     12553    call 07ef2h                               ; e8 0a f8
    1252812554    xor ax, ax                                ; 31 c0
    1252912555    lea sp, [bp-002h]                         ; 8d 66 fe
     
    1253112557    pop bp                                    ; 5d
    1253212558    retn 00004h                               ; c2 04 00
    12533 ahci_cmd_packet_:                            ; 0xf86b4 LB 0x173
     12559ahci_cmd_packet_:                            ; 0xf86f2 LB 0x173
    1253412560    push bp                                   ; 55
    1253512561    mov bp, sp                                ; 89 e5
     
    1254312569    mov dx, strict word 0000eh                ; ba 0e 00
    1254412570    mov ax, strict word 00040h                ; b8 40 00
    12545     call 0161ch                               ; e8 4d 8f
     12571    call 0166ch                               ; e8 5f 8f
    1254612572    mov si, 00122h                            ; be 22 01
    1254712573    mov word [bp-008h], ax                    ; 89 46 f8
    1254812574    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    12549     jne short 086fah                          ; 75 1f
     12575    jne short 08738h                          ; 75 1f
    1255012576    mov bx, 00da2h                            ; bb a2 0d
    1255112577    mov cx, ds                                ; 8c d9
    1255212578    mov ax, strict word 00004h                ; b8 04 00
    12553     call 018e1h                               ; e8 fb 91
     12579    call 01931h                               ; e8 0d 92
    1255412580    push 00caah                               ; 68 aa 0c
    1255512581    push 00cbah                               ; 68 ba 0c
    1255612582    push strict byte 00004h                   ; 6a 04
    12557     call 01922h                               ; e8 31 92
     12583    call 01972h                               ; e8 43 92
    1255812584    add sp, strict byte 00006h                ; 83 c4 06
    1255912585    mov ax, strict word 00001h                ; b8 01 00
    12560     jmp near 0881eh                           ; e9 24 01
     12586    jmp near 0885ch                           ; e9 24 01
    1256112587    test byte [bp+004h], 001h                 ; f6 46 04 01
    12562     jne short 086f4h                          ; 75 f4
     12588    jne short 08732h                          ; 75 f4
    1256312589    mov ax, word [bp+006h]                    ; 8b 46 06
    1256412590    mov dx, word [bp+008h]                    ; 8b 56 08
     
    1256612592    sal ax, 1                                 ; d1 e0
    1256712593    rcl dx, 1                                 ; d1 d2
    12568     loop 08709h                               ; e2 fa
     12594    loop 08747h                               ; e2 fa
    1256912595    mov es, [bp-008h]                         ; 8e 46 f8
    1257012596    mov word [es:si], ax                      ; 26 89 04
     
    1257812604    mov dx, word [bp+008h]                    ; 8b 56 08
    1257912605    xor cx, cx                                ; 31 c9
    12580     call 09400h                               ; e8 ca 0c
     12606    call 09440h                               ; e8 cc 0c
    1258112607    mov word [es:si+00ah], ax                 ; 26 89 44 0a
    1258212608    xor di, di                                ; 31 ff
     
    1258812614    xor ax, ax                                ; 31 c0
    1258912615    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12590     call 07e9dh                               ; e8 47 f7
     12616    call 07edbh                               ; e8 47 f7
    1259112617    mov es, [bp-008h]                         ; 8e 46 f8
    1259212618    mov bx, word [bp-014h]                    ; 8b 5e ec
     
    1259512621    mov dx, word [es:si+001eeh]               ; 26 8b 94 ee 01
    1259612622    xor ax, ax                                ; 31 c0
    12597     call 083aah                               ; e8 3c fc
     12623    call 083e8h                               ; e8 3c fc
    1259812624    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    1259912625    push ax                                   ; 50
     
    1260212628    mov ax, 000c0h                            ; b8 c0 00
    1260312629    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12604     call 09477h                               ; e8 f5 0c
     12630    call 094b7h                               ; e8 f7 0c
    1260512631    mov es, [bp-008h]                         ; 8e 46 f8
    1260612632    mov word [es:si+014h], di                 ; 26 89 7c 14
     
    1260912635    mov ax, word [es:si+01ah]                 ; 26 8b 44 1a
    1261012636    test ax, ax                               ; 85 c0
    12611     je short 087c0h                           ; 74 27
     12637    je short 087feh                           ; 74 27
    1261212638    dec ax                                    ; 48
    1261312639    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1262212648    mov ax, si                                ; 89 f0
    1262312649    mov dx, word [bp-008h]                    ; 8b 56 f8
    12624     call 0809ch                               ; e8 d1 f8
     12650    call 080dah                               ; e8 d1 f8
    1262512651    les bx, [bp-00eh]                         ; c4 5e f2
    1262612652    mov ax, word [es:bx+004h]                 ; 26 8b 47 04
     
    1264512671    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1264612672    mov dx, word [bp-00ch]                    ; 8b 56 f4
    12647     call 07eb4h                               ; e8 aa f6
     12673    call 07ef2h                               ; e8 aa f6
    1264812674    les bx, [bp-00eh]                         ; c4 5e f2
    1264912675    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
    1265012676    or ax, word [es:bx+004h]                  ; 26 0b 47 04
    12651     jne short 0881ch                          ; 75 05
     12677    jne short 0885ah                          ; 75 05
    1265212678    mov ax, strict word 00004h                ; b8 04 00
    12653     jmp short 0881eh                          ; eb 02
     12679    jmp short 0885ch                          ; eb 02
    1265412680    xor ax, ax                                ; 31 c0
    1265512681    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1265812684    pop bp                                    ; 5d
    1265912685    retn 0000ch                               ; c2 0c 00
    12660 ahci_port_detect_device_:                    ; 0xf8827 LB 0x3d1
     12686ahci_port_detect_device_:                    ; 0xf8865 LB 0x3d1
    1266112687    push bp                                   ; 55
    1266212688    mov bp, sp                                ; 89 e5
     
    1267012696    movzx cx, bl                              ; 0f b6 cb
    1267112697    mov bx, cx                                ; 89 cb
    12672     call 083aah                               ; e8 69 fb
     12698    call 083e8h                               ; e8 69 fb
    1267312699    mov dx, strict word 0000eh                ; ba 0e 00
    1267412700    mov ax, strict word 00040h                ; b8 40 00
    12675     call 0161ch                               ; e8 d2 8d
     12701    call 0166ch                               ; e8 e4 8d
    1267612702    mov word [bp-020h], ax                    ; 89 46 e0
    1267712703    mov si, 00122h                            ; be 22 01
     
    1274612772    mov bx, strict word 0000fh                ; bb 0f 00
    1274712773    xor cx, cx                                ; 31 c9
    12748     call 07f8eh                               ; e8 90 f6
     12774    call 07fcch                               ; e8 90 f6
    1274912775    cmp ax, strict word 00003h                ; 3d 03 00
    12750     jne near 08bf0h                           ; 0f 85 eb 02
     12776    jne near 08c2eh                           ; 0f 85 eb 02
    1275112777    mov es, [bp-00eh]                         ; 8e 46 f2
    1275212778    mov al, byte [es:si+001edh]               ; 26 8a 84 ed 01
    1275312779    mov byte [bp-00ah], al                    ; 88 46 f6
    1275412780    cmp AL, strict byte 004h                  ; 3c 04
    12755     jnc near 08bf0h                           ; 0f 83 da 02
     12781    jnc near 08c2eh                           ; 0f 83 da 02
    1275612782    mov dx, word [bp-01ch]                    ; 8b 56 e4
    1275712783    add dx, 00118h                            ; 81 c2 18 01
     
    1276012786    mov bx, strict word 00010h                ; bb 10 00
    1276112787    xor cx, cx                                ; 31 c9
    12762     call 07ecbh                               ; e8 9e f5
     12788    call 07f09h                               ; e8 9e f5
    1276312789    mov ax, word [bp-01ch]                    ; 8b 46 e4
    1276412790    add ax, 00124h                            ; 05 24 01
     
    1278612812    add cl, 00ch                              ; 80 c1 0c
    1278712813    test dx, dx                               ; 85 d2
    12788     jne near 08b42h                           ; 0f 85 d5 01
     12814    jne near 08b80h                           ; 0f 85 d5 01
    1278912815    cmp bx, 00101h                            ; 81 fb 01 01
    12790     jne near 08b42h                           ; 0f 85 cd 01
     12816    jne near 08b80h                           ; 0f 85 cd 01
    1279112817    mov es, [bp-00eh]                         ; 8e 46 f2
    1279212818    db  066h, 026h, 0c7h, 004h, 000h, 000h, 000h, 000h
     
    1280012826    mov ax, si                                ; 89 f0
    1280112827    mov dx, word [bp-020h]                    ; 8b 56 e0
    12802     call 0809ch                               ; e8 fc f6
     12828    call 080dah                               ; e8 fc f6
    1280312829    mov byte [bp-00ch], cl                    ; 88 4e f4
    1280412830    test byte [bp-00228h], 080h               ; f6 86 d8 fd 80
     
    1281612842    mov word [bp-014h], dx                    ; 89 56 ec
    1281712843    cmp dx, 00fffh                            ; 81 fa ff 0f
    12818     jne short 089e3h                          ; 75 10
     12844    jne short 08a21h                          ; 75 10
    1281912845    cmp di, strict byte 0ffffh                ; 83 ff ff
    12820     jne short 089e3h                          ; 75 0b
     12846    jne short 08a21h                          ; 75 0b
    1282112847    mov di, word [bp-00160h]                  ; 8b be a0 fe
    1282212848    mov dx, word [bp-0015eh]                  ; 8b 96 a2 fe
     
    1284712873    mov al, byte [bp-00ah]                    ; 8a 46 f6
    1284812874    cmp AL, strict byte 001h                  ; 3c 01
    12849     jc short 08a4eh                           ; 72 0c
    12850     jbe short 08a56h                          ; 76 12
     12875    jc short 08a8ch                           ; 72 0c
     12876    jbe short 08a94h                          ; 76 12
    1285112877    cmp AL, strict byte 003h                  ; 3c 03
    12852     je short 08a5eh                           ; 74 16
     12878    je short 08a9ch                           ; 74 16
    1285312879    cmp AL, strict byte 002h                  ; 3c 02
    12854     je short 08a5ah                           ; 74 0e
    12855     jmp short 08aa7h                          ; eb 59
     12880    je short 08a98h                           ; 74 0e
     12881    jmp short 08ae5h                          ; eb 59
    1285612882    test al, al                               ; 84 c0
    12857     jne short 08aa7h                          ; 75 55
     12883    jne short 08ae5h                          ; 75 55
    1285812884    mov DL, strict byte 040h                  ; b2 40
    12859     jmp short 08a60h                          ; eb 0a
     12885    jmp short 08a9eh                          ; eb 0a
    1286012886    mov DL, strict byte 048h                  ; b2 48
    12861     jmp short 08a60h                          ; eb 06
     12887    jmp short 08a9eh                          ; eb 06
    1286212888    mov DL, strict byte 050h                  ; b2 50
    12863     jmp short 08a60h                          ; eb 02
     12889    jmp short 08a9eh                          ; eb 02
    1286412890    mov DL, strict byte 058h                  ; b2 58
    1286512891    mov al, dl                                ; 88 d0
     
    1286712893    movzx bx, al                              ; 0f b6 d8
    1286812894    mov ax, bx                                ; 89 d8
    12869     call 0165ch                               ; e8 f0 8b
     12895    call 016ach                               ; e8 02 8c
    1287012896    test al, al                               ; 84 c0
    12871     je short 08aa7h                           ; 74 37
     12897    je short 08ae5h                           ; 74 37
    1287212898    mov al, dl                                ; 88 d0
    1287312899    db  0feh, 0c0h
    1287412900    ; inc al                                    ; fe c0
    1287512901    xor ah, ah                                ; 30 e4
    12876     call 0165ch                               ; e8 e3 8b
     12902    call 016ach                               ; e8 f5 8b
    1287712903    xor ah, ah                                ; 30 e4
    1287812904    mov cx, ax                                ; 89 c1
    1287912905    sal cx, 008h                              ; c1 e1 08
    1288012906    movzx ax, dl                              ; 0f b6 c2
    12881     call 0165ch                               ; e8 d6 8b
     12907    call 016ach                               ; e8 e8 8b
    1288212908    xor ah, ah                                ; 30 e4
    1288312909    add ax, cx                                ; 01 c8
     
    1288612912    add AL, strict byte 002h                  ; 04 02
    1288712913    xor ah, ah                                ; 30 e4
    12888     call 0165ch                               ; e8 c6 8b
     12914    call 016ach                               ; e8 d8 8b
    1288912915    xor ah, ah                                ; 30 e4
    1289012916    mov word [bp-028h], ax                    ; 89 46 d8
    1289112917    mov ax, bx                                ; 89 d8
    12892     call 0165ch                               ; e8 bc 8b
     12918    call 016ach                               ; e8 ce 8b
    1289312919    xor ah, ah                                ; 30 e4
    1289412920    mov word [bp-024h], ax                    ; 89 46 dc
    12895     jmp short 08ab4h                          ; eb 0d
     12921    jmp short 08af2h                          ; eb 0d
    1289612922    mov bx, di                                ; 89 fb
    1289712923    mov cx, word [bp-014h]                    ; 8b 4e ec
    1289812924    mov dx, ss                                ; 8c d2
    1289912925    lea ax, [bp-028h]                         ; 8d 46 d8
    12900     call 0534bh                               ; e8 97 c8
     12926    call 05389h                               ; e8 97 c8
    1290112927    mov bx, 00da2h                            ; bb a2 0d
    1290212928    mov cx, ds                                ; 8c d9
    1290312929    mov ax, strict word 00004h                ; b8 04 00
    12904     call 018e1h                               ; e8 22 8e
     12930    call 01931h                               ; e8 34 8e
    1290512931    push word [bp-014h]                       ; ff 76 ec
    1290612932    push di                                   ; 57
     
    1291912945    push 00cdah                               ; 68 da 0c
    1292012946    push strict byte 00004h                   ; 6a 04
    12921     call 01922h                               ; e8 3a 8e
     12947    call 01972h                               ; e8 4c 8e
    1292212948    add sp, strict byte 00018h                ; 83 c4 18
    1292312949    movzx di, byte [bp-00ch]                  ; 0f b6 7e f4
     
    1294712973    mov dx, strict word 00075h                ; ba 75 00
    1294812974    mov ax, strict word 00040h                ; b8 40 00
    12949     call 01600h                               ; e8 cf 8a
     12975    call 01650h                               ; e8 e1 8a
    1295012976    db  0feh, 0c0h
    1295112977    ; inc al                                    ; fe c0
     
    1295312979    mov dx, strict word 00075h                ; ba 75 00
    1295412980    mov ax, strict word 00040h                ; b8 40 00
    12955     call 0160eh                               ; e8 cf 8a
    12956     jmp near 08bdfh                           ; e9 9d 00
     12981    call 0165eh                               ; e8 e1 8a
     12982    jmp near 08c1dh                           ; e9 9d 00
    1295712983    cmp dx, 0eb14h                            ; 81 fa 14 eb
    12958     jne near 08bdfh                           ; 0f 85 95 00
     12984    jne near 08c1dh                           ; 0f 85 95 00
    1295912985    cmp bx, 00101h                            ; 81 fb 01 01
    12960     jne near 08bdfh                           ; 0f 85 8d 00
     12986    jne near 08c1dh                           ; 0f 85 8d 00
    1296112987    mov es, [bp-00eh]                         ; 8e 46 f2
    1296212988    db  066h, 026h, 0c7h, 004h, 000h, 000h, 000h, 000h
     
    1297012996    mov ax, si                                ; 89 f0
    1297112997    mov dx, word [bp-020h]                    ; 8b 56 e0
    12972     call 0809ch                               ; e8 1f f5
     12998    call 080dah                               ; e8 1f f5
    1297312999    test byte [bp-00228h], 080h               ; f6 86 d8 fd 80
    1297413000    db  00fh, 095h, 0c0h
     
    1301113037    pop bp                                    ; 5d
    1301213038    retn                                      ; c3
    13013 ahci_mem_alloc_:                             ; 0xf8bf8 LB 0x43
     13039ahci_mem_alloc_:                             ; 0xf8c36 LB 0x43
    1301413040    push bp                                   ; 55
    1301513041    mov bp, sp                                ; 89 e5
     
    1302113047    mov dx, 00413h                            ; ba 13 04
    1302213048    xor ax, ax                                ; 31 c0
    13023     call 0161ch                               ; e8 14 8a
     13049    call 0166ch                               ; e8 26 8a
    1302413050    test ax, ax                               ; 85 c0
    13025     je short 08c31h                           ; 74 25
     13051    je short 08c6fh                           ; 74 25
    1302613052    dec ax                                    ; 48
    1302713053    mov bx, ax                                ; 89 c3
     
    1303013056    sal ax, 1                                 ; d1 e0
    1303113057    rcl dx, 1                                 ; d1 d2
    13032     loop 08c14h                               ; e2 fa
     13058    loop 08c52h                               ; e2 fa
    1303313059    mov si, ax                                ; 89 c6
    1303413060    mov di, dx                                ; 89 d7
     
    1303613062    shr di, 1                                 ; d1 ef
    1303713063    rcr si, 1                                 ; d1 de
    13038     loop 08c21h                               ; e2 fa
     13064    loop 08c5fh                               ; e2 fa
    1303913065    mov dx, 00413h                            ; ba 13 04
    1304013066    xor ax, ax                                ; 31 c0
    13041     call 0162ah                               ; e8 fb 89
     13067    call 0167ah                               ; e8 0d 8a
    1304213068    mov ax, si                                ; 89 f0
    1304313069    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1304913075    pop bp                                    ; 5d
    1305013076    retn                                      ; c3
    13051 ahci_hba_init_:                              ; 0xf8c3b LB 0x125
     13077ahci_hba_init_:                              ; 0xf8c79 LB 0x125
    1305213078    push bp                                   ; 55
    1305313079    mov bp, sp                                ; 89 e5
     
    1306113087    mov dx, strict word 0000eh                ; ba 0e 00
    1306213088    mov ax, strict word 00040h                ; b8 40 00
    13063     call 0161ch                               ; e8 cb 89
     13089    call 0166ch                               ; e8 dd 89
    1306413090    mov bx, 00122h                            ; bb 22 01
    1306513091    mov word [bp-010h], ax                    ; 89 46 f0
     
    1307813104    shr eax, 010h                             ; 66 c1 e8 10
    1307913105    xchg dx, ax                               ; 92
    13080     call 08bf8h                               ; e8 82 ff
     13106    call 08c36h                               ; e8 82 ff
    1308113107    mov di, ax                                ; 89 c7
    1308213108    test ax, ax                               ; 85 c0
    13083     je near 08d3fh                            ; 0f 84 c1 00
     13109    je near 08d7dh                            ; 0f 84 c1 00
    1308413110    mov es, [bp-010h]                         ; 8e 46 f0
    1308513111    mov word [es:bx+001eeh], di               ; 26 89 bf ee 01
     
    1309513121    mov dx, strict word 00004h                ; ba 04 00
    1309613122    mov ax, si                                ; 89 f0
    13097     call 07ecbh                               ; e8 19 f2
     13123    call 07f09h                               ; e8 19 f2
    1309813124    mov ax, strict word 00004h                ; b8 04 00
    1309913125    xor cx, cx                                ; 31 c9
     
    1311213138    xchg dx, ax                               ; 92
    1311313139    test AL, strict byte 001h                 ; a8 01
    13114     jne short 08cb2h                          ; 75 de
     13140    jne short 08cf0h                          ; 75 de
    1311513141    xor ax, ax                                ; 31 c0
    1311613142    xor cx, cx                                ; 31 c9
     
    1313013156    mov bx, strict word 0001fh                ; bb 1f 00
    1313113157    xor cx, cx                                ; 31 c9
    13132     call 07f8eh                               ; e8 96 f2
     13158    call 07fcch                               ; e8 96 f2
    1313313159    db  0feh, 0c0h
    1313413160    ; inc al                                    ; fe c0
    1313513161    mov byte [bp-00eh], al                    ; 88 46 f2
    1313613162    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    13137     jmp short 08d0ch                          ; eb 09
     13163    jmp short 08d4ah                          ; eb 09
    1313813164    inc byte [bp-00ch]                        ; fe 46 f4
    1313913165    cmp byte [bp-00ch], 020h                  ; 80 7e f4 20
    13140     jnc short 08d3dh                          ; 73 31
     13166    jnc short 08d7bh                          ; 73 31
    1314113167    movzx cx, byte [bp-00ch]                  ; 0f b6 4e f4
    1314213168    mov ax, strict word 00001h                ; b8 01 00
    1314313169    xor dx, dx                                ; 31 d2
    13144     jcxz 08d1dh                               ; e3 06
     13170    jcxz 08d5bh                               ; e3 06
    1314513171    sal ax, 1                                 ; d1 e0
    1314613172    rcl dx, 1                                 ; d1 d2
    13147     loop 08d17h                               ; e2 fa
     13173    loop 08d55h                               ; e2 fa
    1314813174    mov bx, ax                                ; 89 c3
    1314913175    mov cx, dx                                ; 89 d1
    1315013176    mov dx, strict word 0000ch                ; ba 0c 00
    1315113177    mov ax, si                                ; 89 f0
    13152     call 07f55h                               ; e8 2c f2
     13178    call 07f93h                               ; e8 2c f2
    1315313179    test al, al                               ; 84 c0
    13154     je short 08d03h                           ; 74 d6
     13180    je short 08d41h                           ; 74 d6
    1315513181    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    1315613182    xor ax, ax                                ; 31 c0
    1315713183    mov dx, di                                ; 89 fa
    13158     call 08827h                               ; e8 ef fa
     13184    call 08865h                               ; e8 ef fa
    1315913185    dec byte [bp-00eh]                        ; fe 4e f2
    13160     jne short 08d03h                          ; 75 c6
     13186    jne short 08d41h                          ; 75 c6
    1316113187    xor ax, ax                                ; 31 c0
    1316213188    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1316813194    pop bp                                    ; 5d
    1316913195    retn                                      ; c3
    13170     db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 02fh, 08eh, 00dh, 08eh, 013h, 08eh, 019h, 08eh, 01fh
    13171     db  08eh, 025h, 08eh, 02bh, 08eh, 02fh, 08eh
    13172 _ahci_init:                                  ; 0xf8d60 LB 0xfe
     13196    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 06dh, 08eh, 04bh, 08eh, 051h, 08eh, 057h, 08eh, 05dh
     13197    db  08eh, 063h, 08eh, 069h, 08eh, 06dh, 08eh
     13198_ahci_init:                                  ; 0xf8d9e LB 0xfe
    1317313199    push bp                                   ; 55
    1317413200    mov bp, sp                                ; 89 e5
     
    1317813204    mov ax, 00601h                            ; b8 01 06
    1317913205    mov dx, strict word 00001h                ; ba 01 00
    13180     call 0927eh                               ; e8 0d 05
     13206    call 092bch                               ; e8 0d 05
    1318113207    mov dx, ax                                ; 89 c2
    1318213208    cmp ax, strict word 0ffffh                ; 3d ff ff
    13183     je near 08e57h                            ; 0f 84 dd 00
     13209    je near 08e95h                            ; 0f 84 dd 00
    1318413210    xor al, al                                ; 30 c0
    1318513211    shr ax, 008h                              ; c1 e8 08
     
    1318913215    xor ah, ah                                ; 30 e4
    1319013216    mov bx, strict word 00034h                ; bb 34 00
    13191     call 092a9h                               ; e8 1a 05
     13217    call 092e7h                               ; e8 1a 05
    1319213218    mov cl, al                                ; 88 c1
    1319313219    test cl, cl                               ; 84 c9
    13194     je short 08db8h                           ; 74 23
     13220    je short 08df6h                           ; 74 23
    1319513221    movzx bx, cl                              ; 0f b6 d9
    1319613222    movzx di, byte [bp-008h]                  ; 0f b6 7e f8
     
    1319813224    mov dx, di                                ; 89 fa
    1319913225    mov ax, si                                ; 89 f0
    13200     call 092a9h                               ; e8 02 05
     13226    call 092e7h                               ; e8 02 05
    1320113227    cmp AL, strict byte 012h                  ; 3c 12
    13202     je short 08db8h                           ; 74 0d
     13228    je short 08df6h                           ; 74 0d
    1320313229    mov al, cl                                ; 88 c8
    1320413230    db  0feh, 0c0h
     
    1320713233    mov dx, di                                ; 89 fa
    1320813234    mov ax, si                                ; 89 f0
    13209     jmp short 08d8ch                          ; eb d4
     13235    jmp short 08dcah                          ; eb d4
    1321013236    test cl, cl                               ; 84 c9
    13211     je near 08e57h                            ; 0f 84 99 00
     13237    je near 08e95h                            ; 0f 84 99 00
    1321213238    add cl, 002h                              ; 80 c1 02
    1321313239    movzx bx, cl                              ; 0f b6 d9
     
    1321613242    mov dx, di                                ; 89 fa
    1321713243    mov ax, si                                ; 89 f0
    13218     call 092a9h                               ; e8 d6 04
     13244    call 092e7h                               ; e8 d6 04
    1321913245    cmp AL, strict byte 010h                  ; 3c 10
    13220     jne near 08e57h                           ; 0f 85 7e 00
     13246    jne near 08e95h                           ; 0f 85 7e 00
    1322113247    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    1322213248    mov al, cl                                ; 88 c8
     
    1322513251    mov dx, di                                ; 89 fa
    1322613252    mov ax, si                                ; 89 f0
    13227     call 092cdh                               ; e8 e2 04
     13253    call 0930bh                               ; e8 e2 04
    1322813254    mov dx, ax                                ; 89 c2
    1322913255    and ax, strict word 0000fh                ; 25 0f 00
    1323013256    sub ax, strict word 00004h                ; 2d 04 00
    1323113257    cmp ax, strict word 0000bh                ; 3d 0b 00
    13232     jnbe short 08e2fh                         ; 77 37
     13258    jnbe short 08e6dh                         ; 77 37
    1323313259    push CS                                   ; 0e
    1323413260    pop ES                                    ; 07
    1323513261    mov cx, strict word 00008h                ; b9 08 00
    13236     mov di, 08d49h                            ; bf 49 8d
     13262    mov di, 08d87h                            ; bf 87 8d
    1323713263    repne scasb                               ; f2 ae
    1323813264    sal cx, 1                                 ; d1 e1
    1323913265    mov di, cx                                ; 89 cf
    13240     mov ax, word [cs:di-072b0h]               ; 2e 8b 85 50 8d
     13266    mov ax, word [cs:di-07272h]               ; 2e 8b 85 8e 8d
    1324113267    jmp ax                                    ; ff e0
    1324213268    mov byte [bp-006h], 010h                  ; c6 46 fa 10
    13243     jmp short 08e2fh                          ; eb 1c
     13269    jmp short 08e6dh                          ; eb 1c
    1324413270    mov byte [bp-006h], 014h                  ; c6 46 fa 14
    13245     jmp short 08e2fh                          ; eb 16
     13271    jmp short 08e6dh                          ; eb 16
    1324613272    mov byte [bp-006h], 018h                  ; c6 46 fa 18
    13247     jmp short 08e2fh                          ; eb 10
     13273    jmp short 08e6dh                          ; eb 10
    1324813274    mov byte [bp-006h], 01ch                  ; c6 46 fa 1c
    13249     jmp short 08e2fh                          ; eb 0a
     13275    jmp short 08e6dh                          ; eb 0a
    1325013276    mov byte [bp-006h], 020h                  ; c6 46 fa 20
    13251     jmp short 08e2fh                          ; eb 04
     13277    jmp short 08e6dh                          ; eb 04
    1325213278    mov byte [bp-006h], 024h                  ; c6 46 fa 24
    1325313279    mov si, dx                                ; 89 d6
     
    1325613282    mov al, byte [bp-006h]                    ; 8a 46 fa
    1325713283    test al, al                               ; 84 c0
    13258     je short 08e57h                           ; 74 19
     13284    je short 08e95h                           ; 74 19
    1325913285    movzx bx, al                              ; 0f b6 d8
    1326013286    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    1326113287    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    13262     call 092efh                               ; e8 a3 04
     13288    call 0932dh                               ; e8 a3 04
    1326313289    test AL, strict byte 001h                 ; a8 01
    13264     je short 08e57h                           ; 74 07
     13290    je short 08e95h                           ; 74 07
    1326513291    and AL, strict byte 0f0h                  ; 24 f0
    1326613292    add ax, si                                ; 01 f0
    13267     call 08c3bh                               ; e8 e4 fd
     13293    call 08c79h                               ; e8 e4 fd
    1326813294    lea sp, [bp-004h]                         ; 8d 66 fc
    1326913295    pop di                                    ; 5f
     
    1327113297    pop bp                                    ; 5d
    1327213298    retn                                      ; c3
    13273 apm_out_str_:                                ; 0xf8e5e LB 0x39
     13299apm_out_str_:                                ; 0xf8e9c LB 0x39
    1327413300    push bp                                   ; 55
    1327513301    mov bp, sp                                ; 89 e5
     
    1327713303    mov bx, ax                                ; 89 c3
    1327813304    cmp byte [bx], 000h                       ; 80 3f 00
    13279     je short 08e73h                           ; 74 0a
     13305    je short 08eb1h                           ; 74 0a
    1328013306    mov al, byte [bx]                         ; 8a 07
    1328113307    out DX, AL                                ; ee
     
    1328413310    db  00ah, 0c0h
    1328513311    ; or al, al                                 ; 0a c0
    13286     jne short 08e6bh                          ; 75 f8
     13312    jne short 08ea9h                          ; 75 f8
    1328713313    lea sp, [bp-002h]                         ; 8d 66 fe
    1328813314    pop bx                                    ; 5b
    1328913315    pop bp                                    ; 5d
    1329013316    retn                                      ; c3
    13291     mov dx, 0868eh                            ; ba 8e 86
    13292     db  08fh, 0cch
    13293     ; pop sp                                    ; 8f cc
    13294     mov fs, di                                ; 8e e7
    13295     mov es, [bp+0128fh]                       ; 8e 86 8f 12
    13296     pop word [bp+0178fh]                      ; 8f 86 8f 17
    13297     db  08fh, 05bh, 08fh
    13298     ; pop word [bp+di-071h]                     ; 8f 5b 8f
    13299     pop bx                                    ; 5b
    13300     db  08fh, 05bh, 08fh
    13301     ; pop word [bp+di-071h]                     ; 8f 5b 8f
    13302     push si                                   ; 56
    13303     db  08fh, 05bh, 08fh
    13304     ; pop word [bp+di-071h]                     ; 8f 5b 8f
    13305     pop bx                                    ; 5b
    13306     db  08fh, 04fh, 08fh
    13307     ; pop word [bx-071h]                        ; 8f 4f 8f
    13308 _apm_function:                               ; 0xf8e97 LB 0xf5
     13317    clc                                       ; f8
     13318    mov es, sp                                ; 8e c4
     13319    db  08fh, 00ah
     13320    ; pop word [bp+si]                          ; 8f 0a
     13321    db  08fh, 025h
     13322    ; pop word [di]                             ; 8f 25
     13323    db  08fh, 0c4h
     13324    ; pop sp                                    ; 8f c4
     13325    db  08fh, 050h, 08fh
     13326    ; pop word [bx+si-071h]                     ; 8f 50 8f
     13327    les cx, [bx-070abh]                       ; c4 8f 55 8f
     13328    cwd                                       ; 99
     13329    db  08fh, 099h, 08fh, 099h
     13330    ; pop word [bx+di-06671h]                   ; 8f 99 8f 99
     13331    db  08fh, 094h, 08fh, 099h
     13332    ; pop word [si-06671h]                      ; 8f 94 8f 99
     13333    db  08fh, 099h, 08fh, 08dh
     13334    ; pop word [bx+di-07271h]                   ; 8f 99 8f 8d
     13335    db  08fh
     13336_apm_function:                               ; 0xf8ed5 LB 0xf5
    1330913337    push bp                                   ; 55
    1331013338    mov bp, sp                                ; 89 e5
     
    1331413342    xor ah, ah                                ; 30 e4
    1331513343    cmp ax, strict word 0000eh                ; 3d 0e 00
    13316     jnbe near 08f5bh                          ; 0f 87 b0 00
     13344    jnbe near 08f99h                          ; 0f 87 b0 00
    1331713345    mov bx, ax                                ; 89 c3
    1331813346    add bx, ax                                ; 01 c3
    1331913347    mov dx, word [bp+018h]                    ; 8b 56 18
    1332013348    or dl, 001h                               ; 80 ca 01
    13321     jmp word [cs:bx-07187h]                   ; 2e ff a7 79 8e
     13349    jmp word [cs:bx-07149h]                   ; 2e ff a7 b7 8e
    1332213350    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    1332313351    mov word [bp+00ch], 0504dh                ; c7 46 0c 4d 50
    1332413352    mov word [bp+010h], strict word 00003h    ; c7 46 10 03 00
    13325     jmp near 08f86h                           ; e9 ba 00
     13353    jmp near 08fc4h                           ; e9 ba 00
    1332613354    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    13327     mov word [bp+00ch], 094e4h                ; c7 46 0c e4 94
     13355    mov word [bp+00ch], 09524h                ; c7 46 0c 24 95
    1332813356    mov word [bp+010h], 0f000h                ; c7 46 10 00 f0
    1332913357    mov ax, strict word 0fff0h                ; b8 f0 ff
    1333013358    mov word [bp+006h], ax                    ; 89 46 06
    1333113359    mov word [bp+004h], ax                    ; 89 46 04
    13332     jmp near 08f86h                           ; e9 9f 00
     13360    jmp near 08fc4h                           ; e9 9f 00
    1333313361    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    1333413362    mov word [bp+00ch], 0da40h                ; c7 46 0c 40 da
     
    1334313371    mov si, ax                                ; 89 c6
    1334413372    sal esi, 010h                             ; 66 c1 e6 10
    13345     jmp near 08f86h                           ; e9 74 00
     13373    jmp near 08fc4h                           ; e9 74 00
    1334613374    sti                                       ; fb
    1334713375    hlt                                       ; f4
    13348     jmp near 08f86h                           ; e9 6f 00
     13376    jmp near 08fc4h                           ; e9 6f 00
    1334913377    cmp word [bp+010h], strict byte 00003h    ; 83 7e 10 03
    13350     je short 08f3ch                           ; 74 1f
     13378    je short 08f7ah                           ; 74 1f
    1335113379    cmp word [bp+010h], strict byte 00002h    ; 83 7e 10 02
    13352     je short 08f34h                           ; 74 11
     13380    je short 08f72h                           ; 74 11
    1335313381    cmp word [bp+010h], strict byte 00001h    ; 83 7e 10 01
    13354     jne short 08f44h                          ; 75 1b
     13382    jne short 08f82h                          ; 75 1b
    1335513383    mov dx, 08900h                            ; ba 00 89
    1335613384    mov ax, 00d12h                            ; b8 12 0d
    13357     call 08e5eh                               ; e8 2c ff
    13358     jmp short 08f86h                          ; eb 52
     13385    call 08e9ch                               ; e8 2c ff
     13386    jmp short 08fc4h                          ; eb 52
    1335913387    mov dx, 08900h                            ; ba 00 89
    1336013388    mov ax, 00d1ah                            ; b8 1a 0d
    13361     jmp short 08f2fh                          ; eb f3
     13389    jmp short 08f6dh                          ; eb f3
    1336213390    mov dx, 08900h                            ; ba 00 89
    1336313391    mov ax, 00d22h                            ; b8 22 0d
    13364     jmp short 08f2fh                          ; eb eb
     13392    jmp short 08f6dh                          ; eb eb
    1336513393    or ah, 00ah                               ; 80 cc 0a
    1336613394    mov word [bp+012h], ax                    ; 89 46 12
    1336713395    mov word [bp+018h], dx                    ; 89 56 18
    13368     jmp short 08f86h                          ; eb 37
     13396    jmp short 08fc4h                          ; eb 37
    1336913397    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    13370     jmp short 08f86h                          ; eb 30
     13398    jmp short 08fc4h                          ; eb 30
    1337113399    or ah, 080h                               ; 80 cc 80
    13372     jmp short 08f47h                          ; eb ec
     13400    jmp short 08f85h                          ; eb ec
    1337313401    mov bx, 00da2h                            ; bb a2 0d
    1337413402    mov cx, ds                                ; 8c d9
    1337513403    mov ax, strict word 00004h                ; b8 04 00
    13376     call 018e1h                               ; e8 7b 89
     13404    call 01931h                               ; e8 8d 89
    1337713405    push word [bp+00ch]                       ; ff 76 0c
    1337813406    push word [bp+012h]                       ; ff 76 12
    1337913407    push 00d2bh                               ; 68 2b 0d
    1338013408    push strict byte 00004h                   ; 6a 04
    13381     call 01922h                               ; e8 ae 89
     13409    call 01972h                               ; e8 c0 89
    1338213410    add sp, strict byte 00008h                ; 83 c4 08
    1338313411    mov ax, word [bp+012h]                    ; 8b 46 12
     
    1339013418    pop bp                                    ; 5d
    1339113419    retn                                      ; c3
    13392 pci16_select_reg_:                           ; 0xf8f8c LB 0x24
     13420pci16_select_reg_:                           ; 0xf8fca LB 0x24
    1339313421    push bp                                   ; 55
    1339413422    mov bp, sp                                ; 89 e5
     
    1340713435    pop bp                                    ; 5d
    1340813436    retn                                      ; c3
    13409 pci16_find_device_:                          ; 0xf8fb0 LB 0xf7
     13437pci16_find_device_:                          ; 0xf8fee LB 0xf7
    1341013438    push bp                                   ; 55
    1341113439    mov bp, sp                                ; 89 e5
     
    1342113449    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1342213450    test bl, 007h                             ; f6 c3 07
    13423     jne short 08ff8h                          ; 75 2d
     13451    jne short 09036h                          ; 75 2d
    1342413452    mov dx, strict word 0000eh                ; ba 0e 00
    1342513453    mov ax, bx                                ; 89 d8
    13426     call 08f8ch                               ; e8 b9 ff
     13454    call 08fcah                               ; e8 b9 ff
    1342713455    mov dx, 00cfeh                            ; ba fe 0c
    1342813456    in AL, DX                                 ; ec
     
    1343113459    mov byte [bp-006h], al                    ; 88 46 fa
    1343213460    cmp AL, strict byte 0ffh                  ; 3c ff
    13433     jne short 08fe6h                          ; 75 06
     13461    jne short 09024h                          ; 75 06
    1343413462    add bx, strict byte 00008h                ; 83 c3 08
    13435     jmp near 09079h                           ; e9 93 00
     13463    jmp near 090b7h                           ; e9 93 00
    1343613464    test byte [bp-006h], 080h                 ; f6 46 fa 80
    13437     je short 08ff3h                           ; 74 07
     13465    je short 09031h                           ; 74 07
    1343813466    mov word [bp-00ah], strict word 00001h    ; c7 46 f6 01 00
    13439     jmp short 08ff8h                          ; eb 05
     13467    jmp short 09036h                          ; eb 05
    1344013468    mov word [bp-00ah], strict word 00008h    ; c7 46 f6 08 00
    1344113469    mov al, byte [bp-006h]                    ; 8a 46 fa
    1344213470    and AL, strict byte 007h                  ; 24 07
    1344313471    cmp AL, strict byte 001h                  ; 3c 01
    13444     jne short 09020h                          ; 75 1f
     13472    jne short 0905eh                          ; 75 1f
    1344513473    mov ax, bx                                ; 89 d8
    1344613474    shr ax, 008h                              ; c1 e8 08
    1344713475    test ax, ax                               ; 85 c0
    13448     jne short 09020h                          ; 75 16
     13476    jne short 0905eh                          ; 75 16
    1344913477    mov dx, strict word 0001ah                ; ba 1a 00
    1345013478    mov ax, bx                                ; 89 d8
    13451     call 08f8ch                               ; e8 7a ff
     13479    call 08fcah                               ; e8 7a ff
    1345213480    mov dx, 00cfeh                            ; ba fe 0c
    1345313481    in AL, DX                                 ; ec
     
    1345513483    ; sub ah, ah                                ; 2a e4
    1345613484    cmp al, byte [bp-008h]                    ; 3a 46 f8
    13457     jbe short 09020h                          ; 76 03
     13485    jbe short 0905eh                          ; 76 03
    1345813486    mov byte [bp-008h], al                    ; 88 46 f8
    1345913487    test di, di                               ; 85 ff
    13460     je short 09029h                           ; 74 05
     13488    je short 09067h                           ; 74 05
    1346113489    mov dx, strict word 00008h                ; ba 08 00
    13462     jmp short 0902bh                          ; eb 02
     13490    jmp short 09069h                          ; eb 02
    1346313491    xor dx, dx                                ; 31 d2
    1346413492    mov ax, bx                                ; 89 d8
    13465     call 08f8ch                               ; e8 5c ff
     13493    call 08fcah                               ; e8 5c ff
    1346613494    mov dx, 00cfch                            ; ba fc 0c
    1346713495    in eax, DX                                ; 66 ed
     
    1347413502    mov word [bp-010h], strict word 00000h    ; c7 46 f0 00 00
    1347513503    test di, di                               ; 85 ff
    13476     je short 0905ah                           ; 74 0f
     13504    je short 09098h                           ; 74 0f
    1347713505    mov cx, strict word 00008h                ; b9 08 00
    1347813506    shr dx, 1                                 ; d1 ea
    1347913507    rcr ax, 1                                 ; d1 d8
    13480     loop 0904eh                               ; e2 fa
     13508    loop 0908ch                               ; e2 fa
    1348113509    mov word [bp-00eh], ax                    ; 89 46 f2
    1348213510    mov word [bp-00ch], dx                    ; 89 56 f4
    1348313511    mov ax, word [bp-00ch]                    ; 8b 46 f4
    1348413512    cmp ax, word [bp-014h]                    ; 3b 46 ec
    13485     jne short 0906ah                          ; 75 08
     13513    jne short 090a8h                          ; 75 08
    1348613514    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1348713515    cmp ax, word [bp-012h]                    ; 3b 46 ee
    13488     je short 09070h                           ; 74 06
     13516    je short 090aeh                           ; 74 06
    1348913517    cmp word [bp-010h], strict byte 00000h    ; 83 7e f0 00
    13490     je short 09076h                           ; 74 06
     13518    je short 090b4h                           ; 74 06
    1349113519    dec si                                    ; 4e
    1349213520    cmp si, strict byte 0ffffh                ; 83 fe ff
    13493     je short 09088h                           ; 74 12
     13521    je short 090c6h                           ; 74 12
    1349413522    add bx, word [bp-00ah]                    ; 03 5e f6
    1349513523    mov dx, bx                                ; 89 da
     
    1349713525    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    1349813526    cmp dx, ax                                ; 39 c2
    13499     jbe near 08fc6h                           ; 0f 86 3e ff
     13527    jbe near 09004h                           ; 0f 86 3e ff
    1350013528    cmp si, strict byte 0ffffh                ; 83 fe ff
    13501     jne short 09091h                          ; 75 04
     13529    jne short 090cfh                          ; 75 04
    1350213530    mov ax, bx                                ; 89 d8
    13503     jmp short 09094h                          ; eb 03
     13531    jmp short 090d2h                          ; eb 03
    1350413532    mov ax, strict word 0ffffh                ; b8 ff ff
    1350513533    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1350813536    pop bp                                    ; 5d
    1350913537    retn                                      ; c3
    13510     mov word [bx+di-06e5dh], dx               ; 89 91 a3 91
    13511     mov DH, strict byte 091h                  ; b6 91
    13512     retf                                      ; cb
    13513     xchg cx, ax                               ; 91
    13514     ficom word [bx+di-06e0fh]                 ; de 91 f1 91
    13515 _pci16_function:                             ; 0xf90a7 LB 0x1d7
     13538    db  0c7h, 091h, 0e1h, 091h, 0f4h, 091h
     13539    ; mov word [bx+di-06e1fh], 091f4h           ; c7 91 e1 91 f4 91
     13540    or word [bp+si-06de4h], dx                ; 09 92 1c 92
     13541    das                                       ; 2f
     13542    xchg dx, ax                               ; 92
     13543_pci16_function:                             ; 0xf90e5 LB 0x1d7
    1351613544    push bp                                   ; 55
    1351713545    mov bp, sp                                ; 89 e5
     
    1352713555    xor ah, ah                                ; 30 e4
    1352813556    cmp bx, strict byte 00003h                ; 83 fb 03
    13529     jc short 090e0h                           ; 72 1a
    13530     jbe short 09138h                          ; 76 70
     13557    jc short 0911eh                           ; 72 1a
     13558    jbe short 09176h                          ; 76 70
    1353113559    cmp bx, strict byte 0000eh                ; 83 fb 0e
    13532     je near 09205h                            ; 0f 84 36 01
     13560    je near 09243h                            ; 0f 84 36 01
    1353313561    cmp bx, strict byte 00008h                ; 83 fb 08
    13534     jc near 0924ah                            ; 0f 82 74 01
     13562    jc near 09288h                            ; 0f 82 74 01
    1353513563    cmp bx, strict byte 0000dh                ; 83 fb 0d
    13536     jbe near 0915dh                           ; 0f 86 80 00
    13537     jmp near 0924ah                           ; e9 6a 01
     13564    jbe near 0919bh                           ; 0f 86 80 00
     13565    jmp near 09288h                           ; e9 6a 01
    1353813566    cmp bx, strict byte 00002h                ; 83 fb 02
    13539     je short 09108h                           ; 74 23
     13567    je short 09146h                           ; 74 23
    1354013568    cmp bx, strict byte 00001h                ; 83 fb 01
    13541     jne near 0924ah                           ; 0f 85 5e 01
     13569    jne near 09288h                           ; 0f 85 5e 01
    1354213570    mov word [bp+020h], strict word 00001h    ; c7 46 20 01 00
    1354313571    mov word [bp+014h], 00210h                ; c7 46 14 10 02
     
    1354513573    mov word [bp+018h], 04350h                ; c7 46 18 50 43
    1354613574    mov word [bp+01ah], 02049h                ; c7 46 1a 49 20
    13547     jmp near 09277h                           ; e9 6f 01
     13575    jmp near 092b5h                           ; e9 6f 01
    1354813576    cmp word [bp+018h], strict byte 0ffffh    ; 83 7e 18 ff
    13549     jne short 09114h                          ; 75 06
     13577    jne short 09152h                          ; 75 06
    1355013578    or ah, 083h                               ; 80 cc 83
    13551     jmp near 09270h                           ; e9 5c 01
     13579    jmp near 092aeh                           ; e9 5c 01
    1355213580    mov bx, word [bp+008h]                    ; 8b 5e 08
    1355313581    mov dx, word [bp+01ch]                    ; 8b 56 1c
    1355413582    mov ax, word [bp+018h]                    ; 8b 46 18
    1355513583    xor cx, cx                                ; 31 c9
    13556     call 08fb0h                               ; e8 8e fe
     13584    call 08feeh                               ; e8 8e fe
    1355713585    cmp ax, strict word 0ffffh                ; 3d ff ff
    13558     jne short 09132h                          ; 75 0b
     13586    jne short 09170h                          ; 75 0b
    1355913587    mov ax, word [bp+020h]                    ; 8b 46 20
    1356013588    xor ah, ah                                ; 30 e4
    1356113589    or ah, 086h                               ; 80 cc 86
    13562     jmp near 09270h                           ; e9 3e 01
     13590    jmp near 092aeh                           ; e9 3e 01
    1356313591    mov word [bp+014h], ax                    ; 89 46 14
    13564     jmp near 09277h                           ; e9 3f 01
     13592    jmp near 092b5h                           ; e9 3f 01
    1356513593    mov bx, word [bp+008h]                    ; 8b 5e 08
    1356613594    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1356713595    mov dx, word [bp+01eh]                    ; 8b 56 1e
    1356813596    mov cx, strict word 00001h                ; b9 01 00
    13569     call 08fb0h                               ; e8 69 fe
     13597    call 08feeh                               ; e8 69 fe
    1357013598    cmp ax, strict word 0ffffh                ; 3d ff ff
    13571     jne short 09157h                          ; 75 0b
     13599    jne short 09195h                          ; 75 0b
    1357213600    mov ax, word [bp+020h]                    ; 8b 46 20
    1357313601    xor ah, ah                                ; 30 e4
    1357413602    or ah, 086h                               ; 80 cc 86
    13575     jmp near 09270h                           ; e9 19 01
     13603    jmp near 092aeh                           ; e9 19 01
    1357613604    mov word [bp+014h], ax                    ; 89 46 14
    13577     jmp near 09277h                           ; e9 1a 01
     13605    jmp near 092b5h                           ; e9 1a 01
    1357813606    cmp word [bp+004h], 00100h                ; 81 7e 04 00 01
    13579     jc short 0916ah                           ; 72 06
     13607    jc short 091a8h                           ; 72 06
    1358013608    or ah, 087h                               ; 80 cc 87
    13581     jmp near 09270h                           ; e9 06 01
     13609    jmp near 092aeh                           ; e9 06 01
    1358213610    mov dx, word [bp+004h]                    ; 8b 56 04
    1358313611    mov ax, word [bp+014h]                    ; 8b 46 14
    13584     call 08f8ch                               ; e8 19 fe
     13612    call 08fcah                               ; e8 19 fe
    1358513613    mov bx, word [bp+020h]                    ; 8b 5e 20
    1358613614    xor bh, bh                                ; 30 ff
    1358713615    sub bx, strict byte 00008h                ; 83 eb 08
    1358813616    cmp bx, strict byte 00005h                ; 83 fb 05
    13589     jnbe near 09277h                          ; 0f 87 f5 00
     13617    jnbe near 092b5h                          ; 0f 87 f5 00
    1359013618    add bx, bx                                ; 01 db
    13591     jmp word [cs:bx-06f65h]                   ; 2e ff a7 9b 90
     13619    jmp word [cs:bx-06f27h]                   ; 2e ff a7 d9 90
    1359213620    mov bx, word [bp+01ch]                    ; 8b 5e 1c
    1359313621    xor bl, bl                                ; 30 db
     
    1360013628    or bx, ax                                 ; 09 c3
    1360113629    mov word [bp+01ch], bx                    ; 89 5e 1c
    13602     jmp near 09277h                           ; e9 d4 00
     13630    jmp near 092b5h                           ; e9 d4 00
    1360313631    mov dx, word [bp+004h]                    ; 8b 56 04
    1360413632    xor dh, dh                                ; 30 f6
     
    1360713635    in ax, DX                                 ; ed
    1360813636    mov word [bp+01ch], ax                    ; 89 46 1c
    13609     jmp near 09277h                           ; e9 c1 00
     13637    jmp near 092b5h                           ; e9 c1 00
    1361013638    mov dx, 00cfch                            ; ba fc 0c
    1361113639    in eax, DX                                ; 66 ed
     
    1361613644    mov word [bp+01ch], ax                    ; 89 46 1c
    1361713645    mov word [bp+01eh], dx                    ; 89 56 1e
    13618     jmp near 09277h                           ; e9 ac 00
     13646    jmp near 092b5h                           ; e9 ac 00
    1361913647    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1362013648    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1362313651    add dx, 00cfch                            ; 81 c2 fc 0c
    1362413652    out DX, AL                                ; ee
    13625     jmp near 09277h                           ; e9 99 00
     13653    jmp near 092b5h                           ; e9 99 00
    1362613654    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1362713655    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1363013658    add dx, 00cfch                            ; 81 c2 fc 0c
    1363113659    out DX, ax                                ; ef
    13632     jmp near 09277h                           ; e9 86 00
     13660    jmp near 092b5h                           ; e9 86 00
    1363313661    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1363413662    mov cx, word [bp+01eh]                    ; 8b 4e 1e
     
    1363913667    ; mov ax, cx                                ; 8b c1
    1364013668    out DX, eax                               ; 66 ef
    13641     jmp short 09277h                          ; eb 72
     13669    jmp short 092b5h                          ; eb 72
    1364213670    mov bx, word [bp+004h]                    ; 8b 5e 04
    1364313671    mov es, [bp+026h]                         ; 8e 46 26
     
    1364613674    mov cx, word [0f4a0h]                     ; 8b 0e a0 f4
    1364713675    cmp cx, word [es:bx]                      ; 26 3b 0f
    13648     jbe short 0922bh                          ; 76 11
     13676    jbe short 09269h                          ; 76 11
    1364913677    mov ax, word [bp+020h]                    ; 8b 46 20
    1365013678    xor ah, ah                                ; 30 e4
     
    1365213680    mov word [bp+020h], ax                    ; 89 46 20
    1365313681    or word [bp+02ch], strict byte 00001h     ; 83 4e 2c 01
    13654     jmp short 0923fh                          ; eb 14
     13682    jmp short 0927dh                          ; eb 14
    1365513683    les di, [es:bx+002h]                      ; 26 c4 7f 02
    1365613684    mov si, 0f2c0h                            ; be c0 f2
     
    1366413692    les bx, [bp-008h]                         ; c4 5e f8
    1366513693    mov word [es:bx], ax                      ; 26 89 07
    13666     jmp short 09277h                          ; eb 2d
     13694    jmp short 092b5h                          ; eb 2d
    1366713695    mov bx, 00da2h                            ; bb a2 0d
    1366813696    mov cx, ds                                ; 8c d9
    1366913697    mov ax, strict word 00004h                ; b8 04 00
    13670     call 018e1h                               ; e8 8c 86
     13698    call 01931h                               ; e8 9e 86
    1367113699    mov ax, word [bp+014h]                    ; 8b 46 14
    1367213700    push ax                                   ; 50
     
    1367513703    push 00d5eh                               ; 68 5e 0d
    1367613704    push strict byte 00004h                   ; 6a 04
    13677     call 01922h                               ; e8 bd 86
     13705    call 01972h                               ; e8 cf 86
    1367813706    add sp, strict byte 00008h                ; 83 c4 08
    1367913707    mov ax, word [bp+020h]                    ; 8b 46 20
     
    1368713715    pop bp                                    ; 5d
    1368813716    retn                                      ; c3
    13689 pci_find_classcode_:                         ; 0xf927e LB 0x2b
     13717pci_find_classcode_:                         ; 0xf92bc LB 0x2b
    1369013718    push bp                                   ; 55
    1369113719    mov bp, sp                                ; 89 e5
     
    1370213730    int 01ah                                  ; cd 1a
    1370313731    cmp ah, 000h                              ; 80 fc 00
    13704     je near 0929fh                            ; 0f 84 03 00
     13732    je near 092ddh                            ; 0f 84 03 00
    1370513733    mov bx, strict word 0ffffh                ; bb ff ff
    1370613734    mov ax, bx                                ; 89 d8
     
    1371113739    pop bp                                    ; 5d
    1371213740    retn                                      ; c3
    13713 pci_read_config_byte_:                       ; 0xf92a9 LB 0x24
     13741pci_read_config_byte_:                       ; 0xf92e7 LB 0x24
    1371413742    push bp                                   ; 55
    1371513743    mov bp, sp                                ; 89 e5
     
    1373013758    pop bp                                    ; 5d
    1373113759    retn                                      ; c3
    13732 pci_read_config_word_:                       ; 0xf92cd LB 0x22
     13760pci_read_config_word_:                       ; 0xf930b LB 0x22
    1373313761    push bp                                   ; 55
    1373413762    mov bp, sp                                ; 89 e5
     
    1374913777    pop bp                                    ; 5d
    1375013778    retn                                      ; c3
    13751 pci_read_config_dword_:                      ; 0xf92ef LB 0x27
     13779pci_read_config_dword_:                      ; 0xf932d LB 0x27
    1375213780    push bp                                   ; 55
    1375313781    mov bp, sp                                ; 89 e5
     
    1377013798    pop bp                                    ; 5d
    1377113799    retn                                      ; c3
    13772 vds_is_present_:                             ; 0xf9316 LB 0x1d
     13800vds_is_present_:                             ; 0xf9354 LB 0x1d
    1377313801    push bx                                   ; 53
    1377413802    push bp                                   ; 55
     
    1377813806    mov es, ax                                ; 8e c0
    1377913807    test byte [es:bx], 020h                   ; 26 f6 07 20
    13780     je short 0932eh                           ; 74 06
     13808    je short 0936ch                           ; 74 06
    1378113809    mov ax, strict word 00001h                ; b8 01 00
    1378213810    pop bp                                    ; 5d
     
    1378713815    pop bx                                    ; 5b
    1378813816    retn                                      ; c3
    13789 vds_real_to_lin_:                            ; 0xf9333 LB 0x1e
     13817vds_real_to_lin_:                            ; 0xf9371 LB 0x1e
    1379013818    push bx                                   ; 53
    1379113819    push cx                                   ; 51
     
    1379813826    sal ax, 1                                 ; d1 e0
    1379913827    rcl dx, 1                                 ; d1 d2
    13800     loop 09341h                               ; e2 fa
     13828    loop 0937fh                               ; e2 fa
    1380113829    xor cx, cx                                ; 31 c9
    1380213830    add ax, bx                                ; 01 d8
     
    1380613834    pop bx                                    ; 5b
    1380713835    retn                                      ; c3
    13808 vds_build_sg_list_:                          ; 0xf9351 LB 0x79
     13836vds_build_sg_list_:                          ; 0xf938f LB 0x79
    1380913837    push bp                                   ; 55
    1381013838    mov bp, sp                                ; 89 e5
     
    1382013848    mov bx, word [bp+006h]                    ; 8b 5e 06
    1382113849    mov word [es:di+002h], bx                 ; 26 89 5d 02
    13822     call 09333h                               ; e8 c3 ff
     13850    call 09371h                               ; e8 c3 ff
    1382313851    mov es, si                                ; 8e c6
    1382413852    mov word [es:di+004h], ax                 ; 26 89 45 04
    1382513853    mov word [es:di+006h], dx                 ; 26 89 55 06
    1382613854    mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00
    13827     call 09316h                               ; e8 93 ff
     13855    call 09354h                               ; e8 93 ff
    1382813856    test ax, ax                               ; 85 c0
    13829     je short 0939ah                           ; 74 13
     13857    je short 093d8h                           ; 74 13
    1383013858    mov es, si                                ; 8e c6
    1383113859    mov ax, 08105h                            ; b8 05 81
    1383213860    mov dx, strict word 00000h                ; ba 00 00
    1383313861    int 04bh                                  ; cd 4b
    13834     jc near 09397h                            ; 0f 82 02 00
     13862    jc near 093d5h                            ; 0f 82 02 00
    1383513863    db  032h, 0c0h
    1383613864    ; xor al, al                                ; 32 c0
    1383713865    cbw                                       ; 98
    13838     jmp short 093c1h                          ; eb 27
     13866    jmp short 093ffh                          ; eb 27
    1383913867    mov es, si                                ; 8e c6
    1384013868    mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00
     
    1385313881    pop bp                                    ; 5d
    1385413882    retn 00004h                               ; c2 04 00
    13855 vds_free_sg_list_:                           ; 0xf93ca LB 0x36
     13883vds_free_sg_list_:                           ; 0xf9408 LB 0x38
    1385613884    push bp                                   ; 55
    1385713885    mov bp, sp                                ; 89 e5
     
    1385913887    push di                                   ; 57
    1386013888    mov bx, ax                                ; 89 c3
    13861     call 09316h                               ; e8 42 ff
     13889    call 09354h                               ; e8 42 ff
    1386213890    test ax, ax                               ; 85 c0
    13863     je short 093ebh                           ; 74 13
     13891    je short 09429h                           ; 74 13
    1386413892    mov di, bx                                ; 89 df
    1386513893    mov es, dx                                ; 8e c2
     
    1386713895    mov dx, strict word 00000h                ; ba 00 00
    1386813896    int 04bh                                  ; cd 4b
    13869     jc near 093eah                            ; 0f 82 02 00
     13897    jc near 09428h                            ; 0f 82 02 00
    1387013898    db  032h, 0c0h
    1387113899    ; xor al, al                                ; 32 c0
     
    1387813906    pop bp                                    ; 5d
    1387913907    retn                                      ; c3
    13880     times 0x6 db 0
    13881 __U4D:                                       ; 0xf9400 LB 0x39
     13908    times 0x8 db 0
     13909__U4D:                                       ; 0xf9440 LB 0x39
    1388213910    pushfw                                    ; 9c
    1388313911    push eax                                  ; 66 50
     
    1390913937    popfw                                     ; 9d
    1391013938    retn                                      ; c3
    13911 __U4M:                                       ; 0xf9439 LB 0x31
     13939__U4M:                                       ; 0xf9479 LB 0x31
    1391213940    pushfw                                    ; 9c
    1391313941    push eax                                  ; 66 50
     
    1393413962    popfw                                     ; 9d
    1393513963    retn                                      ; c3
    13936 _fmemset_:                                   ; 0xf946a LB 0xd
     13964_fmemset_:                                   ; 0xf94aa LB 0xd
    1393713965    push di                                   ; 57
    1393813966    mov es, dx                                ; 8e c2
     
    1394413972    pop di                                    ; 5f
    1394513973    retn                                      ; c3
    13946 _fmemcpy_:                                   ; 0xf9477 LB 0x33
     13974_fmemcpy_:                                   ; 0xf94b7 LB 0x33
    1394713975    push bp                                   ; 55
    1394813976    db  08bh, 0ech
     
    1396413992    leave                                     ; c9
    1396513993    retn                                      ; c3
    13966     add al, al                                ; 00 c0
    13967     xchg sp, ax                               ; 94
    13968     retn 0c694h                               ; c2 94 c6
    13969     xchg sp, ax                               ; 94
    13970     db  0c6h, 094h, 0c6h, 094h, 0c8h
    13971     ; mov byte [si-06b3ah], 0c8h                ; c6 94 c6 94 c8
    13972     xchg sp, ax                               ; 94
    13973     enter 0ca94h, 094h                        ; c8 94 ca 94
    13974     into                                      ; ce
    13975     xchg sp, ax                               ; 94
    13976     into                                      ; ce
    13977     xchg sp, ax                               ; 94
    13978     rcl byte [si-06b2bh], 1                   ; d0 94 d5 94
    13979     xlatb                                     ; d7
    13980     xchg sp, ax                               ; 94
    13981 apm_worker:                                  ; 0xf94aa LB 0x3a
     13994    add byte [bx+si], al                      ; 00 00
     13995    xchg bp, ax                               ; 95
     13996    add dl, byte [di-06afah]                  ; 02 95 06 95
     13997    push ES                                   ; 06
     13998    xchg bp, ax                               ; 95
     13999    push ES                                   ; 06
     14000    xchg bp, ax                               ; 95
     14001    or byte [di-06af8h], dl                   ; 08 95 08 95
     14002    or dl, byte [di-06af2h]                   ; 0a 95 0e 95
     14003    push CS                                   ; 0e
     14004    xchg bp, ax                               ; 95
     14005    adc byte [di-06aebh], dl                  ; 10 95 15 95
     14006    pop SS                                    ; 17
     14007    xchg bp, ax                               ; 95
     14008apm_worker:                                  ; 0xf94ea LB 0x3a
    1398214009    sti                                       ; fb
    1398314010    push ax                                   ; 50
     
    1399114018    pop ax                                    ; 58
    1399214019    mov AH, strict byte 053h                  ; b4 53
    13993     jnc short 094e0h                          ; 73 25
    13994     jmp word [cs:bp-06b70h]                   ; 2e ff a6 90 94
    13995     jmp short 094deh                          ; eb 1c
     14020    jnc short 09520h                          ; 73 25
     14021    jmp word [cs:bp-06b30h]                   ; 2e ff a6 d0 94
     14022    jmp short 0951eh                          ; eb 1c
    1399614023    sti                                       ; fb
    1399714024    hlt                                       ; f4
    13998     jmp short 094deh                          ; eb 18
    13999     jmp short 094deh                          ; eb 16
    14000     jmp short 094e0h                          ; eb 16
     14025    jmp short 0951eh                          ; eb 18
     14026    jmp short 0951eh                          ; eb 16
     14027    jmp short 09520h                          ; eb 16
    1400114028    mov AH, strict byte 080h                  ; b4 80
    14002     jmp short 094e2h                          ; eb 14
    14003     jmp short 094e0h                          ; eb 10
     14029    jmp short 09522h                          ; eb 14
     14030    jmp short 09520h                          ; eb 10
    1400414031    mov ax, 00102h                            ; b8 02 01
    14005     jmp short 094deh                          ; eb 09
    14006     jmp short 094deh                          ; eb 07
     14032    jmp short 0951eh                          ; eb 09
     14033    jmp short 0951eh                          ; eb 07
    1400714034    mov BL, strict byte 000h                  ; b3 00
    1400814035    mov cx, strict word 00000h                ; b9 00 00
    14009     jmp short 094deh                          ; eb 00
     14036    jmp short 0951eh                          ; eb 00
    1401014037    clc                                       ; f8
    1401114038    retn                                      ; c3
     
    1401314040    stc                                       ; f9
    1401414041    retn                                      ; c3
    14015 apm_pm16_entry:                              ; 0xf94e4 LB 0x11
     14042apm_pm16_entry:                              ; 0xf9524 LB 0x11
    1401614043    mov AH, strict byte 002h                  ; b4 02
    1401714044    push DS                                   ; 1e
     
    1402114048    add bp, strict byte 00008h                ; 83 c5 08
    1402214049    mov ds, bp                                ; 8e dd
    14023     call 094aah                               ; e8 b8 ff
     14050    call 094eah                               ; e8 b8 ff
    1402414051    pop bp                                    ; 5d
    1402514052    pop DS                                    ; 1f
    1402614053    retf                                      ; cb
    1402714054
    14028   ; Padding 0x450b bytes at 0xf94f5
    14029   times 17675 db 0
     14055  ; Padding 0x44cb bytes at 0xf9535
     14056  times 17611 db 0
    1403014057
    1403114058section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO
     
    1407414101    add bp, strict byte 00008h                ; 83 c5 08
    1407514102    push ebp                                  ; 66 55
    14076     mov bp, 094e6h                            ; bd e6 94
     14103    mov bp, 09526h                            ; bd 26 95
    1407714104    add byte [bx+si], al                      ; 00 00
    1407814105    push ebp                                  ; 66 55
     
    1452314550    cmp AL, strict byte 009h                  ; 3c 09
    1452414551    jne short 0e0a1h                          ; 75 03
    14525     jmp near 0e342h                           ; e9 a1 02
     14552    jmp near 0e34bh                           ; e9 aa 02
    1452614553    cmp AL, strict byte 005h                  ; 3c 05
    1452714554    je short 0e030h                           ; 74 8b
     
    1456614593    pop DS                                    ; 1f
    1456714594    cld                                       ; fc
    14568     call 01727h                               ; e8 3c 36
     14595    call 01777h                               ; e8 8c 36
    1456914596    call 0e8e0h                               ; e8 f2 07
    1457014597    db  033h, 0dbh
     
    1461214639    mov ax, 0f000h                            ; b8 00 f0
    1461314640    mov word [00072h], ax                     ; a3 72 00
    14614     call 0e7c0h                               ; e8 50 06
     14641    call 0e778h                               ; e8 08 06
     14642    call 0f13ch                               ; e8 c9 0f
     14643    call 0f1c1h                               ; e8 4b 10
    1461514644    mov ax, 0fea5h                            ; b8 a5 fe
    1461614645    mov word [00020h], ax                     ; a3 20 00
     
    1462214651    out strict byte 040h, AL                  ; e6 40
    1462314652    out strict byte 040h, AL                  ; e6 40
     14653    mov ax, 0f065h                            ; b8 65 f0
     14654    mov word [00040h], ax                     ; a3 40 00
     14655    mov ax, 0f000h                            ; b8 00 f0
     14656    mov word [00042h], ax                     ; a3 42 00
    1462414657    mov ax, 0e987h                            ; b8 87 e9
    1462514658    mov word [00024h], ax                     ; a3 24 00
     
    1465014683    pop DS                                    ; 1f
    1465114684    cld                                       ; fc
    14652     call 04964h                               ; e8 91 67
     14685    mov ax, 0c000h                            ; b8 00 c0
     14686    mov dx, 0c800h                            ; ba 00 c8
     14687    call 01600h                               ; e8 15 34
     14688    call 049b4h                               ; e8 c6 67
    1465314689    pop DS                                    ; 1f
    1465414690    mov AL, strict byte 014h                  ; b0 14
     
    1466714703    mov CL, strict byte 014h                  ; b1 14
    1466814704    mov dx, 00378h                            ; ba 78 03
    14669     call 0ecedh                               ; e8 f6 0a
     14705    call 0ecedh                               ; e8 db 0a
    1467014706    mov dx, 00278h                            ; ba 78 02
    14671     call 0ecedh                               ; e8 f0 0a
     14707    call 0ecedh                               ; e8 d5 0a
    1467214708    sal bx, 00eh                              ; c1 e3 0e
    1467314709    mov ax, word [00410h]                     ; a1 10 04
     
    1469214728    mov CL, strict byte 00ah                  ; b1 0a
    1469314729    mov dx, 003f8h                            ; ba f8 03
    14694     call 0ed0bh                               ; e8 d2 0a
     14730    call 0ed0bh                               ; e8 b7 0a
    1469514731    mov dx, 002f8h                            ; ba f8 02
    14696     call 0ed0bh                               ; e8 cc 0a
     14732    call 0ed0bh                               ; e8 b1 0a
    1469714733    mov dx, 003e8h                            ; ba e8 03
    14698     call 0ed0bh                               ; e8 c6 0a
     14734    call 0ed0bh                               ; e8 ab 0a
    1469914735    mov dx, 002e8h                            ; ba e8 02
    14700     call 0ed0bh                               ; e8 c0 0a
     14736    call 0ed0bh                               ; e8 a5 0a
    1470114737    sal bx, 009h                              ; c1 e3 09
    1470214738    mov ax, word [00410h]                     ; a1 10 04
     
    1471714753    mov ax, 0f000h                            ; b8 00 f0
    1471814754    mov word [001c2h], ax                     ; a3 c2 01
    14719     call 0edbfh                               ; e8 3f 0b
     14755    call 0edbfh                               ; e8 24 0b
    1472014756    mov ax, 0f8a9h                            ; b8 a9 f8
    1472114757    mov word [001d0h], ax                     ; a3 d0 01
     
    1472614762    mov ax, 0f000h                            ; b8 00 f0
    1472714763    mov word [001d6h], ax                     ; a3 d6 01
    14728     mov ax, 0f065h                            ; b8 65 f0
    14729     mov word [00040h], ax                     ; a3 40 00
    14730     mov ax, 0f000h                            ; b8 00 f0
    14731     mov word [00042h], ax                     ; a3 42 00
    14732     call 0e79bh                               ; e8 f4 04
    14733     call 0f13ch                               ; e8 92 0e
    14734     call 0f1c1h                               ; e8 14 0f
    14735     call 0e758h                               ; e8 a8 04
    14736     jmp short 0e31bh                          ; eb 69
    14737     times 0xf db 0
     14764    call 0e753h                               ; e8 9d 04
     14765    jmp short 0e31bh                          ; eb 63
     14766    times 0x9 db 0
    1473814767    db  'XM'
    1473914768nmi:                                         ; 0xfe2c3 LB 0x7
     
    1474114770    pop DS                                    ; 1f
    1474214771    cld                                       ; fc
    14743     call 01703h                               ; e8 3a 34
     14772    call 01753h                               ; e8 8a 34
    1474414773    iret                                      ; cf
    1474514774int75_handler:                               ; 0xfe2ca LB 0x8
     
    1477914808    pop DS                                    ; 1f
    1478014809    cld                                       ; fc
    14781     call 01b5dh                               ; e8 3c 38
    14782     call 01f57h                               ; e8 33 3c
    14783     call 08d60h                               ; e8 39 aa
    14784     call 07e37h                               ; e8 0d 9b
     14810    call 01badh                               ; e8 8c 38
     14811    call 01fa7h                               ; e8 83 3c
     14812    call 08d9eh                               ; e8 77 aa
     14813    call 07e75h                               ; e8 4b 9b
    1478514814    call 0ed2fh                               ; e8 02 0a
    1478614815    call 0e2d2h                               ; e8 a2 ff
     
    1478814817    pop DS                                    ; 1f
    1478914818    cld                                       ; fc
    14790     call 01747h                               ; e8 11 34
    14791     call 03648h                               ; e8 0f 53
     14819    call 01797h                               ; e8 61 34
     14820    mov ax, 0c800h                            ; b8 00 c8
     14821    mov dx, 0f000h                            ; ba 00 f0
     14822    call 01600h                               ; e8 c1 32
     14823    call 03698h                               ; e8 56 53
    1479214824    sti                                       ; fb
    1479314825    int 019h                                  ; cd 19
    1479414826    sti                                       ; fb
    1479514827    hlt                                       ; f4
    14796     jmp short 0e33dh                          ; eb fd
     14828    jmp short 0e346h                          ; eb fd
    1479714829    cli                                       ; fa
    1479814830    hlt                                       ; f4
     
    1481614848    sti                                       ; fb
    1481714849    retf 00002h                               ; ca 02 00
    14818     times 0x91 db 0
     14850    times 0x88 db 0
    1481914851    db  'XM'
    1482014852int13_handler:                               ; 0xfe3fe LB 0x3
     
    1488714919    pop DS                                    ; 1f
    1488814920    cld                                       ; fc
    14889     call 05cf6h                               ; e8 b4 75
     14921    call 05d34h                               ; e8 f2 75
    1489014922    popaw                                     ; 61
    1489114923    pop ES                                    ; 07
     
    1489814930    pop DS                                    ; 1f
    1489914931    cld                                       ; fc
    14900     call 01698h                               ; e8 49 2f
     14932    call 016e8h                               ; e8 99 2f
    1490114933    popaw                                     ; 61
    1490214934    pop ES                                    ; 07
    1490314935    pop DS                                    ; 1f
    1490414936    iret                                      ; cf
    14905 rom_checksum:                                ; 0xfe753 LB 0x5
    14906     push ax                                   ; 50
    14907     db  032h, 0c0h
    14908     ; xor al, al                                ; 32 c0
    14909     pop ax                                    ; 58
    14910     retn                                      ; c3
    14911 rom_scan:                                    ; 0xfe758 LB 0x43
    14912     mov cx, 0c000h                            ; b9 00 c0
    14913     mov ds, cx                                ; 8e d9
    14914     mov ax, strict word 00004h                ; b8 04 00
    14915     cmp word [word 00000h], 0aa55h            ; 81 3e 00 00 55 aa
    14916     jne short 0e78bh                          ; 75 23
    14917     call 0e753h                               ; e8 e8 ff
    14918     jne short 0e78bh                          ; 75 1e
    14919     mov AL, byte [00002h]                     ; a0 02 00
    14920     test AL, strict byte 003h                 ; a8 03
    14921     je short 0e778h                           ; 74 04
    14922     and AL, strict byte 0fch                  ; 24 fc
    14923     add AL, strict byte 004h                  ; 04 04
    14924     db  033h, 0dbh
    14925     ; xor bx, bx                                ; 33 db
    14926     mov ds, bx                                ; 8e db
    14927     push ax                                   ; 50
    14928     push cx                                   ; 51
    14929     push strict byte 00003h                   ; 6a 03
    14930     db  08bh, 0ech
    14931     ; mov bp, sp                                ; 8b ec
    14932     call far [byte bp+000h]                   ; ff 5e 00
    14933     cli                                       ; fa
    14934     add sp, strict byte 00002h                ; 83 c4 02
    14935     pop cx                                    ; 59
    14936     pop ax                                    ; 58
    14937     sal ax, 005h                              ; c1 e0 05
    14938     db  003h, 0c8h
    14939     ; add cx, ax                                ; 03 c8
    14940     cmp cx, 0e800h                            ; 81 f9 00 e8
    14941     jbe short 0e75bh                          ; 76 c5
    14942     db  033h, 0c0h
    14943     ; xor ax, ax                                ; 33 c0
    14944     mov ds, ax                                ; 8e d8
    14945     retn                                      ; c3
    14946 init_pic:                                    ; 0xfe79b LB 0x25
     14937init_pic:                                    ; 0xfe753 LB 0x25
    1494714938    mov AL, strict byte 011h                  ; b0 11
    1494814939    out strict byte 020h, AL                  ; e6 20
     
    1496414955    out strict byte 0a1h, AL                  ; e6 a1
    1496514956    retn                                      ; c3
    14966 ebda_post:                                   ; 0xfe7c0 LB 0xa4
     14957ebda_post:                                   ; 0xfe778 LB 0xec
    1496714958    mov ax, 0e746h                            ; b8 46 e7
    1496814959    mov word [00034h], ax                     ; a3 34 00
     
    1498914980    mov word [0040eh], 09fc0h                 ; c7 06 0e 04 c0 9f
    1499014981    retn                                      ; c3
    14991     times 0x27 db 0
     14982    times 0x6f db 0
    1499214983    pop ax                                    ; 58
    1499314984    dec bp                                    ; 4d
     
    1500314994    pop DS                                    ; 1f
    1500414995    cld                                       ; fc
    15005     call 05064h                               ; e8 22 68
     14996    call 050a2h                               ; e8 60 68
    1500614997    popaw                                     ; 61
    1500714998    pop DS                                    ; 1f
     
    1502015011    pop DS                                    ; 1f
    1502115012    cld                                       ; fc
    15022     call 05064h                               ; e8 04 68
     15013    call 050a2h                               ; e8 42 68
    1502315014    popaw                                     ; 61
    1502415015    pop DS                                    ; 1f
     
    1511915110    pop DS                                    ; 1f
    1512015111    cld                                       ; fc
    15121     call 04c73h                               ; e8 a4 62
     15112    call 04cb1h                               ; e8 e2 62
    1512215113    pop ES                                    ; 07
    1512315114    popaw                                     ; 61
     
    1513515126    pop DS                                    ; 1f
    1513615127    cld                                       ; fc
    15137     call 0674eh                               ; e8 69 7d
     15128    call 0678ch                               ; e8 a7 7d
    1513815129    pop DS                                    ; 1f
    1513915130    pop ES                                    ; 07
     
    1515615147    cld                                       ; fc
    1515715148    push 0ece9h                               ; 68 e9 ec
    15158     jmp near 0368ch                           ; e9 1b 4a
     15149    jmp near 036dch                           ; e9 6b 4a
    1515915150    push ES                                   ; 06
    1516015151    push ax                                   ; 50
     
    1516215153    push cx                                   ; 51
    1516315154    push dx                                   ; 52
    15164     call 03660h                               ; e8 e7 49
     15155    call 036b0h                               ; e8 37 4a
    1516515156    cmp AL, strict byte 000h                  ; 3c 00
    1516615157    je short 0ecabh                           ; 74 2e
    15167     call 03676h                               ; e8 f6 49
     15158    call 036c6h                               ; e8 46 4a
    1516815159    pop dx                                    ; 5a
    1516915160    push dx                                   ; 52
     
    1518315174    cld                                       ; fc
    1518415175    push 0ece9h                               ; 68 e9 ec
    15185     jmp near 03c60h                           ; e9 c9 4f
     15176    jmp near 03cb0h                           ; e9 19 50
    1518615177    and dl, 0e0h                              ; 80 e2 e0
    1518715178    db  03ah, 0c2h
     
    1522315214    jne short 0ecc8h                          ; 75 06
    1522415215    push 0ece9h                               ; 68 e9 ec
    15225     jmp near 02edeh                           ; e9 16 42
     15216    jmp near 02f2eh                           ; e9 66 42
    1522615217int13_notfloppy:                             ; 0xfecc8 LB 0x14
    1522715218    cmp dl, 0e0h                              ; 80 fa e0
     
    1522915220    shr ebx, 010h                             ; 66 c1 eb 10
    1523015221    push bx                                   ; 53
    15231     call 04094h                               ; e8 bf 53
     15222    call 040e4h                               ; e8 0f 54
    1523215223    pop bx                                    ; 5b
    1523315224    sal ebx, 010h                             ; 66 c1 e3 10
     
    1523615227    cmp ah, 040h                              ; 80 fc 40
    1523715228    jnbe short 0ece6h                         ; 77 05
    15238     call 053e9h                               ; e8 05 67
     15229    call 05427h                               ; e8 43 67
    1523915230    jmp short 0ece9h                          ; eb 03
    15240     call 0582ah                               ; e8 41 6b
     15231    call 05868h                               ; e8 7f 6b
    1524115232int13_out:                                   ; 0xfece9 LB 0x4
    1524215233    pop DS                                    ; 1f
     
    1545115442    pop DS                                    ; 1f
    1545215443    cld                                       ; fc
    15453     call 070a8h                               ; e8 cb 80
     15444    call 070e6h                               ; e8 09 81
    1545415445    popaw                                     ; 61
    1545515446    pop ES                                    ; 07
     
    1547615467    pop DS                                    ; 1f
    1547715468    cld                                       ; fc
    15478     call 01715h                               ; e8 6b 26
     15469    call 01765h                               ; e8 bb 26
    1547915470    hlt                                       ; f4
    1548015471    iret                                      ; cf
     
    1549915490    mov ax, strict word 00001h                ; b8 01 00
    1550015491    push ax                                   ; 50
    15501     call 046fbh                               ; e8 2b 56
     15492    call 0474bh                               ; e8 7b 56
    1550215493    inc sp                                    ; 44
    1550315494    inc sp                                    ; 44
     
    1550615497    mov ax, strict word 00002h                ; b8 02 00
    1550715498    push ax                                   ; 50
    15508     call 046fbh                               ; e8 1e 56
     15499    call 0474bh                               ; e8 6e 56
    1550915500    inc sp                                    ; 44
    1551015501    inc sp                                    ; 44
     
    1551315504    mov ax, strict word 00003h                ; b8 03 00
    1551415505    push strict byte 00003h                   ; 6a 03
    15515     call 046fbh                               ; e8 10 56
     15506    call 0474bh                               ; e8 60 56
    1551615507    inc sp                                    ; 44
    1551715508    inc sp                                    ; 44
     
    1552015511    mov ax, strict word 00004h                ; b8 04 00
    1552115512    push ax                                   ; 50
    15522     call 046fbh                               ; e8 03 56
     15513    call 0474bh                               ; e8 53 56
    1552315514    inc sp                                    ; 44
    1552415515    inc sp                                    ; 44
     
    1581115802    cmp ah, 0c2h                              ; 80 fc c2
    1581215803    je short 0f887h                           ; 74 0e
    15813     call 05f03h                               ; e8 87 66
     15804    call 05f41h                               ; e8 c5 66
    1581415805    popaw                                     ; 61
    1581515806    pop ES                                    ; 07
     
    1581715808    popfw                                     ; 9d
    1581815809    jmp short 0f895h                          ; eb 13
    15819     call 08e97h                               ; e8 12 96
     15810    call 08ed5h                               ; e8 50 96
    1582015811    jmp short 0f87ch                          ; eb f5
    1582115812int15_handler_mouse:                         ; 0xff887 LB 0x5
    15822     call 06d1dh                               ; e8 93 74
     15813    call 06d5bh                               ; e8 d1 74
    1582315814    jmp short 0f87ch                          ; eb f0
    1582415815int15_handler32:                             ; 0xff88c LB 0x9
    1582515816    pushad                                    ; 66 60
    15826     call 063d0h                               ; e8 3f 6b
     15817    call 0640eh                               ; e8 7d 6b
    1582715818    popad                                     ; 66 61
    1582815819    jmp short 0f87dh                          ; eb e8
     
    1585415845    pop DS                                    ; 1f
    1585515846    cld                                       ; fc
    15856     call 06c53h                               ; e8 96 73
     15847    call 06c91h                               ; e8 d4 73
    1585715848    pop cx                                    ; 59
    1585815849    jcxz 0f8cch                               ; e3 0c
     
    1594615937    db  018h, 018h, 018h, 000h, 018h, 018h, 018h, 000h, 0e0h, 030h, 030h, 01ch, 030h, 030h, 0e0h, 000h
    1594715938    db  076h, 0dch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 010h, 038h, 06ch, 0c6h, 0c6h, 0feh, 000h
    15948     db  080h, 0fch, 0b1h, 075h, 00fh, 006h, 01eh, 00eh, 01fh, 0fch, 066h, 060h, 0e8h, 02ah, 092h, 066h
    15949     db  061h, 01fh, 007h, 0cfh, 006h, 01eh, 060h, 00eh, 01fh, 0fch, 0e8h, 05fh, 06bh, 061h, 01fh, 007h
     15939    db  080h, 0fch, 0b1h, 075h, 00fh, 006h, 01eh, 00eh, 01fh, 0fch, 066h, 060h, 0e8h, 068h, 092h, 066h
     15940    db  061h, 01fh, 007h, 0cfh, 006h, 01eh, 060h, 00eh, 01fh, 0fch, 0e8h, 09dh, 06bh, 061h, 01fh, 007h
    1595015941    db  0cfh
    1595115942int70_handler:                               ; 0xffe8f LB 0x16
     
    1595615947    pop DS                                    ; 1f
    1595715948    cld                                       ; fc
    15958     call 0692ch                               ; e8 94 6a
     15949    call 0696ah                               ; e8 d2 6a
    1595915950    popaw                                     ; 61
    1596015951    pop DS                                    ; 1f
     
    1605516046cpu_reset:                                   ; 0xffff0 LB 0x10
    1605616047    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    16057     db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0c8h
     16048    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 043h
  • trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative.md5sum

    r50159 r50167  
    1 53f0c512b84912d343d92609bc95421d *VBoxPcBios.rom
     148e87ba7702996c77a05a83a5e1055ea *VBoxPcBios.rom
Note: See TracChangeset for help on using the changeset viewer.

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