VirtualBox

Changeset 62120 in vbox


Ignore:
Timestamp:
Jul 7, 2016 4:58:51 PM (9 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
108606
Message:

5.1 RC1

Location:
trunk
Files:
16 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified trunk/Config.kmk

    r62056 r62120  
    221221#       publisher so that RTStrVersionCompare have a chance of comparing
    222222#       prerelease from different publishers correctly.
    223 VBOX_VERSION_STRING = $(VBOX_VERSION_STRING_RAW)_BETA3$(VBOX_BUILD_PUBLISHER)
     223VBOX_VERSION_STRING = $(VBOX_VERSION_STRING_RAW)_RC1$(VBOX_BUILD_PUBLISHER)
    224224# Just the BETA[n],ALPHA[n],RC[n] indicators. Set to empty string for release.
    225 VBOX_VERSION_PRERELEASE =
     225VBOX_VERSION_PRERELEASE = RC1
    226226
    227227# Force the additions.sh script to get an exact additions build when we're doing the release.
  • TabularUnified trunk/debian/changelog

    r61733 r62120  
     1virtualbox-ose (5.1.0~rc1) unstable; urgency=low
     2
     3  * rebuild Debian package.
     4
     5 -- Oracle Corporation <info@virtualbox.org>  Thu, 07 Jul 2016 18:00:00 +0200
     6
    17virtualbox-ose (5.1.0~beta3) unstable; urgency=low
    28
  • TabularUnified trunk/doc/manual/user_ChangeLogImpl.xml

    r62116 r62120  
    44                           So, we use chapter and xpointer="xpointer(/chapter/)" with xi:include. -->
    55  <sect1>
    6     <title>Version 5.1.0 Beta 3 (2016-06-16)</title>
     6    <title>Version 5.1.0 Release Candidate 1 (2016-07-07)</title>
    77
    88    <para>This is a major update. The following major new features
  • TabularUnified trunk/src/VBox/Devices/BiosCommonCode/MakeAlternativeSource.cpp

    r60736 r62120  
    998998                     && pb[5] == 0x01
    999999                    )
    1000                  || (   pb[0] == 0x8c   /* bytes after apm_out_str_ */
    1001                      && pb[1] == 0x2f
    1002                      && pb[2] == 0x8d
    1003                      && pb[3] == 0xbb
    1004                      && pb[4] == 0x8c
    1005                      && pb[5] == 0x2f)
     1000                 || (   pb[0] == 0x00   /* bytes after apm_out_str_ */
     1001                     && pb[1] == 0x00
     1002                     && pb[2] == 0x00
     1003                     && pb[3] == 0x00
     1004                     && pb[4] == 0x00
     1005                     && pb[5] == 0x00
     1006                     && pb[6] == 0xe0
     1007                     && pb[7] == 0xa0
     1008                     && pb[8] == 0xe2
     1009                     && pb[9] == 0xa0)
    10061010                 || (   pb[0] == 0xec  /* _int15_function switch */
    10071011                     && pb[1] == 0xe9
  • TabularUnified trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative286.asm

    r61733 r62120  
    16701670    xor bh, bh                                ; 30 ff
    16711671    sal bx, 003h                              ; c1 e3 03
    1672     cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
     1672    cmp byte [bx+04633h], 000h                ; 80 bf 33 46 00
    16731673    jne short 00b68h                          ; 75 2c
    16741674    mul di                                    ; f7 e7
     
    16881688    add dx, dx                                ; 01 d2
    16891689    add dx, di                                ; 01 fa
    1690     mov ax, word [bx+04638h]                  ; 8b 87 38 46
     1690    mov ax, word [bx+04636h]                  ; 8b 87 36 46
    16911691    call 03181h                               ; e8 1c 26
    16921692    mov word [ss:si], ax                      ; 36 89 04
     
    17551755    mov dx, 0010ch                            ; ba 0c 01
    17561756    jmp short 00b99h                          ; eb c0
    1757     mov ax, 05bf2h                            ; b8 f2 5b
     1757    mov ax, 05bf0h                            ; b8 f0 5b
    17581758    mov dx, 0c000h                            ; ba 00 c0
    17591759    jmp short 00b9eh                          ; eb bd
    1760     mov ax, 053f2h                            ; b8 f2 53
     1760    mov ax, 053f0h                            ; b8 f0 53
    17611761    jmp short 00bdch                          ; eb f6
    1762     mov ax, 057f2h                            ; b8 f2 57
     1762    mov ax, 057f0h                            ; b8 f0 57
    17631763    jmp short 00bdch                          ; eb f1
    1764     mov ax, 079f2h                            ; b8 f2 79
     1764    mov ax, 079f0h                            ; b8 f0 79
    17651765    jmp short 00bdch                          ; eb ec
    1766     mov ax, 069f2h                            ; b8 f2 69
     1766    mov ax, 069f0h                            ; b8 f0 69
    17671767    jmp short 00bdch                          ; eb e7
    1768     mov ax, 07b1fh                            ; b8 1f 7b
     1768    mov ax, 07b1dh                            ; b8 1d 7b
    17691769    jmp short 00bdch                          ; eb e2
    17701770    jmp short 00bcbh                          ; eb cf
     
    17891789    xor bh, bh                                ; 30 ff
    17901790    sal bx, 003h                              ; c1 e3 03
    1791     cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
     1791    cmp byte [bx+04633h], 000h                ; 80 bf 33 46 00
    17921792    jne short 00c30h                          ; 75 03
    17931793    jmp near 00d37h                           ; e9 07 01
    1794     mov bl, byte [bx+04636h]                  ; 8a 9f 36 46
     1794    mov bl, byte [bx+04634h]                  ; 8a 9f 34 46
    17951795    cmp bl, 003h                              ; 80 fb 03
    17961796    jc short 00c48h                           ; 72 0f
     
    18571857    xor bh, bh                                ; 30 ff
    18581858    sal bx, 003h                              ; c1 e3 03
    1859     cmp byte [bx+04637h], 002h                ; 80 bf 37 46 02
     1859    cmp byte [bx+04635h], 002h                ; 80 bf 35 46 02
    18601860    jne short 00cf8h                          ; 75 1b
    18611861    mov cx, si                                ; 89 f1
     
    21812181    mov si, bx                                ; 89 de
    21822182    sal si, 003h                              ; c1 e6 03
    2183     cmp byte [si+04635h], 000h                ; 80 bc 35 46 00
     2183    cmp byte [si+04633h], 000h                ; 80 bc 33 46 00
    21842184    jne short 00fbah                          ; 75 46
    21852185    mov dx, strict word 0004ah                ; ba 4a 00
     
    22142214    mul si                                    ; f7 e6
    22152215    jmp short 00fd0h                          ; eb 16
    2216     mov al, byte [bx+046b4h]                  ; 8a 87 b4 46
     2216    mov al, byte [bx+046b2h]                  ; 8a 87 b2 46
    22172217    xor ah, ah                                ; 30 e4
    22182218    mov bx, ax                                ; 89 c3
     
    22212221    xor ch, ch                                ; 30 ed
    22222222    mov ax, cx                                ; 89 c8
    2223     mul word [bx+046cbh]                      ; f7 a7 cb 46
     2223    mul word [bx+046c9h]                      ; f7 a7 c9 46
    22242224    mov bx, ax                                ; 89 c3
    22252225    mov dx, strict word 00063h                ; ba 63 00
     
    22952295    mov byte [bp-019h], 000h                  ; c6 46 e7 00
    22962296    mov bx, word [bp-01ah]                    ; 8b 5e e6
    2297     mov al, byte [bx+046b4h]                  ; 8a 87 b4 46
     2297    mov al, byte [bx+046b2h]                  ; 8a 87 b2 46
    22982298    mov byte [bp-00eh], al                    ; 88 46 f2
    22992299    mov bl, al                                ; 88 c3
    23002300    xor bh, bh                                ; 30 ff
    23012301    sal bx, 006h                              ; c1 e3 06
     2302    mov al, byte [bx+046c6h]                  ; 8a 87 c6 46
     2303    xor ah, ah                                ; 30 e4
     2304    mov word [bp-016h], ax                    ; 89 46 ea
     2305    mov al, byte [bx+046c7h]                  ; 8a 87 c7 46
     2306    mov word [bp-014h], ax                    ; 89 46 ec
    23022307    mov al, byte [bx+046c8h]                  ; 8a 87 c8 46
    2303     xor ah, ah                                ; 30 e4
    2304     mov word [bp-016h], ax                    ; 89 46 ea
    2305     mov al, byte [bx+046c9h]                  ; 8a 87 c9 46
    2306     mov word [bp-014h], ax                    ; 89 46 ec
    2307     mov al, byte [bx+046cah]                  ; 8a 87 ca 46
    23082308    mov word [bp-018h], ax                    ; 89 46 e8
    23092309    mov dx, 00087h                            ; ba 87 00
     
    23212321    mov bx, word [bp-01ah]                    ; 8b 5e e6
    23222322    sal bx, 003h                              ; c1 e3 03
    2323     mov al, byte [bx+0463ah]                  ; 8a 87 3a 46
     2323    mov al, byte [bx+04638h]                  ; 8a 87 38 46
    23242324    mov dx, 003c6h                            ; ba c6 03
    23252325    out DX, AL                                ; ee
     
    23272327    mov dx, 003c8h                            ; ba c8 03
    23282328    out DX, AL                                ; ee
    2329     mov bl, byte [bx+0463bh]                  ; 8a 9f 3b 46
     2329    mov bl, byte [bx+04639h]                  ; 8a 9f 39 46
    23302330    cmp bl, 001h                              ; 80 fb 01
    23312331    jc short 010ddh                           ; 72 0e
     
    23382338    test bl, bl                               ; 84 db
    23392339    jne short 010f3h                          ; 75 12
    2340     mov di, 04e48h                            ; bf 48 4e
     2340    mov di, 04e46h                            ; bf 46 4e
    23412341    jmp short 010f3h                          ; eb 0d
    2342     mov di, 04f08h                            ; bf 08 4f
     2342    mov di, 04f06h                            ; bf 06 4f
    23432343    jmp short 010f3h                          ; eb 08
    2344     mov di, 04fc8h                            ; bf c8 4f
     2344    mov di, 04fc6h                            ; bf c6 4f
    23452345    jmp short 010f3h                          ; eb 03
    2346     mov di, 05088h                            ; bf 88 50
     2346    mov di, 05086h                            ; bf 86 50
    23472347    xor bx, bx                                ; 31 db
    23482348    jmp short 010ffh                          ; eb 08
     
    23542354    mov si, ax                                ; 89 c6
    23552355    sal si, 003h                              ; c1 e6 03
    2356     mov al, byte [si+0463bh]                  ; 8a 84 3b 46
     2356    mov al, byte [si+04639h]                  ; 8a 84 39 46
    23572357    mov si, ax                                ; 89 c6
    2358     mov al, byte [si+046c4h]                  ; 8a 84 c4 46
     2358    mov al, byte [si+046c2h]                  ; 8a 84 c2 46
    23592359    cmp bx, ax                                ; 39 c3
    23602360    jnbe short 0112ch                         ; 77 15
     
    23972397    sal si, 006h                              ; c1 e6 06
    23982398    add si, bx                                ; 01 de
    2399     mov al, byte [si+046ebh]                  ; 8a 84 eb 46
     2399    mov al, byte [si+046e9h]                  ; 8a 84 e9 46
    24002400    out DX, AL                                ; ee
    24012401    inc bx                                    ; 43
     
    24232423    sal si, 006h                              ; c1 e6 06
    24242424    add si, bx                                ; 01 de
    2425     mov al, byte [si+046cch]                  ; 8a 84 cc 46
     2425    mov al, byte [si+046cah]                  ; 8a 84 ca 46
    24262426    mov dx, 003c5h                            ; ba c5 03
    24272427    out DX, AL                                ; ee
     
    24402440    sal si, 006h                              ; c1 e6 06
    24412441    add si, bx                                ; 01 de
    2442     mov al, byte [si+046ffh]                  ; 8a 84 ff 46
     2442    mov al, byte [si+046fdh]                  ; 8a 84 fd 46
    24432443    mov dx, 003cfh                            ; ba cf 03
    24442444    out DX, AL                                ; ee
     
    24482448    xor bh, bh                                ; 30 ff
    24492449    sal bx, 003h                              ; c1 e3 03
    2450     cmp byte [bx+04636h], 001h                ; 80 bf 36 46 01
     2450    cmp byte [bx+04634h], 001h                ; 80 bf 34 46 01
    24512451    jne short 011e1h                          ; 75 05
    24522452    mov dx, 003b4h                            ; ba b4 03
     
    24702470    add di, bx                                ; 01 df
    24712471    lea dx, [si+001h]                         ; 8d 54 01
    2472     mov al, byte [di+046d2h]                  ; 8a 85 d2 46
     2472    mov al, byte [di+046d0h]                  ; 8a 85 d0 46
    24732473    out DX, AL                                ; ee
    24742474    inc bx                                    ; 43
    24752475    jmp short 011eeh                          ; eb dd
    24762476    mov bx, cx                                ; 89 cb
    2477     mov al, byte [bx+046d1h]                  ; 8a 87 d1 46
     2477    mov al, byte [bx+046cfh]                  ; 8a 87 cf 46
    24782478    mov dx, 003c2h                            ; ba c2 03
    24792479    out DX, AL                                ; ee
     
    24902490    xor bh, ch                                ; 30 ef
    24912491    sal bx, 003h                              ; c1 e3 03
    2492     cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
     2492    cmp byte [bx+04633h], 000h                ; 80 bf 33 46 00
    24932493    jne short 0124fh                          ; 75 13
    2494     mov es, [bx+04638h]                       ; 8e 87 38 46
     2494    mov es, [bx+04636h]                       ; 8e 87 36 46
    24952495    mov cx, 04000h                            ; b9 00 40
    24962496    mov ax, 00720h                            ; b8 20 07
     
    25022502    cmp byte [bp-00ch], 00dh                  ; 80 7e f4 0d
    25032503    jnc short 01267h                          ; 73 12
    2504     mov es, [bx+04638h]                       ; 8e 87 38 46
     2504    mov es, [bx+04636h]                       ; 8e 87 36 46
    25052505    mov cx, 04000h                            ; b9 00 40
    25062506    xor ax, ax                                ; 31 c0
     
    25202520    mov AL, strict byte 00fh                  ; b0 0f
    25212521    out DX, AL                                ; ee
    2522     mov es, [bx+04638h]                       ; 8e 87 38 46
     2522    mov es, [bx+04636h]                       ; 8e 87 36 46
    25232523    mov cx, 08000h                            ; b9 00 80
    25242524    xor ax, ax                                ; 31 c0
     
    25412541    xor bh, bh                                ; 30 ff
    25422542    sal bx, 006h                              ; c1 e3 06
    2543     mov bx, word [bx+046cbh]                  ; 8b 9f cb 46
     2543    mov bx, word [bx+046c9h]                  ; 8b 9f c9 46
    25442544    mov dx, strict word 0004ch                ; ba 4c 00
    25452545    mov ax, strict word 00040h                ; b8 40 00
     
    25822582    call 03173h                               ; e8 50 1e
    25832583    mov cx, ds                                ; 8c d9
    2584     mov bx, 053d6h                            ; bb d6 53
     2584    mov bx, 053d4h                            ; bb d4 53
    25852585    mov dx, 000a8h                            ; ba a8 00
    25862586    mov ax, strict word 00040h                ; b8 40 00
     
    25972597    xor bh, bh                                ; 30 ff
    25982598    sal bx, 003h                              ; c1 e3 03
    2599     cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
     2599    cmp byte [bx+04633h], 000h                ; 80 bf 33 46 00
    26002600    jne short 0135fh                          ; 75 09
    26012601    mov dx, strict word 00007h                ; ba 07 00
     
    26172617    xor bh, bh                                ; 30 ff
    26182618    sal bx, 003h                              ; c1 e3 03
    2619     cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
     2619    cmp byte [bx+04633h], 000h                ; 80 bf 33 46 00
    26202620    jne short 01398h                          ; 75 10
    26212621    xor bl, bl                                ; 30 db
     
    26272627    mov AH, strict byte 011h                  ; b4 11
    26282628    int 010h                                  ; cd 10
    2629     mov dx, 057f2h                            ; ba f2 57
     2629    mov dx, 057f0h                            ; ba f0 57
    26302630    mov ax, strict word 0001fh                ; b8 1f 00
    26312631    call 00a00h                               ; e8 5f f6
     
    26372637    cmp ax, strict word 00008h                ; 3d 08 00
    26382638    jne short 013c8h                          ; 75 15
    2639     mov dx, 053f2h                            ; ba f2 53
     2639    mov dx, 053f0h                            ; ba f0 53
    26402640    mov ax, strict word 00043h                ; b8 43 00
    26412641    call 00a00h                               ; e8 44 f6
    26422642    jmp short 013c8h                          ; eb 0a
    2643     mov dx, 05bf2h                            ; ba f2 5b
     2643    mov dx, 05bf0h                            ; ba f0 5b
    26442644    jmp short 013b6h                          ; eb f3
    2645     mov dx, 069f2h                            ; ba f2 69
     2645    mov dx, 069f0h                            ; ba f0 69
    26462646    jmp short 013b6h                          ; eb ee
    26472647    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    30313031    mul cx                                    ; f7 e1
    30323032    mov si, ax                                ; 89 c6
    3033     cmp byte [di+04635h], 000h                ; 80 bd 35 46 00
     3033    cmp byte [di+04633h], 000h                ; 80 bd 33 46 00
    30343034    jne short 01758h                          ; 75 51
    30353035    add ax, ax                                ; 01 c0
     
    30593059    sal ax, 008h                              ; c1 e0 08
    30603060    add ax, strict word 00020h                ; 05 20 00
    3061     mov es, [di+04638h]                       ; 8e 85 38 46
     3061    mov es, [di+04636h]                       ; 8e 85 36 46
    30623062    mov cx, si                                ; 89 f1
    30633063    mov di, bx                                ; 89 df
     
    31033103    mov si, ax                                ; 89 c6
    31043104    sal si, 003h                              ; c1 e6 03
    3105     mov es, [si+04638h]                       ; 8e 84 38 46
     3105    mov es, [si+04636h]                       ; 8e 84 36 46
    31063106    mov ax, word [bp-01eh]                    ; 8b 46 e2
    31073107    cld                                       ; fc
     
    31243124    mov si, ax                                ; 89 c6
    31253125    sal si, 003h                              ; c1 e6 03
    3126     mov ax, word [si+04638h]                  ; 8b 84 38 46
     3126    mov ax, word [si+04636h]                  ; 8b 84 36 46
    31273127    mov word [bp-01eh], ax                    ; 89 46 e2
    31283128    mov ax, word [bp-016h]                    ; 8b 46 ea
     
    31753175    mov si, ax                                ; 89 c6
    31763176    sal si, 003h                              ; c1 e6 03
    3177     mov es, [si+04638h]                       ; 8e 84 38 46
     3177    mov es, [si+04636h]                       ; 8e 84 36 46
    31783178    mov ax, word [bp-01eh]                    ; 8b 46 e2
    31793179    cld                                       ; fc
     
    31983198    mov si, ax                                ; 89 c6
    31993199    sal si, 003h                              ; c1 e6 03
    3200     mov ax, word [si+04638h]                  ; 8b 84 38 46
     3200    mov ax, word [si+04636h]                  ; 8b 84 36 46
    32013201    mov word [bp-014h], ax                    ; 89 46 ec
    32023202    mov ax, word [bp-016h]                    ; 8b 46 ea
     
    32223222    dec word [bp-016h]                        ; ff 4e ea
    32233223    jmp near 0181ch                           ; e9 46 ff
    3224     mov al, byte [bx+046b4h]                  ; 8a 87 b4 46
     3224    mov al, byte [bx+046b2h]                  ; 8a 87 b2 46
    32253225    xor ah, ah                                ; 30 e4
    32263226    mov bx, ax                                ; 89 c3
    32273227    sal bx, 006h                              ; c1 e3 06
    3228     mov al, byte [bx+046cah]                  ; 8a 87 ca 46
     3228    mov al, byte [bx+046c8h]                  ; 8a 87 c8 46
    32293229    mov byte [bp-012h], al                    ; 88 46 ee
    3230     mov bl, byte [di+04636h]                  ; 8a 9d 36 46
     3230    mov bl, byte [di+04634h]                  ; 8a 9d 34 46
    32313231    cmp bl, 004h                              ; 80 fb 04
    32323232    je short 018feh                           ; 74 0d
     
    32723272    mov bx, dx                                ; 89 d3
    32733273    sal bx, 003h                              ; c1 e3 03
    3274     mov es, [bx+04638h]                       ; 8e 87 38 46
     3274    mov es, [bx+04636h]                       ; 8e 87 36 46
    32753275    xor di, di                                ; 31 ff
    32763276    cld                                       ; fc
     
    33803380    dec word [bp-016h]                        ; ff 4e ea
    33813381    jmp short 019efh                          ; eb 92
    3382     mov bl, byte [di+04637h]                  ; 8a 9d 37 46
     3382    mov bl, byte [di+04635h]                  ; 8a 9d 35 46
    33833383    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    33843384    jne short 01aa5h                          ; 75 3e
     
    34003400    mul bx                                    ; f7 e3
    34013401    mov bl, byte [bp-010h]                    ; 8a 5e f0
    3402     mov es, [di+04638h]                       ; 8e 85 38 46
     3402    mov es, [di+04636h]                       ; 8e 85 36 46
    34033403    mov cx, ax                                ; 89 c1
    34043404    mov ax, bx                                ; 89 d8
     
    35253525    cmp byte [bp+006h], 00eh                  ; 80 7e 06 0e
    35263526    jne short 01bcah                          ; 75 0a
    3527     mov di, 05bf2h                            ; bf f2 5b
     3527    mov di, 05bf0h                            ; bf f0 5b
    35283528    jmp short 01bcdh                          ; eb 08
    3529     mov di, 069f2h                            ; bf f2 69
     3529    mov di, 069f0h                            ; bf f0 69
    35303530    jmp short 01bcdh                          ; eb 03
    3531     mov di, 053f2h                            ; bf f2 53
     3531    mov di, 053f0h                            ; bf f0 53
    35323532    xor ah, ah                                ; 30 e4
    35333533    mov bx, ax                                ; 89 c3
     
    36293629    mov byte [bp-008h], dl                    ; 88 56 f8
    36303630    mov al, bl                                ; 88 d8
    3631     mov si, 053f2h                            ; be f2 53
     3631    mov si, 053f0h                            ; be f0 53
    36323632    xor ah, ah                                ; 30 e4
    36333633    mov bx, ax                                ; 89 c3
     
    37643764    mov byte [bp-006h], bl                    ; 88 5e fa
    37653765    mov al, cl                                ; 88 c8
    3766     mov si, 053f2h                            ; be f2 53
     3766    mov si, 053f0h                            ; be f0 53
    37673767    xor ah, ah                                ; 30 e4
    37683768    mov bl, byte [bp+004h]                    ; 8a 5e 04
     
    38773877    mov di, ax                                ; 89 c7
    38783878    sal di, 003h                              ; c1 e7 03
    3879     cmp byte [di+04635h], 000h                ; 80 bd 35 46 00
     3879    cmp byte [di+04633h], 000h                ; 80 bd 33 46 00
    38803880    jne short 01f49h                          ; 75 52
    38813881    mov ax, bx                                ; 89 d8
     
    39083908    mov word [bp-01ah], bx                    ; 89 5e e6
    39093909    mov ax, word [bp-01ah]                    ; 8b 46 e6
    3910     mov es, [di+04638h]                       ; 8e 85 38 46
     3910    mov es, [di+04636h]                       ; 8e 85 36 46
    39113911    mov cx, si                                ; 89 f1
    39123912    mov di, dx                                ; 89 d7
     
    39163916    jmp near 02004h                           ; e9 bb 00
    39173917    mov bx, ax                                ; 89 c3
    3918     mov al, byte [bx+046b4h]                  ; 8a 87 b4 46
     3918    mov al, byte [bx+046b2h]                  ; 8a 87 b2 46
    39193919    mov bx, ax                                ; 89 c3
    39203920    sal bx, 006h                              ; c1 e3 06
    3921     mov al, byte [bx+046cah]                  ; 8a 87 ca 46
     3921    mov al, byte [bx+046c8h]                  ; 8a 87 c8 46
    39223922    mov byte [bp-00eh], al                    ; 88 46 f2
    3923     mov al, byte [di+04637h]                  ; 8a 85 37 46
     3923    mov al, byte [di+04635h]                  ; 8a 85 35 46
    39243924    mov byte [bp-010h], al                    ; 88 46 f0
    39253925    dec si                                    ; 4e
     
    39343934    mov bx, ax                                ; 89 c3
    39353935    sal bx, 003h                              ; c1 e3 03
    3936     mov al, byte [bx+04636h]                  ; 8a 87 36 46
     3936    mov al, byte [bx+04634h]                  ; 8a 87 34 46
    39373937    cmp AL, strict byte 003h                  ; 3c 03
    39383938    jc short 01f91h                           ; 72 0c
     
    40464046    mov di, bx                                ; 89 df
    40474047    sal bx, 003h                              ; c1 e3 03
    4048     cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
     4048    cmp byte [bx+04633h], 000h                ; 80 bf 33 46 00
    40494049    jne short 020d3h                          ; 75 47
    40504050    mul word [bp-01ah]                        ; f7 66 e6
     
    40734073    mov bx, ax                                ; 89 c3
    40744074    sal bx, 003h                              ; c1 e3 03
    4075     mov ax, word [bx+04638h]                  ; 8b 87 38 46
     4075    mov ax, word [bx+04636h]                  ; 8b 87 36 46
    40764076    mov bx, dx                                ; 89 d3
    40774077    mov dx, cx                                ; 89 ca
     
    40804080    inc cx                                    ; 41
    40814081    jmp short 020afh                          ; eb dc
    4082     mov al, byte [di+046b4h]                  ; 8a 85 b4 46
     4082    mov al, byte [di+046b2h]                  ; 8a 85 b2 46
    40834083    xor ah, ah                                ; 30 e4
    40844084    mov di, ax                                ; 89 c7
    40854085    sal di, 006h                              ; c1 e7 06
    4086     mov al, byte [di+046cah]                  ; 8a 85 ca 46
     4086    mov al, byte [di+046c8h]                  ; 8a 85 c8 46
    40874087    mov byte [bp-012h], al                    ; 88 46 ee
    4088     mov al, byte [bx+04637h]                  ; 8a 87 37 46
     4088    mov al, byte [bx+04635h]                  ; 8a 87 35 46
    40894089    mov byte [bp-016h], al                    ; 88 46 ea
    40904090    dec si                                    ; 4e
     
    40984098    mov bx, ax                                ; 89 c3
    40994099    sal bx, 003h                              ; c1 e3 03
    4100     mov bl, byte [bx+04636h]                  ; 8a 9f 36 46
     4100    mov bl, byte [bx+04634h]                  ; 8a 9f 34 46
    41014101    cmp bl, 003h                              ; 80 fb 03
    41024102    jc short 0211ch                           ; 72 0f
     
    41864186    mov bx, ax                                ; 89 c3
    41874187    sal bx, 003h                              ; c1 e3 03
    4188     cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
     4188    cmp byte [bx+04633h], 000h                ; 80 bf 33 46 00
    41894189    je short 021edh                           ; 74 18
    4190     mov al, byte [bx+04636h]                  ; 8a 87 36 46
     4190    mov al, byte [bx+04634h]                  ; 8a 87 34 46
    41914191    cmp AL, strict byte 003h                  ; 3c 03
    41924192    jc short 021e9h                           ; 72 0c
     
    42484248    shr ax, 1                                 ; d1 e8
    42494249    imul ax, ax, strict byte 00050h           ; 6b c0 50
    4250     cmp byte [bx+04637h], 002h                ; 80 bf 37 46 02
     4250    cmp byte [bx+04635h], 002h                ; 80 bf 35 46 02
    42514251    jne short 02276h                          ; 75 08
    42524252    mov bx, word [bp-00ah]                    ; 8b 5e f6
     
    42684268    mov si, ax                                ; 89 c6
    42694269    sal si, 003h                              ; c1 e6 03
    4270     cmp byte [si+04637h], 002h                ; 80 bc 37 46 02
     4270    cmp byte [si+04635h], 002h                ; 80 bc 35 46 02
    42714271    jne short 022bfh                          ; 75 19
    42724272    mov al, byte [bp-00ah]                    ; 8a 46 f6
     
    43924392    mov si, bx                                ; 89 de
    43934393    sal si, 003h                              ; c1 e6 03
    4394     cmp byte [si+04635h], 000h                ; 80 bc 35 46 00
     4394    cmp byte [si+04633h], 000h                ; 80 bc 33 46 00
    43954395    jne short 02427h                          ; 75 4e
    43964396    mov ax, word [bp-018h]                    ; 8b 46 e8
     
    44144414    add cx, ax                                ; 01 c1
    44154415    mov bl, byte [bp-00eh]                    ; 8a 5e f2
    4416     mov ax, word [si+04638h]                  ; 8b 84 38 46
     4416    mov ax, word [si+04636h]                  ; 8b 84 36 46
    44174417    mov dx, cx                                ; 89 ca
    44184418    call 03173h                               ; e8 63 0d
     
    44234423    mov dx, cx                                ; 89 ca
    44244424    inc dx                                    ; 42
    4425     mov ax, word [si+04638h]                  ; 8b 84 38 46
     4425    mov ax, word [si+04636h]                  ; 8b 84 36 46
    44264426    call 03173h                               ; e8 4e 0d
    44274427    jmp short 02470h                          ; eb 49
    4428     mov bl, byte [bx+046b4h]                  ; 8a 9f b4 46
     4428    mov bl, byte [bx+046b2h]                  ; 8a 9f b2 46
    44294429    sal bx, 006h                              ; c1 e3 06
    4430     mov al, byte [bx+046cah]                  ; 8a 87 ca 46
    4431     mov ah, byte [si+04637h]                  ; 8a a4 37 46
    4432     mov cl, byte [si+04636h]                  ; 8a 8c 36 46
     4430    mov al, byte [bx+046c8h]                  ; 8a 87 c8 46
     4431    mov ah, byte [si+04635h]                  ; 8a a4 35 46
     4432    mov cl, byte [si+04634h]                  ; 8a 8c 34 46
    44334433    cmp cl, 003h                              ; 80 f9 03
    44344434    jc short 0244dh                           ; 72 0e
     
    45124512    ; dec al                                    ; fe c8
    45134513    mov byte [bp-00ah], al                    ; 88 46 f6
    4514     cmp byte [si+04635h], 000h                ; 80 bc 35 46 00
     4514    cmp byte [si+04633h], 000h                ; 80 bc 33 46 00
    45154515    jne short 02549h                          ; 75 4c
    45164516    mov ax, word [bp-018h]                    ; 8b 46 e8
     
    45334533    add dx, ax                                ; 01 c2
    45344534    inc dx                                    ; 42
    4535     mov ax, word [si+04638h]                  ; 8b 84 38 46
     4535    mov ax, word [si+04636h]                  ; 8b 84 36 46
    45364536    call 03165h                               ; e8 36 0c
    45374537    push strict byte 00001h                   ; 6a 01
     
    48204820    sal di, 005h                              ; c1 e7 05
    48214821    add di, word [bp-00ch]                    ; 03 7e f4
    4822     add si, 05bf2h                            ; 81 c6 f2 5b
     4822    add si, 05bf0h                            ; 81 c6 f0 5b
    48234823    mov cx, strict word 0000eh                ; b9 0e 00
    48244824    mov dx, 0c000h                            ; ba 00 c0
     
    48754875    sal di, 005h                              ; c1 e7 05
    48764876    add di, word [bp-00ch]                    ; 03 7e f4
    4877     add si, 053f2h                            ; 81 c6 f2 53
     4877    add si, 053f0h                            ; 81 c6 f0 53
    48784878    mov cx, strict word 00008h                ; b9 08 00
    48794879    mov dx, 0c000h                            ; ba 00 c0
     
    49304930    sal di, 005h                              ; c1 e7 05
    49314931    add di, word [bp-00ch]                    ; 03 7e f4
    4932     add si, 069f2h                            ; 81 c6 f2 69
     4932    add si, 069f0h                            ; 81 c6 f0 69
    49334933    mov cx, strict word 00010h                ; b9 10 00
    49344934    mov dx, 0c000h                            ; ba 00 c0
     
    50715071    push bx                                   ; 53
    50725072    mov cx, ds                                ; 8c d9
    5073     mov bx, 05388h                            ; bb 88 53
     5073    mov bx, 05386h                            ; bb 86 53
    50745074    mov dx, word [bp-00ah]                    ; 8b 56 f6
    50755075    mov ax, word [bp-008h]                    ; 8b 46 f8
     
    60086008    xor bh, bh                                ; 30 ff
    60096009    sal bx, 003h                              ; c1 e3 03
    6010     cmp dl, byte [bx+04634h]                  ; 3a 97 34 46
     6010    cmp dl, byte [bx+04632h]                  ; 3a 97 32 46
    60116011    jne short 0314ah                          ; 75 ed
    60126012    mov ah, al                                ; 88 c4
     
    67216721    mov word [es:bx+002h], 04153h             ; 26 c7 47 02 53 41
    67226722    mov word [es:bx+004h], 00200h             ; 26 c7 47 04 00 02
    6723     mov word [es:bx+006h], 07c64h             ; 26 c7 47 06 64 7c
     6723    mov word [es:bx+006h], 07c62h             ; 26 c7 47 06 62 7c
    67246724    mov [es:bx+008h], ds                      ; 26 8c 5f 08
    67256725    mov word [es:bx+00ah], strict word 00001h ; 26 c7 47 0a 01 00
     
    67376737    je short 037e2h                           ; 74 24
    67386738    mov word [es:bx+014h], strict word 00003h ; 26 c7 47 14 03 00
    6739     mov word [es:bx+016h], 07c79h             ; 26 c7 47 16 79 7c
     6739    mov word [es:bx+016h], 07c77h             ; 26 c7 47 16 77 7c
    67406740    mov [es:bx+018h], ds                      ; 26 8c 5f 18
    6741     mov word [es:bx+01ah], 07c8ch             ; 26 c7 47 1a 8c 7c
     6741    mov word [es:bx+01ah], 07c8ah             ; 26 c7 47 1a 8a 7c
    67426742    mov [es:bx+01ch], ds                      ; 26 8c 5f 1c
    6743     mov word [es:bx+01eh], 07cadh             ; 26 c7 47 1e ad 7c
     6743    mov word [es:bx+01eh], 07cabh             ; 26 c7 47 1e ab 7c
    67446744    mov [es:bx+020h], ds                      ; 26 8c 5f 20
    67456745    mov dx, cx                                ; 89 ca
     
    72927292  times 235 db 0
    72937293
    7294 section _DATA progbits vstart=0x4600 align=1 ; size=0x372a class=DATA group=DGROUP
    7295 _msg_vga_init:                               ; 0xc4600 LB 0x34
    7296     db  'Oracle VM VirtualBox Version 5.1.0_BETA3 VGA BIOS', 00dh, 00ah, 000h
    7297 _vga_modes:                                  ; 0xc4634 LB 0x80
     7294section _DATA progbits vstart=0x4600 align=1 ; size=0x3726 class=DATA group=DGROUP
     7295_msg_vga_init:                               ; 0xc4600 LB 0x32
     7296    db  'Oracle VM VirtualBox Version 5.1.0_RC1 VGA BIOS', 00dh, 00ah, 000h
     7297_vga_modes:                                  ; 0xc4632 LB 0x80
    72987298    db  000h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h, 001h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h
    72997299    db  002h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h, 003h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h
     
    73047304    db  011h, 001h, 003h, 001h, 000h, 0a0h, 0ffh, 002h, 012h, 001h, 004h, 004h, 000h, 0a0h, 0ffh, 002h
    73057305    db  013h, 001h, 005h, 008h, 000h, 0a0h, 0ffh, 003h, 06ah, 001h, 004h, 004h, 000h, 0a0h, 0ffh, 002h
    7306 _line_to_vpti:                               ; 0xc46b4 LB 0x10
     7306_line_to_vpti:                               ; 0xc46b2 LB 0x10
    73077307    db  017h, 017h, 018h, 018h, 004h, 005h, 006h, 007h, 00dh, 00eh, 011h, 012h, 01ah, 01bh, 01ch, 01dh
    7308 _dac_regs:                                   ; 0xc46c4 LB 0x4
     7308_dac_regs:                                   ; 0xc46c2 LB 0x4
    73097309    dd  0ff3f3f3fh
    7310 _video_param_table:                          ; 0xc46c8 LB 0x780
     7310_video_param_table:                          ; 0xc46c6 LB 0x780
    73117311    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    73127312    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     
    74297429    db  073h, 0e3h, 0ffh, 000h, 001h, 002h, 003h, 004h, 005h, 014h, 007h, 038h, 039h, 03ah, 03bh, 03ch
    74307430    db  03dh, 03eh, 03fh, 001h, 000h, 00fh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 005h, 00fh, 0ffh
    7431 _palette0:                                   ; 0xc4e48 LB 0xc0
     7431_palette0:                                   ; 0xc4e46 LB 0xc0
    74327432    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    74337433    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah
     
    74427442    db  02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh
    74437443    db  03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh
    7444 _palette1:                                   ; 0xc4f08 LB 0xc0
     7444_palette1:                                   ; 0xc4f06 LB 0xc0
    74457445    db  000h, 000h, 000h, 000h, 000h, 02ah, 000h, 02ah, 000h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 02ah
    74467446    db  000h, 02ah, 02ah, 015h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 000h, 000h, 000h, 02ah, 000h, 02ah
     
    74557455    db  015h, 03fh, 03fh, 03fh, 015h, 03fh, 03fh, 03fh, 015h, 015h, 015h, 015h, 015h, 03fh, 015h, 03fh
    74567456    db  015h, 015h, 03fh, 03fh, 03fh, 015h, 015h, 03fh, 015h, 03fh, 03fh, 03fh, 015h, 03fh, 03fh, 03fh
    7457 _palette2:                                   ; 0xc4fc8 LB 0xc0
     7457_palette2:                                   ; 0xc4fc6 LB 0xc0
    74587458    db  000h, 000h, 000h, 000h, 000h, 02ah, 000h, 02ah, 000h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 02ah
    74597459    db  000h, 02ah, 02ah, 02ah, 000h, 02ah, 02ah, 02ah, 000h, 000h, 015h, 000h, 000h, 03fh, 000h, 02ah
     
    74687468    db  015h, 02ah, 03fh, 03fh, 000h, 03fh, 03fh, 02ah, 015h, 015h, 015h, 015h, 015h, 03fh, 015h, 03fh
    74697469    db  015h, 015h, 03fh, 03fh, 03fh, 015h, 015h, 03fh, 015h, 03fh, 03fh, 03fh, 015h, 03fh, 03fh, 03fh
    7470 _palette3:                                   ; 0xc5088 LB 0x300
     7470_palette3:                                   ; 0xc5086 LB 0x300
    74717471    db  000h, 000h, 000h, 000h, 000h, 02ah, 000h, 02ah, 000h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 02ah
    74727472    db  000h, 02ah, 02ah, 015h, 000h, 02ah, 02ah, 02ah, 015h, 015h, 015h, 015h, 015h, 03fh, 015h, 03fh
     
    75177517    db  00fh, 010h, 00bh, 00dh, 010h, 00bh, 00ch, 010h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    75187518    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7519 _static_functionality:                       ; 0xc5388 LB 0x10
     7519_static_functionality:                       ; 0xc5386 LB 0x10
    75207520    db  0ffh, 0e0h, 00fh, 000h, 000h, 000h, 000h, 007h, 002h, 008h, 0e7h, 00ch, 000h, 000h, 000h, 000h
    7521 _dcc_table:                                  ; 0xc5398 LB 0x24
     7521_dcc_table:                                  ; 0xc5396 LB 0x24
    75227522    db  010h, 001h, 007h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    75237523    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    75247524    db  000h, 000h, 000h, 000h
    7525 _secondary_save_area:                        ; 0xc53bc LB 0x1a
    7526     db  01ah, 000h, 098h, 053h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7525_secondary_save_area:                        ; 0xc53ba LB 0x1a
     7526    db  01ah, 000h, 096h, 053h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    75277527    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7528 _video_save_pointer_table:                   ; 0xc53d6 LB 0x1c
    7529     db  0c8h, 046h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7530     db  0bch, 053h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7531 _vgafont8:                                   ; 0xc53f2 LB 0x800
     7528_video_save_pointer_table:                   ; 0xc53d4 LB 0x1c
     7529    db  0c6h, 046h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7530    db  0bah, 053h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7531_vgafont8:                                   ; 0xc53f0 LB 0x800
    75327532    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07eh, 081h, 0a5h, 081h, 0bdh, 099h, 081h, 07eh
    75337533    db  07eh, 0ffh, 0dbh, 0ffh, 0c3h, 0e7h, 0ffh, 07eh, 06ch, 0feh, 0feh, 0feh, 07ch, 038h, 010h, 000h
     
    76587658    db  078h, 06ch, 06ch, 06ch, 06ch, 000h, 000h, 000h, 070h, 018h, 030h, 060h, 078h, 000h, 000h, 000h
    76597659    db  000h, 000h, 03ch, 03ch, 03ch, 03ch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7660 _vgafont14:                                  ; 0xc5bf2 LB 0xe00
     7660_vgafont14:                                  ; 0xc5bf0 LB 0xe00
    76617661    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    76627662    db  07eh, 081h, 0a5h, 081h, 081h, 0bdh, 099h, 081h, 07eh, 000h, 000h, 000h, 000h, 000h, 07eh, 0ffh
     
    78837883    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07ch, 07ch, 07ch, 07ch, 07ch, 07ch, 000h, 000h
    78847884    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7885 _vgafont16:                                  ; 0xc69f2 LB 0x1000
     7885_vgafont16:                                  ; 0xc69f0 LB 0x1000
    78867886    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    78877887    db  000h, 000h, 07eh, 081h, 0a5h, 081h, 081h, 0bdh, 099h, 081h, 081h, 07eh, 000h, 000h, 000h, 000h
     
    81408140    db  000h, 000h, 000h, 000h, 07ch, 07ch, 07ch, 07ch, 07ch, 07ch, 07ch, 000h, 000h, 000h, 000h, 000h
    81418141    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8142 _vgafont14alt:                               ; 0xc79f2 LB 0x12d
     8142_vgafont14alt:                               ; 0xc79f0 LB 0x12d
    81438143    db  01dh, 000h, 000h, 000h, 000h, 024h, 066h, 0ffh, 066h, 024h, 000h, 000h, 000h, 000h, 000h, 022h
    81448144    db  000h, 063h, 063h, 063h, 022h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 02bh, 000h
     
    81608160    db  000h, 018h, 018h, 018h, 0ffh, 018h, 018h, 018h, 000h, 0ffh, 000h, 000h, 000h, 0f6h, 000h, 000h
    81618161    db  018h, 018h, 000h, 000h, 0ffh, 000h, 000h, 018h, 018h, 000h, 000h, 000h, 000h
    8162 _vgafont16alt:                               ; 0xc7b1f LB 0x145
     8162_vgafont16alt:                               ; 0xc7b1d LB 0x145
    81638163    db  01dh, 000h, 000h, 000h, 000h, 000h, 024h, 066h, 0ffh, 066h, 024h, 000h, 000h, 000h, 000h, 000h
    81648164    db  000h, 030h, 000h, 000h, 03ch, 066h, 0c3h, 0c3h, 0dbh, 0dbh, 0c3h, 0c3h, 066h, 03ch, 000h, 000h
     
    81828182    db  000h, 000h, 0ach, 000h, 0c0h, 0c0h, 0c2h, 0c6h, 0cch, 018h, 030h, 066h, 0ceh, 096h, 03eh, 006h
    81838183    db  006h, 000h, 000h, 000h, 000h
    8184 _vbebios_copyright:                          ; 0xc7c64 LB 0x15
     8184_vbebios_copyright:                          ; 0xc7c62 LB 0x15
    81858185    db  'VirtualBox VESA BIOS', 000h
    8186 _vbebios_vendor_name:                        ; 0xc7c79 LB 0x13
     8186_vbebios_vendor_name:                        ; 0xc7c77 LB 0x13
    81878187    db  'Oracle Corporation', 000h
    8188 _vbebios_product_name:                       ; 0xc7c8c LB 0x21
     8188_vbebios_product_name:                       ; 0xc7c8a LB 0x21
    81898189    db  'Oracle VM VirtualBox VBE Adapter', 000h
    8190 _vbebios_product_revision:                   ; 0xc7cad LB 0x29
    8191     db  'Oracle VM VirtualBox Version 5.1.0_BETA3', 000h
    8192 _vbebios_info_string:                        ; 0xc7cd6 LB 0x2b
     8190_vbebios_product_revision:                   ; 0xc7cab LB 0x27
     8191    db  'Oracle VM VirtualBox Version 5.1.0_RC1', 000h
     8192_vbebios_info_string:                        ; 0xc7cd2 LB 0x2b
    81938193    db  'VirtualBox VBE Display Adapter enabled', 00dh, 00ah, 00dh, 00ah, 000h
    8194 _no_vbebios_info_string:                     ; 0xc7d01 LB 0x29
     8194_no_vbebios_info_string:                     ; 0xc7cfd LB 0x29
    81958195    db  'No VirtualBox VBE support available!', 00dh, 00ah, 00dh, 00ah, 000h
    81968196
    8197 section CONST progbits vstart=0x7d2a align=1 ; size=0x0 class=DATA group=DGROUP
     8197section CONST progbits vstart=0x7d26 align=1 ; size=0x0 class=DATA group=DGROUP
    81988198
    8199 section CONST2 progbits vstart=0x7d2a align=1 ; size=0x0 class=DATA group=DGROUP
     8199section CONST2 progbits vstart=0x7d26 align=1 ; size=0x0 class=DATA group=DGROUP
    82008200
    8201   ; Padding 0x2d6 bytes at 0xc7d2a
     8201  ; Padding 0x2da bytes at 0xc7d26
    82028202    db  001h, 000h, 000h, 000h, 000h, 001h, 000h, 000h, 000h, 000h, 000h, 000h, 02fh, 068h, 06fh, 06dh
    82038203    db  065h, 02fh, 066h, 06dh, 033h, 02fh, 073h, 072h, 063h, 02fh, 076h, 062h, 06fh, 078h, 02fh, 06fh
     
    82458245    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    82468246    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8247     db  000h, 000h, 000h, 000h, 000h, 0a1h
     8247    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 077h
  • TabularUnified trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative286.md5sum

    r61733 r62120  
    1 03f7105a41406d75a2510acf466afda5 *VBoxVgaBios286.rom
     17b7edc92d5231f13f7faea9c13b059d8 *VBoxVgaBios286.rom
  • TabularUnified trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative386.asm

    r61733 r62120  
    16521652    movzx bx, ch                              ; 0f b6 dd
    16531653    sal bx, 003h                              ; c1 e3 03
    1654     cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
     1654    cmp byte [bx+04633h], 000h                ; 80 bf 33 46 00
    16551655    jne short 00b5ah                          ; 75 2d
    16561656    mov dx, ax                                ; 89 c2
     
    16681668    mov dx, cx                                ; 89 ca
    16691669    add dx, ax                                ; 01 c2
    1670     mov ax, word [bx+04638h]                  ; 8b 87 38 46
     1670    mov ax, word [bx+04636h]                  ; 8b 87 36 46
    16711671    call 02f5ah                               ; e8 03 24
    16721672    mov word [ss:si], ax                      ; 36 89 04
     
    17341734    mov dx, 0010ch                            ; ba 0c 01
    17351735    jmp short 00b91h                          ; eb bf
    1736     mov ax, 05bf2h                            ; b8 f2 5b
     1736    mov ax, 05bf0h                            ; b8 f0 5b
    17371737    mov dx, 0c000h                            ; ba 00 c0
    17381738    jmp short 00b96h                          ; eb bc
    1739     mov ax, 053f2h                            ; b8 f2 53
     1739    mov ax, 053f0h                            ; b8 f0 53
    17401740    jmp short 00bd5h                          ; eb f6
    1741     mov ax, 057f2h                            ; b8 f2 57
     1741    mov ax, 057f0h                            ; b8 f0 57
    17421742    jmp short 00bd5h                          ; eb f1
    1743     mov ax, 079f2h                            ; b8 f2 79
     1743    mov ax, 079f0h                            ; b8 f0 79
    17441744    jmp short 00bd5h                          ; eb ec
    1745     mov ax, 069f2h                            ; b8 f2 69
     1745    mov ax, 069f0h                            ; b8 f0 69
    17461746    jmp short 00bd5h                          ; eb e7
    1747     mov ax, 07b1fh                            ; b8 1f 7b
     1747    mov ax, 07b1dh                            ; b8 1d 7b
    17481748    jmp short 00bd5h                          ; eb e2
    17491749    jmp short 00bc4h                          ; eb cf
     
    17671767    movzx bx, al                              ; 0f b6 d8
    17681768    sal bx, 003h                              ; c1 e3 03
    1769     cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
     1769    cmp byte [bx+04633h], 000h                ; 80 bf 33 46 00
    17701770    je near 00d27h                            ; 0f 84 fe 00
    1771     mov bl, byte [bx+04636h]                  ; 8a 9f 36 46
     1771    mov bl, byte [bx+04634h]                  ; 8a 9f 34 46
    17721772    cmp bl, 003h                              ; 80 fb 03
    17731773    jc short 00c43h                           ; 72 11
     
    18281828    movzx bx, cl                              ; 0f b6 d9
    18291829    sal bx, 003h                              ; c1 e3 03
    1830     cmp byte [bx+04637h], 002h                ; 80 bf 37 46 02
     1830    cmp byte [bx+04635h], 002h                ; 80 bf 35 46 02
    18311831    jne short 00cebh                          ; 75 1b
    18321832    mov cx, si                                ; 89 f1
     
    21292129    mov si, bx                                ; 89 de
    21302130    sal si, 003h                              ; c1 e6 03
    2131     cmp byte [si+04635h], 000h                ; 80 bc 35 46 00
     2131    cmp byte [si+04633h], 000h                ; 80 bc 33 46 00
    21322132    jne short 00f83h                          ; 75 40
    21332133    mov dx, strict word 0004ah                ; ba 4a 00
     
    21562156    imul bx, di                               ; 0f af df
    21572157    jmp short 00f95h                          ; eb 12
    2158     movzx bx, byte [bx+046b4h]                ; 0f b6 9f b4 46
     2158    movzx bx, byte [bx+046b2h]                ; 0f b6 9f b2 46
    21592159    sal bx, 006h                              ; c1 e3 06
    21602160    movzx ax, cl                              ; 0f b6 c1
    2161     mov bx, word [bx+046cbh]                  ; 8b 9f cb 46
     2161    mov bx, word [bx+046c9h]                  ; 8b 9f c9 46
    21622162    imul bx, ax                               ; 0f af d8
    21632163    mov dx, strict word 00063h                ; ba 63 00
     
    22272227    je near 01363h                            ; 0f 84 43 03
    22282228    movzx si, al                              ; 0f b6 f0
    2229     mov al, byte [si+046b4h]                  ; 8a 84 b4 46
     2229    mov al, byte [si+046b2h]                  ; 8a 84 b2 46
    22302230    mov byte [bp-00eh], al                    ; 88 46 f2
    22312231    movzx bx, al                              ; 0f b6 d8
    22322232    sal bx, 006h                              ; c1 e3 06
     2233    movzx ax, byte [bx+046c6h]                ; 0f b6 87 c6 46
     2234    mov word [bp-018h], ax                    ; 89 46 e8
     2235    movzx ax, byte [bx+046c7h]                ; 0f b6 87 c7 46
     2236    mov word [bp-016h], ax                    ; 89 46 ea
    22332237    movzx ax, byte [bx+046c8h]                ; 0f b6 87 c8 46
    2234     mov word [bp-018h], ax                    ; 89 46 e8
    2235     movzx ax, byte [bx+046c9h]                ; 0f b6 87 c9 46
    2236     mov word [bp-016h], ax                    ; 89 46 ea
    2237     movzx ax, byte [bx+046cah]                ; 0f b6 87 ca 46
    22382238    mov word [bp-014h], ax                    ; 89 46 ec
    22392239    mov dx, 00087h                            ; ba 87 00
     
    22512251    mov bx, si                                ; 89 f3
    22522252    sal bx, 003h                              ; c1 e3 03
    2253     mov al, byte [bx+0463ah]                  ; 8a 87 3a 46
     2253    mov al, byte [bx+04638h]                  ; 8a 87 38 46
    22542254    mov dx, 003c6h                            ; ba c6 03
    22552255    out DX, AL                                ; ee
     
    22572257    mov dx, 003c8h                            ; ba c8 03
    22582258    out DX, AL                                ; ee
    2259     mov bl, byte [bx+0463bh]                  ; 8a 9f 3b 46
     2259    mov bl, byte [bx+04639h]                  ; 8a 9f 39 46
    22602260    cmp bl, 001h                              ; 80 fb 01
    22612261    jc short 01095h                           ; 72 0e
     
    22682268    test bl, bl                               ; 84 db
    22692269    jne short 010abh                          ; 75 12
    2270     mov di, 04e48h                            ; bf 48 4e
     2270    mov di, 04e46h                            ; bf 46 4e
    22712271    jmp short 010abh                          ; eb 0d
    2272     mov di, 04f08h                            ; bf 08 4f
     2272    mov di, 04f06h                            ; bf 06 4f
    22732273    jmp short 010abh                          ; eb 08
    2274     mov di, 04fc8h                            ; bf c8 4f
     2274    mov di, 04fc6h                            ; bf c6 4f
    22752275    jmp short 010abh                          ; eb 03
    2276     mov di, 05088h                            ; bf 88 50
     2276    mov di, 05086h                            ; bf 86 50
    22772277    xor bx, bx                                ; 31 db
    22782278    jmp short 010beh                          ; eb 0f
     
    22872287    movzx si, byte [bp-012h]                  ; 0f b6 76 ee
    22882288    sal si, 003h                              ; c1 e6 03
    2289     movzx si, byte [si+0463bh]                ; 0f b6 b4 3b 46
    2290     movzx dx, byte [si+046c4h]                ; 0f b6 94 c4 46
     2289    movzx si, byte [si+04639h]                ; 0f b6 b4 39 46
     2290    movzx dx, byte [si+046c2h]                ; 0f b6 94 c2 46
    22912291    cmp bx, dx                                ; 39 d3
    22922292    jnbe short 010afh                         ; 77 dc
     
    23202320    sal si, 006h                              ; c1 e6 06
    23212321    add si, bx                                ; 01 de
    2322     mov al, byte [si+046ebh]                  ; 8a 84 eb 46
     2322    mov al, byte [si+046e9h]                  ; 8a 84 e9 46
    23232323    out DX, AL                                ; ee
    23242324    inc bx                                    ; 43
     
    23442344    sal si, 006h                              ; c1 e6 06
    23452345    add si, bx                                ; 01 de
    2346     mov al, byte [si+046cch]                  ; 8a 84 cc 46
     2346    mov al, byte [si+046cah]                  ; 8a 84 ca 46
    23472347    mov dx, 003c5h                            ; ba c5 03
    23482348    out DX, AL                                ; ee
     
    23592359    sal si, 006h                              ; c1 e6 06
    23602360    add si, bx                                ; 01 de
    2361     mov al, byte [si+046ffh]                  ; 8a 84 ff 46
     2361    mov al, byte [si+046fdh]                  ; 8a 84 fd 46
    23622362    mov dx, 003cfh                            ; ba cf 03
    23632363    out DX, AL                                ; ee
     
    23662366    movzx bx, byte [bp-012h]                  ; 0f b6 5e ee
    23672367    sal bx, 003h                              ; c1 e3 03
    2368     cmp byte [bx+04636h], 001h                ; 80 bf 36 46 01
     2368    cmp byte [bx+04634h], 001h                ; 80 bf 34 46 01
    23692369    jne short 01188h                          ; 75 05
    23702370    mov dx, 003b4h                            ; ba b4 03
     
    23862386    add di, bx                                ; 01 df
    23872387    lea dx, [si+001h]                         ; 8d 54 01
    2388     mov al, byte [di+046d2h]                  ; 8a 85 d2 46
     2388    mov al, byte [di+046d0h]                  ; 8a 85 d0 46
    23892389    out DX, AL                                ; ee
    23902390    inc bx                                    ; 43
    23912391    jmp short 01195h                          ; eb e0
    23922392    mov bx, cx                                ; 89 cb
    2393     mov al, byte [bx+046d1h]                  ; 8a 87 d1 46
     2393    mov al, byte [bx+046cfh]                  ; 8a 87 cf 46
    23942394    mov dx, 003c2h                            ; ba c2 03
    23952395    out DX, AL                                ; ee
     
    24052405    movzx bx, byte [bp-012h]                  ; 0f b6 5e ee
    24062406    sal bx, 003h                              ; c1 e3 03
    2407     cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
     2407    cmp byte [bx+04633h], 000h                ; 80 bf 33 46 00
    24082408    jne short 011f2h                          ; 75 13
    2409     mov es, [bx+04638h]                       ; 8e 87 38 46
     2409    mov es, [bx+04636h]                       ; 8e 87 36 46
    24102410    mov cx, 04000h                            ; b9 00 40
    24112411    mov ax, 00720h                            ; b8 20 07
     
    24172417    cmp byte [bp-00ch], 00dh                  ; 80 7e f4 0d
    24182418    jnc short 0120ah                          ; 73 12
    2419     mov es, [bx+04638h]                       ; 8e 87 38 46
     2419    mov es, [bx+04636h]                       ; 8e 87 36 46
    24202420    mov cx, 04000h                            ; b9 00 40
    24212421    xor ax, ax                                ; 31 c0
     
    24352435    mov AL, strict byte 00fh                  ; b0 0f
    24362436    out DX, AL                                ; ee
    2437     mov es, [bx+04638h]                       ; 8e 87 38 46
     2437    mov es, [bx+04636h]                       ; 8e 87 36 46
    24382438    mov cx, 08000h                            ; b9 00 80
    24392439    xor ax, ax                                ; 31 c0
     
    24542454    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
    24552455    sal bx, 006h                              ; c1 e3 06
    2456     mov bx, word [bx+046cbh]                  ; 8b 9f cb 46
     2456    mov bx, word [bx+046c9h]                  ; 8b 9f c9 46
    24572457    mov dx, strict word 0004ch                ; ba 4c 00
    24582458    mov ax, strict word 00040h                ; b8 40 00
     
    24932493    call 02f4ch                               ; e8 8b 1c
    24942494    mov cx, ds                                ; 8c d9
    2495     mov bx, 053d6h                            ; bb d6 53
     2495    mov bx, 053d4h                            ; bb d4 53
    24962496    mov dx, 000a8h                            ; ba a8 00
    24972497    mov ax, strict word 00040h                ; b8 40 00
     
    25072507    movzx bx, byte [bp-012h]                  ; 0f b6 5e ee
    25082508    sal bx, 003h                              ; c1 e3 03
    2509     cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
     2509    cmp byte [bx+04633h], 000h                ; 80 bf 33 46 00
    25102510    jne short 012fch                          ; 75 09
    25112511    mov dx, strict word 00007h                ; ba 07 00
     
    25252525    movzx bx, byte [bp-012h]                  ; 0f b6 5e ee
    25262526    sal bx, 003h                              ; c1 e3 03
    2527     cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
     2527    cmp byte [bx+04633h], 000h                ; 80 bf 33 46 00
    25282528    jne short 01333h                          ; 75 10
    25292529    xor bl, bl                                ; 30 db
     
    25352535    mov AH, strict byte 011h                  ; b4 11
    25362536    int 010h                                  ; cd 10
    2537     mov dx, 057f2h                            ; ba f2 57
     2537    mov dx, 057f0h                            ; ba f0 57
    25382538    mov ax, strict word 0001fh                ; b8 1f 00
    25392539    call 00a00h                               ; e8 c4 f6
     
    25452545    cmp ax, strict word 00008h                ; 3d 08 00
    25462546    jne short 01363h                          ; 75 15
    2547     mov dx, 053f2h                            ; ba f2 53
     2547    mov dx, 053f0h                            ; ba f0 53
    25482548    mov ax, strict word 00043h                ; b8 43 00
    25492549    call 00a00h                               ; e8 a9 f6
    25502550    jmp short 01363h                          ; eb 0a
    2551     mov dx, 05bf2h                            ; ba f2 5b
     2551    mov dx, 05bf0h                            ; ba f0 5b
    25522552    jmp short 01351h                          ; eb f3
    2553     mov dx, 069f2h                            ; ba f2 69
     2553    mov dx, 069f0h                            ; ba f0 69
    25542554    jmp short 01351h                          ; eb ee
    25552555    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    28612861    mov ax, word [bp-016h]                    ; 8b 46 ea
    28622862    imul ax, cx                               ; 0f af c1
    2863     cmp byte [di+04635h], 000h                ; 80 bd 35 46 00
     2863    cmp byte [di+04633h], 000h                ; 80 bd 33 46 00
    28642864    jne near 017d1h                           ; 0f 85 9f 01
    28652865    mov dx, ax                                ; 89 c2
     
    28842884    sal dx, 008h                              ; c1 e2 08
    28852885    add dx, strict byte 00020h                ; 83 c2 20
    2886     mov es, [di+04638h]                       ; 8e 85 38 46
     2886    mov es, [di+04636h]                       ; 8e 85 36 46
    28872887    mov cx, ax                                ; 89 c1
    28882888    mov ax, dx                                ; 89 d0
     
    29182918    movzx si, byte [bp-00eh]                  ; 0f b6 76 f2
    29192919    sal si, 003h                              ; c1 e6 03
    2920     mov es, [si+04638h]                       ; 8e 84 38 46
     2920    mov es, [si+04636h]                       ; 8e 84 36 46
    29212921    cld                                       ; fc
    29222922    jcxz 016ddh                               ; e3 02
     
    29322932    movzx si, byte [bp-00eh]                  ; 0f b6 76 f2
    29332933    sal si, 003h                              ; c1 e6 03
    2934     mov ax, word [si+04638h]                  ; 8b 84 38 46
     2934    mov ax, word [si+04636h]                  ; 8b 84 36 46
    29352935    mov si, word [bp-014h]                    ; 8b 76 ec
    29362936    imul si, word [bp-016h]                   ; 0f af 76 ea
     
    29762976    movzx si, byte [bp-00eh]                  ; 0f b6 76 f2
    29772977    sal si, 003h                              ; c1 e6 03
    2978     mov es, [si+04638h]                       ; 8e 84 38 46
     2978    mov es, [si+04636h]                       ; 8e 84 36 46
    29792979    cld                                       ; fc
    29802980    jcxz 0177eh                               ; e3 02
     
    29912991    movzx si, byte [bp-00eh]                  ; 0f b6 76 f2
    29922992    sal si, 003h                              ; c1 e6 03
    2993     mov ax, word [si+04638h]                  ; 8b 84 38 46
     2993    mov ax, word [si+04636h]                  ; 8b 84 36 46
    29942994    mov si, word [bp-014h]                    ; 8b 76 ec
    29952995    imul si, word [bp-016h]                   ; 0f af 76 ea
     
    30113011    dec word [bp-014h]                        ; ff 4e ec
    30123012    jmp near 0172dh                           ; e9 5c ff
    3013     movzx bx, byte [si+046b4h]                ; 0f b6 9c b4 46
     3013    movzx bx, byte [si+046b2h]                ; 0f b6 9c b2 46
    30143014    sal bx, 006h                              ; c1 e3 06
    3015     mov dl, byte [bx+046cah]                  ; 8a 97 ca 46
     3015    mov dl, byte [bx+046c8h]                  ; 8a 97 c8 46
    30163016    mov byte [bp-00ah], dl                    ; 88 56 f6
    3017     mov bl, byte [di+04636h]                  ; 8a 9d 36 46
     3017    mov bl, byte [di+04634h]                  ; 8a 9d 34 46
    30183018    cmp bl, 004h                              ; 80 fb 04
    30193019    je short 017f8h                           ; 74 0f
     
    30483048    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
    30493049    sal bx, 003h                              ; c1 e3 03
    3050     mov es, [bx+04638h]                       ; 8e 87 38 46
     3050    mov es, [bx+04636h]                       ; 8e 87 36 46
    30513051    xor di, di                                ; 31 ff
    30523052    cld                                       ; fc
     
    31303130    dec word [bp-014h]                        ; ff 4e ec
    31313131    jmp short 018c6h                          ; eb 8f
    3132     mov dl, byte [di+04637h]                  ; 8a 95 37 46
     3132    mov dl, byte [di+04635h]                  ; 8a 95 35 46
    31333133    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    31343134    jne short 0197eh                          ; 75 3d
     
    31483148    imul cx, ax                               ; 0f af c8
    31493149    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    3150     mov es, [di+04638h]                       ; 8e 85 38 46
     3150    mov es, [di+04636h]                       ; 8e 85 36 46
    31513151    xor di, di                                ; 31 ff
    31523152    cld                                       ; fc
     
    32503250    cmp byte [bp+006h], 00eh                  ; 80 7e 06 0e
    32513251    jne short 01a9bh                          ; 75 0a
    3252     mov di, 05bf2h                            ; bf f2 5b
     3252    mov di, 05bf0h                            ; bf f0 5b
    32533253    jmp short 01a9eh                          ; eb 08
    3254     mov di, 069f2h                            ; bf f2 69
     3254    mov di, 069f0h                            ; bf f0 69
    32553255    jmp short 01a9eh                          ; eb 03
    3256     mov di, 053f2h                            ; bf f2 53
     3256    mov di, 053f0h                            ; bf f0 53
    32573257    movzx si, cl                              ; 0f b6 f1
    32583258    movzx bx, byte [bp+006h]                  ; 0f b6 5e 06
     
    33413341    sub sp, strict byte 00008h                ; 83 ec 08
    33423342    mov byte [bp-008h], dl                    ; 88 56 f8
    3343     mov si, 053f2h                            ; be f2 53
     3343    mov si, 053f0h                            ; be f0 53
    33443344    xor bh, bh                                ; 30 ff
    33453345    movzx di, byte [bp+006h]                  ; 0f b6 7e 06
     
    34553455    sub sp, strict byte 00008h                ; 83 ec 08
    34563456    mov byte [bp-006h], dl                    ; 88 56 fa
    3457     mov di, 053f2h                            ; bf f2 53
     3457    mov di, 053f0h                            ; bf f0 53
    34583458    movzx dx, cl                              ; 0f b6 d1
    34593459    movzx cx, byte [bp+004h]                  ; 0f b6 4e 04
     
    35503550    mov di, bx                                ; 89 df
    35513551    sal di, 003h                              ; c1 e7 03
    3552     cmp byte [di+04635h], 000h                ; 80 bd 35 46 00
     3552    cmp byte [di+04633h], 000h                ; 80 bd 33 46 00
    35533553    jne short 01dcdh                          ; 75 47
    35543554    mov bx, word [bp-018h]                    ; 8b 5e e8
     
    35713571    mov word [bp-01ah], ax                    ; 89 46 e6
    35723572    mov ax, word [bp-01ah]                    ; 8b 46 e6
    3573     mov es, [di+04638h]                       ; 8e 85 38 46
     3573    mov es, [di+04636h]                       ; 8e 85 36 46
    35743574    mov cx, si                                ; 89 f1
    35753575    mov di, dx                                ; 89 d7
     
    35783578    rep stosw                                 ; f3 ab
    35793579    jmp near 01e73h                           ; e9 a6 00
    3580     movzx bx, byte [bx+046b4h]                ; 0f b6 9f b4 46
     3580    movzx bx, byte [bx+046b2h]                ; 0f b6 9f b2 46
    35813581    sal bx, 006h                              ; c1 e3 06
    3582     mov al, byte [bx+046cah]                  ; 8a 87 ca 46
     3582    mov al, byte [bx+046c8h]                  ; 8a 87 c8 46
    35833583    mov byte [bp-008h], al                    ; 88 46 f8
    3584     mov al, byte [di+04637h]                  ; 8a 85 37 46
     3584    mov al, byte [di+04635h]                  ; 8a 85 35 46
    35853585    mov byte [bp-014h], al                    ; 88 46 ec
    35863586    dec si                                    ; 4e
     
    35923592    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    35933593    sal bx, 003h                              ; c1 e3 03
    3594     mov al, byte [bx+04636h]                  ; 8a 87 36 46
     3594    mov al, byte [bx+04634h]                  ; 8a 87 34 46
    35953595    cmp AL, strict byte 003h                  ; 3c 03
    35963596    jc short 01e11h                           ; 72 0c
     
    36803680    mov bx, di                                ; 89 fb
    36813681    sal bx, 003h                              ; c1 e3 03
    3682     cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
     3682    cmp byte [bx+04633h], 000h                ; 80 bf 33 46 00
    36833683    jne short 01f38h                          ; 75 4a
    36843684    mov dx, word [bp-018h]                    ; 8b 56 e8
     
    37023702    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
    37033703    sal bx, 003h                              ; c1 e3 03
    3704     mov di, word [bx+04638h]                  ; 8b bf 38 46
     3704    mov di, word [bx+04636h]                  ; 8b bf 36 46
    37053705    mov bx, ax                                ; 89 c3
    37063706    mov dx, cx                                ; 89 ca
     
    37103710    inc cx                                    ; 41
    37113711    jmp short 01f14h                          ; eb dc
    3712     movzx di, byte [di+046b4h]                ; 0f b6 bd b4 46
     3712    movzx di, byte [di+046b2h]                ; 0f b6 bd b2 46
    37133713    sal di, 006h                              ; c1 e7 06
    3714     mov al, byte [di+046cah]                  ; 8a 85 ca 46
     3714    mov al, byte [di+046c8h]                  ; 8a 85 c8 46
    37153715    mov byte [bp-00ah], al                    ; 88 46 f6
    3716     mov al, byte [bx+04637h]                  ; 8a 87 37 46
     3716    mov al, byte [bx+04635h]                  ; 8a 87 35 46
    37173717    mov byte [bp-008h], al                    ; 88 46 f8
    37183718    dec si                                    ; 4e
     
    37243724    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
    37253725    sal bx, 003h                              ; c1 e3 03
    3726     mov bl, byte [bx+04636h]                  ; 8a 9f 36 46
     3726    mov bl, byte [bx+04634h]                  ; 8a 9f 34 46
    37273727    cmp bl, 003h                              ; 80 fb 03
    37283728    jc short 01f7fh                           ; 72 0e
     
    37873787    movzx bx, al                              ; 0f b6 d8
    37883788    sal bx, 003h                              ; c1 e3 03
    3789     cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
     3789    cmp byte [bx+04633h], 000h                ; 80 bf 33 46 00
    37903790    je near 0212bh                            ; 0f 84 0f 01
    3791     mov al, byte [bx+04636h]                  ; 8a 87 36 46
     3791    mov al, byte [bx+04634h]                  ; 8a 87 34 46
    37923792    cmp AL, strict byte 003h                  ; 3c 03
    37933793    jc short 02033h                           ; 72 0f
     
    38433843    shr ax, 1                                 ; d1 e8
    38443844    imul ax, ax, strict byte 00050h           ; 6b c0 50
    3845     cmp byte [bx+04637h], 002h                ; 80 bf 37 46 02
     3845    cmp byte [bx+04635h], 002h                ; 80 bf 35 46 02
    38463846    jne short 020b5h                          ; 75 08
    38473847    mov bx, word [bp-00ah]                    ; 8b 5e f6
     
    38613861    movzx si, byte [bp-004h]                  ; 0f b6 76 fc
    38623862    sal si, 003h                              ; c1 e6 03
    3863     cmp byte [si+04637h], 002h                ; 80 bc 37 46 02
     3863    cmp byte [si+04635h], 002h                ; 80 bc 35 46 02
    38643864    jne short 020fbh                          ; 75 19
    38653865    mov al, byte [bp-00ah]                    ; 8a 46 f6
     
    39743974    mov si, bx                                ; 89 de
    39753975    sal si, 003h                              ; c1 e6 03
    3976     cmp byte [si+04635h], 000h                ; 80 bc 35 46 00
     3976    cmp byte [si+04633h], 000h                ; 80 bc 33 46 00
    39773977    jne short 02256h                          ; 75 4d
    39783978    mov ax, word [bp-012h]                    ; 8b 46 ee
     
    39913991    add cx, ax                                ; 01 c1
    39923992    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    3993     mov ax, word [si+04638h]                  ; 8b 84 38 46
     3993    mov ax, word [si+04636h]                  ; 8b 84 36 46
    39943994    mov dx, cx                                ; 89 ca
    39953995    call 02f4ch                               ; e8 0f 0d
     
    39993999    mov dx, cx                                ; 89 ca
    40004000    inc dx                                    ; 42
    4001     mov ax, word [si+04638h]                  ; 8b 84 38 46
     4001    mov ax, word [si+04636h]                  ; 8b 84 36 46
    40024002    call 02f4ch                               ; e8 f9 0c
    40034003    jmp near 022d4h                           ; e9 7e 00
    4004     movzx bx, byte [bx+046b4h]                ; 0f b6 9f b4 46
     4004    movzx bx, byte [bx+046b2h]                ; 0f b6 9f b2 46
    40054005    sal bx, 006h                              ; c1 e3 06
    4006     mov ah, byte [bx+046cah]                  ; 8a a7 ca 46
    4007     mov dl, byte [si+04637h]                  ; 8a 94 37 46
    4008     mov al, byte [si+04636h]                  ; 8a 84 36 46
     4006    mov ah, byte [bx+046c8h]                  ; 8a a7 c8 46
     4007    mov dl, byte [si+04635h]                  ; 8a 94 35 46
     4008    mov al, byte [si+04634h]                  ; 8a 84 34 46
    40094009    cmp AL, strict byte 003h                  ; 3c 03
    40104010    jc short 0227ah                           ; 72 0c
     
    40624062    db  0feh, 0cbh
    40634063    ; dec bl                                    ; fe cb
    4064     cmp byte [si+04635h], 000h                ; 80 bc 35 46 00
     4064    cmp byte [si+04633h], 000h                ; 80 bc 33 46 00
    40654065    jne short 02354h                          ; 75 4a
    40664066    mov ax, word [bp-012h]                    ; 8b 46 ee
     
    40814081    add dx, ax                                ; 01 c2
    40824082    inc dx                                    ; 42
    4083     mov ax, word [si+04638h]                  ; 8b 84 38 46
     4083    mov ax, word [si+04636h]                  ; 8b 84 36 46
    40844084    call 02f3eh                               ; e8 02 0c
    40854085    push strict byte 00001h                   ; 6a 01
     
    43564356    sal di, 005h                              ; c1 e7 05
    43574357    add di, word [bp-00ch]                    ; 03 7e f4
    4358     add si, 05bf2h                            ; 81 c6 f2 5b
     4358    add si, 05bf0h                            ; 81 c6 f0 5b
    43594359    mov cx, strict word 0000eh                ; b9 0e 00
    43604360    mov dx, 0c000h                            ; ba 00 c0
     
    44124412    sal di, 005h                              ; c1 e7 05
    44134413    add di, word [bp-00ch]                    ; 03 7e f4
    4414     add si, 053f2h                            ; 81 c6 f2 53
     4414    add si, 053f0h                            ; 81 c6 f0 53
    44154415    mov cx, strict word 00008h                ; b9 08 00
    44164416    mov dx, 0c000h                            ; ba 00 c0
     
    44684468    sal di, 005h                              ; c1 e7 05
    44694469    add di, word [bp-00ch]                    ; 03 7e f4
    4470     add si, 069f2h                            ; 81 c6 f2 69
     4470    add si, 069f0h                            ; 81 c6 f0 69
    44714471    mov cx, strict word 00010h                ; b9 10 00
    44724472    mov dx, 0c000h                            ; ba 00 c0
     
    46024602    push bx                                   ; 53
    46034603    mov cx, ds                                ; 8c d9
    4604     mov bx, 05388h                            ; bb 88 53
     4604    mov bx, 05386h                            ; bb 86 53
    46054605    mov dx, word [bp-00ah]                    ; 8b 56 f6
    46064606    mov ax, word [bp-008h]                    ; 8b 46 f8
     
    55025502    movzx bx, al                              ; 0f b6 d8
    55035503    sal bx, 003h                              ; c1 e3 03
    5504     cmp dl, byte [bx+04634h]                  ; 3a 97 34 46
     5504    cmp dl, byte [bx+04632h]                  ; 3a 97 32 46
    55055505    jne short 02f24h                          ; 75 ee
    55065506    mov ah, al                                ; 88 c4
     
    62036203    ; mov dword [es:bx], strict dword 041534556h ; 66 26 c7 07 56 45 53 41
    62046204    mov word [es:bx+004h], 00200h             ; 26 c7 47 04 00 02
    6205     mov word [es:bx+006h], 07c64h             ; 26 c7 47 06 64 7c
     6205    mov word [es:bx+006h], 07c62h             ; 26 c7 47 06 62 7c
    62066206    mov [es:bx+008h], ds                      ; 26 8c 5f 08
    62076207    db  066h, 026h, 0c7h, 047h, 00ah, 001h, 000h, 000h, 000h
     
    62196219    je short 035d5h                           ; 74 24
    62206220    mov word [es:bx+014h], strict word 00003h ; 26 c7 47 14 03 00
    6221     mov word [es:bx+016h], 07c79h             ; 26 c7 47 16 79 7c
     6221    mov word [es:bx+016h], 07c77h             ; 26 c7 47 16 77 7c
    62226222    mov [es:bx+018h], ds                      ; 26 8c 5f 18
    6223     mov word [es:bx+01ah], 07c8ch             ; 26 c7 47 1a 8c 7c
     6223    mov word [es:bx+01ah], 07c8ah             ; 26 c7 47 1a 8a 7c
    62246224    mov [es:bx+01ch], ds                      ; 26 8c 5f 1c
    6225     mov word [es:bx+01eh], 07cadh             ; 26 c7 47 1e ad 7c
     6225    mov word [es:bx+01eh], 07cabh             ; 26 c7 47 1e ab 7c
    62266226    mov [es:bx+020h], ds                      ; 26 8c 5f 20
    62276227    mov dx, cx                                ; 89 ca
     
    67686768  times 235 db 0
    67696769
    6770 section _DATA progbits vstart=0x4600 align=1 ; size=0x372a class=DATA group=DGROUP
    6771 _msg_vga_init:                               ; 0xc4600 LB 0x34
    6772     db  'Oracle VM VirtualBox Version 5.1.0_BETA3 VGA BIOS', 00dh, 00ah, 000h
    6773 _vga_modes:                                  ; 0xc4634 LB 0x80
     6770section _DATA progbits vstart=0x4600 align=1 ; size=0x3726 class=DATA group=DGROUP
     6771_msg_vga_init:                               ; 0xc4600 LB 0x32
     6772    db  'Oracle VM VirtualBox Version 5.1.0_RC1 VGA BIOS', 00dh, 00ah, 000h
     6773_vga_modes:                                  ; 0xc4632 LB 0x80
    67746774    db  000h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h, 001h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h
    67756775    db  002h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h, 003h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h
     
    67806780    db  011h, 001h, 003h, 001h, 000h, 0a0h, 0ffh, 002h, 012h, 001h, 004h, 004h, 000h, 0a0h, 0ffh, 002h
    67816781    db  013h, 001h, 005h, 008h, 000h, 0a0h, 0ffh, 003h, 06ah, 001h, 004h, 004h, 000h, 0a0h, 0ffh, 002h
    6782 _line_to_vpti:                               ; 0xc46b4 LB 0x10
     6782_line_to_vpti:                               ; 0xc46b2 LB 0x10
    67836783    db  017h, 017h, 018h, 018h, 004h, 005h, 006h, 007h, 00dh, 00eh, 011h, 012h, 01ah, 01bh, 01ch, 01dh
    6784 _dac_regs:                                   ; 0xc46c4 LB 0x4
     6784_dac_regs:                                   ; 0xc46c2 LB 0x4
    67856785    dd  0ff3f3f3fh
    6786 _video_param_table:                          ; 0xc46c8 LB 0x780
     6786_video_param_table:                          ; 0xc46c6 LB 0x780
    67876787    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    67886788    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     
    69056905    db  073h, 0e3h, 0ffh, 000h, 001h, 002h, 003h, 004h, 005h, 014h, 007h, 038h, 039h, 03ah, 03bh, 03ch
    69066906    db  03dh, 03eh, 03fh, 001h, 000h, 00fh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 005h, 00fh, 0ffh
    6907 _palette0:                                   ; 0xc4e48 LB 0xc0
     6907_palette0:                                   ; 0xc4e46 LB 0xc0
    69086908    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    69096909    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah
     
    69186918    db  02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh
    69196919    db  03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh
    6920 _palette1:                                   ; 0xc4f08 LB 0xc0
     6920_palette1:                                   ; 0xc4f06 LB 0xc0
    69216921    db  000h, 000h, 000h, 000h, 000h, 02ah, 000h, 02ah, 000h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 02ah
    69226922    db  000h, 02ah, 02ah, 015h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 000h, 000h, 000h, 02ah, 000h, 02ah
     
    69316931    db  015h, 03fh, 03fh, 03fh, 015h, 03fh, 03fh, 03fh, 015h, 015h, 015h, 015h, 015h, 03fh, 015h, 03fh
    69326932    db  015h, 015h, 03fh, 03fh, 03fh, 015h, 015h, 03fh, 015h, 03fh, 03fh, 03fh, 015h, 03fh, 03fh, 03fh
    6933 _palette2:                                   ; 0xc4fc8 LB 0xc0
     6933_palette2:                                   ; 0xc4fc6 LB 0xc0
    69346934    db  000h, 000h, 000h, 000h, 000h, 02ah, 000h, 02ah, 000h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 02ah
    69356935    db  000h, 02ah, 02ah, 02ah, 000h, 02ah, 02ah, 02ah, 000h, 000h, 015h, 000h, 000h, 03fh, 000h, 02ah
     
    69446944    db  015h, 02ah, 03fh, 03fh, 000h, 03fh, 03fh, 02ah, 015h, 015h, 015h, 015h, 015h, 03fh, 015h, 03fh
    69456945    db  015h, 015h, 03fh, 03fh, 03fh, 015h, 015h, 03fh, 015h, 03fh, 03fh, 03fh, 015h, 03fh, 03fh, 03fh
    6946 _palette3:                                   ; 0xc5088 LB 0x300
     6946_palette3:                                   ; 0xc5086 LB 0x300
    69476947    db  000h, 000h, 000h, 000h, 000h, 02ah, 000h, 02ah, 000h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 02ah
    69486948    db  000h, 02ah, 02ah, 015h, 000h, 02ah, 02ah, 02ah, 015h, 015h, 015h, 015h, 015h, 03fh, 015h, 03fh
     
    69936993    db  00fh, 010h, 00bh, 00dh, 010h, 00bh, 00ch, 010h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    69946994    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    6995 _static_functionality:                       ; 0xc5388 LB 0x10
     6995_static_functionality:                       ; 0xc5386 LB 0x10
    69966996    db  0ffh, 0e0h, 00fh, 000h, 000h, 000h, 000h, 007h, 002h, 008h, 0e7h, 00ch, 000h, 000h, 000h, 000h
    6997 _dcc_table:                                  ; 0xc5398 LB 0x24
     6997_dcc_table:                                  ; 0xc5396 LB 0x24
    69986998    db  010h, 001h, 007h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    69996999    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    70007000    db  000h, 000h, 000h, 000h
    7001 _secondary_save_area:                        ; 0xc53bc LB 0x1a
    7002     db  01ah, 000h, 098h, 053h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7001_secondary_save_area:                        ; 0xc53ba LB 0x1a
     7002    db  01ah, 000h, 096h, 053h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    70037003    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7004 _video_save_pointer_table:                   ; 0xc53d6 LB 0x1c
    7005     db  0c8h, 046h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7006     db  0bch, 053h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7007 _vgafont8:                                   ; 0xc53f2 LB 0x800
     7004_video_save_pointer_table:                   ; 0xc53d4 LB 0x1c
     7005    db  0c6h, 046h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7006    db  0bah, 053h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7007_vgafont8:                                   ; 0xc53f0 LB 0x800
    70087008    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07eh, 081h, 0a5h, 081h, 0bdh, 099h, 081h, 07eh
    70097009    db  07eh, 0ffh, 0dbh, 0ffh, 0c3h, 0e7h, 0ffh, 07eh, 06ch, 0feh, 0feh, 0feh, 07ch, 038h, 010h, 000h
     
    71347134    db  078h, 06ch, 06ch, 06ch, 06ch, 000h, 000h, 000h, 070h, 018h, 030h, 060h, 078h, 000h, 000h, 000h
    71357135    db  000h, 000h, 03ch, 03ch, 03ch, 03ch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7136 _vgafont14:                                  ; 0xc5bf2 LB 0xe00
     7136_vgafont14:                                  ; 0xc5bf0 LB 0xe00
    71377137    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    71387138    db  07eh, 081h, 0a5h, 081h, 081h, 0bdh, 099h, 081h, 07eh, 000h, 000h, 000h, 000h, 000h, 07eh, 0ffh
     
    73597359    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07ch, 07ch, 07ch, 07ch, 07ch, 07ch, 000h, 000h
    73607360    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7361 _vgafont16:                                  ; 0xc69f2 LB 0x1000
     7361_vgafont16:                                  ; 0xc69f0 LB 0x1000
    73627362    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    73637363    db  000h, 000h, 07eh, 081h, 0a5h, 081h, 081h, 0bdh, 099h, 081h, 081h, 07eh, 000h, 000h, 000h, 000h
     
    76167616    db  000h, 000h, 000h, 000h, 07ch, 07ch, 07ch, 07ch, 07ch, 07ch, 07ch, 000h, 000h, 000h, 000h, 000h
    76177617    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7618 _vgafont14alt:                               ; 0xc79f2 LB 0x12d
     7618_vgafont14alt:                               ; 0xc79f0 LB 0x12d
    76197619    db  01dh, 000h, 000h, 000h, 000h, 024h, 066h, 0ffh, 066h, 024h, 000h, 000h, 000h, 000h, 000h, 022h
    76207620    db  000h, 063h, 063h, 063h, 022h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 02bh, 000h
     
    76367636    db  000h, 018h, 018h, 018h, 0ffh, 018h, 018h, 018h, 000h, 0ffh, 000h, 000h, 000h, 0f6h, 000h, 000h
    76377637    db  018h, 018h, 000h, 000h, 0ffh, 000h, 000h, 018h, 018h, 000h, 000h, 000h, 000h
    7638 _vgafont16alt:                               ; 0xc7b1f LB 0x145
     7638_vgafont16alt:                               ; 0xc7b1d LB 0x145
    76397639    db  01dh, 000h, 000h, 000h, 000h, 000h, 024h, 066h, 0ffh, 066h, 024h, 000h, 000h, 000h, 000h, 000h
    76407640    db  000h, 030h, 000h, 000h, 03ch, 066h, 0c3h, 0c3h, 0dbh, 0dbh, 0c3h, 0c3h, 066h, 03ch, 000h, 000h
     
    76587658    db  000h, 000h, 0ach, 000h, 0c0h, 0c0h, 0c2h, 0c6h, 0cch, 018h, 030h, 066h, 0ceh, 096h, 03eh, 006h
    76597659    db  006h, 000h, 000h, 000h, 000h
    7660 _vbebios_copyright:                          ; 0xc7c64 LB 0x15
     7660_vbebios_copyright:                          ; 0xc7c62 LB 0x15
    76617661    db  'VirtualBox VESA BIOS', 000h
    7662 _vbebios_vendor_name:                        ; 0xc7c79 LB 0x13
     7662_vbebios_vendor_name:                        ; 0xc7c77 LB 0x13
    76637663    db  'Oracle Corporation', 000h
    7664 _vbebios_product_name:                       ; 0xc7c8c LB 0x21
     7664_vbebios_product_name:                       ; 0xc7c8a LB 0x21
    76657665    db  'Oracle VM VirtualBox VBE Adapter', 000h
    7666 _vbebios_product_revision:                   ; 0xc7cad LB 0x29
    7667     db  'Oracle VM VirtualBox Version 5.1.0_BETA3', 000h
    7668 _vbebios_info_string:                        ; 0xc7cd6 LB 0x2b
     7666_vbebios_product_revision:                   ; 0xc7cab LB 0x27
     7667    db  'Oracle VM VirtualBox Version 5.1.0_RC1', 000h
     7668_vbebios_info_string:                        ; 0xc7cd2 LB 0x2b
    76697669    db  'VirtualBox VBE Display Adapter enabled', 00dh, 00ah, 00dh, 00ah, 000h
    7670 _no_vbebios_info_string:                     ; 0xc7d01 LB 0x29
     7670_no_vbebios_info_string:                     ; 0xc7cfd LB 0x29
    76717671    db  'No VirtualBox VBE support available!', 00dh, 00ah, 00dh, 00ah, 000h
    76727672
    7673 section CONST progbits vstart=0x7d2a align=1 ; size=0x0 class=DATA group=DGROUP
     7673section CONST progbits vstart=0x7d26 align=1 ; size=0x0 class=DATA group=DGROUP
    76747674
    7675 section CONST2 progbits vstart=0x7d2a align=1 ; size=0x0 class=DATA group=DGROUP
     7675section CONST2 progbits vstart=0x7d26 align=1 ; size=0x0 class=DATA group=DGROUP
    76767676
    7677   ; Padding 0x2d6 bytes at 0xc7d2a
     7677  ; Padding 0x2da bytes at 0xc7d26
    76787678    db  001h, 000h, 000h, 000h, 000h, 001h, 000h, 000h, 000h, 000h, 000h, 000h, 02fh, 068h, 06fh, 06dh
    76797679    db  065h, 02fh, 066h, 06dh, 033h, 02fh, 073h, 072h, 063h, 02fh, 076h, 062h, 06fh, 078h, 02fh, 06fh
     
    77217721    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    77227722    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7723     db  000h, 000h, 000h, 000h, 000h, 096h
     7723    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 06ch
  • TabularUnified trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative386.md5sum

    r61733 r62120  
    1 4bf3f254f02e449f5a01ca1034064a11 *VBoxVgaBios386.rom
     1b1671e41e2de2599648b792f96a4fb88 *VBoxVgaBios386.rom
  • TabularUnified trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative8086.asm

    r61733 r62120  
    17421742    mov CL, strict byte 003h                  ; b1 03
    17431743    sal bx, CL                                ; d3 e3
    1744     cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
     1744    cmp byte [bx+04633h], 000h                ; 80 bf 33 46 00
    17451745    jne short 00b68h                          ; 75 2e
    17461746    mul word [bp-00ch]                        ; f7 66 f4
     
    17611761    sal dx, 1                                 ; d1 e2
    17621762    add dx, cx                                ; 01 ca
    1763     mov ax, word [bx+04638h]                  ; 8b 87 38 46
     1763    mov ax, word [bx+04636h]                  ; 8b 87 36 46
    17641764    call 031b7h                               ; e8 52 26
    17651765    mov word [ss:si], ax                      ; 36 89 04
     
    18281828    mov dx, 0010ch                            ; ba 0c 01
    18291829    jmp short 00b99h                          ; eb c0
    1830     mov ax, 05bf2h                            ; b8 f2 5b
     1830    mov ax, 05bf0h                            ; b8 f0 5b
    18311831    mov dx, 0c000h                            ; ba 00 c0
    18321832    jmp short 00b9eh                          ; eb bd
    1833     mov ax, 053f2h                            ; b8 f2 53
     1833    mov ax, 053f0h                            ; b8 f0 53
    18341834    jmp short 00bdch                          ; eb f6
    1835     mov ax, 057f2h                            ; b8 f2 57
     1835    mov ax, 057f0h                            ; b8 f0 57
    18361836    jmp short 00bdch                          ; eb f1
    1837     mov ax, 079f2h                            ; b8 f2 79
     1837    mov ax, 079f0h                            ; b8 f0 79
    18381838    jmp short 00bdch                          ; eb ec
    1839     mov ax, 069f2h                            ; b8 f2 69
     1839    mov ax, 069f0h                            ; b8 f0 69
    18401840    jmp short 00bdch                          ; eb e7
    1841     mov ax, 07b1fh                            ; b8 1f 7b
     1841    mov ax, 07b1dh                            ; b8 1d 7b
    18421842    jmp short 00bdch                          ; eb e2
    18431843    jmp short 00bcbh                          ; eb cf
     
    18631863    mov CL, strict byte 003h                  ; b1 03
    18641864    sal bx, CL                                ; d3 e3
    1865     cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
     1865    cmp byte [bx+04633h], 000h                ; 80 bf 33 46 00
    18661866    jne short 00c31h                          ; 75 03
    18671867    jmp near 00d38h                           ; e9 07 01
    1868     mov bl, byte [bx+04636h]                  ; 8a 9f 36 46
     1868    mov bl, byte [bx+04634h]                  ; 8a 9f 34 46
    18691869    cmp bl, cl                                ; 38 cb
    18701870    jc short 00c48h                           ; 72 0f
     
    19341934    mov CL, strict byte 003h                  ; b1 03
    19351935    sal bx, CL                                ; d3 e3
    1936     cmp byte [bx+04637h], 002h                ; 80 bf 37 46 02
     1936    cmp byte [bx+04635h], 002h                ; 80 bf 35 46 02
    19371937    jne short 00cfah                          ; 75 1b
    19381938    mov cx, si                                ; 89 f1
     
    22682268    mov si, bx                                ; 89 de
    22692269    sal si, CL                                ; d3 e6
    2270     cmp byte [si+04635h], 000h                ; 80 bc 35 46 00
     2270    cmp byte [si+04633h], 000h                ; 80 bc 33 46 00
    22712271    jne short 00fc0h                          ; 75 47
    22722272    mov dx, strict word 0004ah                ; ba 4a 00
     
    23002300    mul di                                    ; f7 e7
    23012301    jmp short 00fd0h                          ; eb 10
    2302     mov bl, byte [bx+046b4h]                  ; 8a 9f b4 46
     2302    mov bl, byte [bx+046b2h]                  ; 8a 9f b2 46
    23032303    mov CL, strict byte 006h                  ; b1 06
    23042304    sal bx, CL                                ; d3 e3
    23052305    mov al, ch                                ; 88 e8
    23062306    xor ah, ah                                ; 30 e4
    2307     mul word [bx+046cbh]                      ; f7 a7 cb 46
     2307    mul word [bx+046c9h]                      ; f7 a7 c9 46
    23082308    mov bx, ax                                ; 89 c3
    23092309    mov dx, strict word 00063h                ; ba 63 00
     
    23782378    mov byte [bp-013h], 000h                  ; c6 46 ed 00
    23792379    mov bx, word [bp-014h]                    ; 8b 5e ec
    2380     mov al, byte [bx+046b4h]                  ; 8a 87 b4 46
     2380    mov al, byte [bx+046b2h]                  ; 8a 87 b2 46
    23812381    mov byte [bp-00eh], al                    ; 88 46 f2
    23822382    mov bl, al                                ; 88 c3
     
    23842384    mov CL, strict byte 006h                  ; b1 06
    23852385    sal bx, CL                                ; d3 e3
     2386    mov al, byte [bx+046c6h]                  ; 8a 87 c6 46
     2387    xor ah, ah                                ; 30 e4
     2388    mov word [bp-016h], ax                    ; 89 46 ea
     2389    mov al, byte [bx+046c7h]                  ; 8a 87 c7 46
     2390    mov word [bp-018h], ax                    ; 89 46 e8
    23862391    mov al, byte [bx+046c8h]                  ; 8a 87 c8 46
    2387     xor ah, ah                                ; 30 e4
    2388     mov word [bp-016h], ax                    ; 89 46 ea
    2389     mov al, byte [bx+046c9h]                  ; 8a 87 c9 46
    2390     mov word [bp-018h], ax                    ; 89 46 e8
    2391     mov al, byte [bx+046cah]                  ; 8a 87 ca 46
    23922392    mov word [bp-01ah], ax                    ; 89 46 e6
    23932393    mov dx, 00087h                            ; ba 87 00
     
    24062406    mov bx, word [bp-014h]                    ; 8b 5e ec
    24072407    sal bx, CL                                ; d3 e3
    2408     mov al, byte [bx+0463ah]                  ; 8a 87 3a 46
     2408    mov al, byte [bx+04638h]                  ; 8a 87 38 46
    24092409    mov dx, 003c6h                            ; ba c6 03
    24102410    out DX, AL                                ; ee
     
    24122412    mov dx, 003c8h                            ; ba c8 03
    24132413    out DX, AL                                ; ee
    2414     mov bl, byte [bx+0463bh]                  ; 8a 9f 3b 46
     2414    mov bl, byte [bx+04639h]                  ; 8a 9f 39 46
    24152415    cmp bl, 001h                              ; 80 fb 01
    24162416    jc short 010dbh                           ; 72 0d
     
    24232423    test bl, bl                               ; 84 db
    24242424    jne short 010f1h                          ; 75 12
    2425     mov di, 04e48h                            ; bf 48 4e
     2425    mov di, 04e46h                            ; bf 46 4e
    24262426    jmp short 010f1h                          ; eb 0d
    2427     mov di, 04f08h                            ; bf 08 4f
     2427    mov di, 04f06h                            ; bf 06 4f
    24282428    jmp short 010f1h                          ; eb 08
    2429     mov di, 04fc8h                            ; bf c8 4f
     2429    mov di, 04fc6h                            ; bf c6 4f
    24302430    jmp short 010f1h                          ; eb 03
    2431     mov di, 05088h                            ; bf 88 50
     2431    mov di, 05086h                            ; bf 86 50
    24322432    xor bx, bx                                ; 31 db
    24332433    jmp short 010fdh                          ; eb 08
     
    24402440    mov si, ax                                ; 89 c6
    24412441    sal si, CL                                ; d3 e6
    2442     mov al, byte [si+0463bh]                  ; 8a 84 3b 46
     2442    mov al, byte [si+04639h]                  ; 8a 84 39 46
    24432443    mov si, ax                                ; 89 c6
    2444     mov al, byte [si+046c4h]                  ; 8a 84 c4 46
     2444    mov al, byte [si+046c2h]                  ; 8a 84 c2 46
    24452445    cmp bx, ax                                ; 39 c3
    24462446    jnbe short 01131h                         ; 77 1b
     
    24872487    sal si, CL                                ; d3 e6
    24882488    add si, bx                                ; 01 de
    2489     mov al, byte [si+046ebh]                  ; 8a 84 eb 46
     2489    mov al, byte [si+046e9h]                  ; 8a 84 e9 46
    24902490    out DX, AL                                ; ee
    24912491    inc bx                                    ; 43
     
    25142514    sal si, CL                                ; d3 e6
    25152515    add si, bx                                ; 01 de
    2516     mov al, byte [si+046cch]                  ; 8a 84 cc 46
     2516    mov al, byte [si+046cah]                  ; 8a 84 ca 46
    25172517    mov dx, 003c5h                            ; ba c5 03
    25182518    out DX, AL                                ; ee
     
    25322532    sal si, CL                                ; d3 e6
    25332533    add si, bx                                ; 01 de
    2534     mov al, byte [si+046ffh]                  ; 8a 84 ff 46
     2534    mov al, byte [si+046fdh]                  ; 8a 84 fd 46
    25352535    mov dx, 003cfh                            ; ba cf 03
    25362536    out DX, AL                                ; ee
     
    25412541    mov CL, strict byte 003h                  ; b1 03
    25422542    sal bx, CL                                ; d3 e3
    2543     cmp byte [bx+04636h], 001h                ; 80 bf 36 46 01
     2543    cmp byte [bx+04634h], 001h                ; 80 bf 34 46 01
    25442544    jne short 011eah                          ; 75 05
    25452545    mov dx, 003b4h                            ; ba b4 03
     
    25642564    add di, bx                                ; 01 df
    25652565    lea dx, [si+001h]                         ; 8d 54 01
    2566     mov al, byte [di+046d2h]                  ; 8a 85 d2 46
     2566    mov al, byte [di+046d0h]                  ; 8a 85 d0 46
    25672567    out DX, AL                                ; ee
    25682568    inc bx                                    ; 43
    25692569    jmp short 011f7h                          ; eb dc
    25702570    mov bx, cx                                ; 89 cb
    2571     mov al, byte [bx+046d1h]                  ; 8a 87 d1 46
     2571    mov al, byte [bx+046cfh]                  ; 8a 87 cf 46
    25722572    mov dx, 003c2h                            ; ba c2 03
    25732573    out DX, AL                                ; ee
     
    25852585    mov CL, strict byte 003h                  ; b1 03
    25862586    sal bx, CL                                ; d3 e3
    2587     cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
     2587    cmp byte [bx+04633h], 000h                ; 80 bf 33 46 00
    25882588    jne short 0125ah                          ; 75 13
    2589     mov es, [bx+04638h]                       ; 8e 87 38 46
     2589    mov es, [bx+04636h]                       ; 8e 87 36 46
    25902590    mov cx, 04000h                            ; b9 00 40
    25912591    mov ax, 00720h                            ; b8 20 07
     
    25972597    cmp byte [bp-00ch], 00dh                  ; 80 7e f4 0d
    25982598    jnc short 01272h                          ; 73 12
    2599     mov es, [bx+04638h]                       ; 8e 87 38 46
     2599    mov es, [bx+04636h]                       ; 8e 87 36 46
    26002600    mov cx, 04000h                            ; b9 00 40
    26012601    xor ax, ax                                ; 31 c0
     
    26152615    mov AL, strict byte 00fh                  ; b0 0f
    26162616    out DX, AL                                ; ee
    2617     mov es, [bx+04638h]                       ; 8e 87 38 46
     2617    mov es, [bx+04636h]                       ; 8e 87 36 46
    26182618    mov cx, 08000h                            ; b9 00 80
    26192619    xor ax, ax                                ; 31 c0
     
    26372637    mov CL, strict byte 006h                  ; b1 06
    26382638    sal bx, CL                                ; d3 e3
    2639     mov bx, word [bx+046cbh]                  ; 8b 9f cb 46
     2639    mov bx, word [bx+046c9h]                  ; 8b 9f c9 46
    26402640    mov dx, strict word 0004ch                ; ba 4c 00
    26412641    mov ax, strict word 00040h                ; b8 40 00
     
    26782678    call 031a9h                               ; e8 7a 1e
    26792679    mov cx, ds                                ; 8c d9
    2680     mov bx, 053d6h                            ; bb d6 53
     2680    mov bx, 053d4h                            ; bb d4 53
    26812681    mov dx, 000a8h                            ; ba a8 00
    26822682    mov ax, strict word 00040h                ; b8 40 00
     
    26942694    mov CL, strict byte 003h                  ; b1 03
    26952695    sal bx, CL                                ; d3 e3
    2696     cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
     2696    cmp byte [bx+04633h], 000h                ; 80 bf 33 46 00
    26972697    jne short 0136ch                          ; 75 09
    26982698    mov dx, strict word 00007h                ; ba 07 00
     
    27152715    mov CL, strict byte 003h                  ; b1 03
    27162716    sal bx, CL                                ; d3 e3
    2717     cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
     2717    cmp byte [bx+04633h], 000h                ; 80 bf 33 46 00
    27182718    jne short 013a6h                          ; 75 10
    27192719    xor bl, bl                                ; 30 db
     
    27252725    mov AH, strict byte 011h                  ; b4 11
    27262726    int 010h                                  ; cd 10
    2727     mov dx, 057f2h                            ; ba f2 57
     2727    mov dx, 057f0h                            ; ba f0 57
    27282728    mov ax, strict word 0001fh                ; b8 1f 00
    27292729    call 00a00h                               ; e8 51 f6
     
    27352735    cmp ax, strict word 00008h                ; 3d 08 00
    27362736    jne short 013d6h                          ; 75 15
    2737     mov dx, 053f2h                            ; ba f2 53
     2737    mov dx, 053f0h                            ; ba f0 53
    27382738    mov ax, strict word 00043h                ; b8 43 00
    27392739    call 00a00h                               ; e8 36 f6
    27402740    jmp short 013d6h                          ; eb 0a
    2741     mov dx, 05bf2h                            ; ba f2 5b
     2741    mov dx, 05bf0h                            ; ba f0 5b
    27422742    jmp short 013c4h                          ; eb f3
    2743     mov dx, 069f2h                            ; ba f2 69
     2743    mov dx, 069f0h                            ; ba f0 69
    27442744    jmp short 013c4h                          ; eb ee
    27452745    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    31303130    mul bx                                    ; f7 e3
    31313131    mov word [bp-01ah], ax                    ; 89 46 e6
    3132     cmp byte [di+04635h], 000h                ; 80 bd 35 46 00
     3132    cmp byte [di+04633h], 000h                ; 80 bd 33 46 00
    31333133    jne short 01766h                          ; 75 50
    31343134    sal ax, 1                                 ; d1 e0
     
    31573157    xor al, ch                                ; 30 e8
    31583158    add ax, strict word 00020h                ; 05 20 00
    3159     mov es, [di+04638h]                       ; 8e 85 38 46
     3159    mov es, [di+04636h]                       ; 8e 85 36 46
    31603160    mov cx, word [bp-01ah]                    ; 8b 4e e6
    31613161    mov di, bx                                ; 89 df
     
    32023202    mov si, ax                                ; 89 c6
    32033203    sal si, CL                                ; d3 e6
    3204     mov es, [si+04638h]                       ; 8e 84 38 46
     3204    mov es, [si+04636h]                       ; 8e 84 36 46
    32053205    mov cx, word [bp-022h]                    ; 8b 4e de
    32063206    mov ax, di                                ; 89 f8
     
    32263226    mov si, ax                                ; 89 c6
    32273227    sal si, CL                                ; d3 e6
    3228     mov ax, word [si+04638h]                  ; 8b 84 38 46
     3228    mov ax, word [si+04636h]                  ; 8b 84 36 46
    32293229    mov word [bp-022h], ax                    ; 89 46 de
    32303230    mov ax, word [bp-016h]                    ; 8b 46 ea
     
    32783278    mov si, ax                                ; 89 c6
    32793279    sal si, CL                                ; d3 e6
    3280     mov si, word [si+04638h]                  ; 8b b4 38 46
     3280    mov si, word [si+04636h]                  ; 8b b4 36 46
    32813281    mov cx, di                                ; 89 f9
    32823282    mov ax, word [bp-022h]                    ; 8b 46 de
     
    33063306    mov si, ax                                ; 89 c6
    33073307    sal si, CL                                ; d3 e6
    3308     mov ax, word [si+04638h]                  ; 8b 84 38 46
     3308    mov ax, word [si+04636h]                  ; 8b 84 36 46
    33093309    mov word [bp-014h], ax                    ; 89 46 ec
    33103310    mov ax, word [bp-016h]                    ; 8b 46 ea
     
    33303330    dec word [bp-016h]                        ; ff 4e ea
    33313331    jmp near 01835h                           ; e9 3e ff
    3332     mov al, byte [si+046b4h]                  ; 8a 84 b4 46
     3332    mov al, byte [si+046b2h]                  ; 8a 84 b2 46
    33333333    xor ah, ah                                ; 30 e4
    33343334    mov CL, strict byte 006h                  ; b1 06
    33353335    mov si, ax                                ; 89 c6
    33363336    sal si, CL                                ; d3 e6
    3337     mov al, byte [si+046cah]                  ; 8a 84 ca 46
     3337    mov al, byte [si+046c8h]                  ; 8a 84 c8 46
    33383338    mov byte [bp-012h], al                    ; 88 46 ee
    3339     mov al, byte [di+04636h]                  ; 8a 85 36 46
     3339    mov al, byte [di+04634h]                  ; 8a 85 34 46
    33403340    cmp AL, strict byte 004h                  ; 3c 04
    33413341    je short 0191dh                           ; 74 0b
     
    33793379    mov CL, strict byte 003h                  ; b1 03
    33803380    sal bx, CL                                ; d3 e3
    3381     mov bx, word [bx+04638h]                  ; 8b 9f 38 46
     3381    mov bx, word [bx+04636h]                  ; 8b 9f 36 46
    33823382    mov cx, ax                                ; 89 c1
    33833383    mov ax, dx                                ; 89 d0
     
    34933493    dec word [bp-016h]                        ; ff 4e ea
    34943494    jmp short 01a10h                          ; eb 8b
    3495     mov bl, byte [di+04637h]                  ; 8a 9d 37 46
     3495    mov bl, byte [di+04635h]                  ; 8a 9d 35 46
    34963496    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    34973497    jne short 01acfh                          ; 75 40
     
    35143514    mov dl, byte [bp-008h]                    ; 8a 56 f8
    35153515    xor dh, dh                                ; 30 f6
    3516     mov es, [di+04638h]                       ; 8e 85 38 46
     3516    mov es, [di+04636h]                       ; 8e 85 36 46
    35173517    mov cx, ax                                ; 89 c1
    35183518    mov ax, dx                                ; 89 d0
     
    36393639    cmp byte [bp+006h], 00eh                  ; 80 7e 06 0e
    36403640    jne short 01bf4h                          ; 75 0a
    3641     mov di, 05bf2h                            ; bf f2 5b
     3641    mov di, 05bf0h                            ; bf f0 5b
    36423642    jmp short 01bf7h                          ; eb 08
    3643     mov di, 069f2h                            ; bf f2 69
     3643    mov di, 069f0h                            ; bf f0 69
    36443644    jmp short 01bf7h                          ; eb 03
    3645     mov di, 053f2h                            ; bf f2 53
     3645    mov di, 053f0h                            ; bf f0 53
    36463646    xor ah, ah                                ; 30 e4
    36473647    mov bx, ax                                ; 89 c3
     
    37413741    mov byte [bp-008h], al                    ; 88 46 f8
    37423742    mov byte [bp-00ah], dl                    ; 88 56 f6
    3743     mov si, 053f2h                            ; be f2 53
     3743    mov si, 053f0h                            ; be f0 53
    37443744    xor bh, bh                                ; 30 ff
    37453745    mov al, byte [bp+006h]                    ; 8a 46 06
     
    38793879    mov byte [bp-006h], bl                    ; 88 5e fa
    38803880    mov al, cl                                ; 88 c8
    3881     mov si, 053f2h                            ; be f2 53
     3881    mov si, 053f0h                            ; be f0 53
    38823882    xor ah, ah                                ; 30 e4
    38833883    mov bl, byte [bp+004h]                    ; 8a 5e 04
     
    39943994    mov di, ax                                ; 89 c7
    39953995    sal di, CL                                ; d3 e7
    3996     cmp byte [di+04635h], 000h                ; 80 bd 35 46 00
     3996    cmp byte [di+04633h], 000h                ; 80 bd 33 46 00
    39973997    jne short 01f67h                          ; 75 49
    39983998    mov ax, bx                                ; 89 d8
     
    40214021    mov word [bp-01ch], bx                    ; 89 5e e4
    40224022    mov ax, word [bp-01ch]                    ; 8b 46 e4
    4023     mov es, [di+04638h]                       ; 8e 85 38 46
     4023    mov es, [di+04636h]                       ; 8e 85 36 46
    40244024    mov cx, si                                ; 89 f1
    40254025    mov di, dx                                ; 89 d7
     
    40294029    jmp near 02034h                           ; e9 cd 00
    40304030    mov bx, ax                                ; 89 c3
    4031     mov al, byte [bx+046b4h]                  ; 8a 87 b4 46
     4031    mov al, byte [bx+046b2h]                  ; 8a 87 b2 46
    40324032    mov CL, strict byte 006h                  ; b1 06
    40334033    mov bx, ax                                ; 89 c3
    40344034    sal bx, CL                                ; d3 e3
    4035     mov al, byte [bx+046cah]                  ; 8a 87 ca 46
     4035    mov al, byte [bx+046c8h]                  ; 8a 87 c8 46
    40364036    mov byte [bp-010h], al                    ; 88 46 f0
    4037     mov al, byte [di+04637h]                  ; 8a 85 37 46
     4037    mov al, byte [di+04635h]                  ; 8a 85 35 46
    40384038    mov byte [bp-00ah], al                    ; 88 46 f6
    40394039    dec si                                    ; 4e
     
    40494049    mov bx, ax                                ; 89 c3
    40504050    sal bx, CL                                ; d3 e3
    4051     mov al, byte [bx+04636h]                  ; 8a 87 36 46
     4051    mov al, byte [bx+04634h]                  ; 8a 87 34 46
    40524052    cmp al, cl                                ; 38 c8
    40534053    jc short 01fb2h                           ; 72 0d
     
    41654165    mov CL, strict byte 003h                  ; b1 03
    41664166    sal bx, CL                                ; d3 e3
    4167     cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
     4167    cmp byte [bx+04633h], 000h                ; 80 bf 33 46 00
    41684168    jne short 02102h                          ; 75 4e
    41694169    mov ax, di                                ; 89 f8
     
    41954195    mov bx, dx                                ; 89 d3
    41964196    sal bx, CL                                ; d3 e3
    4197     mov cx, word [bx+04638h]                  ; 8b 8f 38 46
     4197    mov cx, word [bx+04636h]                  ; 8b 8f 36 46
    41984198    mov bx, ax                                ; 89 c3
    41994199    mov dx, di                                ; 89 fa
     
    42044204    jmp short 020dbh                          ; eb d9
    42054205    mov di, ax                                ; 89 c7
    4206     mov dl, byte [di+046b4h]                  ; 8a 95 b4 46
     4206    mov dl, byte [di+046b2h]                  ; 8a 95 b2 46
    42074207    xor dh, dh                                ; 30 f6
    42084208    mov CL, strict byte 006h                  ; b1 06
    42094209    mov di, dx                                ; 89 d7
    42104210    sal di, CL                                ; d3 e7
    4211     mov al, byte [di+046cah]                  ; 8a 85 ca 46
     4211    mov al, byte [di+046c8h]                  ; 8a 85 c8 46
    42124212    mov byte [bp-012h], al                    ; 88 46 ee
    4213     mov al, byte [bx+04637h]                  ; 8a 87 37 46
     4213    mov al, byte [bx+04635h]                  ; 8a 87 35 46
    42144214    mov byte [bp-010h], al                    ; 88 46 f0
    42154215    dec si                                    ; 4e
     
    42244224    mov bx, dx                                ; 89 d3
    42254225    sal bx, CL                                ; d3 e3
    4226     mov bl, byte [bx+04636h]                  ; 8a 9f 36 46
     4226    mov bl, byte [bx+04634h]                  ; 8a 9f 34 46
    42274227    cmp bl, cl                                ; 38 cb
    42284228    jc short 0214dh                           ; 72 0e
     
    43104310    mov bx, ax                                ; 89 c3
    43114311    sal bx, CL                                ; d3 e3
    4312     cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
     4312    cmp byte [bx+04633h], 000h                ; 80 bf 33 46 00
    43134313    je short 02219h                           ; 74 18
    4314     mov al, byte [bx+04636h]                  ; 8a 87 36 46
     4314    mov al, byte [bx+04634h]                  ; 8a 87 34 46
    43154315    cmp al, cl                                ; 38 c8
    43164316    jc short 02215h                           ; 72 0c
     
    43734373    mov si, strict word 00050h                ; be 50 00
    43744374    mul si                                    ; f7 e6
    4375     cmp byte [bx+04637h], 002h                ; 80 bf 37 46 02
     4375    cmp byte [bx+04635h], 002h                ; 80 bf 35 46 02
    43764376    jne short 022a4h                          ; 75 09
    43774377    mov bx, word [bp-008h]                    ; 8b 5e f8
     
    43954395    mov si, ax                                ; 89 c6
    43964396    sal si, CL                                ; d3 e6
    4397     cmp byte [si+04637h], 002h                ; 80 bc 37 46 02
     4397    cmp byte [si+04635h], 002h                ; 80 bc 35 46 02
    43984398    jne short 022eeh                          ; 75 1a
    43994399    mov al, byte [bp-008h]                    ; 8a 46 f8
     
    45204520    mov si, bx                                ; 89 de
    45214521    sal si, CL                                ; d3 e6
    4522     cmp byte [si+04635h], 000h                ; 80 bc 35 46 00
     4522    cmp byte [si+04633h], 000h                ; 80 bc 33 46 00
    45234523    jne short 0244ch                          ; 75 46
    45244524    mov ax, word [bp-01ah]                    ; 8b 46 e6
     
    45384538    add cx, ax                                ; 01 c1
    45394539    mov bl, byte [bp-016h]                    ; 8a 5e ea
    4540     mov ax, word [si+04638h]                  ; 8b 84 38 46
     4540    mov ax, word [si+04636h]                  ; 8b 84 36 46
    45414541    mov dx, cx                                ; 89 ca
    45424542    call 031a9h                               ; e8 74 0d
     
    45474547    mov dx, cx                                ; 89 ca
    45484548    inc dx                                    ; 42
    4549     mov ax, word [si+04638h]                  ; 8b 84 38 46
     4549    mov ax, word [si+04636h]                  ; 8b 84 36 46
    45504550    call 031a9h                               ; e8 5f 0d
    45514551    jmp short 02492h                          ; eb 46
    4552     mov bl, byte [bx+046b4h]                  ; 8a 9f b4 46
     4552    mov bl, byte [bx+046b2h]                  ; 8a 9f b2 46
    45534553    mov CL, strict byte 006h                  ; b1 06
    45544554    sal bx, CL                                ; d3 e3
    4555     mov bl, byte [bx+046cah]                  ; 8a 9f ca 46
    4556     mov ah, byte [si+04637h]                  ; 8a a4 37 46
    4557     mov al, byte [si+04636h]                  ; 8a 84 36 46
     4555    mov bl, byte [bx+046c8h]                  ; 8a 9f c8 46
     4556    mov ah, byte [si+04635h]                  ; 8a a4 35 46
     4557    mov al, byte [si+04634h]                  ; 8a 84 34 46
    45584558    cmp AL, strict byte 003h                  ; 3c 03
    45594559    jc short 02470h                           ; 72 0c
     
    46344634    ; dec al                                    ; fe c8
    46354635    mov byte [bp-012h], al                    ; 88 46 ee
    4636     cmp byte [si+04635h], 000h                ; 80 bc 35 46 00
     4636    cmp byte [si+04633h], 000h                ; 80 bc 33 46 00
    46374637    jne short 02569h                          ; 75 51
    46384638    mov ax, word [bp-01ah]                    ; 8b 46 e6
     
    46564656    add dx, ax                                ; 01 c2
    46574657    inc dx                                    ; 42
    4658     mov ax, word [si+04638h]                  ; 8b 84 38 46
     4658    mov ax, word [si+04636h]                  ; 8b 84 36 46
    46594659    call 0319bh                               ; e8 51 0c
    46604660    mov dx, strict word 00001h                ; ba 01 00
     
    49584958    sal di, CL                                ; d3 e7
    49594959    add di, word [bp-00ch]                    ; 03 7e f4
    4960     mov si, 05bf2h                            ; be f2 5b
     4960    mov si, 05bf0h                            ; be f0 5b
    49614961    add si, ax                                ; 01 c6
    49624962    mov cx, strict word 0000eh                ; b9 0e 00
     
    50185018    sal di, CL                                ; d3 e7
    50195019    add di, word [bp-00ch]                    ; 03 7e f4
    5020     add si, 053f2h                            ; 81 c6 f2 53
     5020    add si, 053f0h                            ; 81 c6 f0 53
    50215021    mov cx, strict word 00008h                ; b9 08 00
    50225022    mov dx, 0c000h                            ; ba 00 c0
     
    50775077    sal di, CL                                ; d3 e7
    50785078    add di, word [bp-00ch]                    ; 03 7e f4
    5079     add si, 069f2h                            ; 81 c6 f2 69
     5079    add si, 069f0h                            ; 81 c6 f0 69
    50805080    mov cx, strict word 00010h                ; b9 10 00
    50815081    mov dx, 0c000h                            ; ba 00 c0
     
    52135213    push bx                                   ; 53
    52145214    mov cx, ds                                ; 8c d9
    5215     mov bx, 05388h                            ; bb 88 53
     5215    mov bx, 05386h                            ; bb 86 53
    52165216    mov dx, word [bp-00ah]                    ; 8b 56 f6
    52175217    mov ax, word [bp-008h]                    ; 8b 46 f8
     
    61526152    mov CL, strict byte 003h                  ; b1 03
    61536153    sal bx, CL                                ; d3 e3
    6154     cmp dl, byte [bx+04634h]                  ; 3a 97 34 46
     6154    cmp dl, byte [bx+04632h]                  ; 3a 97 32 46
    61556155    jne short 0317eh                          ; 75 ec
    61566156    mov ah, al                                ; 88 c4
     
    68616861    mov word [es:bx+002h], 04153h             ; 26 c7 47 02 53 41
    68626862    mov word [es:bx+004h], 00200h             ; 26 c7 47 04 00 02
    6863     mov word [es:bx+006h], 07c64h             ; 26 c7 47 06 64 7c
     6863    mov word [es:bx+006h], 07c62h             ; 26 c7 47 06 62 7c
    68646864    mov [es:bx+008h], ds                      ; 26 8c 5f 08
    68656865    mov word [es:bx+00ah], strict word 00001h ; 26 c7 47 0a 01 00
     
    68776877    je short 037fch                           ; 74 24
    68786878    mov word [es:bx+014h], strict word 00003h ; 26 c7 47 14 03 00
    6879     mov word [es:bx+016h], 07c79h             ; 26 c7 47 16 79 7c
     6879    mov word [es:bx+016h], 07c77h             ; 26 c7 47 16 77 7c
    68806880    mov [es:bx+018h], ds                      ; 26 8c 5f 18
    6881     mov word [es:bx+01ah], 07c8ch             ; 26 c7 47 1a 8c 7c
     6881    mov word [es:bx+01ah], 07c8ah             ; 26 c7 47 1a 8a 7c
    68826882    mov [es:bx+01ch], ds                      ; 26 8c 5f 1c
    6883     mov word [es:bx+01eh], 07cadh             ; 26 c7 47 1e ad 7c
     6883    mov word [es:bx+01eh], 07cabh             ; 26 c7 47 1e ab 7c
    68846884    mov [es:bx+020h], ds                      ; 26 8c 5f 20
    68856885    mov dx, cx                                ; 89 ca
     
    74337433  times 235 db 0
    74347434
    7435 section _DATA progbits vstart=0x4600 align=1 ; size=0x372a class=DATA group=DGROUP
    7436 _msg_vga_init:                               ; 0xc4600 LB 0x34
    7437     db  'Oracle VM VirtualBox Version 5.1.0_BETA3 VGA BIOS', 00dh, 00ah, 000h
    7438 _vga_modes:                                  ; 0xc4634 LB 0x80
     7435section _DATA progbits vstart=0x4600 align=1 ; size=0x3726 class=DATA group=DGROUP
     7436_msg_vga_init:                               ; 0xc4600 LB 0x32
     7437    db  'Oracle VM VirtualBox Version 5.1.0_RC1 VGA BIOS', 00dh, 00ah, 000h
     7438_vga_modes:                                  ; 0xc4632 LB 0x80
    74397439    db  000h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h, 001h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h
    74407440    db  002h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h, 003h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h
     
    74457445    db  011h, 001h, 003h, 001h, 000h, 0a0h, 0ffh, 002h, 012h, 001h, 004h, 004h, 000h, 0a0h, 0ffh, 002h
    74467446    db  013h, 001h, 005h, 008h, 000h, 0a0h, 0ffh, 003h, 06ah, 001h, 004h, 004h, 000h, 0a0h, 0ffh, 002h
    7447 _line_to_vpti:                               ; 0xc46b4 LB 0x10
     7447_line_to_vpti:                               ; 0xc46b2 LB 0x10
    74487448    db  017h, 017h, 018h, 018h, 004h, 005h, 006h, 007h, 00dh, 00eh, 011h, 012h, 01ah, 01bh, 01ch, 01dh
    7449 _dac_regs:                                   ; 0xc46c4 LB 0x4
     7449_dac_regs:                                   ; 0xc46c2 LB 0x4
    74507450    dd  0ff3f3f3fh
    7451 _video_param_table:                          ; 0xc46c8 LB 0x780
     7451_video_param_table:                          ; 0xc46c6 LB 0x780
    74527452    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    74537453    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     
    75707570    db  073h, 0e3h, 0ffh, 000h, 001h, 002h, 003h, 004h, 005h, 014h, 007h, 038h, 039h, 03ah, 03bh, 03ch
    75717571    db  03dh, 03eh, 03fh, 001h, 000h, 00fh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 005h, 00fh, 0ffh
    7572 _palette0:                                   ; 0xc4e48 LB 0xc0
     7572_palette0:                                   ; 0xc4e46 LB 0xc0
    75737573    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    75747574    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah
     
    75837583    db  02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh
    75847584    db  03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh
    7585 _palette1:                                   ; 0xc4f08 LB 0xc0
     7585_palette1:                                   ; 0xc4f06 LB 0xc0
    75867586    db  000h, 000h, 000h, 000h, 000h, 02ah, 000h, 02ah, 000h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 02ah
    75877587    db  000h, 02ah, 02ah, 015h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 000h, 000h, 000h, 02ah, 000h, 02ah
     
    75967596    db  015h, 03fh, 03fh, 03fh, 015h, 03fh, 03fh, 03fh, 015h, 015h, 015h, 015h, 015h, 03fh, 015h, 03fh
    75977597    db  015h, 015h, 03fh, 03fh, 03fh, 015h, 015h, 03fh, 015h, 03fh, 03fh, 03fh, 015h, 03fh, 03fh, 03fh
    7598 _palette2:                                   ; 0xc4fc8 LB 0xc0
     7598_palette2:                                   ; 0xc4fc6 LB 0xc0
    75997599    db  000h, 000h, 000h, 000h, 000h, 02ah, 000h, 02ah, 000h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 02ah
    76007600    db  000h, 02ah, 02ah, 02ah, 000h, 02ah, 02ah, 02ah, 000h, 000h, 015h, 000h, 000h, 03fh, 000h, 02ah
     
    76097609    db  015h, 02ah, 03fh, 03fh, 000h, 03fh, 03fh, 02ah, 015h, 015h, 015h, 015h, 015h, 03fh, 015h, 03fh
    76107610    db  015h, 015h, 03fh, 03fh, 03fh, 015h, 015h, 03fh, 015h, 03fh, 03fh, 03fh, 015h, 03fh, 03fh, 03fh
    7611 _palette3:                                   ; 0xc5088 LB 0x300
     7611_palette3:                                   ; 0xc5086 LB 0x300
    76127612    db  000h, 000h, 000h, 000h, 000h, 02ah, 000h, 02ah, 000h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 02ah
    76137613    db  000h, 02ah, 02ah, 015h, 000h, 02ah, 02ah, 02ah, 015h, 015h, 015h, 015h, 015h, 03fh, 015h, 03fh
     
    76587658    db  00fh, 010h, 00bh, 00dh, 010h, 00bh, 00ch, 010h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    76597659    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7660 _static_functionality:                       ; 0xc5388 LB 0x10
     7660_static_functionality:                       ; 0xc5386 LB 0x10
    76617661    db  0ffh, 0e0h, 00fh, 000h, 000h, 000h, 000h, 007h, 002h, 008h, 0e7h, 00ch, 000h, 000h, 000h, 000h
    7662 _dcc_table:                                  ; 0xc5398 LB 0x24
     7662_dcc_table:                                  ; 0xc5396 LB 0x24
    76637663    db  010h, 001h, 007h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    76647664    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    76657665    db  000h, 000h, 000h, 000h
    7666 _secondary_save_area:                        ; 0xc53bc LB 0x1a
    7667     db  01ah, 000h, 098h, 053h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7666_secondary_save_area:                        ; 0xc53ba LB 0x1a
     7667    db  01ah, 000h, 096h, 053h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    76687668    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7669 _video_save_pointer_table:                   ; 0xc53d6 LB 0x1c
    7670     db  0c8h, 046h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7671     db  0bch, 053h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7672 _vgafont8:                                   ; 0xc53f2 LB 0x800
     7669_video_save_pointer_table:                   ; 0xc53d4 LB 0x1c
     7670    db  0c6h, 046h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7671    db  0bah, 053h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7672_vgafont8:                                   ; 0xc53f0 LB 0x800
    76737673    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07eh, 081h, 0a5h, 081h, 0bdh, 099h, 081h, 07eh
    76747674    db  07eh, 0ffh, 0dbh, 0ffh, 0c3h, 0e7h, 0ffh, 07eh, 06ch, 0feh, 0feh, 0feh, 07ch, 038h, 010h, 000h
     
    77997799    db  078h, 06ch, 06ch, 06ch, 06ch, 000h, 000h, 000h, 070h, 018h, 030h, 060h, 078h, 000h, 000h, 000h
    78007800    db  000h, 000h, 03ch, 03ch, 03ch, 03ch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7801 _vgafont14:                                  ; 0xc5bf2 LB 0xe00
     7801_vgafont14:                                  ; 0xc5bf0 LB 0xe00
    78027802    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    78037803    db  07eh, 081h, 0a5h, 081h, 081h, 0bdh, 099h, 081h, 07eh, 000h, 000h, 000h, 000h, 000h, 07eh, 0ffh
     
    80248024    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07ch, 07ch, 07ch, 07ch, 07ch, 07ch, 000h, 000h
    80258025    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8026 _vgafont16:                                  ; 0xc69f2 LB 0x1000
     8026_vgafont16:                                  ; 0xc69f0 LB 0x1000
    80278027    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    80288028    db  000h, 000h, 07eh, 081h, 0a5h, 081h, 081h, 0bdh, 099h, 081h, 081h, 07eh, 000h, 000h, 000h, 000h
     
    82818281    db  000h, 000h, 000h, 000h, 07ch, 07ch, 07ch, 07ch, 07ch, 07ch, 07ch, 000h, 000h, 000h, 000h, 000h
    82828282    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8283 _vgafont14alt:                               ; 0xc79f2 LB 0x12d
     8283_vgafont14alt:                               ; 0xc79f0 LB 0x12d
    82848284    db  01dh, 000h, 000h, 000h, 000h, 024h, 066h, 0ffh, 066h, 024h, 000h, 000h, 000h, 000h, 000h, 022h
    82858285    db  000h, 063h, 063h, 063h, 022h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 02bh, 000h
     
    83018301    db  000h, 018h, 018h, 018h, 0ffh, 018h, 018h, 018h, 000h, 0ffh, 000h, 000h, 000h, 0f6h, 000h, 000h
    83028302    db  018h, 018h, 000h, 000h, 0ffh, 000h, 000h, 018h, 018h, 000h, 000h, 000h, 000h
    8303 _vgafont16alt:                               ; 0xc7b1f LB 0x145
     8303_vgafont16alt:                               ; 0xc7b1d LB 0x145
    83048304    db  01dh, 000h, 000h, 000h, 000h, 000h, 024h, 066h, 0ffh, 066h, 024h, 000h, 000h, 000h, 000h, 000h
    83058305    db  000h, 030h, 000h, 000h, 03ch, 066h, 0c3h, 0c3h, 0dbh, 0dbh, 0c3h, 0c3h, 066h, 03ch, 000h, 000h
     
    83238323    db  000h, 000h, 0ach, 000h, 0c0h, 0c0h, 0c2h, 0c6h, 0cch, 018h, 030h, 066h, 0ceh, 096h, 03eh, 006h
    83248324    db  006h, 000h, 000h, 000h, 000h
    8325 _vbebios_copyright:                          ; 0xc7c64 LB 0x15
     8325_vbebios_copyright:                          ; 0xc7c62 LB 0x15
    83268326    db  'VirtualBox VESA BIOS', 000h
    8327 _vbebios_vendor_name:                        ; 0xc7c79 LB 0x13
     8327_vbebios_vendor_name:                        ; 0xc7c77 LB 0x13
    83288328    db  'Oracle Corporation', 000h
    8329 _vbebios_product_name:                       ; 0xc7c8c LB 0x21
     8329_vbebios_product_name:                       ; 0xc7c8a LB 0x21
    83308330    db  'Oracle VM VirtualBox VBE Adapter', 000h
    8331 _vbebios_product_revision:                   ; 0xc7cad LB 0x29
    8332     db  'Oracle VM VirtualBox Version 5.1.0_BETA3', 000h
    8333 _vbebios_info_string:                        ; 0xc7cd6 LB 0x2b
     8331_vbebios_product_revision:                   ; 0xc7cab LB 0x27
     8332    db  'Oracle VM VirtualBox Version 5.1.0_RC1', 000h
     8333_vbebios_info_string:                        ; 0xc7cd2 LB 0x2b
    83348334    db  'VirtualBox VBE Display Adapter enabled', 00dh, 00ah, 00dh, 00ah, 000h
    8335 _no_vbebios_info_string:                     ; 0xc7d01 LB 0x29
     8335_no_vbebios_info_string:                     ; 0xc7cfd LB 0x29
    83368336    db  'No VirtualBox VBE support available!', 00dh, 00ah, 00dh, 00ah, 000h
    83378337
    8338 section CONST progbits vstart=0x7d2a align=1 ; size=0x0 class=DATA group=DGROUP
     8338section CONST progbits vstart=0x7d26 align=1 ; size=0x0 class=DATA group=DGROUP
    83398339
    8340 section CONST2 progbits vstart=0x7d2a align=1 ; size=0x0 class=DATA group=DGROUP
     8340section CONST2 progbits vstart=0x7d26 align=1 ; size=0x0 class=DATA group=DGROUP
    83418341
    8342   ; Padding 0x2d6 bytes at 0xc7d2a
     8342  ; Padding 0x2da bytes at 0xc7d26
    83438343    db  001h, 000h, 000h, 000h, 000h, 001h, 000h, 000h, 000h, 000h, 000h, 000h, 02fh, 068h, 06fh, 06dh
    83448344    db  065h, 02fh, 066h, 06dh, 033h, 02fh, 073h, 072h, 063h, 02fh, 076h, 062h, 06fh, 078h, 02fh, 06fh
     
    83868386    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    83878387    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8388     db  000h, 000h, 000h, 000h, 000h, 028h
     8388    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0feh
  • TabularUnified trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative8086.md5sum

    r61733 r62120  
    1 9e6c8253546c094a4368085cde0f88cb *VBoxVgaBios8086.rom
     1454a8ca9b253ba40254ed2882d362fa9 *VBoxVgaBios8086.rom
  • TabularUnified trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.asm

    r61733 r62120  
    988988    db  001h, 000h, 002h, 002h, 003h, 003h, 004h, 004h, 005h, 005h, 00eh, 006h, 00fh, 006h, 000h
    989989_pktacc:                                     ; 0xf006a LB 0xc
    990     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 02bh, 0e1h, 080h, 047h, 090h
     990    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 02bh, 0e6h, 080h, 04ch, 090h
    991991_softrst:                                    ; 0xf0076 LB 0xc
    992992    db  000h, 000h, 000h, 000h, 000h, 000h, 089h, 02dh, 0c8h, 03ah, 0c8h, 03ah
    993993_dskacc:                                     ; 0xf0082 LB 0x2e
    994994    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0f0h, 029h, 0a5h, 02ah, 000h, 000h, 000h, 000h
    995     db  021h, 07fh, 001h, 080h, 019h, 08fh, 0c1h, 08fh, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
     995    db  026h, 07fh, 006h, 080h, 01eh, 08fh, 0c6h, 08fh, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
    996996    db  032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h
    997997
     
    11141114    db   'PCI: Unsupported function AX=%04X BX=%04X called', 00ah, 000h
    11151115
    1116 section CONST2 progbits vstart=0xd8e align=1 ; size=0x400 class=DATA group=DGROUP
    1117 _bios_cvs_version_string:                    ; 0xf0d8e LB 0x18
    1118     db  'VirtualBox 5.1.0_BETA3', 000h, 000h
    1119 _bios_prefix_string:                         ; 0xf0da6 LB 0x8
     1116section CONST2 progbits vstart=0xd8e align=1 ; size=0x3fe class=DATA group=DGROUP
     1117_bios_cvs_version_string:                    ; 0xf0d8e LB 0x16
     1118    db  'VirtualBox 5.1.0_RC1', 000h, 000h
     1119_bios_prefix_string:                         ; 0xf0da4 LB 0x8
    11201120    db  'BIOS: ', 000h, 000h
    1121 _isotag:                                     ; 0xf0dae LB 0x6
     1121_isotag:                                     ; 0xf0dac LB 0x6
    11221122    db  'CD001', 000h
    1123 _eltorito:                                   ; 0xf0db4 LB 0x18
     1123_eltorito:                                   ; 0xf0db2 LB 0x18
    11241124    db  'EL TORITO SPECIFICATION', 000h
    1125 _drivetypes:                                 ; 0xf0dcc LB 0x28
     1125_drivetypes:                                 ; 0xf0dca LB 0x28
    11261126    db  046h, 06ch, 06fh, 070h, 070h, 079h, 000h, 000h, 000h, 000h, 048h, 061h, 072h, 064h, 020h, 044h
    11271127    db  069h, 073h, 06bh, 000h, 043h, 044h, 02dh, 052h, 04fh, 04dh, 000h, 000h, 000h, 000h, 04ch, 041h
    11281128    db  04eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    1129 _scan_to_scanascii:                          ; 0xf0df4 LB 0x37a
     1129_scan_to_scanascii:                          ; 0xf0df2 LB 0x37a
    11301130    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 01bh, 001h, 01bh, 001h, 01bh, 001h
    11311131    db  000h, 001h, 000h, 000h, 031h, 002h, 021h, 002h, 000h, 000h, 000h, 078h, 000h, 000h, 032h, 003h
     
    11841184    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h, 000h, 087h, 000h, 089h, 000h, 08bh, 000h, 000h
    11851185    db  000h, 086h, 000h, 088h, 000h, 08ah, 000h, 08ch, 000h, 000h
    1186 _panic_msg_keyb_buffer_full:                 ; 0xf116e LB 0x20
     1186_panic_msg_keyb_buffer_full:                 ; 0xf116c LB 0x20
    11871187    db  '%s: keyboard input buffer full', 00ah, 000h
    11881188
    1189   ; Padding 0x472 bytes at 0xf118e
    1190   times 1138 db 0
     1189  ; Padding 0x474 bytes at 0xf118c
     1190  times 1140 db 0
    11911191
    11921192section _TEXT progbits vstart=0x1600 align=1 ; size=0x8cb8 class=CODE group=AUTO
     
    14111411    push bp                                   ; 55
    14121412    mov bp, sp                                ; 89 e5
    1413     mov bx, 00da6h                            ; bb a6 0d
     1413    mov bx, 00da4h                            ; bb a4 0d
    14141414    mov cx, ds                                ; 8c d9
    14151415    mov ax, strict word 00004h                ; b8 04 00
     
    14401440    int 010h                                  ; cd 10
    14411441    jmp short 017b7h                          ; eb 03
    1442     call 07ae6h                               ; e8 2f 63
     1442    call 07aebh                               ; e8 34 63
    14431443    mov sp, bp                                ; 89 ec
    14441444    pop bp                                    ; 5d
     
    26952695    lea ax, [bp-03ah]                         ; 8d 46 c6
    26962696    call 05977h                               ; e8 cd 35
    2697     mov bx, 00da6h                            ; bb a6 0d
     2697    mov bx, 00da4h                            ; bb a4 0d
    26982698    mov cx, ds                                ; 8c d9
    26992699    mov ax, strict word 00004h                ; b8 04 00
     
    34463446    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    34473447    jne short 02b52h                          ; 75 1f
    3448     mov bx, 00da6h                            ; bb a6 0d
     3448    mov bx, 00da4h                            ; bb a4 0d
    34493449    mov cx, ds                                ; 8c d9
    34503450    mov ax, strict word 00004h                ; b8 04 00
     
    43094309    cmp cl, 048h                              ; 80 f9 48
    43104310    jbe short 032cdh                          ; 76 2d
    4311     mov bx, 00da6h                            ; bb a6 0d
     4311    mov bx, 00da4h                            ; bb a4 0d
    43124312    mov cx, ds                                ; 8c d9
    43134313    mov ax, strict word 00004h                ; b8 04 00
     
    51375137    mov word [bp+008h], ax                    ; 89 46 08
    51385138    jmp near 03913h                           ; e9 9e fe
    5139     mov bx, 00da6h                            ; bb a6 0d
     5139    mov bx, 00da4h                            ; bb a4 0d
    51405140    mov cx, ds                                ; 8c d9
    51415141    mov ax, strict word 00004h                ; b8 04 00
     
    52355235    cmp ax, strict word 0004ah                ; 3d 4a 00
    52365236    jne short 03b5fh                          ; 75 1f
    5237     mov bx, 00da6h                            ; bb a6 0d
     5237    mov bx, 00da4h                            ; bb a4 0d
    52385238    mov cx, ds                                ; 8c d9
    52395239    mov ax, strict word 00004h                ; b8 04 00
     
    53405340    pop bp                                    ; 5d
    53415341    retn                                      ; c3
    5342     mov bx, 00da6h                            ; bb a6 0d
     5342    mov bx, 00da4h                            ; bb a4 0d
    53435343    mov cx, ds                                ; 8c d9
    53445344    mov ax, strict word 00004h                ; b8 04 00
     
    54815481    jnc short 03dddh                          ; 73 10
    54825482    mov al, byte [bp+di-00825h]               ; 8a 83 db f7
    5483     cmp al, byte [di+00daeh]                  ; 3a 85 ae 0d
     5483    cmp al, byte [di+00dach]                  ; 3a 85 ac 0d
    54845484    je short 03dc7h                           ; 74 f0
    54855485    mov ax, strict word 00005h                ; b8 05 00
     
    54915491    jnc short 03df7h                          ; 73 10
    54925492    mov al, byte [bp+di-0081fh]               ; 8a 83 e1 f7
    5493     cmp al, byte [di+00db4h]                  ; 3a 85 b4 0d
     5493    cmp al, byte [di+00db2h]                  ; 3a 85 b2 0d
    54945494    je short 03de1h                           ; 74 f0
    54955495    mov ax, strict word 00006h                ; b8 06 00
     
    57835783    cmp ax, dx                                ; 39 d0
    57845784    je short 0418ch                           ; 74 29
    5785     mov bx, 00da6h                            ; bb a6 0d
     5785    mov bx, 00da4h                            ; bb a4 0d
    57865786    mov cx, ds                                ; 8c d9
    57875787    mov ax, strict word 00004h                ; b8 04 00
     
    60036003    test al, al                               ; 84 c0
    60046004    je short 043e6h                           ; 74 37
    6005     mov bx, 00da6h                            ; bb a6 0d
     6005    mov bx, 00da4h                            ; bb a4 0d
    60066006    mov cx, ds                                ; 8c d9
    60076007    mov ax, strict word 00004h                ; b8 04 00
     
    61006100    mov word [bp+016h], bx                    ; 89 5e 16
    61016101    jmp near 043eah                           ; e9 38 ff
    6102     mov bx, 00da6h                            ; bb a6 0d
     6102    mov bx, 00da4h                            ; bb a4 0d
    61036103    mov cx, ds                                ; 8c d9
    61046104    mov ax, strict word 00004h                ; b8 04 00
     
    62226222    mov word [bp+016h], strict word 00007h    ; c7 46 16 07 00
    62236223    jmp near 04a75h                           ; e9 39 04
    6224     mov bx, 00da6h                            ; bb a6 0d
     6224    mov bx, 00da4h                            ; bb a4 0d
    62256225    mov cx, ds                                ; 8c d9
    62266226    mov ax, strict word 00004h                ; b8 04 00
     
    63316331    cmp byte [bp-018h], 000h                  ; 80 7e e8 00
    63326332    je short 047c0h                           ; 74 53
    6333     mov bx, 00da6h                            ; bb a6 0d
     6333    mov bx, 00da4h                            ; bb a4 0d
    63346334    mov cx, ds                                ; 8c d9
    63356335    mov ax, strict word 00004h                ; b8 04 00
     
    66366636    je short 04b10h                           ; 74 21
    66376637    mov dx, strict word 00001h                ; ba 01 00
    6638     mov bx, 00da6h                            ; bb a6 0d
     6638    mov bx, 00da4h                            ; bb a4 0d
    66396639    mov cx, ds                                ; 8c d9
    66406640    mov ax, strict word 00004h                ; b8 04 00
    66416641    call 01923h                               ; e8 26 ce
    66426642    imul dx, dx, strict byte 0000ah           ; 6b d2 0a
    6643     add dx, 00dcch                            ; 81 c2 cc 0d
     6643    add dx, 00dcah                            ; 81 c2 ca 0d
    66446644    push dx                                   ; 52
    66456645    push 00494h                               ; 68 94 04
     
    66636663    test al, al                               ; 84 c0
    66646664    je short 04b46h                           ; 74 1b
    6665     mov bx, 00da6h                            ; bb a6 0d
     6665    mov bx, 00da4h                            ; bb a4 0d
    66666666    mov cx, ds                                ; 8c d9
    66676667    mov ax, strict word 00004h                ; b8 04 00
    66686668    call 01923h                               ; e8 ed cd
    6669     push 00de0h                               ; 68 e0 0d
     6669    push 00ddeh                               ; 68 de 0d
    66706670    push 004a8h                               ; 68 a8 04
    66716671    push strict byte 00004h                   ; 6a 04
     
    66756675    test ah, ah                               ; 84 e4
    66766676    je short 04b5ah                           ; 74 10
    6677     mov bx, 00da6h                            ; bb a6 0d
     6677    mov bx, 00da4h                            ; bb a4 0d
    66786678    mov cx, ds                                ; 8c d9
    66796679    mov ax, strict word 00004h                ; b8 04 00
    66806680    call 01923h                               ; e8 ce cd
    6681     push 00deah                               ; 68 ea 0d
     6681    push 00de8h                               ; 68 e8 0d
    66826682    jmp short 04b39h                          ; eb df
    66836683    test bl, 080h                             ; f6 c3 80
    66846684    je short 04b70h                           ; 74 11
    6685     mov bx, 00da6h                            ; bb a6 0d
     6685    mov bx, 00da4h                            ; bb a4 0d
    66866686    mov cx, ds                                ; 8c d9
    66876687    mov ax, strict word 00004h                ; b8 04 00
    66886688    call 01923h                               ; e8 b9 cd
    66896689    push si                                   ; 56
    6690     push 00dd6h                               ; 68 d6 0d
     6690    push 00dd4h                               ; 68 d4 0d
    66916691    jmp short 04b7fh                          ; eb 0f
    6692     mov bx, 00da6h                            ; bb a6 0d
     6692    mov bx, 00da4h                            ; bb a4 0d
    66936693    mov cx, ds                                ; 8c d9
    66946694    mov ax, strict word 00004h                ; b8 04 00
    66956695    call 01923h                               ; e8 a8 cd
    66966696    push si                                   ; 56
    6697     push 00dcch                               ; 68 cc 0d
     6697    push 00dcah                               ; 68 ca 0d
    66986698    push 004bdh                               ; 68 bd 04
    66996699    push strict byte 00004h                   ; 6a 04
     
    67216721    push dx                                   ; 52
    67226722    mov dx, ax                                ; 89 c2
    6723     mov bx, 00da6h                            ; bb a6 0d
     6723    mov bx, 00da4h                            ; bb a4 0d
    67246724    mov cx, ds                                ; 8c d9
    67256725    mov ax, strict word 00004h                ; b8 04 00
     
    67826782    xor ah, ah                                ; 30 e4
    67836783    sar ax, 004h                              ; c1 f8 04
    6784     call 07d0ch                               ; e8 c7 30
     6784    call 07d11h                               ; e8 cc 30
    67856785    cmp byte [bp+004h], 002h                  ; 80 7e 04 02
    67866786    jne short 04c4eh                          ; 75 03
     
    67996799    mov byte [bp-008h], al                    ; 88 46 f8
    68006800    mov byte [bp-00ah], al                    ; 88 46 f6
    6801     mov bx, 00da6h                            ; bb a6 0d
     6801    mov bx, 00da4h                            ; bb a4 0d
    68026802    mov cx, ds                                ; 8c d9
    68036803    mov ax, strict word 00004h                ; b8 04 00
     
    72977297    out DX, AL                                ; ee
    72987298    xor ax, ax                                ; 31 c0
    7299     call 06556h                               ; e8 99 14
     7299    call 0655bh                               ; e8 9e 14
    73007300    mov sp, bp                                ; 89 ec
    73017301    pop bp                                    ; 5d
     
    73927392    test al, al                               ; 84 c0
    73937393    jne short 05189h                          ; 75 19
    7394     mov bx, 00da6h                            ; bb a6 0d
     7394    mov bx, 00da4h                            ; bb a4 0d
    73957395    mov cx, ds                                ; 8c d9
    73967396    mov ax, strict word 00004h                ; b8 04 00
     
    77387738    cmp byte [bp-00ah], 058h                  ; 80 7e f6 58
    77397739    jbe short 05515h                          ; 76 1f
    7740     mov bx, 00da6h                            ; bb a6 0d
     7740    mov bx, 00da4h                            ; bb a4 0d
    77417741    mov cx, ds                                ; 8c d9
    77427742    mov ax, strict word 00004h                ; b8 04 00
     
    77567756    xor ah, ah                                ; 30 e4
    77577757    imul bx, ax, strict byte 0000ah           ; 6b d8 0a
    7758     mov dl, byte [bx+00dfah]                  ; 8a 97 fa 0d
    7759     mov ax, word [bx+00dfah]                  ; 8b 87 fa 0d
     7758    mov dl, byte [bx+00df8h]                  ; 8a 97 f8 0d
     7759    mov ax, word [bx+00df8h]                  ; 8b 87 f8 0d
    77607760    jmp near 055bfh                           ; e9 90 00
    77617761    test AL, strict byte 004h                 ; a8 04
     
    77647764    xor ah, ah                                ; 30 e4
    77657765    imul bx, ax, strict byte 0000ah           ; 6b d8 0a
    7766     mov dl, byte [bx+00df8h]                  ; 8a 97 f8 0d
    7767     mov ax, word [bx+00df8h]                  ; 8b 87 f8 0d
     7766    mov dl, byte [bx+00df6h]                  ; 8a 97 f6 0d
     7767    mov ax, word [bx+00df6h]                  ; 8b 87 f6 0d
    77687768    jmp near 055bfh                           ; e9 79 00
    77697769    mov al, byte [bp-00ch]                    ; 8a 46 f4
     
    77857785    xor ah, ah                                ; 30 e4
    77867786    imul bx, ax, strict byte 0000ah           ; 6b d8 0a
    7787     mov al, byte [bx+00dfch]                  ; 8a 87 fc 0d
     7787    mov al, byte [bx+00dfah]                  ; 8a 87 fa 0d
    77887788    mov dx, ax                                ; 89 c2
    77897789    mov al, byte [bp-00eh]                    ; 8a 46 f2
    77907790    test ax, dx                               ; 85 d0
    77917791    je short 05588h                           ; 74 0a
     7792    mov dl, byte [bx+00df2h]                  ; 8a 97 f2 0d
     7793    mov ax, word [bx+00df2h]                  ; 8b 87 f2 0d
     7794    jmp short 05590h                          ; eb 08
    77927795    mov dl, byte [bx+00df4h]                  ; 8a 97 f4 0d
    77937796    mov ax, word [bx+00df4h]                  ; 8b 87 f4 0d
    7794     jmp short 05590h                          ; eb 08
    7795     mov dl, byte [bx+00df6h]                  ; 8a 97 f6 0d
    7796     mov ax, word [bx+00df6h]                  ; 8b 87 f6 0d
    77977797    shr ax, 008h                              ; c1 e8 08
    77987798    mov byte [bp-00ah], al                    ; 88 46 f6
     
    78017801    xor ah, ah                                ; 30 e4
    78027802    imul bx, ax, strict byte 0000ah           ; 6b d8 0a
    7803     mov al, byte [bx+00dfch]                  ; 8a 87 fc 0d
     7803    mov al, byte [bx+00dfah]                  ; 8a 87 fa 0d
    78047804    mov dx, ax                                ; 89 c2
    78057805    mov al, byte [bp-00eh]                    ; 8a 46 f2
    78067806    test ax, dx                               ; 85 d0
    78077807    je short 055b7h                           ; 74 0a
    7808     mov dl, byte [bx+00df6h]                  ; 8a 97 f6 0d
    7809     mov ax, word [bx+00df6h]                  ; 8b 87 f6 0d
    7810     jmp short 055bfh                          ; eb 08
    78117808    mov dl, byte [bx+00df4h]                  ; 8a 97 f4 0d
    78127809    mov ax, word [bx+00df4h]                  ; 8b 87 f4 0d
     7810    jmp short 055bfh                          ; eb 08
     7811    mov dl, byte [bx+00df2h]                  ; 8a 97 f2 0d
     7812    mov ax, word [bx+00df2h]                  ; 8b 87 f2 0d
    78137813    shr ax, 008h                              ; c1 e8 08
    78147814    mov byte [bp-00ah], al                    ; 88 46 f6
     
    78177817    test dl, dl                               ; 84 d2
    78187818    jne short 055e5h                          ; 75 16
    7819     mov bx, 00da6h                            ; bb a6 0d
     7819    mov bx, 00da4h                            ; bb a4 0d
    78207820    mov cx, ds                                ; 8c d9
    78217821    mov ax, strict word 00004h                ; b8 04 00
     
    80168016    mov word [bp+012h], dx                    ; 89 56 12
    80178017    jmp near 057cch                           ; e9 43 00
    8018     mov bx, 00da6h                            ; bb a6 0d
     8018    mov bx, 00da4h                            ; bb a4 0d
    80198019    mov cx, ds                                ; 8c d9
    80208020    mov ax, strict word 00004h                ; b8 04 00
     
    80278027    call 01966h                               ; e8 c3 c1
    80288028    add sp, strict byte 00006h                ; 83 c4 06
    8029     mov bx, 00da6h                            ; bb a6 0d
     8029    mov bx, 00da4h                            ; bb a4 0d
    80308030    mov cx, ds                                ; 8c d9
    80318031    mov ax, strict word 00004h                ; b8 04 00
     
    84308430    test ax, ax                               ; 85 c0
    84318431    jne short 05b87h                          ; 75 26
    8432     mov bx, 00da6h                            ; bb a6 0d
     8432    mov bx, 00da4h                            ; bb a4 0d
    84338433    mov cx, ds                                ; 8c d9
    84348434    mov ax, strict word 00004h                ; b8 04 00
     
    84618461    cmp ax, dx                                ; 39 d0
    84628462    jbe short 05be5h                          ; 76 30
    8463     mov bx, 00da6h                            ; bb a6 0d
     8463    mov bx, 00da4h                            ; bb a4 0d
    84648464    mov cx, ds                                ; 8c d9
    84658465    mov ax, strict word 00004h                ; b8 04 00
     
    85668566    test dl, dl                               ; 84 d2
    85678567    je short 05d2ch                           ; 74 46
    8568     mov bx, 00da6h                            ; bb a6 0d
     8568    mov bx, 00da4h                            ; bb a4 0d
    85698569    mov cx, ds                                ; 8c d9
    85708570    mov ax, strict word 00004h                ; b8 04 00
     
    85858585    or ah, 00ch                               ; 80 cc 0c
    85868586    jmp near 05e72h                           ; e9 5c 01
    8587     mov bx, 00da6h                            ; bb a6 0d
     8587    mov bx, 00da4h                            ; bb a4 0d
    85888588    mov cx, ds                                ; 8c d9
    85898589    mov ax, strict word 00004h                ; b8 04 00
     
    86908690    mov word [bp+016h], ax                    ; 89 46 16
    86918691    jmp near 05d30h                           ; e9 04 ff
    8692     mov bx, 00da6h                            ; bb a6 0d
     8692    mov bx, 00da4h                            ; bb a4 0d
    86938693    mov cx, ds                                ; 8c d9
    86948694    mov ax, strict word 00004h                ; b8 04 00
     
    87038703    add sp, strict byte 00008h                ; 83 c4 08
    87048704    jmp near 05d2ch                           ; e9 dd fe
    8705     mov bx, 00da6h                            ; bb a6 0d
     8705    mov bx, 00da4h                            ; bb a4 0d
    87068706    mov cx, ds                                ; 8c d9
    87078707    mov ax, strict word 00004h                ; b8 04 00
     
    88138813    mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
    88148814    jmp near 06371h                           ; e9 10 04
    8815     mov bx, 00da6h                            ; bb a6 0d
     8815    mov bx, 00da4h                            ; bb a4 0d
    88168816    mov cx, ds                                ; 8c d9
    88178817    mov ax, strict word 00004h                ; b8 04 00
     
    88658865    cmp dx, word [es:bx+036h]                 ; 26 3b 57 36
    88668866    jc short 0601ch                           ; 72 23
    8867     mov bx, 00da6h                            ; bb a6 0d
     8867    mov bx, 00da4h                            ; bb a4 0d
    88688868    mov cx, ds                                ; 8c d9
    88698869    mov ax, strict word 00004h                ; b8 04 00
     
    89238923    test dl, dl                               ; 84 d2
    89248924    je short 060feh                           ; 74 51
    8925     mov bx, 00da6h                            ; bb a6 0d
     8925    mov bx, 00da4h                            ; bb a4 0d
    89268926    mov cx, ds                                ; 8c d9
    89278927    mov ax, strict word 00004h                ; b8 04 00
     
    91759175    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    91769176    jmp short 06380h                          ; eb c4
    9177 _int14_function:                             ; 0xf63bc LB 0x157
     9177_int14_function:                             ; 0xf63bc LB 0x15c
    91789178    push bp                                   ; 55
    91799179    mov bp, sp                                ; 89 e5
     
    91959195    test si, si                               ; 85 f6
    91969196    jnbe short 063ebh                         ; 77 03
    9197     jmp near 06509h                           ; e9 1e 01
     9197    jmp near 0650eh                           ; e9 23 01
    91989198    mov al, byte [bp+013h]                    ; 8a 46 13
    91999199    cmp AL, strict byte 001h                  ; 3c 01
    92009200    jc short 063ffh                           ; 72 0d
    9201     jbe short 0645ah                          ; 76 66
     9201    jbe short 0645fh                          ; 76 6b
    92029202    cmp AL, strict byte 003h                  ; 3c 03
    9203     je short 06452h                           ; 74 5a
     9203    je short 06457h                           ; 74 5f
    92049204    cmp AL, strict byte 002h                  ; 3c 02
    9205     je short 06455h                           ; 74 59
    9206     jmp near 06503h                           ; e9 04 01
     9205    je short 0645ah                           ; 74 5e
     9206    jmp near 06508h                           ; e9 09 01
    92079207    test al, al                               ; 84 c0
    9208     jne short 06457h                          ; 75 54
     9208    jne short 0645ch                          ; 75 59
    92099209    lea dx, [bx+003h]                         ; 8d 57 03
    92109210    in AL, DX                                 ; ec
     
    92139213    or AL, strict byte 080h                   ; 0c 80
    92149214    out DX, AL                                ; ee
     9215    lea si, [bx+001h]                         ; 8d 77 01
    92159216    mov al, byte [bp+012h]                    ; 8a 46 12
     9217    test AL, strict byte 0e0h                 ; a8 e0
     9218    jne short 06422h                          ; 75 0c
     9219    mov AL, strict byte 017h                  ; b0 17
     9220    mov dx, bx                                ; 89 da
     9221    out DX, AL                                ; ee
     9222    mov AL, strict byte 004h                  ; b0 04
     9223    mov dx, si                                ; 89 f2
     9224    out DX, AL                                ; ee
     9225    jmp short 06439h                          ; eb 17
    92169226    and AL, strict byte 0e0h                  ; 24 e0
    92179227    xor ah, ah                                ; 30 e4
     
    92239233    out DX, AL                                ; ee
    92249234    shr ax, 008h                              ; c1 e8 08
    9225     lea dx, [bx+001h]                         ; 8d 57 01
     9235    mov dx, si                                ; 89 f2
    92269236    out DX, AL                                ; ee
    92279237    mov al, byte [bp+012h]                    ; 8a 46 12
     
    92399249    ; sub ah, ah                                ; 2a e4
    92409250    mov byte [bp+012h], al                    ; 88 46 12
    9241     jmp near 064e4h                           ; e9 9f 00
    9242     mov AL, strict byte 017h                  ; b0 17
    9243     mov dx, bx                                ; 89 da
    9244     out DX, AL                                ; ee
    9245     lea dx, [bx+001h]                         ; 8d 57 01
    9246     mov AL, strict byte 004h                  ; b0 04
    9247     out DX, AL                                ; ee
    9248     jmp short 06427h                          ; eb d5
    9249     jmp near 064f2h                           ; e9 9d 00
    9250     jmp short 064a8h                          ; eb 51
    9251     jmp near 06503h                           ; e9 a9 00
     9251    jmp near 064e9h                           ; e9 92 00
     9252    jmp near 064f7h                           ; e9 9d 00
     9253    jmp short 064adh                          ; eb 51
     9254    jmp near 06508h                           ; e9 a9 00
    92529255    mov dx, strict word 0006ch                ; ba 6c 00
    92539256    mov ax, strict word 00040h                ; b8 40 00
    9254     call 0166ch                               ; e8 09 b2
     9257    call 0166ch                               ; e8 04 b2
    92559258    mov si, ax                                ; 89 c6
    92569259    lea dx, [bx+005h]                         ; 8d 57 05
     
    92609263    and ax, strict word 00060h                ; 25 60 00
    92619264    cmp ax, strict word 00060h                ; 3d 60 00
    9262     je short 0648ah                           ; 74 17
     9265    je short 0648fh                           ; 74 17
    92639266    test cl, cl                               ; 84 c9
    9264     je short 0648ah                           ; 74 13
     9267    je short 0648fh                           ; 74 13
    92659268    mov dx, strict word 0006ch                ; ba 6c 00
    92669269    mov ax, strict word 00040h                ; b8 40 00
    9267     call 0166ch                               ; e8 ec b1
     9270    call 0166ch                               ; e8 e7 b1
    92689271    cmp ax, si                                ; 39 f0
    9269     je short 06465h                           ; 74 e1
     9272    je short 0646ah                           ; 74 e1
    92709273    mov si, ax                                ; 89 c6
    92719274    db  0feh, 0c9h
    92729275    ; dec cl                                    ; fe c9
    9273     jmp short 06465h                          ; eb db
     9276    jmp short 0646ah                          ; eb db
    92749277    test cl, cl                               ; 84 c9
    9275     je short 06494h                           ; 74 06
     9278    je short 06499h                           ; 74 06
    92769279    mov al, byte [bp+012h]                    ; 8a 46 12
    92779280    mov dx, bx                                ; 89 da
     
    92839286    mov byte [bp+013h], al                    ; 88 46 13
    92849287    test cl, cl                               ; 84 c9
    9285     jne short 064e4h                          ; 75 43
     9288    jne short 064e9h                          ; 75 43
    92869289    or AL, strict byte 080h                   ; 0c 80
    92879290    mov byte [bp+013h], al                    ; 88 46 13
    9288     jmp short 064e4h                          ; eb 3c
     9291    jmp short 064e9h                          ; eb 3c
    92899292    mov dx, strict word 0006ch                ; ba 6c 00
    92909293    mov ax, strict word 00040h                ; b8 40 00
    9291     call 0166ch                               ; e8 bb b1
     9294    call 0166ch                               ; e8 b6 b1
    92929295    mov si, ax                                ; 89 c6
    92939296    lea dx, [bx+005h]                         ; 8d 57 05
     
    92969299    ; sub ah, ah                                ; 2a e4
    92979300    test AL, strict byte 001h                 ; a8 01
    9298     jne short 064d4h                          ; 75 17
     9301    jne short 064d9h                          ; 75 17
    92999302    test cl, cl                               ; 84 c9
    9300     je short 064d4h                           ; 74 13
     9303    je short 064d9h                           ; 74 13
    93019304    mov dx, strict word 0006ch                ; ba 6c 00
    93029305    mov ax, strict word 00040h                ; b8 40 00
    9303     call 0166ch                               ; e8 a2 b1
     9306    call 0166ch                               ; e8 9d b1
    93049307    cmp ax, si                                ; 39 f0
    9305     je short 064b3h                           ; 74 e5
     9308    je short 064b8h                           ; 74 e5
    93069309    mov si, ax                                ; 89 c6
    93079310    db  0feh, 0c9h
    93089311    ; dec cl                                    ; fe c9
    9309     jmp short 064b3h                          ; eb df
     9312    jmp short 064b8h                          ; eb df
    93109313    test cl, cl                               ; 84 c9
    9311     je short 064eah                           ; 74 12
     9314    je short 064efh                           ; 74 12
    93129315    mov byte [bp+013h], 000h                  ; c6 46 13 00
    93139316    mov dx, bx                                ; 89 da
     
    93179320    mov byte [bp+012h], al                    ; 88 46 12
    93189321    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    9319     jmp short 0650dh                          ; eb 23
     9322    jmp short 06512h                          ; eb 23
    93209323    lea dx, [bx+005h]                         ; 8d 57 05
    93219324    in AL, DX                                 ; ec
    93229325    db  02ah, 0e4h
    93239326    ; sub ah, ah                                ; 2a e4
    9324     jmp short 064a3h                          ; eb b1
     9327    jmp short 064a8h                          ; eb b1
    93259328    lea dx, [si+005h]                         ; 8d 54 05
    93269329    in AL, DX                                 ; ec
     
    93329335    db  02ah, 0e4h
    93339336    ; sub ah, ah                                ; 2a e4
    9334     jmp short 064e1h                          ; eb de
     9337    jmp short 064e6h                          ; eb de
    93359338    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    9336     jmp short 0650dh                          ; eb 04
     9339    jmp short 06512h                          ; eb 04
    93379340    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    93389341    lea sp, [bp-002h]                         ; 8d 66 fe
     
    93409343    pop bp                                    ; 5d
    93419344    retn                                      ; c3
    9342 timer_wait_:                                 ; 0xf6513 LB 0x43
     9345timer_wait_:                                 ; 0xf6518 LB 0x43
    93439346    push bp                                   ; 55
    93449347    mov bp, sp                                ; 89 e5
     
    93489351    mov bx, strict word 0000fh                ; bb 0f 00
    93499352    xor cx, cx                                ; 31 c9
    9350     call 09f50h                               ; e8 2f 3a
     9353    call 09f50h                               ; e8 2a 3a
    93519354    mov cx, ax                                ; 89 c1
    93529355    mov bx, dx                                ; 89 d3
     
    93609363    adc bx, strict byte 0ffffh                ; 83 d3 ff
    93619364    cmp bx, strict byte 0ffffh                ; 83 fb ff
    9362     jne short 06540h                          ; 75 05
     9365    jne short 06545h                          ; 75 05
    93639366    cmp cx, strict byte 0ffffh                ; 83 f9 ff
    9364     je short 0654fh                           ; 74 0f
     9367    je short 06554h                           ; 74 0f
    93659368    mov dx, strict word 00061h                ; ba 61 00
    93669369    in AL, DX                                 ; ec
     
    93699372    and AL, strict byte 010h                  ; 24 10
    93709373    cmp al, byte [bp-006h]                    ; 3a 46 fa
    9371     jne short 06540h                          ; 75 f3
    9372     jmp short 06530h                          ; eb e1
     9374    jne short 06545h                          ; 75 f3
     9375    jmp short 06535h                          ; eb e1
    93739376    lea sp, [bp-004h]                         ; 8d 66 fc
    93749377    pop cx                                    ; 59
     
    93769379    pop bp                                    ; 5d
    93779380    retn                                      ; c3
    9378 set_enable_a20_:                             ; 0xf6556 LB 0x30
     9381set_enable_a20_:                             ; 0xf655b LB 0x30
    93799382    push bp                                   ; 55
    93809383    mov bp, sp                                ; 89 e5
     
    93899392    mov cl, al                                ; 88 c1
    93909393    test bx, bx                               ; 85 db
    9391     je short 0656fh                           ; 74 05
     9394    je short 06574h                           ; 74 05
    93929395    or AL, strict byte 002h                   ; 0c 02
    93939396    out DX, AL                                ; ee
    9394     jmp short 06572h                          ; eb 03
     9397    jmp short 06577h                          ; eb 03
    93959398    and AL, strict byte 0fdh                  ; 24 fd
    93969399    out DX, AL                                ; ee
    93979400    test cl, 002h                             ; f6 c1 02
    9398     je short 0657ch                           ; 74 05
     9401    je short 06581h                           ; 74 05
    93999402    mov ax, strict word 00001h                ; b8 01 00
    9400     jmp short 0657eh                          ; eb 02
     9403    jmp short 06583h                          ; eb 02
    94019404    xor ax, ax                                ; 31 c0
    94029405    lea sp, [bp-006h]                         ; 8d 66 fa
     
    94069409    pop bp                                    ; 5d
    94079410    retn                                      ; c3
    9408 set_e820_range_:                             ; 0xf6586 LB 0x88
     9411set_e820_range_:                             ; 0xf658b LB 0x88
    94099412    push si                                   ; 56
    94109413    push bp                                   ; 55
     
    94369439    retn 0000ah                               ; c2 0a 00
    94379440    db  0ech, 0e9h, 0d8h, 0c1h, 0c0h, 0bfh, 091h, 090h, 089h, 088h, 083h, 052h, 04fh, 041h, 024h, 000h
    9438     db  018h, 069h, 049h, 066h, 05dh, 066h, 0f2h, 066h, 0f8h, 066h, 0fdh, 066h, 002h, 067h, 0aah, 067h
    9439     db  0d5h, 067h, 0ebh, 066h, 0ebh, 066h, 0a2h, 068h, 0cah, 068h, 0ddh, 068h, 0ech, 068h, 0f2h, 066h
    9440     db  0f3h, 068h
    9441 _int15_function:                             ; 0xf660e LB 0x33c
     9441    db  01dh, 069h, 04eh, 066h, 062h, 066h, 0f7h, 066h, 0fdh, 066h, 002h, 067h, 007h, 067h, 0afh, 067h
     9442    db  0dah, 067h, 0f0h, 066h, 0f0h, 066h, 0a7h, 068h, 0cfh, 068h, 0e2h, 068h, 0f1h, 068h, 0f7h, 066h
     9443    db  0f8h, 068h
     9444_int15_function:                             ; 0xf6613 LB 0x33c
    94429445    push bp                                   ; 55
    94439446    mov bp, sp                                ; 89 e5
     
    94479450    shr ax, 008h                              ; c1 e8 08
    94489451    cmp ax, 000ech                            ; 3d ec 00
    9449     jnbe short 06653h                         ; 77 35
     9452    jnbe short 06658h                         ; 77 35
    94509453    push CS                                   ; 0e
    94519454    pop ES                                    ; 07
    94529455    mov cx, strict word 00011h                ; b9 11 00
    9453     mov di, 065dch                            ; bf dc 65
     9456    mov di, 065e1h                            ; bf e1 65
    94549457    repne scasb                               ; f2 ae
    94559458    sal cx, 1                                 ; d1 e1
    94569459    mov di, cx                                ; 89 cf
    9457     mov si, word [cs:di+065ech]               ; 2e 8b b5 ec 65
     9460    mov si, word [cs:di+065f1h]               ; 2e 8b b5 f1 65
    94589461    mov ax, word [bp+012h]                    ; 8b 46 12
    94599462    xor ah, ah                                ; 30 e4
     
    94689471    xor ah, ah                                ; 30 e4
    94699472    cmp ax, 000c0h                            ; 3d c0 00
    9470     je short 06656h                           ; 74 03
    9471     jmp near 06918h                           ; e9 c2 02
     9473    je short 0665bh                           ; 74 03
     9474    jmp near 0691dh                           ; e9 c2 02
    94729475    or byte [bp+018h], 001h                   ; 80 4e 18 01
    9473     jmp near 068c1h                           ; e9 64 02
     9476    jmp near 068c6h                           ; e9 64 02
    94749477    mov dx, ax                                ; 89 c2
    94759478    cmp ax, strict word 00001h                ; 3d 01 00
    9476     jc short 06672h                           ; 72 0e
    9477     jbe short 06686h                          ; 76 20
     9479    jc short 06677h                           ; 72 0e
     9480    jbe short 0668bh                          ; 76 20
    94789481    cmp ax, strict word 00003h                ; 3d 03 00
    9479     je short 066b3h                           ; 74 48
     9482    je short 066b8h                           ; 74 48
    94809483    cmp ax, strict word 00002h                ; 3d 02 00
    9481     je short 06696h                           ; 74 26
    9482     jmp short 066c0h                          ; eb 4e
     9484    je short 0669bh                           ; 74 26
     9485    jmp short 066c5h                          ; eb 4e
    94839486    test ax, ax                               ; 85 c0
    9484     jne short 066c0h                          ; 75 4a
     9487    jne short 066c5h                          ; 75 4a
    94859488    xor ax, ax                                ; 31 c0
    9486     call 06556h                               ; e8 db fe
     9489    call 0655bh                               ; e8 db fe
    94879490    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    94889491    mov byte [bp+013h], 000h                  ; c6 46 13 00
    9489     jmp near 066ebh                           ; e9 65 00
     9492    jmp near 066f0h                           ; e9 65 00
    94909493    mov ax, strict word 00001h                ; b8 01 00
    9491     call 06556h                               ; e8 ca fe
     9494    call 0655bh                               ; e8 ca fe
    94929495    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    94939496    mov byte [bp+013h], dh                    ; 88 76 13
    9494     jmp near 066ebh                           ; e9 55 00
     9497    jmp near 066f0h                           ; e9 55 00
    94959498    mov dx, 00092h                            ; ba 92 00
    94969499    in AL, DX                                 ; ec
     
    95049507    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    95059508    mov byte [bp+013h], ah                    ; 88 66 13
    9506     jmp near 066ebh                           ; e9 38 00
     9509    jmp near 066f0h                           ; e9 38 00
    95079510    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    95089511    mov byte [bp+013h], ah                    ; 88 66 13
    95099512    mov word [bp+00ch], ax                    ; 89 46 0c
    9510     jmp near 066ebh                           ; e9 2b 00
    9511     mov bx, 00da6h                            ; bb a6 0d
     9513    jmp near 066f0h                           ; e9 2b 00
     9514    mov bx, 00da4h                            ; bb a4 0d
    95129515    mov cx, ds                                ; 8c d9
    95139516    mov ax, strict word 00004h                ; b8 04 00
    9514     call 01923h                               ; e8 58 b2
     9517    call 01923h                               ; e8 53 b2
    95159518    mov ax, word [bp+012h]                    ; 8b 46 12
    95169519    xor ah, ah                                ; 30 e4
     
    95189521    push 0082eh                               ; 68 2e 08
    95199522    push strict byte 00004h                   ; 6a 04
    9520     call 01966h                               ; e8 8d b2
     9523    call 01966h                               ; e8 88 b2
    95219524    add sp, strict byte 00006h                ; 83 c4 06
    95229525    or byte [bp+018h], 001h                   ; 80 4e 18 01
     
    95319534    retn                                      ; c3
    95329535    mov word [bp+018h], dx                    ; 89 56 18
    9533     jmp near 067a4h                           ; e9 ac 00
     9536    jmp near 067a9h                           ; e9 ac 00
    95349537    mov word [bp+018h], dx                    ; 89 56 18
    9535     jmp short 066ebh                          ; eb ee
     9538    jmp short 066f0h                          ; eb ee
    95369539    mov word [bp+018h], cx                    ; 89 4e 18
    9537     jmp short 066e8h                          ; eb e6
     9540    jmp short 066edh                          ; eb e6
    95389541    test byte [bp+012h], 0ffh                 ; f6 46 12 ff
    9539     jne short 06777h                          ; 75 6f
     9542    jne short 0677ch                          ; 75 6f
    95409543    mov dx, 000a0h                            ; ba a0 00
    95419544    mov ax, strict word 00040h                ; b8 40 00
    9542     call 01650h                               ; e8 3f af
     9545    call 01650h                               ; e8 3a af
    95439546    test AL, strict byte 001h                 ; a8 01
    9544     jne short 06774h                          ; 75 5f
     9547    jne short 06779h                          ; 75 5f
    95459548    mov bx, strict word 00001h                ; bb 01 00
    95469549    mov dx, 000a0h                            ; ba a0 00
    95479550    mov ax, strict word 00040h                ; b8 40 00
    9548     call 0165eh                               ; e8 3d af
     9551    call 0165eh                               ; e8 38 af
    95499552    mov bx, word [bp+014h]                    ; 8b 5e 14
    95509553    mov dx, 00098h                            ; ba 98 00
    95519554    mov ax, strict word 00040h                ; b8 40 00
    9552     call 0167ah                               ; e8 4d af
     9555    call 0167ah                               ; e8 48 af
    95539556    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    95549557    mov dx, 0009ah                            ; ba 9a 00
    95559558    mov ax, strict word 00040h                ; b8 40 00
    9556     call 0167ah                               ; e8 41 af
     9559    call 0167ah                               ; e8 3c af
    95579560    mov bx, word [bp+00eh]                    ; 8b 5e 0e
    95589561    mov dx, 0009ch                            ; ba 9c 00
    95599562    mov ax, strict word 00040h                ; b8 40 00
    9560     call 0167ah                               ; e8 35 af
     9563    call 0167ah                               ; e8 30 af
    95619564    mov bx, word [bp+010h]                    ; 8b 5e 10
    95629565    mov dx, 0009eh                            ; ba 9e 00
    95639566    mov ax, strict word 00040h                ; b8 40 00
    9564     call 0167ah                               ; e8 29 af
     9567    call 0167ah                               ; e8 24 af
    95659568    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    95669569    mov dx, 000a1h                            ; ba a1 00
     
    95719574    out DX, AL                                ; ee
    95729575    mov ax, strict word 0000bh                ; b8 0b 00
    9573     call 016ach                               ; e8 48 af
     9576    call 016ach                               ; e8 43 af
    95749577    mov dl, al                                ; 88 c2
    95759578    or dl, 040h                               ; 80 ca 40
    95769579    xor dh, dh                                ; 30 f6
    95779580    mov ax, strict word 0000bh                ; b8 0b 00
    9578     call 016c7h                               ; e8 56 af
    9579     jmp near 066ebh                           ; e9 77 ff
    9580     jmp near 068b8h                           ; e9 41 01
     9581    call 016c7h                               ; e8 51 af
     9582    jmp near 066f0h                           ; e9 77 ff
     9583    jmp near 068bdh                           ; e9 41 01
    95819584    cmp ax, strict word 00001h                ; 3d 01 00
    9582     jne short 06798h                          ; 75 1c
     9585    jne short 0679dh                          ; 75 1c
    95839586    xor bx, bx                                ; 31 db
    95849587    mov dx, 000a0h                            ; ba a0 00
    95859588    mov ax, strict word 00040h                ; b8 40 00
    9586     call 0165eh                               ; e8 d7 ae
     9589    call 0165eh                               ; e8 d2 ae
    95879590    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    95889591    mov ax, strict word 0000bh                ; b8 0b 00
    9589     call 016ach                               ; e8 1b af
     9592    call 016ach                               ; e8 16 af
    95909593    mov dl, al                                ; 88 c2
    95919594    and dl, 0bfh                              ; 80 e2 bf
    9592     jmp short 06769h                          ; eb d1
     9595    jmp short 0676eh                          ; eb d1
    95939596    mov word [bp+018h], dx                    ; 89 56 18
    95949597    mov ax, bx                                ; 89 d8
     
    95989601    or bx, ax                                 ; 09 c3
    95999602    mov word [bp+012h], bx                    ; 89 5e 12
    9600     jmp near 066ebh                           ; e9 41 ff
     9603    jmp near 066f0h                           ; e9 41 ff
    96019604    mov ax, strict word 00031h                ; b8 31 00
    9602     call 016ach                               ; e8 fc ae
     9605    call 016ach                               ; e8 f7 ae
    96039606    xor ah, ah                                ; 30 e4
    96049607    mov dx, ax                                ; 89 c2
    96059608    sal dx, 008h                              ; c1 e2 08
    96069609    mov ax, strict word 00030h                ; b8 30 00
    9607     call 016ach                               ; e8 ef ae
     9610    call 016ach                               ; e8 ea ae
    96089611    xor ah, ah                                ; 30 e4
    96099612    or dx, ax                                 ; 09 c2
    96109613    mov word [bp+012h], dx                    ; 89 56 12
    96119614    cmp dx, strict byte 0ffc0h                ; 83 fa c0
    9612     jbe short 067ceh                          ; 76 05
     9615    jbe short 067d3h                          ; 76 05
    96139616    mov word [bp+012h], strict word 0ffc0h    ; c7 46 12 c0 ff
    96149617    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    9615     jmp near 066ebh                           ; e9 16 ff
     9618    jmp near 066f0h                           ; e9 16 ff
    96169619    cli                                       ; fa
    96179620    mov ax, strict word 00001h                ; b8 01 00
    9618     call 06556h                               ; e8 7a fd
     9621    call 0655bh                               ; e8 7a fd
    96199622    mov dx, word [bp+006h]                    ; 8b 56 06
    96209623    add dx, strict byte 00038h                ; 83 c2 38
    96219624    mov ax, word [bp+014h]                    ; 8b 46 14
    96229625    mov bx, strict word 0ffffh                ; bb ff ff
    9623     call 0167ah                               ; e8 8f ae
     9626    call 0167ah                               ; e8 8a ae
    96249627    mov dx, word [bp+006h]                    ; 8b 56 06
    96259628    add dx, strict byte 0003ah                ; 83 c2 3a
    96269629    mov ax, word [bp+014h]                    ; 8b 46 14
    96279630    xor bx, bx                                ; 31 db
    9628     call 0167ah                               ; e8 81 ae
     9631    call 0167ah                               ; e8 7c ae
    96299632    mov dx, word [bp+006h]                    ; 8b 56 06
    96309633    add dx, strict byte 0003ch                ; 83 c2 3c
    96319634    mov ax, word [bp+014h]                    ; 8b 46 14
    96329635    mov bx, strict word 0000fh                ; bb 0f 00
    9633     call 0165eh                               ; e8 56 ae
     9636    call 0165eh                               ; e8 51 ae
    96349637    mov dx, word [bp+006h]                    ; 8b 56 06
    96359638    add dx, strict byte 0003dh                ; 83 c2 3d
    96369639    mov ax, word [bp+014h]                    ; 8b 46 14
    96379640    mov bx, 0009bh                            ; bb 9b 00
    9638     call 0165eh                               ; e8 47 ae
     9641    call 0165eh                               ; e8 42 ae
    96399642    mov dx, word [bp+006h]                    ; 8b 56 06
    96409643    add dx, strict byte 0003eh                ; 83 c2 3e
    96419644    mov ax, word [bp+014h]                    ; 8b 46 14
    96429645    xor bx, bx                                ; 31 db
    9643     call 0167ah                               ; e8 55 ae
     9646    call 0167ah                               ; e8 50 ae
    96449647    mov AL, strict byte 011h                  ; b0 11
    96459648    mov dx, strict word 00020h                ; ba 20 00
     
    96719674    out DX, AL                                ; ee
    96729675    mov si, word [bp+006h]                    ; 8b 76 06
    9673     call 06866h                               ; e8 00 00
     9676    call 0686bh                               ; e8 00 00
    96749677    pop di                                    ; 5f
    96759678    add di, strict byte 00018h                ; 83 c7 18
     
    96999702    push cx                                   ; 51
    97009703    retf                                      ; cb
    9701     jmp near 066ebh                           ; e9 49 fe
    9702     mov bx, 00da6h                            ; bb a6 0d
     9704    jmp near 066f0h                           ; e9 49 fe
     9705    mov bx, 00da4h                            ; bb a4 0d
    97039706    mov cx, ds                                ; 8c d9
    97049707    mov ax, strict word 00004h                ; b8 04 00
    9705     call 01923h                               ; e8 76 b0
     9708    call 01923h                               ; e8 71 b0
    97069709    push 0086eh                               ; 68 6e 08
    97079710    push strict byte 00004h                   ; 6a 04
    9708     call 01966h                               ; e8 b1 b0
     9711    call 01966h                               ; e8 ac b0
    97099712    add sp, strict byte 00004h                ; 83 c4 04
    97109713    or byte [bp+018h], 001h                   ; 80 4e 18 01
     
    97139716    or ah, 086h                               ; 80 cc 86
    97149717    mov word [bp+012h], ax                    ; 89 46 12
    9715     jmp near 066ebh                           ; e9 21 fe
     9718    jmp near 066f0h                           ; e9 21 fe
    97169719    mov word [bp+018h], cx                    ; 89 4e 18
    97179720    mov word [bp+012h], ax                    ; 89 46 12
    97189721    mov word [bp+00ch], 0e6f5h                ; c7 46 0c f5 e6
    97199722    mov word [bp+014h], 0f000h                ; c7 46 14 00 f0
    9720     jmp near 066ebh                           ; e9 0e fe
     9723    jmp near 066f0h                           ; e9 0e fe
    97219724    mov dx, strict word 0000eh                ; ba 0e 00
    97229725    mov ax, strict word 00040h                ; b8 40 00
    9723     call 0166ch                               ; e8 86 ad
     9726    call 0166ch                               ; e8 81 ad
    97249727    mov word [bp+014h], ax                    ; 89 46 14
    9725     jmp near 067ceh                           ; e9 e2 fe
     9728    jmp near 067d3h                           ; e9 e2 fe
    97269729    push 0089dh                               ; 68 9d 08
    97279730    push strict byte 00008h                   ; 6a 08
    9728     jmp short 068b2h                          ; eb bf
     9731    jmp short 068b7h                          ; eb bf
    97299732    test byte [bp+012h], 0ffh                 ; f6 46 12 ff
    9730     jne short 06918h                          ; 75 1f
     9733    jne short 0691dh                          ; 75 1f
    97319734    mov word [bp+012h], ax                    ; 89 46 12
    97329735    mov ax, word [bp+00ch]                    ; 8b 46 0c
    97339736    xor ah, ah                                ; 30 e4
    97349737    cmp ax, strict word 00001h                ; 3d 01 00
    9735     jc short 06911h                           ; 72 0b
     9738    jc short 06916h                           ; 72 0b
    97369739    cmp ax, strict word 00003h                ; 3d 03 00
    9737     jnbe short 06911h                         ; 77 06
     9740    jnbe short 06916h                         ; 77 06
    97389741    mov word [bp+018h], cx                    ; 89 4e 18
    9739     jmp near 066ebh                           ; e9 da fd
     9742    jmp near 066f0h                           ; e9 da fd
    97409743    or byte [bp+018h], 001h                   ; 80 4e 18 01
    9741     jmp near 066ebh                           ; e9 d3 fd
    9742     mov bx, 00da6h                            ; bb a6 0d
     9744    jmp near 066f0h                           ; e9 d3 fd
     9745    mov bx, 00da4h                            ; bb a4 0d
    97439746    mov cx, ds                                ; 8c d9
    97449747    mov ax, strict word 00004h                ; b8 04 00
    9745     call 01923h                               ; e8 00 b0
     9748    call 01923h                               ; e8 fb af
    97469749    push word [bp+00ch]                       ; ff 76 0c
    97479750    push word [bp+012h]                       ; ff 76 12
    97489751    push 008b4h                               ; 68 b4 08
    97499752    push strict byte 00004h                   ; 6a 04
    9750     call 01966h                               ; e8 35 b0
     9753    call 01966h                               ; e8 30 b0
    97519754    add sp, strict byte 00008h                ; 83 c4 08
    9752     jmp short 068b8h                          ; eb 82
    9753     mov AH, strict byte 06ah                  ; b4 6a
    9754     fldcw [bp+si-007h]                        ; d9 6a f9
    9755     push strict byte 00048h                   ; 6a 48
    9756     imul sp, word [bp+06bh], strict byte 0ff83h ; 6b 66 6b 83
    9757     imul sp, word [di-03895h], strict byte 0006bh ; 6b a5 6b c7 6b
    9758     add AL, strict byte 06ch                  ; 04 6c
    9759     db  038h
     9755    jmp short 068bdh                          ; eb 82
     9756    mov cx, 0de6ah                            ; b9 6a de
     9757    push strict byte 0fffeh                   ; 6a fe
     9758    push strict byte 0004dh                   ; 6a 4d
     9759    imul bp, word [bp+di+06bh], strict byte 0ff88h ; 6b 6b 6b 88
     9760    imul bp, word [bp+si-03395h], strict byte 0006bh ; 6b aa 6b cc 6b
     9761    or word [si+03dh], bp                     ; 09 6c 3d
    97609762    insb                                      ; 6c
    9761 _int15_function32:                           ; 0xf694a LB 0x38a
     9763_int15_function32:                           ; 0xf694f LB 0x38a
    97629764    push bp                                   ; 55
    97639765    mov bp, sp                                ; 89 e5
     
    97719773    xor dh, dh                                ; 30 f6
    97729774    cmp ax, 000e8h                            ; 3d e8 00
    9773     je short 069b1h                           ; 74 4a
     9775    je short 069b6h                           ; 74 4a
    97749776    cmp ax, 000d0h                            ; 3d d0 00
    9775     je short 0697eh                           ; 74 12
     9777    je short 06983h                           ; 74 12
    97769778    cmp ax, 00086h                            ; 3d 86 00
    9777     jne short 069afh                          ; 75 3e
     9779    jne short 069b4h                          ; 75 3e
    97789780    sti                                       ; fb
    97799781    mov dx, word [bp+01ch]                    ; 8b 56 1c
    97809782    mov ax, word [bp+018h]                    ; 8b 46 18
    9781     call 06513h                               ; e8 98 fb
    9782     jmp near 06b42h                           ; e9 c4 01
     9783    call 06518h                               ; e8 98 fb
     9784    jmp near 06b47h                           ; e9 c4 01
    97839785    cmp dx, strict byte 0004fh                ; 83 fa 4f
    9784     jne short 069afh                          ; 75 2c
     9786    jne short 069b4h                          ; 75 2c
    97859787    cmp word [bp+016h], 05052h                ; 81 7e 16 52 50
    9786     jne short 069e5h                          ; 75 5b
     9788    jne short 069eah                          ; 75 5b
    97879789    cmp word [bp+014h], 04f43h                ; 81 7e 14 43 4f
    9788     jne short 069e5h                          ; 75 54
     9790    jne short 069eah                          ; 75 54
    97899791    cmp word [bp+01eh], 04d4fh                ; 81 7e 1e 4f 4d
    9790     jne short 069e5h                          ; 75 4d
     9792    jne short 069eah                          ; 75 4d
    97919793    cmp word [bp+01ch], 04445h                ; 81 7e 1c 45 44
    9792     jne short 069e5h                          ; 75 46
     9794    jne short 069eah                          ; 75 46
    97939795    mov ax, word [bp+00ah]                    ; 8b 46 0a
    97949796    or ax, word [bp+008h]                     ; 0b 46 08
    9795     jne short 069e5h                          ; 75 3e
     9797    jne short 069eah                          ; 75 3e
    97969798    mov ax, word [bp+006h]                    ; 8b 46 06
    97979799    or ax, word [bp+004h]                     ; 0b 46 04
    9798     je short 069b3h                           ; 74 04
    9799     jmp short 069e5h                          ; eb 34
    9800     jmp short 069dbh                          ; eb 28
     9800    je short 069b8h                           ; 74 04
     9801    jmp short 069eah                          ; eb 34
     9802    jmp short 069e0h                          ; eb 28
    98019803    mov word [bp+028h], bx                    ; 89 5e 28
    98029804    mov ax, word [bp+014h]                    ; 8b 46 14
     
    98109812    mov word [bp+020h], 03332h                ; c7 46 20 32 33
    98119813    mov word [bp+022h], 04941h                ; c7 46 22 41 49
    9812     jmp near 06b42h                           ; e9 67 01
     9814    jmp near 06b47h                           ; e9 67 01
    98139815    cmp dx, strict byte 00020h                ; 83 fa 20
    9814     je short 069ebh                           ; 74 0b
     9816    je short 069f0h                           ; 74 0b
    98159817    cmp dx, strict byte 00001h                ; 83 fa 01
    9816     je short 069e8h                           ; 74 03
    9817     jmp near 06b18h                           ; e9 30 01
    9818     jmp near 06c86h                           ; e9 9b 02
     9818    je short 069edh                           ; 74 03
     9819    jmp near 06b1dh                           ; e9 30 01
     9820    jmp near 06c8bh                           ; e9 9b 02
    98199821    cmp word [bp+01ah], 0534dh                ; 81 7e 1a 4d 53
    9820     jne short 069e5h                          ; 75 f3
     9822    jne short 069eah                          ; 75 f3
    98219823    cmp word [bp+018h], 04150h                ; 81 7e 18 50 41
    9822     jne short 069e5h                          ; 75 ec
     9824    jne short 069eah                          ; 75 ec
    98239825    mov ax, strict word 00035h                ; b8 35 00
    9824     call 016ach                               ; e8 ad ac
     9826    call 016ach                               ; e8 a8 ac
    98259827    mov bl, al                                ; 88 c3
    98269828    xor bh, bh                                ; 30 ff
     
    98299831    sal bx, 1                                 ; d1 e3
    98309832    rcl dx, 1                                 ; d1 d2
    9831     loop 06a08h                               ; e2 fa
     9833    loop 06a0dh                               ; e2 fa
    98329834    mov ax, strict word 00034h                ; b8 34 00
    9833     call 016ach                               ; e8 98 ac
     9835    call 016ach                               ; e8 93 ac
    98349836    xor ah, ah                                ; 30 e4
    98359837    mov dx, bx                                ; 89 da
     
    98399841    adc dx, 00100h                            ; 81 d2 00 01
    98409842    cmp dx, 00100h                            ; 81 fa 00 01
    9841     jc short 06a2eh                           ; 72 06
    9842     jne short 06a5ch                          ; 75 32
     9843    jc short 06a33h                           ; 72 06
     9844    jne short 06a61h                          ; 75 32
    98439845    test bx, bx                               ; 85 db
    9844     jnbe short 06a5ch                         ; 77 2e
     9846    jnbe short 06a61h                         ; 77 2e
    98459847    mov ax, strict word 00031h                ; b8 31 00
    9846     call 016ach                               ; e8 78 ac
     9848    call 016ach                               ; e8 73 ac
    98479849    mov bl, al                                ; 88 c3
    98489850    xor bh, bh                                ; 30 ff
     
    98519853    sal bx, 1                                 ; d1 e3
    98529854    rcl dx, 1                                 ; d1 d2
    9853     loop 06a3dh                               ; e2 fa
     9855    loop 06a42h                               ; e2 fa
    98549856    mov ax, strict word 00030h                ; b8 30 00
    9855     call 016ach                               ; e8 63 ac
     9857    call 016ach                               ; e8 5e ac
    98569858    xor ah, ah                                ; 30 e4
    98579859    or bx, ax                                 ; 09 c3
     
    98599861    sal bx, 1                                 ; d1 e3
    98609862    rcl dx, 1                                 ; d1 d2
    9861     loop 06a50h                               ; e2 fa
     9863    loop 06a55h                               ; e2 fa
    98629864    add bx, strict byte 00000h                ; 83 c3 00
    98639865    adc dx, strict byte 00010h                ; 83 d2 10
    98649866    mov ax, strict word 00062h                ; b8 62 00
    9865     call 016ach                               ; e8 4a ac
     9867    call 016ach                               ; e8 45 ac
    98669868    xor ah, ah                                ; 30 e4
    98679869    mov word [bp-00ah], ax                    ; 89 46 f6
     
    98719873    sal word [bp-00ah], 1                     ; d1 66 f6
    98729874    rcl word [bp-008h], 1                     ; d1 56 f8
    9873     loop 06a6fh                               ; e2 f8
     9875    loop 06a74h                               ; e2 f8
    98749876    mov ax, strict word 00061h                ; b8 61 00
    9875     call 016ach                               ; e8 2f ac
     9877    call 016ach                               ; e8 2a ac
    98769878    xor ah, ah                                ; 30 e4
    98779879    or word [bp-00ah], ax                     ; 09 46 f6
     
    98809882    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
    98819883    mov ax, strict word 00063h                ; b8 63 00
    9882     call 016ach                               ; e8 19 ac
     9884    call 016ach                               ; e8 14 ac
    98839885    mov byte [bp-004h], al                    ; 88 46 fc
    98849886    mov byte [bp-006h], al                    ; 88 46 fa
    98859887    mov ax, word [bp+014h]                    ; 8b 46 14
    98869888    cmp ax, strict word 00009h                ; 3d 09 00
    9887     jnbe short 06b18h                         ; 77 77
     9889    jnbe short 06b1dh                         ; 77 77
    98889890    mov si, ax                                ; 89 c6
    98899891    add si, ax                                ; 01 c6
     
    98929894    mov cx, dx                                ; 89 d1
    98939895    adc cx, strict byte 0ffffh                ; 83 d1 ff
    9894     jmp word [cs:si+06936h]                   ; 2e ff a4 36 69
     9896    jmp word [cs:si+0693bh]                   ; 2e ff a4 3b 69
    98959897    push strict byte 00001h                   ; 6a 01
    98969898    push strict byte 00000h                   ; 6a 00
     
    99029904    xor bx, bx                                ; 31 db
    99039905    xor cx, cx                                ; 31 c9
    9904     call 06586h                               ; e8 ba fa
     9906    call 0658bh                               ; e8 ba fa
    99059907    mov word [bp+014h], strict word 00001h    ; c7 46 14 01 00
    99069908    mov word [bp+016h], strict word 00000h    ; c7 46 16 00 00
    9907     jmp near 06c6bh                           ; e9 92 01
     9909    jmp near 06c70h                           ; e9 92 01
    99089910    push strict byte 00002h                   ; 6a 02
    99099911    push strict byte 00000h                   ; 6a 00
     
    99159917    mov bx, 0fc00h                            ; bb 00 fc
    99169918    mov cx, strict word 00009h                ; b9 09 00
    9917     call 06586h                               ; e8 94 fa
     9919    call 0658bh                               ; e8 94 fa
    99189920    mov word [bp+014h], strict word 00002h    ; c7 46 14 02 00
    9919     jmp short 06ad1h                          ; eb d8
     9921    jmp short 06ad6h                          ; eb d8
    99209922    push strict byte 00002h                   ; 6a 02
    99219923    push strict byte 00000h                   ; 6a 00
     
    99279929    xor bx, bx                                ; 31 db
    99289930    mov cx, strict word 0000fh                ; b9 0f 00
    9929     call 06586h                               ; e8 75 fa
     9931    call 0658bh                               ; e8 75 fa
    99309932    mov word [bp+014h], strict word 00003h    ; c7 46 14 03 00
    9931     jmp short 06ad1h                          ; eb b9
    9932     mov bx, 00da6h                            ; bb a6 0d
     9933    jmp short 06ad6h                          ; eb b9
     9934    mov bx, 00da4h                            ; bb a4 0d
    99339935    mov cx, ds                                ; 8c d9
    99349936    mov ax, strict word 00004h                ; b8 04 00
    9935     call 01923h                               ; e8 00 ae
     9937    call 01923h                               ; e8 fb ad
    99369938    push word [bp+014h]                       ; ff 76 14
    99379939    push word [bp+020h]                       ; ff 76 20
    99389940    push 008b4h                               ; 68 b4 08
    99399941    push strict byte 00004h                   ; 6a 04
    9940     call 01966h                               ; e8 35 ae
     9942    call 01966h                               ; e8 30 ae
    99419943    add sp, strict byte 00008h                ; 83 c4 08
    99429944    or byte [bp+028h], 001h                   ; 80 4e 28 01
     
    99589960    xor bx, bx                                ; 31 db
    99599961    mov cx, strict word 00010h                ; b9 10 00
    9960     call 06586h                               ; e8 28 fa
     9962    call 0658bh                               ; e8 28 fa
    99619963    mov word [bp+014h], strict word 00004h    ; c7 46 14 04 00
    9962     jmp near 06ad1h                           ; e9 6b ff
     9964    jmp near 06ad6h                           ; e9 6b ff
    99639965    push strict byte 00003h                   ; 6a 03
    99649966    push strict byte 00000h                   ; 6a 00
     
    99709972    mov bx, ax                                ; 89 c3
    99719973    mov ax, si                                ; 89 f0
    9972     call 06586h                               ; e8 0b fa
     9974    call 0658bh                               ; e8 0b fa
    99739975    mov word [bp+014h], strict word 00005h    ; c7 46 14 05 00
    9974     jmp near 06ad1h                           ; e9 4e ff
     9976    jmp near 06ad6h                           ; e9 4e ff
    99759977    push strict byte 00002h                   ; 6a 02
    99769978    push strict byte 00000h                   ; 6a 00
     
    99829984    xor bx, bx                                ; 31 db
    99839985    mov cx, 0fec0h                            ; b9 c0 fe
    9984     call 06586h                               ; e8 e9 f9
     9986    call 0658bh                               ; e8 e9 f9
    99859987    mov word [bp+014h], strict word 00006h    ; c7 46 14 06 00
    9986     jmp near 06ad1h                           ; e9 2c ff
     9988    jmp near 06ad6h                           ; e9 2c ff
    99879989    push strict byte 00002h                   ; 6a 02
    99889990    push strict byte 00000h                   ; 6a 00
     
    99949996    xor bx, bx                                ; 31 db
    99959997    mov cx, 0fee0h                            ; b9 e0 fe
    9996     call 06586h                               ; e8 c7 f9
     9998    call 0658bh                               ; e8 c7 f9
    99979999    mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
    9998     jmp near 06ad1h                           ; e9 0a ff
     10000    jmp near 06ad6h                           ; e9 0a ff
    999910001    push strict byte 00002h                   ; 6a 02
    1000010002    push strict byte 00000h                   ; 6a 00
     
    1000610008    xor bx, bx                                ; 31 db
    1000710009    mov cx, strict word 0fffch                ; b9 fc ff
    10008     call 06586h                               ; e8 a7 f9
     10010    call 0658bh                               ; e8 a7 f9
    1000910011    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    10010     jne short 06bech                          ; 75 07
     10012    jne short 06bf1h                          ; 75 07
    1001110013    mov ax, word [bp-008h]                    ; 8b 46 f8
    1001210014    test ax, ax                               ; 85 c0
    10013     je short 06bfch                           ; 74 10
     10015    je short 06c01h                           ; 74 10
    1001410016    mov word [bp+014h], strict word 00009h    ; c7 46 14 09 00
    10015     jmp near 06ad1h                           ; e9 dd fe
     10017    jmp near 06ad6h                           ; e9 dd fe
    1001610018    mov word [bp+014h], strict word 00008h    ; c7 46 14 08 00
    10017     jmp near 06ad1h                           ; e9 d5 fe
     10019    jmp near 06ad6h                           ; e9 d5 fe
    1001810020    mov word [bp+014h], ax                    ; 89 46 14
    1001910021    mov word [bp+016h], ax                    ; 89 46 16
    10020     jmp short 06c6bh                          ; eb 67
     10022    jmp short 06c70h                          ; eb 67
    1002110023    push strict byte 00002h                   ; 6a 02
    1002210024    push strict byte 00000h                   ; 6a 00
     
    1002810030    xor bx, bx                                ; 31 db
    1002910031    xor cx, cx                                ; 31 c9
    10030     call 06586h                               ; e8 6b f9
     10032    call 0658bh                               ; e8 6b f9
    1003110033    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    10032     jne short 06c28h                          ; 75 07
     10034    jne short 06c2dh                          ; 75 07
    1003310035    mov ax, word [bp-008h]                    ; 8b 46 f8
    1003410036    test ax, ax                               ; 85 c0
    10035     je short 06c30h                           ; 74 08
     10037    je short 06c35h                           ; 74 08
    1003610038    mov word [bp+014h], strict word 00009h    ; c7 46 14 09 00
    10037     jmp near 06ad1h                           ; e9 a1 fe
     10039    jmp near 06ad6h                           ; e9 a1 fe
    1003810040    mov word [bp+014h], ax                    ; 89 46 14
    1003910041    mov word [bp+016h], ax                    ; 89 46 16
    10040     jmp short 06c6bh                          ; eb 33
     10042    jmp short 06c70h                          ; eb 33
    1004110043    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    10042     jne short 06c44h                          ; 75 06
     10044    jne short 06c49h                          ; 75 06
    1004310045    cmp word [bp-008h], strict byte 00000h    ; 83 7e f8 00
    10044     je short 06c6bh                           ; 74 27
     10046    je short 06c70h                           ; 74 27
    1004510047    push strict byte 00001h                   ; 6a 01
    1004610048    mov al, byte [bp-006h]                    ; 8a 46 fa
     
    1005610058    xor bx, bx                                ; 31 db
    1005710059    xor cx, cx                                ; 31 c9
    10058     call 06586h                               ; e8 23 f9
     10060    call 0658bh                               ; e8 23 f9
    1005910061    xor ax, ax                                ; 31 c0
    1006010062    mov word [bp+014h], ax                    ; 89 46 14
     
    1006510067    mov word [bp+01eh], strict word 00000h    ; c7 46 1e 00 00
    1006610068    and byte [bp+028h], 0feh                  ; 80 66 28 fe
    10067     jmp near 06b42h                           ; e9 bc fe
     10069    jmp near 06b47h                           ; e9 bc fe
    1006810070    mov word [bp+028h], bx                    ; 89 5e 28
    1006910071    mov ax, strict word 00031h                ; b8 31 00
    10070     call 016ach                               ; e8 1d aa
     10072    call 016ach                               ; e8 18 aa
    1007110073    xor ah, ah                                ; 30 e4
    1007210074    mov dx, ax                                ; 89 c2
    1007310075    sal dx, 008h                              ; c1 e2 08
    1007410076    mov ax, strict word 00030h                ; b8 30 00
    10075     call 016ach                               ; e8 10 aa
     10077    call 016ach                               ; e8 0b aa
    1007610078    xor ah, ah                                ; 30 e4
    1007710079    or dx, ax                                 ; 09 c2
    1007810080    mov word [bp+01ch], dx                    ; 89 56 1c
    1007910081    cmp dx, 03c00h                            ; 81 fa 00 3c
    10080     jbe short 06caeh                          ; 76 05
     10082    jbe short 06cb3h                          ; 76 05
    1008110083    mov word [bp+01ch], 03c00h                ; c7 46 1c 00 3c
    1008210084    mov ax, strict word 00035h                ; b8 35 00
    10083     call 016ach                               ; e8 f8 a9
     10085    call 016ach                               ; e8 f3 a9
    1008410086    xor ah, ah                                ; 30 e4
    1008510087    mov dx, ax                                ; 89 c2
    1008610088    sal dx, 008h                              ; c1 e2 08
    1008710089    mov ax, strict word 00034h                ; b8 34 00
    10088     call 016ach                               ; e8 eb a9
     10090    call 016ach                               ; e8 e6 a9
    1008910091    xor ah, ah                                ; 30 e4
    1009010092    or dx, ax                                 ; 09 c2
     
    1009310095    mov word [bp+020h], ax                    ; 89 46 20
    1009410096    mov word [bp+014h], dx                    ; 89 56 14
    10095     jmp near 06b42h                           ; e9 6e fe
    10096 _int15_blkmove:                              ; 0xf6cd4 LB 0x18a
     10097    jmp near 06b47h                           ; e9 6e fe
     10098_int15_blkmove:                              ; 0xf6cd9 LB 0x18a
    1009710099    push bp                                   ; 55
    1009810100    mov bp, sp                                ; 89 e5
     
    1010310105    cli                                       ; fa
    1010410106    mov ax, strict word 00001h                ; b8 01 00
    10105     call 06556h                               ; e8 74 f8
     10107    call 0655bh                               ; e8 74 f8
    1010610108    mov di, ax                                ; 89 c7
    1010710109    mov ax, word [bp+006h]                    ; 8b 46 06
     
    1011310115    mov byte [bp-006h], dl                    ; 88 56 fa
    1011410116    cmp cx, ax                                ; 39 c1
    10115     jnc short 06d01h                          ; 73 05
     10117    jnc short 06d06h                          ; 73 05
    1011610118    db  0feh, 0c2h
    1011710119    ; inc dl                                    ; fe c2
     
    1012110123    mov ax, word [bp+006h]                    ; 8b 46 06
    1012210124    mov bx, strict word 0002fh                ; bb 2f 00
    10123     call 0167ah                               ; e8 6a a9
     10125    call 0167ah                               ; e8 65 a9
    1012410126    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1012510127    add dx, strict byte 0000ah                ; 83 c2 0a
    1012610128    mov ax, word [bp+006h]                    ; 8b 46 06
    1012710129    mov bx, cx                                ; 89 cb
    10128     call 0167ah                               ; e8 5c a9
     10130    call 0167ah                               ; e8 57 a9
    1012910131    mov bl, byte [bp-006h]                    ; 8a 5e fa
    1013010132    xor bh, bh                                ; 30 ff
     
    1013210134    add dx, strict byte 0000ch                ; 83 c2 0c
    1013310135    mov ax, word [bp+006h]                    ; 8b 46 06
    10134     call 0165eh                               ; e8 2f a9
     10136    call 0165eh                               ; e8 2a a9
    1013510137    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1013610138    add dx, strict byte 0000dh                ; 83 c2 0d
    1013710139    mov ax, word [bp+006h]                    ; 8b 46 06
    1013810140    mov bx, 00093h                            ; bb 93 00
    10139     call 0165eh                               ; e8 20 a9
     10141    call 0165eh                               ; e8 1b a9
    1014010142    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1014110143    add dx, strict byte 0000eh                ; 83 c2 0e
    1014210144    mov ax, word [bp+006h]                    ; 8b 46 06
    1014310145    xor bx, bx                                ; 31 db
    10144     call 0167ah                               ; e8 2e a9
     10146    call 0167ah                               ; e8 29 a9
    1014510147    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1014610148    add dx, strict byte 00020h                ; 83 c2 20
    1014710149    mov ax, word [bp+006h]                    ; 8b 46 06
    1014810150    mov bx, strict word 0ffffh                ; bb ff ff
    10149     call 0167ah                               ; e8 1f a9
     10151    call 0167ah                               ; e8 1a a9
    1015010152    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1015110153    add dx, strict byte 00022h                ; 83 c2 22
    1015210154    mov ax, word [bp+006h]                    ; 8b 46 06
    1015310155    xor bx, bx                                ; 31 db
    10154     call 0167ah                               ; e8 11 a9
     10156    call 0167ah                               ; e8 0c a9
    1015510157    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1015610158    add dx, strict byte 00024h                ; 83 c2 24
    1015710159    mov ax, word [bp+006h]                    ; 8b 46 06
    1015810160    mov bx, strict word 0000fh                ; bb 0f 00
    10159     call 0165eh                               ; e8 e6 a8
     10161    call 0165eh                               ; e8 e1 a8
    1016010162    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1016110163    add dx, strict byte 00025h                ; 83 c2 25
    1016210164    mov ax, word [bp+006h]                    ; 8b 46 06
    1016310165    mov bx, 0009bh                            ; bb 9b 00
    10164     call 0165eh                               ; e8 d7 a8
     10166    call 0165eh                               ; e8 d2 a8
    1016510167    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1016610168    add dx, strict byte 00026h                ; 83 c2 26
    1016710169    mov ax, word [bp+006h]                    ; 8b 46 06
    1016810170    xor bx, bx                                ; 31 db
    10169     call 0167ah                               ; e8 e5 a8
     10171    call 0167ah                               ; e8 e0 a8
    1017010172    mov ax, ss                                ; 8c d0
    1017110173    mov cx, ax                                ; 89 c1
     
    1017710179    mov ax, word [bp+006h]                    ; 8b 46 06
    1017810180    mov bx, strict word 0ffffh                ; bb ff ff
    10179     call 0167ah                               ; e8 c9 a8
     10181    call 0167ah                               ; e8 c4 a8
    1018010182    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1018110183    add dx, strict byte 0002ah                ; 83 c2 2a
    1018210184    mov ax, word [bp+006h]                    ; 8b 46 06
    1018310185    mov bx, cx                                ; 89 cb
    10184     call 0167ah                               ; e8 bb a8
     10186    call 0167ah                               ; e8 b6 a8
    1018510187    mov bl, byte [bp-008h]                    ; 8a 5e f8
    1018610188    xor bh, bh                                ; 30 ff
     
    1018810190    add dx, strict byte 0002ch                ; 83 c2 2c
    1018910191    mov ax, word [bp+006h]                    ; 8b 46 06
    10190     call 0165eh                               ; e8 8e a8
     10192    call 0165eh                               ; e8 89 a8
    1019110193    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1019210194    add dx, strict byte 0002dh                ; 83 c2 2d
    1019310195    mov ax, word [bp+006h]                    ; 8b 46 06
    1019410196    mov bx, 00093h                            ; bb 93 00
    10195     call 0165eh                               ; e8 7f a8
     10197    call 0165eh                               ; e8 7a a8
    1019610198    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1019710199    add dx, strict byte 0002eh                ; 83 c2 2e
    1019810200    mov ax, word [bp+006h]                    ; 8b 46 06
    1019910201    xor bx, bx                                ; 31 db
    10200     call 0167ah                               ; e8 8d a8
     10202    call 0167ah                               ; e8 88 a8
    1020110203    lea bx, [bp+004h]                         ; 8d 5e 04
    1020210204    mov si, word [bp+00ah]                    ; 8b 76 0a
     
    1020810210    mov word [00467h], bx                     ; 89 1e 67 04
    1020910211    mov [00469h], ss                          ; 8c 16 69 04
    10210     call 06e08h                               ; e8 00 00
     10212    call 06e0dh                               ; e8 00 00
    1021110213    pop di                                    ; 5f
    1021210214    add di, strict byte 00018h                ; 83 c7 18
     
    1024010242    int3                                      ; cc
    1024110243    mov ax, di                                ; 89 f8
    10242     call 06556h                               ; e8 08 f7
     10244    call 0655bh                               ; e8 08 f7
    1024310245    sti                                       ; fb
    1024410246    mov byte [bp+017h], 000h                  ; c6 46 17 00
     
    1024910251    pop bp                                    ; 5d
    1025010252    retn                                      ; c3
    10251 _inv_op_handler:                             ; 0xf6e5e LB 0x19b
     10253_inv_op_handler:                             ; 0xf6e63 LB 0x19b
    1025210254    push bp                                   ; 55
    1025310255    mov bp, sp                                ; 89 e5
     
    1025810260    les bx, [bp+018h]                         ; c4 5e 18
    1025910261    cmp byte [es:bx], 0f0h                    ; 26 80 3f f0
    10260     jne short 06e74h                          ; 75 06
     10262    jne short 06e79h                          ; 75 06
    1026110263    inc word [bp+018h]                        ; ff 46 18
    10262     jmp near 06ff2h                           ; e9 7e 01
     10264    jmp near 06ff7h                           ; e9 7e 01
    1026310265    cmp word [es:bx], 0050fh                  ; 26 81 3f 0f 05
    10264     je short 06e7eh                           ; 74 03
    10265     jmp near 06feeh                           ; e9 70 01
     10266    je short 06e83h                           ; 74 03
     10267    jmp near 06ff3h                           ; e9 70 01
    1026610268    mov si, 00800h                            ; be 00 08
    1026710269    xor ax, ax                                ; 31 c0
     
    1029210294    sal ax, 1                                 ; d1 e0
    1029310295    rcl dx, 1                                 ; d1 d2
    10294     loop 06ecfh                               ; e2 fa
     10296    loop 06ed4h                               ; e2 fa
    1029510297    cmp bx, dx                                ; 39 d3
    10296     jne short 06eddh                          ; 75 04
     10298    jne short 06ee2h                          ; 75 04
    1029710299    cmp di, ax                                ; 39 c7
    10298     je short 06ee2h                           ; 74 05
     10300    je short 06ee7h                           ; 74 05
    1029910301    mov word [bp-008h], strict word 00001h    ; c7 46 f8 01 00
    1030010302    mov es, [bp-006h]                         ; 8e 46 fa
     
    1030710309    sal ax, 1                                 ; d1 e0
    1030810310    rcl dx, 1                                 ; d1 d2
    10309     loop 06ef8h                               ; e2 fa
     10311    loop 06efdh                               ; e2 fa
    1031010312    cmp bx, dx                                ; 39 d3
    10311     jne short 06f06h                          ; 75 04
     10313    jne short 06f0bh                          ; 75 04
    1031210314    cmp di, ax                                ; 39 c7
    10313     je short 06f0ah                           ; 74 04
     10315    je short 06f0fh                           ; 74 04
    1031410316    or byte [bp-008h], 002h                   ; 80 4e f8 02
    1031510317    push strict byte 00000h                   ; 6a 00
     
    1036510367    mov ax, strict word 00008h                ; b8 08 00
    1036610368    test cx, strict word 00001h               ; f7 c1 01 00
    10367     je near 06fabh                            ; 0f 84 02 00
     10369    je near 06fb0h                            ; 0f 84 02 00
    1036810370    mov es, ax                                ; 8e c0
    1036910371    test cx, strict word 00002h               ; f7 c1 02 00
    10370     je near 06fd3h                            ; 0f 84 20 00
     10372    je near 06fd8h                            ; 0f 84 20 00
    1037110373    mov bx, word [word ss:00000h]             ; 36 8b 1e 00 00
    1037210374    mov word [word ss:00008h], bx             ; 36 89 1e 08 00
     
    1038510387    mov ss, [word ss:00020h]                  ; 36 8e 16 20 00
    1038610388    iret                                      ; cf
    10387     jmp short 06ff2h                          ; eb 04
     10389    jmp short 06ff7h                          ; eb 04
    1038810390    sti                                       ; fb
    1038910391    hlt                                       ; f4
    10390     jmp short 06fefh                          ; eb fd
     10392    jmp short 06ff4h                          ; eb fd
    1039110393    lea sp, [bp-004h]                         ; 8d 66 fc
    1039210394    pop di                                    ; 5f
     
    1039410396    pop bp                                    ; 5d
    1039510397    retn                                      ; c3
    10396 init_rtc_:                                   ; 0xf6ff9 LB 0x28
     10398init_rtc_:                                   ; 0xf6ffe LB 0x28
    1039710399    push bp                                   ; 55
    1039810400    mov bp, sp                                ; 89 e5
     
    1040010402    mov dx, strict word 00026h                ; ba 26 00
    1040110403    mov ax, strict word 0000ah                ; b8 0a 00
    10402     call 016c7h                               ; e8 c1 a6
     10404    call 016c7h                               ; e8 bc a6
    1040310405    mov dx, strict word 00002h                ; ba 02 00
    1040410406    mov ax, strict word 0000bh                ; b8 0b 00
    10405     call 016c7h                               ; e8 b8 a6
     10407    call 016c7h                               ; e8 b3 a6
    1040610408    mov ax, strict word 0000ch                ; b8 0c 00
    10407     call 016ach                               ; e8 97 a6
     10409    call 016ach                               ; e8 92 a6
    1040810410    mov ax, strict word 0000dh                ; b8 0d 00
    10409     call 016ach                               ; e8 91 a6
     10411    call 016ach                               ; e8 8c a6
    1041010412    lea sp, [bp-002h]                         ; 8d 66 fe
    1041110413    pop dx                                    ; 5a
    1041210414    pop bp                                    ; 5d
    1041310415    retn                                      ; c3
    10414 rtc_updating_:                               ; 0xf7021 LB 0x21
     10416rtc_updating_:                               ; 0xf7026 LB 0x21
    1041510417    push bp                                   ; 55
    1041610418    mov bp, sp                                ; 89 e5
     
    1041810420    mov dx, 061a8h                            ; ba a8 61
    1041910421    dec dx                                    ; 4a
    10420     je short 07039h                           ; 74 0e
     10422    je short 0703eh                           ; 74 0e
    1042110423    mov ax, strict word 0000ah                ; b8 0a 00
    10422     call 016ach                               ; e8 7b a6
     10424    call 016ach                               ; e8 76 a6
    1042310425    test AL, strict byte 080h                 ; a8 80
    10424     jne short 07028h                          ; 75 f3
     10426    jne short 0702dh                          ; 75 f3
    1042510427    xor ax, ax                                ; 31 c0
    10426     jmp short 0703ch                          ; eb 03
     10428    jmp short 07041h                          ; eb 03
    1042710429    mov ax, strict word 00001h                ; b8 01 00
    1042810430    lea sp, [bp-002h]                         ; 8d 66 fe
     
    1043010432    pop bp                                    ; 5d
    1043110433    retn                                      ; c3
    10432 _int70_function:                             ; 0xf7042 LB 0xbf
     10434_int70_function:                             ; 0xf7047 LB 0xbf
    1043310435    push bp                                   ; 55
    1043410436    mov bp, sp                                ; 89 e5
     
    1043610438    push ax                                   ; 50
    1043710439    mov ax, strict word 0000bh                ; b8 0b 00
    10438     call 016ach                               ; e8 5f a6
     10440    call 016ach                               ; e8 5a a6
    1043910441    mov bl, al                                ; 88 c3
    1044010442    mov byte [bp-004h], al                    ; 88 46 fc
    1044110443    mov ax, strict word 0000ch                ; b8 0c 00
    10442     call 016ach                               ; e8 54 a6
     10444    call 016ach                               ; e8 4f a6
    1044310445    mov dl, al                                ; 88 c2
    1044410446    test bl, 060h                             ; f6 c3 60
    10445     jne short 07062h                          ; 75 03
    10446     jmp near 070e8h                           ; e9 86 00
     10447    jne short 07067h                          ; 75 03
     10448    jmp near 070edh                           ; e9 86 00
    1044710449    test AL, strict byte 020h                 ; a8 20
    10448     je short 0706ah                           ; 74 04
     10450    je short 0706fh                           ; 74 04
    1044910451    sti                                       ; fb
    1045010452    int 04ah                                  ; cd 4a
    1045110453    cli                                       ; fa
    1045210454    test dl, 040h                             ; f6 c2 40
    10453     je short 070d2h                           ; 74 63
     10455    je short 070d7h                           ; 74 63
    1045410456    mov dx, 000a0h                            ; ba a0 00
    1045510457    mov ax, strict word 00040h                ; b8 40 00
    10456     call 01650h                               ; e8 d8 a5
     10458    call 01650h                               ; e8 d3 a5
    1045710459    test al, al                               ; 84 c0
    10458     je short 070e8h                           ; 74 6c
     10460    je short 070edh                           ; 74 6c
    1045910461    mov dx, 0009ch                            ; ba 9c 00
    1046010462    mov ax, strict word 00040h                ; b8 40 00
    10461     call 01688h                               ; e8 03 a6
     10463    call 01688h                               ; e8 fe a5
    1046210464    test dx, dx                               ; 85 d2
    10463     jne short 070d4h                          ; 75 4b
     10465    jne short 070d9h                          ; 75 4b
    1046410466    cmp ax, 003d1h                            ; 3d d1 03
    10465     jnc short 070d4h                          ; 73 46
     10467    jnc short 070d9h                          ; 73 46
    1046610468    mov dx, 00098h                            ; ba 98 00
    1046710469    mov ax, strict word 00040h                ; b8 40 00
    10468     call 0166ch                               ; e8 d5 a5
     10470    call 0166ch                               ; e8 d0 a5
    1046910471    mov si, ax                                ; 89 c6
    1047010472    mov dx, 0009ah                            ; ba 9a 00
    1047110473    mov ax, strict word 00040h                ; b8 40 00
    10472     call 0166ch                               ; e8 ca a5
     10474    call 0166ch                               ; e8 c5 a5
    1047310475    mov cx, ax                                ; 89 c1
    1047410476    xor bx, bx                                ; 31 db
    1047510477    mov dx, 000a0h                            ; ba a0 00
    1047610478    mov ax, strict word 00040h                ; b8 40 00
    10477     call 0165eh                               ; e8 af a5
     10479    call 0165eh                               ; e8 aa a5
    1047810480    mov dl, byte [bp-004h]                    ; 8a 56 fc
    1047910481    and dl, 037h                              ; 80 e2 37
    1048010482    xor dh, dh                                ; 30 f6
    1048110483    mov ax, strict word 0000bh                ; b8 0b 00
    10482     call 016c7h                               ; e8 0a a6
     10484    call 016c7h                               ; e8 05 a6
    1048310485    mov dx, cx                                ; 89 ca
    1048410486    mov ax, si                                ; 89 f0
    10485     call 01650h                               ; e8 8c a5
     10487    call 01650h                               ; e8 87 a5
    1048610488    mov bl, al                                ; 88 c3
    1048710489    or bl, 080h                               ; 80 cb 80
     
    1048910491    mov dx, cx                                ; 89 ca
    1049010492    mov ax, si                                ; 89 f0
    10491     call 0165eh                               ; e8 8c a5
    10492     jmp short 070e8h                          ; eb 14
     10493    call 0165eh                               ; e8 87 a5
     10494    jmp short 070edh                          ; eb 14
    1049310495    mov bx, ax                                ; 89 c3
    1049410496    add bx, 0fc2fh                            ; 81 c3 2f fc
     
    1049710499    mov dx, 0009ch                            ; ba 9c 00
    1049810500    mov ax, strict word 00040h                ; b8 40 00
    10499     call 0169ah                               ; e8 b2 a5
    10500     call 0e030h                               ; e8 45 6f
     10501    call 0169ah                               ; e8 ad a5
     10502    call 0e030h                               ; e8 40 6f
    1050110503    lea sp, [bp-002h]                         ; 8d 66 fe
    1050210504    pop si                                    ; 5e
    1050310505    pop bp                                    ; 5d
    1050410506    retn                                      ; c3
    10505     pop SS                                    ; 17
    10506     jno short 07132h                          ; 71 3e
    10507     jno short 07159h                          ; 71 63
    10508     jno short 07097h                          ; 71 9f
    10509     jno short 070ebh                          ; 71 f1
    10510     jno short 07124h                          ; 71 28
    10511     jc short 0716dh                           ; 72 6f
    10512     jc short 070cah                           ; 72 ca
     10507    sbb AL, strict byte 071h                  ; 1c 71
     10508    inc bx                                    ; 43
     10509    jno short 07163h                          ; 71 68
     10510    jno short 070a1h                          ; 71 a4
     10511    jno short 070f5h                          ; 71 f6
     10512    jno short 0712eh                          ; 71 2d
     10513    jc short 07177h                           ; 72 74
     10514    jc short 070d4h                           ; 72 cf
    1051310515    db  072h
    10514 _int1a_function:                             ; 0xf7101 LB 0x1d9
     10516_int1a_function:                             ; 0xf7106 LB 0x1d9
    1051510517    push bp                                   ; 55
    1051610518    mov bp, sp                                ; 89 e5
     
    1051810520    mov al, byte [bp+013h]                    ; 8a 46 13
    1051910521    cmp AL, strict byte 007h                  ; 3c 07
    10520     jnbe short 0716ah                         ; 77 5e
     10522    jnbe short 0716fh                         ; 77 5e
    1052110523    mov bl, al                                ; 88 c3
    1052210524    xor bh, bh                                ; 30 ff
    1052310525    add bx, bx                                ; 01 db
    10524     jmp word [cs:bx+070f1h]                   ; 2e ff a7 f1 70
     10526    jmp word [cs:bx+070f6h]                   ; 2e ff a7 f6 70
    1052510527    cli                                       ; fa
    1052610528    mov bx, 0046eh                            ; bb 6e 04
     
    1053710539    mov byte [es:bx], 000h                    ; 26 c6 07 00
    1053810540    sti                                       ; fb
    10539     jmp short 0716ah                          ; eb 2c
     10541    jmp short 0716fh                          ; eb 2c
    1054010542    cli                                       ; fa
    1054110543    mov bx, 0046eh                            ; bb 6e 04
     
    1055110553    sti                                       ; fb
    1055210554    mov byte [bp+013h], 000h                  ; c6 46 13 00
    10553     jmp short 0716ah                          ; eb 07
    10554     call 07021h                               ; e8 bb fe
     10555    jmp short 0716fh                          ; eb 07
     10556    call 07026h                               ; e8 bb fe
    1055510557    test ax, ax                               ; 85 c0
    10556     je short 0716dh                           ; 74 03
    10557     jmp near 0719bh                           ; e9 2e 00
     10558    je short 07172h                           ; 74 03
     10559    jmp near 071a0h                           ; e9 2e 00
    1055810560    xor ax, ax                                ; 31 c0
    10559     call 016ach                               ; e8 3a a5
     10561    call 016ach                               ; e8 35 a5
    1056010562    mov byte [bp+00fh], al                    ; 88 46 0f
    1056110563    mov ax, strict word 00002h                ; b8 02 00
    10562     call 016ach                               ; e8 31 a5
     10564    call 016ach                               ; e8 2c a5
    1056310565    mov byte [bp+010h], al                    ; 88 46 10
    1056410566    mov ax, strict word 00004h                ; b8 04 00
    10565     call 016ach                               ; e8 28 a5
     10567    call 016ach                               ; e8 23 a5
    1056610568    mov dl, al                                ; 88 c2
    1056710569    mov byte [bp+011h], al                    ; 88 46 11
    1056810570    mov ax, strict word 0000bh                ; b8 0b 00
    10569     call 016ach                               ; e8 1d a5
     10571    call 016ach                               ; e8 18 a5
    1057010572    and AL, strict byte 001h                  ; 24 01
    1057110573    mov byte [bp+00eh], al                    ; 88 46 0e
     
    1057510577    pop bp                                    ; 5d
    1057610578    retn                                      ; c3
    10577     call 07021h                               ; e8 7f fe
     10579    call 07026h                               ; e8 7f fe
    1057810580    test ax, ax                               ; 85 c0
    10579     je short 071a9h                           ; 74 03
    10580     call 06ff9h                               ; e8 50 fe
     10581    je short 071aeh                           ; 74 03
     10582    call 06ffeh                               ; e8 50 fe
    1058110583    mov dl, byte [bp+00fh]                    ; 8a 56 0f
    1058210584    xor dh, dh                                ; 30 f6
    1058310585    xor ax, ax                                ; 31 c0
    10584     call 016c7h                               ; e8 14 a5
     10586    call 016c7h                               ; e8 0f a5
    1058510587    mov dl, byte [bp+010h]                    ; 8a 56 10
    1058610588    xor dh, dh                                ; 30 f6
    1058710589    mov ax, strict word 00002h                ; b8 02 00
    10588     call 016c7h                               ; e8 09 a5
     10590    call 016c7h                               ; e8 04 a5
    1058910591    mov dl, byte [bp+011h]                    ; 8a 56 11
    1059010592    xor dh, dh                                ; 30 f6
    1059110593    mov ax, strict word 00004h                ; b8 04 00
    10592     call 016c7h                               ; e8 fe a4
     10594    call 016c7h                               ; e8 f9 a4
    1059310595    mov ax, strict word 0000bh                ; b8 0b 00
    10594     call 016ach                               ; e8 dd a4
     10596    call 016ach                               ; e8 d8 a4
    1059510597    mov bl, al                                ; 88 c3
    1059610598    and bl, 060h                              ; 80 e3 60
     
    1060210604    xor dh, dh                                ; 30 f6
    1060310605    mov ax, strict word 0000bh                ; b8 0b 00
    10604     call 016c7h                               ; e8 df a4
     10606    call 016c7h                               ; e8 da a4
    1060510607    mov byte [bp+013h], 000h                  ; c6 46 13 00
    1060610608    mov byte [bp+012h], bl                    ; 88 5e 12
    10607     jmp short 0719bh                          ; eb aa
     10609    jmp short 071a0h                          ; eb aa
    1060810610    mov byte [bp+013h], 000h                  ; c6 46 13 00
    10609     call 07021h                               ; e8 29 fe
     10611    call 07026h                               ; e8 29 fe
    1061010612    test ax, ax                               ; 85 c0
    10611     je short 071feh                           ; 74 02
    10612     jmp short 0719bh                          ; eb 9d
     10613    je short 07203h                           ; 74 02
     10614    jmp short 071a0h                          ; eb 9d
    1061310615    mov ax, strict word 00009h                ; b8 09 00
    10614     call 016ach                               ; e8 a8 a4
     10616    call 016ach                               ; e8 a3 a4
    1061510617    mov byte [bp+010h], al                    ; 88 46 10
    1061610618    mov ax, strict word 00008h                ; b8 08 00
    10617     call 016ach                               ; e8 9f a4
     10619    call 016ach                               ; e8 9a a4
    1061810620    mov byte [bp+00fh], al                    ; 88 46 0f
    1061910621    mov ax, strict word 00007h                ; b8 07 00
    10620     call 016ach                               ; e8 96 a4
     10622    call 016ach                               ; e8 91 a4
    1062110623    mov byte [bp+00eh], al                    ; 88 46 0e
    1062210624    mov ax, strict word 00032h                ; b8 32 00
    10623     call 016ach                               ; e8 8d a4
     10625    call 016ach                               ; e8 88 a4
    1062410626    mov byte [bp+011h], al                    ; 88 46 11
    1062510627    mov byte [bp+012h], al                    ; 88 46 12
    10626     jmp near 0719bh                           ; e9 73 ff
    10627     call 07021h                               ; e8 f6 fd
     10628    jmp near 071a0h                           ; e9 73 ff
     10629    call 07026h                               ; e8 f6 fd
    1062810630    test ax, ax                               ; 85 c0
    10629     je short 07235h                           ; 74 06
    10630     call 06ff9h                               ; e8 c7 fd
    10631     jmp near 0719bh                           ; e9 66 ff
     10631    je short 0723ah                           ; 74 06
     10632    call 06ffeh                               ; e8 c7 fd
     10633    jmp near 071a0h                           ; e9 66 ff
    1063210634    mov dl, byte [bp+010h]                    ; 8a 56 10
    1063310635    xor dh, dh                                ; 30 f6
    1063410636    mov ax, strict word 00009h                ; b8 09 00
    10635     call 016c7h                               ; e8 87 a4
     10637    call 016c7h                               ; e8 82 a4
    1063610638    mov dl, byte [bp+00fh]                    ; 8a 56 0f
    1063710639    xor dh, dh                                ; 30 f6
    1063810640    mov ax, strict word 00008h                ; b8 08 00
    10639     call 016c7h                               ; e8 7c a4
     10641    call 016c7h                               ; e8 77 a4
    1064010642    mov dl, byte [bp+00eh]                    ; 8a 56 0e
    1064110643    xor dh, dh                                ; 30 f6
    1064210644    mov ax, strict word 00007h                ; b8 07 00
    10643     call 016c7h                               ; e8 71 a4
     10645    call 016c7h                               ; e8 6c a4
    1064410646    mov dl, byte [bp+011h]                    ; 8a 56 11
    1064510647    xor dh, dh                                ; 30 f6
    1064610648    mov ax, strict word 00032h                ; b8 32 00
    10647     call 016c7h                               ; e8 66 a4
     10649    call 016c7h                               ; e8 61 a4
    1064810650    mov ax, strict word 0000bh                ; b8 0b 00
    10649     call 016ach                               ; e8 45 a4
     10651    call 016ach                               ; e8 40 a4
    1065010652    mov bl, al                                ; 88 c3
    1065110653    and bl, 07fh                              ; 80 e3 7f
    10652     jmp near 071deh                           ; e9 6f ff
     10654    jmp near 071e3h                           ; e9 6f ff
    1065310655    mov ax, strict word 0000bh                ; b8 0b 00
    10654     call 016ach                               ; e8 37 a4
     10656    call 016ach                               ; e8 32 a4
    1065510657    mov bl, al                                ; 88 c3
    1065610658    mov word [bp+012h], strict word 00000h    ; c7 46 12 00 00
    1065710659    test AL, strict byte 020h                 ; a8 20
    10658     je short 07283h                           ; 74 03
    10659     jmp near 0719bh                           ; e9 18 ff
    10660     call 07021h                               ; e8 9b fd
     10660    je short 07288h                           ; 74 03
     10661    jmp near 071a0h                           ; e9 18 ff
     10662    call 07026h                               ; e8 9b fd
    1066110663    test ax, ax                               ; 85 c0
    10662     je short 0728dh                           ; 74 03
    10663     call 06ff9h                               ; e8 6c fd
     10664    je short 07292h                           ; 74 03
     10665    call 06ffeh                               ; e8 6c fd
    1066410666    mov dl, byte [bp+00fh]                    ; 8a 56 0f
    1066510667    xor dh, dh                                ; 30 f6
    1066610668    mov ax, strict word 00001h                ; b8 01 00
    10667     call 016c7h                               ; e8 2f a4
     10669    call 016c7h                               ; e8 2a a4
    1066810670    mov dl, byte [bp+010h]                    ; 8a 56 10
    1066910671    xor dh, dh                                ; 30 f6
    1067010672    mov ax, strict word 00003h                ; b8 03 00
    10671     call 016c7h                               ; e8 24 a4
     10673    call 016c7h                               ; e8 1f a4
    1067210674    mov dl, byte [bp+011h]                    ; 8a 56 11
    1067310675    xor dh, dh                                ; 30 f6
    1067410676    mov ax, strict word 00005h                ; b8 05 00
    10675     call 016c7h                               ; e8 19 a4
     10677    call 016c7h                               ; e8 14 a4
    1067610678    mov dx, 000a1h                            ; ba a1 00
    1067710679    in AL, DX                                 ; ec
     
    1068510687    xor dh, dh                                ; 30 f6
    1068610688    mov ax, strict word 0000bh                ; b8 0b 00
    10687     call 016c7h                               ; e8 00 a4
    10688     jmp near 0719bh                           ; e9 d1 fe
     10689    call 016c7h                               ; e8 fb a3
     10690    jmp near 071a0h                           ; e9 d1 fe
    1068910691    mov ax, strict word 0000bh                ; b8 0b 00
    10690     call 016ach                               ; e8 dc a3
     10692    call 016ach                               ; e8 d7 a3
    1069110693    mov bl, al                                ; 88 c3
    1069210694    mov dl, al                                ; 88 c2
    1069310695    and dl, 057h                              ; 80 e2 57
    10694     jmp near 071e0h                           ; e9 06 ff
    10695 send_to_mouse_ctrl_:                         ; 0xf72da LB 0x34
     10696    jmp near 071e5h                           ; e9 06 ff
     10697send_to_mouse_ctrl_:                         ; 0xf72df LB 0x34
    1069610698    push bp                                   ; 55
    1069710699    mov bp, sp                                ; 89 e5
     
    1070410706    ; sub ah, ah                                ; 2a e4
    1070510707    test AL, strict byte 002h                 ; a8 02
    10706     je short 072f9h                           ; 74 0e
     10708    je short 072feh                           ; 74 0e
    1070710709    push 008eeh                               ; 68 ee 08
    10708     push 0116eh                               ; 68 6e 11
     10710    push 0116ch                               ; 68 6c 11
    1070910711    push strict byte 00007h                   ; 6a 07
    10710     call 01966h                               ; e8 70 a6
     10712    call 01966h                               ; e8 6b a6
    1071110713    add sp, strict byte 00006h                ; 83 c4 06
    1071210714    mov AL, strict byte 0d4h                  ; b0 d4
     
    1072210724    pop bp                                    ; 5d
    1072310725    retn                                      ; c3
    10724 get_mouse_data_:                             ; 0xf730e LB 0x5d
     10726get_mouse_data_:                             ; 0xf7313 LB 0x5d
    1072510727    push bp                                   ; 55
    1072610728    mov bp, sp                                ; 89 e5
     
    1073710739    and ax, strict word 00021h                ; 25 21 00
    1073810740    cmp ax, strict word 00021h                ; 3d 21 00
    10739     je short 07351h                           ; 74 28
     10741    je short 07356h                           ; 74 28
    1074010742    test cx, cx                               ; 85 c9
    10741     je short 07351h                           ; 74 24
     10743    je short 07356h                           ; 74 24
    1074210744    mov dx, strict word 00061h                ; ba 61 00
    1074310745    in AL, DX                                 ; ec
     
    1075610758    xor ah, ah                                ; 30 e4
    1075710759    cmp dx, ax                                ; 39 c2
    10758     je short 07338h                           ; 74 ea
     10760    je short 0733dh                           ; 74 ea
    1075910761    dec cx                                    ; 49
    10760     jmp short 0731bh                          ; eb ca
     10762    jmp short 07320h                          ; eb ca
    1076110763    test cx, cx                               ; 85 c9
    10762     jne short 07359h                          ; 75 04
     10764    jne short 0735eh                          ; 75 04
    1076310765    mov AL, strict byte 001h                  ; b0 01
    10764     jmp short 07364h                          ; eb 0b
     10766    jmp short 07369h                          ; eb 0b
    1076510767    mov dx, strict word 00060h                ; ba 60 00
    1076610768    in AL, DX                                 ; ec
     
    1077410776    pop bp                                    ; 5d
    1077510777    retn                                      ; c3
    10776 set_kbd_command_byte_:                       ; 0xf736b LB 0x32
     10778set_kbd_command_byte_:                       ; 0xf7370 LB 0x32
    1077710779    push bp                                   ; 55
    1077810780    mov bp, sp                                ; 89 e5
     
    1078510787    ; sub ah, ah                                ; 2a e4
    1078610788    test AL, strict byte 002h                 ; a8 02
    10787     je short 0738ah                           ; 74 0e
     10789    je short 0738fh                           ; 74 0e
    1078810790    push 008f8h                               ; 68 f8 08
    10789     push 0116eh                               ; 68 6e 11
     10791    push 0116ch                               ; 68 6c 11
    1079010792    push strict byte 00007h                   ; 6a 07
    10791     call 01966h                               ; e8 df a5
     10793    call 01966h                               ; e8 da a5
    1079210794    add sp, strict byte 00006h                ; 83 c4 06
    1079310795    mov AL, strict byte 060h                  ; b0 60
     
    1080210804    pop bp                                    ; 5d
    1080310805    retn                                      ; c3
    10804 _int74_function:                             ; 0xf739d LB 0xd2
     10806_int74_function:                             ; 0xf73a2 LB 0xd2
    1080510807    push bp                                   ; 55
    1080610808    mov bp, sp                                ; 89 e5
     
    1080810810    mov dx, strict word 0000eh                ; ba 0e 00
    1080910811    mov ax, strict word 00040h                ; b8 40 00
    10810     call 0166ch                               ; e8 c0 a2
     10812    call 0166ch                               ; e8 bb a2
    1081110813    mov cx, ax                                ; 89 c1
    1081210814    mov word [bp+004h], strict word 00000h    ; c7 46 04 00 00
     
    1081710819    and AL, strict byte 021h                  ; 24 21
    1081810820    cmp AL, strict byte 021h                  ; 3c 21
    10819     jne short 073e1h                          ; 75 22
     10821    jne short 073e6h                          ; 75 22
    1082010822    mov dx, strict word 00060h                ; ba 60 00
    1082110823    in AL, DX                                 ; ec
     
    1082510827    mov dx, strict word 00026h                ; ba 26 00
    1082610828    mov ax, cx                                ; 89 c8
    10827     call 01650h                               ; e8 81 a2
     10829    call 01650h                               ; e8 7c a2
    1082810830    mov byte [bp-002h], al                    ; 88 46 fe
    1082910831    mov dx, strict word 00027h                ; ba 27 00
    1083010832    mov ax, cx                                ; 89 c8
    10831     call 01650h                               ; e8 76 a2
     10833    call 01650h                               ; e8 71 a2
    1083210834    mov byte [bp-006h], al                    ; 88 46 fa
    1083310835    test AL, strict byte 080h                 ; a8 80
    10834     jne short 073e4h                          ; 75 03
    10835     jmp near 0745bh                           ; e9 77 00
     10836    jne short 073e9h                          ; 75 03
     10837    jmp near 07460h                           ; e9 77 00
    1083610838    mov al, byte [bp-006h]                    ; 8a 46 fa
    1083710839    and AL, strict byte 007h                  ; 24 07
     
    1084710849    add dx, strict byte 00028h                ; 83 c2 28
    1084810850    mov ax, cx                                ; 89 c8
    10849     call 0165eh                               ; e8 57 a2
     10851    call 0165eh                               ; e8 52 a2
    1085010852    mov al, byte [bp-008h]                    ; 8a 46 f8
    1085110853    cmp al, byte [bp-004h]                    ; 3a 46 fc
    10852     jc short 0744bh                           ; 72 3c
     10854    jc short 07450h                           ; 72 3c
    1085310855    mov dx, strict word 00028h                ; ba 28 00
    1085410856    mov ax, cx                                ; 89 c8
    10855     call 01650h                               ; e8 39 a2
     10857    call 01650h                               ; e8 34 a2
    1085610858    xor ah, ah                                ; 30 e4
    1085710859    mov word [bp+00ch], ax                    ; 89 46 0c
    1085810860    mov dx, strict word 00029h                ; ba 29 00
    1085910861    mov ax, cx                                ; 89 c8
    10860     call 01650h                               ; e8 2c a2
     10862    call 01650h                               ; e8 27 a2
    1086110863    xor ah, ah                                ; 30 e4
    1086210864    mov word [bp+00ah], ax                    ; 89 46 0a
    1086310865    mov dx, strict word 0002ah                ; ba 2a 00
    1086410866    mov ax, cx                                ; 89 c8
    10865     call 01650h                               ; e8 1f a2
     10867    call 01650h                               ; e8 1a a2
    1086610868    xor ah, ah                                ; 30 e4
    1086710869    mov word [bp+008h], ax                    ; 89 46 08
     
    1087010872    mov byte [bp-002h], ah                    ; 88 66 fe
    1087110873    test byte [bp-006h], 080h                 ; f6 46 fa 80
    10872     je short 0744eh                           ; 74 0a
     10874    je short 07453h                           ; 74 0a
    1087310875    mov word [bp+004h], strict word 00001h    ; c7 46 04 01 00
    10874     jmp short 0744eh                          ; eb 03
     10876    jmp short 07453h                          ; eb 03
    1087510877    inc byte [bp-002h]                        ; fe 46 fe
    1087610878    mov bl, byte [bp-002h]                    ; 8a 5e fe
     
    1087810880    mov dx, strict word 00026h                ; ba 26 00
    1087910881    mov ax, cx                                ; 89 c8
    10880     call 0165eh                               ; e8 03 a2
     10882    call 0165eh                               ; e8 fe a1
    1088110883    mov sp, bp                                ; 89 ec
    1088210884    pop bp                                    ; 5d
    1088310885    retn                                      ; c3
    10884     mov DL, strict byte 074h                  ; b2 74
    10885     db  02eh, 075h, 0abh
    10886     ; cs jne short 0740fh                       ; 2e 75 ab
    10887     jne short 074a6h                          ; 75 40
    10888     jbe short 07414h                          ; 76 ac
    10889     jbe short 07463h                          ; 76 f9
    10890     je short 07440h                           ; 74 d4
    10891     jbe short 07407h                          ; 76 99
     10886    mov BH, strict byte 074h                  ; b7 74
     10887    xor si, word [di-050h]                    ; 33 75 b0
     10888    jne short 074b0h                          ; 75 45
     10889    jbe short 0741eh                          ; 76 b1
     10890    jbe short 0746dh                          ; 76 fe
     10891    je short 0744ah                           ; 74 d9
     10892    jbe short 07411h                          ; 76 9e
    1089210893    db  077h
    10893 _int15_function_mouse:                       ; 0xf746f LB 0x38d
     10894_int15_function_mouse:                       ; 0xf7474 LB 0x38d
    1089410895    push bp                                   ; 55
    1089510896    mov bp, sp                                ; 89 e5
     
    1089810899    mov dx, strict word 0000eh                ; ba 0e 00
    1089910900    mov ax, strict word 00040h                ; b8 40 00
    10900     call 0166ch                               ; e8 ed a1
     10901    call 0166ch                               ; e8 e8 a1
    1090110902    mov cx, ax                                ; 89 c1
    1090210903    cmp byte [bp+012h], 007h                  ; 80 7e 12 07
    10903     jbe short 07492h                          ; 76 0b
     10904    jbe short 07497h                          ; 76 0b
    1090410905    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1090510906    mov byte [bp+013h], 001h                  ; c6 46 13 01
    10906     jmp near 077f6h                           ; e9 64 03
     10907    jmp near 077fbh                           ; e9 64 03
    1090710908    mov ax, strict word 00065h                ; b8 65 00
    10908     call 0736bh                               ; e8 d3 fe
     10909    call 07370h                               ; e8 d3 fe
    1090910910    and word [bp+018h], strict byte 0fffeh    ; 83 66 18 fe
    1091010911    mov byte [bp+013h], 000h                  ; c6 46 13 00
    1091110912    mov al, byte [bp+012h]                    ; 8a 46 12
    1091210913    cmp AL, strict byte 007h                  ; 3c 07
    10913     jnbe short 07507h                         ; 77 60
     10914    jnbe short 0750ch                         ; 77 60
    1091410915    xor ah, ah                                ; 30 e4
    1091510916    mov si, ax                                ; 89 c6
    1091610917    add si, ax                                ; 01 c6
    10917     jmp word [cs:si+0745fh]                   ; 2e ff a4 5f 74
     10918    jmp word [cs:si+07464h]                   ; 2e ff a4 64 74
    1091810919    cmp byte [bp+00dh], 001h                  ; 80 7e 0d 01
    10919     jnbe short 0750ah                         ; 77 52
     10920    jnbe short 0750fh                         ; 77 52
    1092010921    mov dx, strict word 00027h                ; ba 27 00
    1092110922    mov ax, cx                                ; 89 c8
    10922     call 01650h                               ; e8 90 a1
     10923    call 01650h                               ; e8 8b a1
    1092310924    test AL, strict byte 080h                 ; a8 80
    10924     jne short 074cfh                          ; 75 0b
     10925    jne short 074d4h                          ; 75 0b
    1092510926    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1092610927    mov byte [bp+013h], 005h                  ; c6 46 13 05
    10927     jmp near 077f0h                           ; e9 21 03
     10928    jmp near 077f5h                           ; e9 21 03
    1092810929    cmp byte [bp+00dh], 000h                  ; 80 7e 0d 00
    10929     jne short 074d9h                          ; 75 04
     10930    jne short 074deh                          ; 75 04
    1093010931    mov AL, strict byte 0f5h                  ; b0 f5
    10931     jmp short 074dbh                          ; eb 02
     10932    jmp short 074e0h                          ; eb 02
    1093210933    mov AL, strict byte 0f4h                  ; b0 f4
    1093310934    xor ah, ah                                ; 30 e4
    10934     call 072dah                               ; e8 fa fd
     10935    call 072dfh                               ; e8 fa fd
    1093510936    test al, al                               ; 84 c0
    10936     jne short 0750dh                          ; 75 29
     10937    jne short 07512h                          ; 75 29
    1093710938    mov dx, ss                                ; 8c d2
    1093810939    lea ax, [bp-008h]                         ; 8d 46 f8
    10939     call 0730eh                               ; e8 22 fe
     10940    call 07313h                               ; e8 22 fe
    1094010941    test al, al                               ; 84 c0
    10941     je short 074f6h                           ; 74 06
     10942    je short 074fbh                           ; 74 06
    1094210943    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    10943     jne short 0750dh                          ; 75 17
    10944     jmp near 077f0h                           ; e9 f7 02
     10944    jne short 07512h                          ; 75 17
     10945    jmp near 077f5h                           ; e9 f7 02
    1094510946    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1094610947    cmp AL, strict byte 001h                  ; 3c 01
    10947     jc short 07504h                           ; 72 04
     10948    jc short 07509h                           ; 72 04
    1094810949    cmp AL, strict byte 008h                  ; 3c 08
    10949     jbe short 07510h                          ; 76 0c
    10950     jmp near 076a2h                           ; e9 9b 01
    10951     jmp near 077ddh                           ; e9 d3 02
    10952     jmp near 077e8h                           ; e9 db 02
    10953     jmp near 07774h                           ; e9 64 02
     10950    jbe short 07515h                          ; 76 0c
     10951    jmp near 076a7h                           ; e9 9b 01
     10952    jmp near 077e2h                           ; e9 d3 02
     10953    jmp near 077edh                           ; e9 db 02
     10954    jmp near 07779h                           ; e9 64 02
    1095410955    mov dx, strict word 00027h                ; ba 27 00
    1095510956    mov ax, cx                                ; 89 c8
    10956     call 01650h                               ; e8 38 a1
     10957    call 01650h                               ; e8 33 a1
    1095710958    mov ah, byte [bp+00dh]                    ; 8a 66 0d
    1095810959    db  0feh, 0cch
     
    1096410965    mov dx, strict word 00027h                ; ba 27 00
    1096510966    mov ax, cx                                ; 89 c8
    10966     call 0165eh                               ; e8 30 a1
     10967    call 0165eh                               ; e8 2b a1
    1096710968    mov dx, strict word 00026h                ; ba 26 00
    1096810969    mov ax, cx                                ; 89 c8
    10969     call 01650h                               ; e8 1a a1
     10970    call 01650h                               ; e8 15 a1
    1097010971    mov bl, al                                ; 88 c3
    1097110972    and bl, 0f8h                              ; 80 e3 f8
     
    1097310974    mov dx, strict word 00026h                ; ba 26 00
    1097410975    mov ax, cx                                ; 89 c8
    10975     call 0165eh                               ; e8 19 a1
     10976    call 0165eh                               ; e8 14 a1
    1097610977    mov ax, 000ffh                            ; b8 ff 00
    10977     call 072dah                               ; e8 8f fd
     10978    call 072dfh                               ; e8 8f fd
    1097810979    test al, al                               ; 84 c0
    10979     jne short 0750dh                          ; 75 be
     10980    jne short 07512h                          ; 75 be
    1098010981    mov dx, ss                                ; 8c d2
    1098110982    lea ax, [bp-004h]                         ; 8d 46 fc
    10982     call 0730eh                               ; e8 b7 fd
     10983    call 07313h                               ; e8 b7 fd
    1098310984    mov cl, al                                ; 88 c1
    1098410985    cmp byte [bp-004h], 0feh                  ; 80 7e fc fe
    10985     jne short 07569h                          ; 75 0a
     10986    jne short 0756eh                          ; 75 0a
    1098610987    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1098710988    mov byte [bp+013h], 004h                  ; c6 46 13 04
    10988     jmp short 074f6h                          ; eb 8d
     10989    jmp short 074fbh                          ; eb 8d
    1098910990    cmp byte [bp-004h], 0fah                  ; 80 7e fc fa
    10990     je short 07580h                           ; 74 11
     10991    je short 07585h                           ; 74 11
    1099110992    mov al, byte [bp-004h]                    ; 8a 46 fc
    1099210993    xor ah, ah                                ; 30 e4
     
    1099410995    push 00903h                               ; 68 03 09
    1099510996    push strict byte 00007h                   ; 6a 07
    10996     call 01966h                               ; e8 e9 a3
     10997    call 01966h                               ; e8 e4 a3
    1099710998    add sp, strict byte 00006h                ; 83 c4 06
    1099810999    test cl, cl                               ; 84 c9
    10999     jne short 0750dh                          ; 75 89
     11000    jne short 07512h                          ; 75 89
    1100011001    mov dx, ss                                ; 8c d2
    1100111002    lea ax, [bp-008h]                         ; 8d 46 f8
    11002     call 0730eh                               ; e8 82 fd
     11003    call 07313h                               ; e8 82 fd
    1100311004    test al, al                               ; 84 c0
    11004     jne short 075e6h                          ; 75 56
     11005    jne short 075ebh                          ; 75 56
    1100511006    mov dx, ss                                ; 8c d2
    1100611007    lea ax, [bp-006h]                         ; 8d 46 fa
    11007     call 0730eh                               ; e8 76 fd
     11008    call 07313h                               ; e8 76 fd
    1100811009    test al, al                               ; 84 c0
    11009     jne short 075e6h                          ; 75 4a
     11010    jne short 075ebh                          ; 75 4a
    1101011011    mov al, byte [bp-008h]                    ; 8a 46 f8
    1101111012    mov byte [bp+00ch], al                    ; 88 46 0c
    1101211013    mov al, byte [bp-006h]                    ; 8a 46 fa
    1101311014    mov byte [bp+00dh], al                    ; 88 46 0d
    11014     jmp near 077f0h                           ; e9 45 02
     11015    jmp near 077f5h                           ; e9 45 02
    1101511016    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1101611017    cmp AL, strict byte 003h                  ; 3c 03
    11017     jc short 075c2h                           ; 72 10
    11018     jbe short 075e0h                          ; 76 2c
     11018    jc short 075c7h                           ; 72 10
     11019    jbe short 075e5h                          ; 76 2c
    1101911020    cmp AL, strict byte 006h                  ; 3c 06
    11020     je short 075f5h                           ; 74 3d
     11021    je short 075fah                           ; 74 3d
    1102111022    cmp AL, strict byte 005h                  ; 3c 05
    11022     je short 075efh                           ; 74 33
     11023    je short 075f4h                           ; 74 33
    1102311024    cmp AL, strict byte 004h                  ; 3c 04
    11024     je short 075e9h                           ; 74 29
    11025     jmp short 075fbh                          ; eb 39
     11025    je short 075eeh                           ; 74 29
     11026    jmp short 07600h                          ; eb 39
    1102611027    cmp AL, strict byte 002h                  ; 3c 02
    11027     je short 075dah                           ; 74 14
     11028    je short 075dfh                           ; 74 14
    1102811029    cmp AL, strict byte 001h                  ; 3c 01
    11029     je short 075d4h                           ; 74 0a
     11030    je short 075d9h                           ; 74 0a
    1103011031    test al, al                               ; 84 c0
    11031     jne short 075fbh                          ; 75 2d
     11032    jne short 07600h                          ; 75 2d
    1103211033    mov byte [bp-008h], 00ah                  ; c6 46 f8 0a
    11033     jmp short 075ffh                          ; eb 2b
     11034    jmp short 07604h                          ; eb 2b
    1103411035    mov byte [bp-008h], 014h                  ; c6 46 f8 14
    11035     jmp short 075ffh                          ; eb 25
     11036    jmp short 07604h                          ; eb 25
    1103611037    mov byte [bp-008h], 028h                  ; c6 46 f8 28
    11037     jmp short 075ffh                          ; eb 1f
     11038    jmp short 07604h                          ; eb 1f
    1103811039    mov byte [bp-008h], 03ch                  ; c6 46 f8 3c
    11039     jmp short 075ffh                          ; eb 19
    11040     jmp near 07774h                           ; e9 8b 01
     11040    jmp short 07604h                          ; eb 19
     11041    jmp near 07779h                           ; e9 8b 01
    1104111042    mov byte [bp-008h], 050h                  ; c6 46 f8 50
    11042     jmp short 075ffh                          ; eb 10
     11043    jmp short 07604h                          ; eb 10
    1104311044    mov byte [bp-008h], 064h                  ; c6 46 f8 64
    11044     jmp short 075ffh                          ; eb 0a
     11045    jmp short 07604h                          ; eb 0a
    1104511046    mov byte [bp-008h], 0c8h                  ; c6 46 f8 c8
    11046     jmp short 075ffh                          ; eb 04
     11047    jmp short 07604h                          ; eb 04
    1104711048    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1104811049    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    11049     jbe short 07635h                          ; 76 30
     11050    jbe short 0763ah                          ; 76 30
    1105011051    mov ax, 000f3h                            ; b8 f3 00
    11051     call 072dah                               ; e8 cf fc
     11052    call 072dfh                               ; e8 cf fc
    1105211053    test al, al                               ; 84 c0
    11053     jne short 0762ah                          ; 75 1b
     11054    jne short 0762fh                          ; 75 1b
    1105411055    mov dx, ss                                ; 8c d2
    1105511056    lea ax, [bp-006h]                         ; 8d 46 fa
    11056     call 0730eh                               ; e8 f7 fc
     11057    call 07313h                               ; e8 f7 fc
    1105711058    mov al, byte [bp-008h]                    ; 8a 46 f8
    1105811059    xor ah, ah                                ; 30 e4
    11059     call 072dah                               ; e8 bb fc
     11060    call 072dfh                               ; e8 bb fc
    1106011061    mov dx, ss                                ; 8c d2
    1106111062    lea ax, [bp-006h]                         ; 8d 46 fa
    11062     call 0730eh                               ; e8 e7 fc
    11063     jmp near 077f0h                           ; e9 c6 01
     11063    call 07313h                               ; e8 e7 fc
     11064    jmp near 077f5h                           ; e9 c6 01
    1106411065    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1106511066    mov byte [bp+013h], 003h                  ; c6 46 13 03
    11066     jmp near 077f0h                           ; e9 bb 01
     11067    jmp near 077f5h                           ; e9 bb 01
    1106711068    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1106811069    mov byte [bp+013h], 002h                  ; c6 46 13 02
    11069     jmp near 077f0h                           ; e9 b0 01
     11070    jmp near 077f5h                           ; e9 b0 01
    1107011071    cmp byte [bp+00dh], 004h                  ; 80 7e 0d 04
    11071     jnc short 076a2h                          ; 73 5c
     11072    jnc short 076a7h                          ; 73 5c
    1107211073    mov ax, 000e8h                            ; b8 e8 00
    11073     call 072dah                               ; e8 8e fc
     11074    call 072dfh                               ; e8 8e fc
    1107411075    test al, al                               ; 84 c0
    11075     jne short 07698h                          ; 75 48
     11076    jne short 0769dh                          ; 75 48
    1107611077    mov dx, ss                                ; 8c d2
    1107711078    lea ax, [bp-008h]                         ; 8d 46 f8
    11078     call 0730eh                               ; e8 b6 fc
     11079    call 07313h                               ; e8 b6 fc
    1107911080    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    11080     je short 0766fh                           ; 74 11
     11081    je short 07674h                           ; 74 11
    1108111082    mov al, byte [bp-008h]                    ; 8a 46 f8
    1108211083    xor ah, ah                                ; 30 e4
     
    1108411085    push 0092eh                               ; 68 2e 09
    1108511086    push strict byte 00007h                   ; 6a 07
    11086     call 01966h                               ; e8 fa a2
     11087    call 01966h                               ; e8 f5 a2
    1108711088    add sp, strict byte 00006h                ; 83 c4 06
    1108811089    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1108911090    xor ah, ah                                ; 30 e4
    11090     call 072dah                               ; e8 63 fc
     11091    call 072dfh                               ; e8 63 fc
    1109111092    mov dx, ss                                ; 8c d2
    1109211093    lea ax, [bp-008h]                         ; 8d 46 f8
    11093     call 0730eh                               ; e8 8f fc
     11094    call 07313h                               ; e8 8f fc
    1109411095    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    11095     je short 076d1h                           ; 74 4c
     11096    je short 076d6h                           ; 74 4c
    1109611097    mov al, byte [bp-008h]                    ; 8a 46 f8
    1109711098    xor ah, ah                                ; 30 e4
     
    1109911100    push 0092eh                               ; 68 2e 09
    1110011101    push strict byte 00007h                   ; 6a 07
    11101     call 01966h                               ; e8 d3 a2
     11102    call 01966h                               ; e8 ce a2
    1110211103    add sp, strict byte 00006h                ; 83 c4 06
    11103     jmp short 076d1h                          ; eb 39
     11104    jmp short 076d6h                          ; eb 39
    1110411105    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1110511106    mov byte [bp+013h], 003h                  ; c6 46 13 03
    11106     jmp short 076d1h                          ; eb 2f
     11107    jmp short 076d6h                          ; eb 2f
    1110711108    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1110811109    mov byte [bp+013h], 002h                  ; c6 46 13 02
    11109     jmp short 076d1h                          ; eb 25
     11110    jmp short 076d6h                          ; eb 25
    1111011111    mov ax, 000f2h                            ; b8 f2 00
    11111     call 072dah                               ; e8 28 fc
     11112    call 072dfh                               ; e8 28 fc
    1111211113    test al, al                               ; 84 c0
    11113     jne short 076c9h                          ; 75 13
     11114    jne short 076ceh                          ; 75 13
    1111411115    mov dx, ss                                ; 8c d2
    1111511116    lea ax, [bp-008h]                         ; 8d 46 f8
    11116     call 0730eh                               ; e8 50 fc
     11117    call 07313h                               ; e8 50 fc
    1111711118    mov dx, ss                                ; 8c d2
    1111811119    lea ax, [bp-006h]                         ; 8d 46 fa
    11119     call 0730eh                               ; e8 48 fc
    11120     jmp near 075a2h                           ; e9 d9 fe
     11120    call 07313h                               ; e8 48 fc
     11121    jmp near 075a7h                           ; e9 d9 fe
    1112111122    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1112211123    mov byte [bp+013h], 003h                  ; c6 46 13 03
    11123     jmp near 077f0h                           ; e9 1c 01
     11124    jmp near 077f5h                           ; e9 1c 01
    1112411125    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1112511126    test al, al                               ; 84 c0
    11126     jbe short 076e2h                          ; 76 07
     11127    jbe short 076e7h                          ; 76 07
    1112711128    cmp AL, strict byte 002h                  ; 3c 02
    11128     jbe short 07749h                          ; 76 6a
    11129     jmp near 0777eh                           ; e9 9c 00
     11129    jbe short 0774eh                          ; 76 6a
     11130    jmp near 07783h                           ; e9 9c 00
    1113011131    mov ax, 000e9h                            ; b8 e9 00
    11131     call 072dah                               ; e8 f2 fb
     11132    call 072dfh                               ; e8 f2 fb
    1113211133    test al, al                               ; 84 c0
    11133     jne short 07752h                          ; 75 66
     11134    jne short 07757h                          ; 75 66
    1113411135    mov dx, ss                                ; 8c d2
    1113511136    lea ax, [bp-008h]                         ; 8d 46 f8
    11136     call 0730eh                               ; e8 1a fc
     11137    call 07313h                               ; e8 1a fc
    1113711138    mov cl, al                                ; 88 c1
    1113811139    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    11139     je short 0770dh                           ; 74 11
     11140    je short 07712h                           ; 74 11
    1114011141    mov al, byte [bp-008h]                    ; 8a 46 f8
    1114111142    xor ah, ah                                ; 30 e4
     
    1114311144    push 0092eh                               ; 68 2e 09
    1114411145    push strict byte 00007h                   ; 6a 07
    11145     call 01966h                               ; e8 5c a2
     11146    call 01966h                               ; e8 57 a2
    1114611147    add sp, strict byte 00006h                ; 83 c4 06
    1114711148    test cl, cl                               ; 84 c9
    11148     jne short 07774h                          ; 75 63
     11149    jne short 07779h                          ; 75 63
    1114911150    mov dx, ss                                ; 8c d2
    1115011151    lea ax, [bp-008h]                         ; 8d 46 f8
    11151     call 0730eh                               ; e8 f5 fb
     11152    call 07313h                               ; e8 f5 fb
    1115211153    test al, al                               ; 84 c0
    11153     jne short 07774h                          ; 75 57
     11154    jne short 07779h                          ; 75 57
    1115411155    mov dx, ss                                ; 8c d2
    1115511156    lea ax, [bp-006h]                         ; 8d 46 fa
    11156     call 0730eh                               ; e8 e9 fb
     11157    call 07313h                               ; e8 e9 fb
    1115711158    test al, al                               ; 84 c0
    11158     jne short 07774h                          ; 75 4b
     11159    jne short 07779h                          ; 75 4b
    1115911160    mov dx, ss                                ; 8c d2
    1116011161    lea ax, [bp-004h]                         ; 8d 46 fc
    11161     call 0730eh                               ; e8 dd fb
     11162    call 07313h                               ; e8 dd fb
    1116211163    test al, al                               ; 84 c0
    11163     jne short 07774h                          ; 75 3f
     11164    jne short 07779h                          ; 75 3f
    1116411165    mov al, byte [bp-008h]                    ; 8a 46 f8
    1116511166    mov byte [bp+00ch], al                    ; 88 46 0c
     
    1116811169    mov al, byte [bp-004h]                    ; 8a 46 fc
    1116911170    mov byte [bp+00eh], al                    ; 88 46 0e
    11170     jmp short 076d1h                          ; eb 88
     11171    jmp short 076d6h                          ; eb 88
    1117111172    cmp AL, strict byte 001h                  ; 3c 01
    11172     jne short 07754h                          ; 75 07
     11173    jne short 07759h                          ; 75 07
    1117311174    mov ax, 000e6h                            ; b8 e6 00
    11174     jmp short 07757h                          ; eb 05
    11175     jmp short 07774h                          ; eb 20
     11175    jmp short 0775ch                          ; eb 05
     11176    jmp short 07779h                          ; eb 20
    1117611177    mov ax, 000e7h                            ; b8 e7 00
    11177     call 072dah                               ; e8 80 fb
     11178    call 072dfh                               ; e8 80 fb
    1117811179    mov cl, al                                ; 88 c1
    1117911180    test cl, cl                               ; 84 c9
    11180     jne short 07770h                          ; 75 10
     11181    jne short 07775h                          ; 75 10
    1118111182    mov dx, ss                                ; 8c d2
    1118211183    lea ax, [bp-008h]                         ; 8d 46 f8
    11183     call 0730eh                               ; e8 a6 fb
     11184    call 07313h                               ; e8 a6 fb
    1118411185    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    11185     je short 07770h                           ; 74 02
     11186    je short 07775h                           ; 74 02
    1118611187    mov CL, strict byte 001h                  ; b1 01
    1118711188    test cl, cl                               ; 84 c9
    11188     je short 077dbh                           ; 74 67
     11189    je short 077e0h                           ; 74 67
    1118911190    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1119011191    mov byte [bp+013h], 003h                  ; c6 46 13 03
    11191     jmp short 077dbh                          ; eb 5d
     11192    jmp short 077e0h                          ; eb 5d
    1119211193    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1119311194    xor ah, ah                                ; 30 e4
     
    1119511196    push 0095ah                               ; 68 5a 09
    1119611197    push strict byte 00007h                   ; 6a 07
    11197     call 01966h                               ; e8 da a1
     11198    call 01966h                               ; e8 d5 a1
    1119811199    add sp, strict byte 00006h                ; 83 c4 06
    1119911200    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1120011201    mov byte [bp+013h], 001h                  ; c6 46 13 01
    11201     jmp short 077f0h                          ; eb 57
     11202    jmp short 077f5h                          ; eb 57
    1120211203    mov si, word [bp+00ch]                    ; 8b 76 0c
    1120311204    mov bx, si                                ; 89 f3
    1120411205    mov dx, strict word 00022h                ; ba 22 00
    1120511206    mov ax, cx                                ; 89 c8
    11206     call 0167ah                               ; e8 d4 9e
     11207    call 0167ah                               ; e8 cf 9e
    1120711208    mov bx, word [bp+014h]                    ; 8b 5e 14
    1120811209    mov dx, strict word 00024h                ; ba 24 00
    1120911210    mov ax, cx                                ; 89 c8
    11210     call 0167ah                               ; e8 c9 9e
     11211    call 0167ah                               ; e8 c4 9e
    1121111212    mov dx, strict word 00027h                ; ba 27 00
    1121211213    mov ax, cx                                ; 89 c8
    11213     call 01650h                               ; e8 97 9e
     11214    call 01650h                               ; e8 92 9e
    1121411215    mov ah, al                                ; 88 c4
    1121511216    test si, si                               ; 85 f6
    11216     jne short 077cdh                          ; 75 0e
     11217    jne short 077d2h                          ; 75 0e
    1121711218    cmp word [bp+014h], strict byte 00000h    ; 83 7e 14 00
    11218     jne short 077cdh                          ; 75 08
     11219    jne short 077d2h                          ; 75 08
    1121911220    test AL, strict byte 080h                 ; a8 80
    11220     je short 077cfh                           ; 74 06
     11221    je short 077d4h                           ; 74 06
    1122111222    and AL, strict byte 07fh                  ; 24 7f
    11222     jmp short 077cfh                          ; eb 02
     11223    jmp short 077d4h                          ; eb 02
    1122311224    or AL, strict byte 080h                   ; 0c 80
    1122411225    mov bl, al                                ; 88 c3
     
    1122611227    mov dx, strict word 00027h                ; ba 27 00
    1122711228    mov ax, cx                                ; 89 c8
    11228     call 0165eh                               ; e8 83 9e
    11229     jmp short 077f0h                          ; eb 13
     11229    call 0165eh                               ; e8 7e 9e
     11230    jmp short 077f5h                          ; eb 13
    1123011231    push 00974h                               ; 68 74 09
    1123111232    push strict byte 00007h                   ; 6a 07
    11232     call 01966h                               ; e8 81 a1
     11233    call 01966h                               ; e8 7c a1
    1123311234    add sp, strict byte 00004h                ; 83 c4 04
    1123411235    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1123511236    mov byte [bp+013h], 001h                  ; c6 46 13 01
    1123611237    mov ax, strict word 00047h                ; b8 47 00
    11237     call 0736bh                               ; e8 75 fb
     11238    call 07370h                               ; e8 75 fb
    1123811239    lea sp, [bp-002h]                         ; 8d 66 fe
    1123911240    pop si                                    ; 5e
    1124011241    pop bp                                    ; 5d
    1124111242    retn                                      ; c3
    11242 _int17_function:                             ; 0xf77fc LB 0xaf
     11243_int17_function:                             ; 0xf7801 LB 0xaf
    1124311244    push bp                                   ; 55
    1124411245    mov bp, sp                                ; 89 e5
     
    1125011251    add dx, strict byte 00008h                ; 83 c2 08
    1125111252    mov ax, strict word 00040h                ; b8 40 00
    11252     call 0166ch                               ; e8 5c 9e
     11253    call 0166ch                               ; e8 57 9e
    1125311254    mov bx, ax                                ; 89 c3
    1125411255    mov si, ax                                ; 89 c6
    1125511256    cmp byte [bp+013h], 003h                  ; 80 7e 13 03
    11256     jnc short 07826h                          ; 73 0c
     11257    jnc short 0782bh                          ; 73 0c
    1125711258    mov ax, word [bp+00eh]                    ; 8b 46 0e
    1125811259    cmp ax, strict word 00003h                ; 3d 03 00
    11259     jnc short 07826h                          ; 73 04
     11260    jnc short 0782bh                          ; 73 04
    1126011261    test bx, bx                               ; 85 db
    11261     jnbe short 07829h                         ; 77 03
    11262     jmp near 078a1h                           ; e9 78 00
     11262    jnbe short 0782eh                         ; 77 03
     11263    jmp near 078a6h                           ; e9 78 00
    1126311264    mov dx, ax                                ; 89 c2
    1126411265    add dx, strict byte 00078h                ; 83 c2 78
    1126511266    mov ax, strict word 00040h                ; b8 40 00
    11266     call 01650h                               ; e8 1c 9e
     11267    call 01650h                               ; e8 17 9e
    1126711268    xor ah, ah                                ; 30 e4
    1126811269    mov cx, ax                                ; 89 c1
    1126911270    sal cx, 008h                              ; c1 e1 08
    1127011271    cmp byte [bp+013h], 000h                  ; 80 7e 13 00
    11271     jne short 0786dh                          ; 75 2c
     11272    jne short 07872h                          ; 75 2c
    1127211273    mov al, byte [bp+012h]                    ; 8a 46 12
    1127311274    mov dx, bx                                ; 89 da
     
    1128911290    ; sub ah, ah                                ; 2a e4
    1129011291    test AL, strict byte 040h                 ; a8 40
    11291     je short 0786dh                           ; 74 07
     11292    je short 07872h                           ; 74 07
    1129211293    test cx, cx                               ; 85 c9
    11293     je short 0786dh                           ; 74 03
     11294    je short 07872h                           ; 74 03
    1129411295    dec cx                                    ; 49
    11295     jmp short 0785ch                          ; eb ef
     11296    jmp short 07861h                          ; eb ef
    1129611297    cmp byte [bp+013h], 001h                  ; 80 7e 13 01
    11297     jne short 07888h                          ; 75 15
     11298    jne short 0788dh                          ; 75 15
    1129811299    lea dx, [si+002h]                         ; 8d 54 02
    1129911300    in AL, DX                                 ; ec
     
    1131411315    mov byte [bp+013h], al                    ; 88 46 13
    1131511316    test cx, cx                               ; 85 c9
    11316     jne short 0789bh                          ; 75 04
     11317    jne short 078a0h                          ; 75 04
    1131711318    or byte [bp+013h], 001h                   ; 80 4e 13 01
    1131811319    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    11319     jmp short 078a5h                          ; eb 04
     11320    jmp short 078aah                          ; eb 04
    1132011321    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    1132111322    lea sp, [bp-002h]                         ; 8d 66 fe
     
    1132311324    pop bp                                    ; 5d
    1132411325    retn                                      ; c3
    11325 wait_:                                       ; 0xf78ab LB 0xaf
     11326wait_:                                       ; 0xf78b0 LB 0xaf
    1132611327    push bp                                   ; 55
    1132711328    mov bp, sp                                ; 89 e5
     
    1134111342    mov dx, 0046ch                            ; ba 6c 04
    1134211343    xor ax, ax                                ; 31 c0
    11343     call 01688h                               ; e8 ba 9d
     11344    call 01688h                               ; e8 b5 9d
    1134411345    mov word [bp-010h], ax                    ; 89 46 f0
    1134511346    mov bx, dx                                ; 89 d3
     
    1134711348    mov dx, 0046ch                            ; ba 6c 04
    1134811349    xor ax, ax                                ; 31 c0
    11349     call 01688h                               ; e8 ac 9d
     11350    call 01688h                               ; e8 a7 9d
    1135011351    mov word [bp-012h], ax                    ; 89 46 ee
    1135111352    mov di, dx                                ; 89 d7
    1135211353    cmp dx, bx                                ; 39 da
    11353     jnbe short 078ech                         ; 77 07
    11354     jne short 078f3h                          ; 75 0c
     11354    jnbe short 078f1h                         ; 77 07
     11355    jne short 078f8h                          ; 75 0c
    1135511356    cmp ax, word [bp-010h]                    ; 3b 46 f0
    11356     jbe short 078f3h                          ; 76 07
     11357    jbe short 078f8h                          ; 76 07
    1135711358    sub ax, word [bp-010h]                    ; 2b 46 f0
    1135811359    sbb dx, bx                                ; 19 da
    11359     jmp short 078feh                          ; eb 0b
     11360    jmp short 07903h                          ; eb 0b
    1136011361    cmp dx, bx                                ; 39 da
    11361     jc short 078feh                           ; 72 07
    11362     jne short 07902h                          ; 75 09
     11362    jc short 07903h                           ; 72 07
     11363    jne short 07907h                          ; 75 09
    1136311364    cmp ax, word [bp-010h]                    ; 3b 46 f0
    11364     jnc short 07902h                          ; 73 04
     11365    jnc short 07907h                          ; 73 04
    1136511366    sub si, ax                                ; 29 c6
    1136611367    sbb cx, dx                                ; 19 d1
     
    1137011371    mov ax, 00100h                            ; b8 00 01
    1137111372    int 016h                                  ; cd 16
    11372     je short 07916h                           ; 74 05
     11373    je short 0791bh                           ; 74 05
    1137311374    mov AL, strict byte 001h                  ; b0 01
    11374     jmp near 07918h                           ; e9 02 00
     11375    jmp near 0791dh                           ; e9 02 00
    1137511376    db  032h, 0c0h
    1137611377    ; xor al, al                                ; 32 c0
    1137711378    test al, al                               ; 84 c0
    11378     je short 0793fh                           ; 74 23
     11379    je short 07944h                           ; 74 23
    1137911380    db  033h, 0c0h
    1138011381    ; xor ax, ax                                ; 33 c0
     
    1138711388    push 00996h                               ; 68 96 09
    1138811389    push strict byte 00004h                   ; 6a 04
    11389     call 01966h                               ; e8 34 a0
     11390    call 01966h                               ; e8 2f a0
    1139011391    add sp, strict byte 00006h                ; 83 c4 06
    1139111392    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    11392     je short 0793fh                           ; 74 04
     11393    je short 07944h                           ; 74 04
    1139311394    mov al, dl                                ; 88 d0
    11394     jmp short 07951h                          ; eb 12
     11395    jmp short 07956h                          ; eb 12
    1139511396    test cx, cx                               ; 85 c9
    11396     jnle short 078d3h                         ; 7f 90
    11397     jne short 07949h                          ; 75 04
     11397    jnle short 078d8h                         ; 7f 90
     11398    jne short 0794eh                          ; 75 04
    1139811399    test si, si                               ; 85 f6
    11399     jnbe short 078d3h                         ; 77 8a
     11400    jnbe short 078d8h                         ; 77 8a
    1140011401    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1140111402    push ax                                   ; 50
     
    1140911410    pop bp                                    ; 5d
    1141011411    retn                                      ; c3
    11411 read_logo_byte_:                             ; 0xf795a LB 0x16
     11412read_logo_byte_:                             ; 0xf795f LB 0x16
    1141211413    push bp                                   ; 55
    1141311414    mov bp, sp                                ; 89 e5
     
    1142411425    pop bp                                    ; 5d
    1142511426    retn                                      ; c3
    11426 read_logo_word_:                             ; 0xf7970 LB 0x14
     11427read_logo_word_:                             ; 0xf7975 LB 0x14
    1142711428    push bp                                   ; 55
    1142811429    mov bp, sp                                ; 89 e5
     
    1143711438    pop bp                                    ; 5d
    1143811439    retn                                      ; c3
    11439 print_detected_harddisks_:                   ; 0xf7984 LB 0x13a
     11440print_detected_harddisks_:                   ; 0xf7989 LB 0x13a
    1144011441    push bp                                   ; 55
    1144111442    mov bp, sp                                ; 89 e5
     
    1144911450    mov dx, strict word 0000eh                ; ba 0e 00
    1145011451    mov ax, strict word 00040h                ; b8 40 00
    11451     call 0166ch                               ; e8 d5 9c
     11452    call 0166ch                               ; e8 d0 9c
    1145211453    mov si, ax                                ; 89 c6
    1145311454    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
     
    1145511456    xor ch, ch                                ; 30 ed
    1145611457    mov dx, 00304h                            ; ba 04 03
    11457     call 01650h                               ; e8 a9 9c
     11458    call 01650h                               ; e8 a4 9c
    1145811459    mov byte [bp-00ch], al                    ; 88 46 f4
    1145911460    xor bl, bl                                ; 30 db
    1146011461    cmp bl, byte [bp-00ch]                    ; 3a 5e f4
    11461     jnc short 07a0eh                          ; 73 5d
     11462    jnc short 07a13h                          ; 73 5d
    1146211463    mov al, bl                                ; 88 d8
    1146311464    xor ah, ah                                ; 30 e4
     
    1146511466    add dx, 00305h                            ; 81 c2 05 03
    1146611467    mov ax, si                                ; 89 f0
    11467     call 01650h                               ; e8 90 9c
     11468    call 01650h                               ; e8 8b 9c
    1146811469    mov bh, al                                ; 88 c7
    1146911470    cmp AL, strict byte 00ch                  ; 3c 0c
    11470     jc short 079ebh                           ; 72 25
     11471    jc short 079f0h                           ; 72 25
    1147111472    test cl, cl                               ; 84 c9
    11472     jne short 079d7h                          ; 75 0d
     11473    jne short 079dch                          ; 75 0d
    1147311474    push 009a7h                               ; 68 a7 09
    1147411475    push strict byte 00002h                   ; 6a 02
    11475     call 01966h                               ; e8 94 9f
     11476    call 01966h                               ; e8 8f 9f
    1147611477    add sp, strict byte 00004h                ; 83 c4 04
    1147711478    mov CL, strict byte 001h                  ; b1 01
     
    1148211483    push 009bch                               ; 68 bc 09
    1148311484    push strict byte 00002h                   ; 6a 02
    11484     call 01966h                               ; e8 81 9f
     11485    call 01966h                               ; e8 7c 9f
    1148511486    add sp, strict byte 00006h                ; 83 c4 06
    11486     jmp near 07a8bh                           ; e9 a0 00
     11487    jmp near 07a90h                           ; e9 a0 00
    1148711488    cmp AL, strict byte 008h                  ; 3c 08
    11488     jc short 07a02h                           ; 72 13
     11489    jc short 07a07h                           ; 72 13
    1148911490    test ch, ch                               ; 84 ed
    11490     jne short 07a00h                          ; 75 0d
     11491    jne short 07a05h                          ; 75 0d
    1149111492    push 009cfh                               ; 68 cf 09
    1149211493    push strict byte 00002h                   ; 6a 02
    11493     call 01966h                               ; e8 6b 9f
     11494    call 01966h                               ; e8 66 9f
    1149411495    add sp, strict byte 00004h                ; 83 c4 04
    1149511496    mov CH, strict byte 001h                  ; b5 01
    11496     jmp short 079d7h                          ; eb d5
     11497    jmp short 079dch                          ; eb d5
    1149711498    cmp AL, strict byte 004h                  ; 3c 04
    11498     jnc short 07a22h                          ; 73 1c
     11499    jnc short 07a27h                          ; 73 1c
    1149911500    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    11500     je short 07a11h                           ; 74 05
    11501     jmp short 07a22h                          ; eb 14
    11502     jmp near 07a90h                           ; e9 7f 00
     11501    je short 07a16h                           ; 74 05
     11502    jmp short 07a27h                          ; eb 14
     11503    jmp near 07a95h                           ; e9 7f 00
    1150311504    push 009e4h                               ; 68 e4 09
    1150411505    push strict byte 00002h                   ; 6a 02
    11505     call 01966h                               ; e8 4d 9f
     11506    call 01966h                               ; e8 48 9f
    1150611507    add sp, strict byte 00004h                ; 83 c4 04
    1150711508    mov byte [bp-00eh], 001h                  ; c6 46 f2 01
    11508     jmp short 07a38h                          ; eb 16
     11509    jmp short 07a3dh                          ; eb 16
    1150911510    cmp bh, 004h                              ; 80 ff 04
    11510     jc short 07a38h                           ; 72 11
     11511    jc short 07a3dh                           ; 72 11
    1151111512    test cl, cl                               ; 84 c9
    11512     jne short 07a38h                          ; 75 0d
     11513    jne short 07a3dh                          ; 75 0d
    1151311514    push 009f6h                               ; 68 f6 09
    1151411515    push strict byte 00002h                   ; 6a 02
    11515     call 01966h                               ; e8 33 9f
     11516    call 01966h                               ; e8 2e 9f
    1151611517    add sp, strict byte 00004h                ; 83 c4 04
    1151711518    mov CL, strict byte 001h                  ; b1 01
     
    1152211523    push 00a0ah                               ; 68 0a 0a
    1152311524    push strict byte 00002h                   ; 6a 02
    11524     call 01966h                               ; e8 20 9f
     11525    call 01966h                               ; e8 1b 9f
    1152511526    add sp, strict byte 00006h                ; 83 c4 06
    1152611527    cmp bh, 004h                              ; 80 ff 04
    11527     jc short 07a51h                           ; 72 03
     11528    jc short 07a56h                           ; 72 03
    1152811529    sub bh, 004h                              ; 80 ef 04
    1152911530    mov al, bh                                ; 88 f8
     
    1153411535    sar ax, 1                                 ; d1 f8
    1153511536    test ax, ax                               ; 85 c0
    11536     je short 07a63h                           ; 74 05
     11537    je short 07a68h                           ; 74 05
    1153711538    push 00a14h                               ; 68 14 0a
    11538     jmp short 07a66h                          ; eb 03
     11539    jmp short 07a6bh                          ; eb 03
    1153911540    push 00a1fh                               ; 68 1f 0a
    1154011541    push strict byte 00002h                   ; 6a 02
    11541     call 01966h                               ; e8 fb 9e
     11542    call 01966h                               ; e8 f6 9e
    1154211543    add sp, strict byte 00004h                ; 83 c4 04
    1154311544    mov al, bh                                ; 88 f8
     
    1154711548    idiv di                                   ; f7 ff
    1154811549    test dx, dx                               ; 85 d2
    11549     je short 07a81h                           ; 74 05
     11550    je short 07a86h                           ; 74 05
    1155011551    push 00a28h                               ; 68 28 0a
    11551     jmp short 07a84h                          ; eb 03
     11552    jmp short 07a89h                          ; eb 03
    1155211553    push 00a2eh                               ; 68 2e 0a
    1155311554    push di                                   ; 57
    11554     call 01966h                               ; e8 de 9e
     11555    call 01966h                               ; e8 d9 9e
    1155511556    add sp, strict byte 00004h                ; 83 c4 04
    1155611557    db  0feh, 0c3h
    1155711558    ; inc bl                                    ; fe c3
    11558     jmp near 079ach                           ; e9 1c ff
     11559    jmp near 079b1h                           ; e9 1c ff
    1155911560    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    11560     jne short 07aa9h                          ; 75 13
     11561    jne short 07aaeh                          ; 75 13
    1156111562    test cl, cl                               ; 84 c9
    11562     jne short 07aa9h                          ; 75 0f
     11563    jne short 07aaeh                          ; 75 0f
    1156311564    test ch, ch                               ; 84 ed
    11564     jne short 07aa9h                          ; 75 0b
     11565    jne short 07aaeh                          ; 75 0b
    1156511566    push 00a35h                               ; 68 35 0a
    1156611567    push strict byte 00002h                   ; 6a 02
    11567     call 01966h                               ; e8 c0 9e
     11568    call 01966h                               ; e8 bb 9e
    1156811569    add sp, strict byte 00004h                ; 83 c4 04
    1156911570    push 00a49h                               ; 68 49 0a
    1157011571    push strict byte 00002h                   ; 6a 02
    11571     call 01966h                               ; e8 b5 9e
     11572    call 01966h                               ; e8 b0 9e
    1157211573    add sp, strict byte 00004h                ; 83 c4 04
    1157311574    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1157911580    pop bp                                    ; 5d
    1158011581    retn                                      ; c3
    11581 get_boot_drive_:                             ; 0xf7abe LB 0x28
     11582get_boot_drive_:                             ; 0xf7ac3 LB 0x28
    1158211583    push bp                                   ; 55
    1158311584    mov bp, sp                                ; 89 e5
     
    1158711588    mov dx, strict word 0000eh                ; ba 0e 00
    1158811589    mov ax, strict word 00040h                ; b8 40 00
    11589     call 0166ch                               ; e8 9e 9b
     11590    call 0166ch                               ; e8 99 9b
    1159011591    mov dx, 00304h                            ; ba 04 03
    11591     call 01650h                               ; e8 7c 9b
     11592    call 01650h                               ; e8 77 9b
    1159211593    sub bl, 002h                              ; 80 eb 02
    1159311594    cmp bl, al                                ; 38 c3
    11594     jc short 07addh                           ; 72 02
     11595    jc short 07ae2h                           ; 72 02
    1159511596    mov BL, strict byte 0ffh                  ; b3 ff
    1159611597    mov al, bl                                ; 88 d8
     
    1160011601    pop bp                                    ; 5d
    1160111602    retn                                      ; c3
    11602 show_logo_:                                  ; 0xf7ae6 LB 0x226
     11603show_logo_:                                  ; 0xf7aeb LB 0x226
    1160311604    push bp                                   ; 55
    1160411605    mov bp, sp                                ; 89 e5
     
    1161111612    mov dx, strict word 0000eh                ; ba 0e 00
    1161211613    mov ax, strict word 00040h                ; b8 40 00
    11613     call 0166ch                               ; e8 72 9b
     11614    call 0166ch                               ; e8 6d 9b
    1161411615    mov si, ax                                ; 89 c6
    1161511616    xor cl, cl                                ; 30 c9
     
    1162311624    mov al, dl                                ; 88 d0
    1162411625    xor ah, ah                                ; 30 e4
    11625     call 07970h                               ; e8 5d fe
     11626    call 07975h                               ; e8 5d fe
    1162611627    cmp ax, 066bbh                            ; 3d bb 66
    11627     jne short 07b2ah                          ; 75 12
     11628    jne short 07b2fh                          ; 75 12
    1162811629    push SS                                   ; 16
    1162911630    pop ES                                    ; 07
     
    1163311634    mov word [es:di], bx                      ; 26 89 1d
    1163411635    cmp ax, strict word 0004fh                ; 3d 4f 00
    11635     je short 07b2dh                           ; 74 03
    11636     jmp near 07beah                           ; e9 bd 00
     11636    je short 07b32h                           ; 74 03
     11637    jmp near 07befh                           ; e9 bd 00
    1163711638    mov al, dl                                ; 88 d0
    1163811639    add AL, strict byte 004h                  ; 04 04
    1163911640    xor ah, ah                                ; 30 e4
    11640     call 0795ah                               ; e8 24 fe
     11641    call 0795fh                               ; e8 24 fe
    1164111642    mov ch, al                                ; 88 c5
    1164211643    mov byte [bp-012h], al                    ; 88 46 ee
     
    1164411645    add AL, strict byte 005h                  ; 04 05
    1164511646    xor ah, ah                                ; 30 e4
    11646     call 0795ah                               ; e8 16 fe
     11647    call 0795fh                               ; e8 16 fe
    1164711648    mov dh, al                                ; 88 c6
    1164811649    mov byte [bp-010h], al                    ; 88 46 f0
     
    1165011651    add AL, strict byte 002h                  ; 04 02
    1165111652    xor ah, ah                                ; 30 e4
    11652     call 07970h                               ; e8 1e fe
     11653    call 07975h                               ; e8 1e fe
    1165311654    mov bx, ax                                ; 89 c3
    1165411655    mov word [bp-014h], ax                    ; 89 46 ec
     
    1165611657    add AL, strict byte 006h                  ; 04 06
    1165711658    xor ah, ah                                ; 30 e4
    11658     call 0795ah                               ; e8 fa fd
     11659    call 0795fh                               ; e8 fa fd
    1165911660    mov byte [bp-00eh], al                    ; 88 46 f2
    1166011661    test ch, ch                               ; 84 ed
    11661     jne short 07b6fh                          ; 75 08
     11662    jne short 07b74h                          ; 75 08
    1166211663    test dh, dh                               ; 84 f6
    11663     jne short 07b6fh                          ; 75 04
     11664    jne short 07b74h                          ; 75 04
    1166411665    test bx, bx                               ; 85 db
    11665     je short 07bc7h                           ; 74 58
     11666    je short 07bcch                           ; 74 58
    1166611667    mov bx, 00142h                            ; bb 42 01
    1166711668    mov ax, 04f02h                            ; b8 02 4f
    1166811669    int 010h                                  ; cd 10
    1166911670    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
    11670     je short 07ba0h                           ; 74 23
     11671    je short 07ba5h                           ; 74 23
    1167111672    xor bx, bx                                ; 31 db
    11672     jmp short 07b87h                          ; eb 06
     11673    jmp short 07b8ch                          ; eb 06
    1167311674    inc bx                                    ; 43
    1167411675    cmp bx, strict byte 00010h                ; 83 fb 10
    11675     jnbe short 07ba7h                         ; 77 20
     11676    jnbe short 07bach                         ; 77 20
    1167611677    mov ax, bx                                ; 89 d8
    1167711678    or ah, 002h                               ; 80 cc 02
     
    1168011681    xor dx, dx                                ; 31 d2
    1168111682    mov ax, strict word 00001h                ; b8 01 00
    11682     call 078abh                               ; e8 13 fd
     11683    call 078b0h                               ; e8 13 fd
    1168311684    cmp AL, strict byte 086h                  ; 3c 86
    11684     jne short 07b81h                          ; 75 e5
     11685    jne short 07b86h                          ; 75 e5
    1168511686    mov CL, strict byte 001h                  ; b1 01
    11686     jmp short 07ba7h                          ; eb 07
     11687    jmp short 07bach                          ; eb 07
    1168711688    mov ax, 00210h                            ; b8 10 02
    1168811689    mov dx, 003b8h                            ; ba b8 03
    1168911690    out DX, ax                                ; ef
    1169011691    test cl, cl                               ; 84 c9
    11691     jne short 07bbdh                          ; 75 12
     11692    jne short 07bc2h                          ; 75 12
    1169211693    mov ax, word [bp-014h]                    ; 8b 46 ec
    1169311694    shr ax, 004h                              ; c1 e8 04
    1169411695    mov dx, strict word 00001h                ; ba 01 00
    11695     call 078abh                               ; e8 f4 fc
     11696    call 078b0h                               ; e8 f4 fc
    1169611697    cmp AL, strict byte 086h                  ; 3c 86
    11697     jne short 07bbdh                          ; 75 02
     11698    jne short 07bc2h                          ; 75 02
    1169811699    mov CL, strict byte 001h                  ; b1 01
    1169911700    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    11700     je short 07beah                           ; 74 27
     11701    je short 07befh                           ; 74 27
    1170111702    test cl, cl                               ; 84 c9
    11702     je short 07bc9h                           ; 74 02
    11703     jmp short 07beah                          ; eb 21
     11703    je short 07bceh                           ; 74 02
     11704    jmp short 07befh                          ; eb 21
    1170411705    mov bx, strict word 00010h                ; bb 10 00
    11705     jmp short 07bd3h                          ; eb 05
     11706    jmp short 07bd8h                          ; eb 05
    1170611707    dec bx                                    ; 4b
    1170711708    test bx, bx                               ; 85 db
    11708     jbe short 07beah                          ; 76 17
     11709    jbe short 07befh                          ; 76 17
    1170911710    mov ax, bx                                ; 89 d8
    1171011711    or ah, 002h                               ; 80 cc 02
     
    1171311714    xor dx, dx                                ; 31 d2
    1171411715    mov ax, strict word 00001h                ; b8 01 00
    11715     call 078abh                               ; e8 c7 fc
     11716    call 078b0h                               ; e8 c7 fc
    1171611717    cmp AL, strict byte 086h                  ; 3c 86
    11717     jne short 07bceh                          ; 75 e6
     11718    jne short 07bd3h                          ; 75 e6
    1171811719    mov CL, strict byte 001h                  ; b1 01
    1171911720    xor bx, bx                                ; 31 db
    1172011721    mov dx, 0037dh                            ; ba 7d 03
    1172111722    mov ax, si                                ; 89 f0
    11722     call 0165eh                               ; e8 6a 9a
     11723    call 0165eh                               ; e8 65 9a
    1172311724    mov AL, strict byte 003h                  ; b0 03
    1172411725    mov AH, strict byte 000h                  ; b4 00
    1172511726    int 010h                                  ; cd 10
    1172611727    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    11727     je short 07c14h                           ; 74 14
     11728    je short 07c19h                           ; 74 14
    1172811729    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
    11729     jne short 07c3bh                          ; 75 35
     11730    jne short 07c40h                          ; 75 35
    1173011731    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    11731     jne short 07c3bh                          ; 75 2f
     11732    jne short 07c40h                          ; 75 2f
    1173211733    cmp word [bp-014h], strict byte 00000h    ; 83 7e ec 00
    11733     je short 07c17h                           ; 74 05
    11734     jmp short 07c3bh                          ; eb 27
    11735     jmp near 07cefh                           ; e9 d8 00
     11734    je short 07c1ch                           ; 74 05
     11735    jmp short 07c40h                          ; eb 27
     11736    jmp near 07cf4h                           ; e9 d8 00
    1173611737    cmp byte [bp-00eh], 002h                  ; 80 7e f2 02
    11737     jne short 07c28h                          ; 75 0b
     11738    jne short 07c2dh                          ; 75 0b
    1173811739    push 00a4bh                               ; 68 4b 0a
    1173911740    push strict byte 00002h                   ; 6a 02
    11740     call 01966h                               ; e8 41 9d
     11741    call 01966h                               ; e8 3c 9d
    1174111742    add sp, strict byte 00004h                ; 83 c4 04
    1174211743    test cl, cl                               ; 84 c9
    11743     jne short 07c3bh                          ; 75 0f
     11744    jne short 07c40h                          ; 75 0f
    1174411745    mov dx, strict word 00001h                ; ba 01 00
    1174511746    mov ax, 000c0h                            ; b8 c0 00
    11746     call 078abh                               ; e8 76 fc
     11747    call 078b0h                               ; e8 76 fc
    1174711748    cmp AL, strict byte 086h                  ; 3c 86
    11748     jne short 07c3bh                          ; 75 02
     11749    jne short 07c40h                          ; 75 02
    1174911750    mov CL, strict byte 001h                  ; b1 01
    1175011751    test cl, cl                               ; 84 c9
    11751     je short 07c14h                           ; 74 d5
     11752    je short 07c19h                           ; 74 d5
    1175211753    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    1175311754    mov ax, 00100h                            ; b8 00 01
     
    1176811769    push 00a6dh                               ; 68 6d 0a
    1176911770    push strict byte 00002h                   ; 6a 02
    11770     call 01966h                               ; e8 fe 9c
     11771    call 01966h                               ; e8 f9 9c
    1177111772    add sp, strict byte 00004h                ; 83 c4 04
    11772     call 07984h                               ; e8 16 fd
     11773    call 07989h                               ; e8 16 fd
    1177311774    push 00ab1h                               ; 68 b1 0a
    1177411775    push strict byte 00002h                   ; 6a 02
    11775     call 01966h                               ; e8 f0 9c
     11776    call 01966h                               ; e8 eb 9c
    1177611777    add sp, strict byte 00004h                ; 83 c4 04
    1177711778    mov dx, strict word 00001h                ; ba 01 00
    1177811779    mov ax, strict word 00040h                ; b8 40 00
    11779     call 078abh                               ; e8 29 fc
     11780    call 078b0h                               ; e8 29 fc
    1178011781    mov bl, al                                ; 88 c3
    1178111782    test al, al                               ; 84 c0
    11782     je short 07c79h                           ; 74 f1
     11783    je short 07c7eh                           ; 74 f1
    1178311784    cmp AL, strict byte 030h                  ; 3c 30
    11784     je short 07cdch                           ; 74 50
     11785    je short 07ce1h                           ; 74 50
    1178511786    cmp bl, 002h                              ; 80 fb 02
    11786     jc short 07cb5h                           ; 72 24
     11787    jc short 07cbah                           ; 72 24
    1178711788    cmp bl, 009h                              ; 80 fb 09
    11788     jnbe short 07cb5h                         ; 77 1f
     11789    jnbe short 07cbah                         ; 77 1f
    1178911790    mov al, bl                                ; 88 d8
    1179011791    xor ah, ah                                ; 30 e4
    11791     call 07abeh                               ; e8 21 fe
     11792    call 07ac3h                               ; e8 21 fe
    1179211793    cmp AL, strict byte 0ffh                  ; 3c ff
    11793     jne short 07ca3h                          ; 75 02
    11794     jmp short 07c79h                          ; eb d6
     11794    jne short 07ca8h                          ; 75 02
     11795    jmp short 07c7eh                          ; eb d6
    1179511796    mov bl, al                                ; 88 c3
    1179611797    xor bh, bh                                ; 30 ff
    1179711798    mov dx, 0037ch                            ; ba 7c 03
    1179811799    mov ax, si                                ; 89 f0
    11799     call 0165eh                               ; e8 af 99
     11800    call 0165eh                               ; e8 aa 99
    1180011801    mov byte [bp-00ch], 002h                  ; c6 46 f4 02
    11801     jmp short 07cdch                          ; eb 27
     11802    jmp short 07ce1h                          ; eb 27
    1180211803    cmp bl, 02eh                              ; 80 fb 2e
    11803     je short 07ccah                           ; 74 10
     11804    je short 07ccfh                           ; 74 10
    1180411805    cmp bl, 026h                              ; 80 fb 26
    11805     je short 07cd0h                           ; 74 11
     11806    je short 07cd5h                           ; 74 11
    1180611807    cmp bl, 021h                              ; 80 fb 21
    11807     jne short 07cd6h                          ; 75 12
     11808    jne short 07cdbh                          ; 75 12
    1180811809    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    11809     jmp short 07cdch                          ; eb 12
     11810    jmp short 07ce1h                          ; eb 12
    1181011811    mov byte [bp-00ch], 003h                  ; c6 46 f4 03
    11811     jmp short 07cdch                          ; eb 0c
     11812    jmp short 07ce1h                          ; eb 0c
    1181211813    mov byte [bp-00ch], 004h                  ; c6 46 f4 04
    11813     jmp short 07cdch                          ; eb 06
     11814    jmp short 07ce1h                          ; eb 06
    1181411815    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11815     je short 07c79h                           ; 74 9d
     11816    je short 07c7eh                           ; 74 9d
    1181611817    mov bl, byte [bp-00ch]                    ; 8a 5e f4
    1181711818    xor bh, bh                                ; 30 ff
    1181811819    mov dx, 0037dh                            ; ba 7d 03
    1181911820    mov ax, si                                ; 89 f0
    11820     call 0165eh                               ; e8 75 99
     11821    call 0165eh                               ; e8 70 99
    1182111822    mov AL, strict byte 003h                  ; b0 03
    1182211823    mov AH, strict byte 000h                  ; b4 00
     
    1183111832    push DS                                   ; 1e
    1183211833    mov ds, ax                                ; 8e d8
    11833     call 0edbfh                               ; e8 bf 70
     11834    call 0edbfh                               ; e8 ba 70
    1183411835    pop DS                                    ; 1f
    1183511836    pop bp                                    ; 5d
     
    1184211843    pop bp                                    ; 5d
    1184311844    retn                                      ; c3
    11844 delay_boot_:                                 ; 0xf7d0c LB 0x6b
     11845delay_boot_:                                 ; 0xf7d11 LB 0x6b
    1184511846    push bp                                   ; 55
    1184611847    mov bp, sp                                ; 89 e5
     
    1185211853    mov dx, ax                                ; 89 c2
    1185311854    test ax, ax                               ; 85 c0
    11854     je short 07d6dh                           ; 74 53
     11855    je short 07d72h                           ; 74 53
    1185511856    mov AL, strict byte 034h                  ; b0 34
    1185611857    out strict byte 043h, AL                  ; e6 43
     
    1186211863    push 00afbh                               ; 68 fb 0a
    1186311864    push strict byte 00002h                   ; 6a 02
    11864     call 01966h                               ; e8 37 9c
     11865    call 01966h                               ; e8 32 9c
    1186511866    add sp, strict byte 00006h                ; 83 c4 06
    1186611867    mov bx, dx                                ; 89 d3
    1186711868    test bx, bx                               ; 85 db
    11868     jbe short 07d4fh                          ; 76 17
     11869    jbe short 07d54h                          ; 76 17
    1186911870    push bx                                   ; 53
    1187011871    push 00b19h                               ; 68 19 0b
    1187111872    push strict byte 00002h                   ; 6a 02
    11872     call 01966h                               ; e8 25 9c
     11873    call 01966h                               ; e8 20 9c
    1187311874    add sp, strict byte 00006h                ; 83 c4 06
    1187411875    xor dx, dx                                ; 31 d2
    1187511876    mov ax, strict word 00040h                ; b8 40 00
    11876     call 078abh                               ; e8 5f fb
     11877    call 078b0h                               ; e8 5f fb
    1187711878    dec bx                                    ; 4b
    11878     jmp short 07d34h                          ; eb e5
     11879    jmp short 07d39h                          ; eb e5
    1187911880    push 00a49h                               ; 68 49 0a
    1188011881    push strict byte 00002h                   ; 6a 02
    11881     call 01966h                               ; e8 0f 9c
     11882    call 01966h                               ; e8 0a 9c
    1188211883    add sp, strict byte 00004h                ; 83 c4 04
    1188311884    mov AL, strict byte 034h                  ; b0 34
     
    1189011891    push DS                                   ; 1e
    1189111892    mov ds, ax                                ; 8e d8
    11892     call 0edbfh                               ; e8 54 70
     11893    call 0edbfh                               ; e8 4f 70
    1189311894    pop DS                                    ; 1f
    1189411895    pop bp                                    ; 5d
     
    1190111902    pop bp                                    ; 5d
    1190211903    retn                                      ; c3
    11903 scsi_cmd_data_in_:                           ; 0xf7d77 LB 0xd5
     11904scsi_cmd_data_in_:                           ; 0xf7d7c LB 0xd5
    1190411905    push bp                                   ; 55
    1190511906    mov bp, sp                                ; 89 e5
     
    1191711918    ; sub ah, ah                                ; 2a e4
    1191811919    test AL, strict byte 001h                 ; a8 01
    11919     jne short 07d8dh                          ; 75 f7
     11920    jne short 07d92h                          ; 75 f7
    1192011921    mov al, byte [bp+004h]                    ; 8a 46 04
    1192111922    cmp AL, strict byte 010h                  ; 3c 10
    11922     jne short 07da1h                          ; 75 04
     11923    jne short 07da6h                          ; 75 04
    1192311924    xor ax, ax                                ; 31 c0
    11924     jmp short 07da3h                          ; eb 02
     11925    jmp short 07da8h                          ; eb 02
    1192511926    xor ah, ah                                ; 30 e4
    1192611927    mov di, ax                                ; 89 c7
     
    1193011931    shr dx, 1                                 ; d1 ea
    1193111932    rcr ax, 1                                 ; d1 d8
    11932     loop 07dadh                               ; e2 fa
     11933    loop 07db2h                               ; e2 fa
    1193311934    mov cx, ax                                ; 89 c1
    1193411935    and cx, 000f0h                            ; 81 e1 f0 00
     
    1194811949    shr dx, 1                                 ; d1 ea
    1194911950    rcr ax, 1                                 ; d1 d8
    11950     loop 07dd2h                               ; e2 fa
     11951    loop 07dd7h                               ; e2 fa
    1195111952    mov dx, si                                ; 89 f2
    1195211953    out DX, AL                                ; ee
     
    1195511956    xor ah, ah                                ; 30 e4
    1195611957    cmp cx, ax                                ; 39 c1
    11957     jnc short 07df4h                          ; 73 0e
     11958    jnc short 07df9h                          ; 73 0e
    1195811959    les di, [bp-00ah]                         ; c4 7e f6
    1195911960    add di, cx                                ; 01 cf
     
    1196211963    out DX, AL                                ; ee
    1196311964    inc cx                                    ; 41
    11964     jmp short 07dddh                          ; eb e9
     11965    jmp short 07de2h                          ; eb e9
    1196511966    mov dx, si                                ; 89 f2
    1196611967    in AL, DX                                 ; ec
     
    1196811969    ; sub ah, ah                                ; 2a e4
    1196911970    test AL, strict byte 001h                 ; a8 01
    11970     jne short 07df4h                          ; 75 f7
     11971    jne short 07df9h                          ; 75 f7
    1197111972    test AL, strict byte 002h                 ; a8 02
    11972     je short 07e0fh                           ; 74 0e
     11973    je short 07e14h                           ; 74 0e
    1197311974    lea dx, [si+003h]                         ; 8d 54 03
    1197411975    xor al, al                                ; 30 c0
     
    1197811979    ; sub ah, ah                                ; 2a e4
    1197911980    mov di, strict word 00004h                ; bf 04 00
    11980     jmp short 07e41h                          ; eb 32
     11981    jmp short 07e46h                          ; eb 32
    1198111982    lea dx, [si+001h]                         ; 8d 54 01
    1198211983    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    11983     jne short 07e1eh                          ; 75 06
     11984    jne short 07e23h                          ; 75 06
    1198411985    cmp bx, 08000h                            ; 81 fb 00 80
    11985     jbe short 07e38h                          ; 76 1a
     11986    jbe short 07e3dh                          ; 76 1a
    1198611987    mov cx, 08000h                            ; b9 00 80
    1198711988    les di, [bp+006h]                         ; c4 7e 06
     
    1199211993    add ax, 00800h                            ; 05 00 08
    1199311994    mov word [bp+008h], ax                    ; 89 46 08
    11994     jmp short 07e0fh                          ; eb d7
     11995    jmp short 07e14h                          ; eb d7
    1199511996    mov cx, bx                                ; 89 d9
    1199611997    les di, [bp+006h]                         ; c4 7e 06
     
    1200312004    pop bp                                    ; 5d
    1200412005    retn 0000ah                               ; c2 0a 00
    12005 scsi_cmd_data_out_:                          ; 0xf7e4c LB 0xd5
     12006scsi_cmd_data_out_:                          ; 0xf7e51 LB 0xd5
    1200612007    push bp                                   ; 55
    1200712008    mov bp, sp                                ; 89 e5
     
    1201912020    ; sub ah, ah                                ; 2a e4
    1202012021    test AL, strict byte 001h                 ; a8 01
    12021     jne short 07e62h                          ; 75 f7
     12022    jne short 07e67h                          ; 75 f7
    1202212023    mov al, byte [bp+004h]                    ; 8a 46 04
    1202312024    cmp AL, strict byte 010h                  ; 3c 10
    12024     jne short 07e76h                          ; 75 04
     12025    jne short 07e7bh                          ; 75 04
    1202512026    xor ax, ax                                ; 31 c0
    12026     jmp short 07e78h                          ; eb 02
     12027    jmp short 07e7dh                          ; eb 02
    1202712028    xor ah, ah                                ; 30 e4
    1202812029    mov si, ax                                ; 89 c6
     
    1203212033    shr dx, 1                                 ; d1 ea
    1203312034    rcr ax, 1                                 ; d1 d8
    12034     loop 07e82h                               ; e2 fa
     12035    loop 07e87h                               ; e2 fa
    1203512036    mov cx, ax                                ; 89 c1
    1203612037    and cx, 000f0h                            ; 81 e1 f0 00
     
    1205012051    shr dx, 1                                 ; d1 ea
    1205112052    rcr ax, 1                                 ; d1 d8
    12052     loop 07ea7h                               ; e2 fa
     12053    loop 07each                               ; e2 fa
    1205312054    mov dx, di                                ; 89 fa
    1205412055    out DX, AL                                ; ee
     
    1205712058    xor ah, ah                                ; 30 e4
    1205812059    cmp cx, ax                                ; 39 c1
    12059     jnc short 07ec9h                          ; 73 0e
     12060    jnc short 07eceh                          ; 73 0e
    1206012061    les si, [bp-00ah]                         ; c4 76 f6
    1206112062    add si, cx                                ; 01 ce
     
    1206412065    out DX, AL                                ; ee
    1206512066    inc cx                                    ; 41
    12066     jmp short 07eb2h                          ; eb e9
     12067    jmp short 07eb7h                          ; eb e9
    1206712068    lea dx, [di+001h]                         ; 8d 55 01
    1206812069    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    12069     jne short 07ed8h                          ; 75 06
     12070    jne short 07eddh                          ; 75 06
    1207012071    cmp bx, 08000h                            ; 81 fb 00 80
    12071     jbe short 07ef3h                          ; 76 1b
     12072    jbe short 07ef8h                          ; 76 1b
    1207212073    mov cx, 08000h                            ; b9 00 80
    1207312074    les si, [bp+006h]                         ; c4 76 06
     
    1207912080    add ax, 00800h                            ; 05 00 08
    1208012081    mov word [bp+008h], ax                    ; 89 46 08
    12081     jmp short 07ec9h                          ; eb d6
     12082    jmp short 07eceh                          ; eb d6
    1208212083    mov cx, bx                                ; 89 d9
    1208312084    les si, [bp+006h]                         ; c4 76 06
     
    1208912090    ; sub ah, ah                                ; 2a e4
    1209012091    test AL, strict byte 001h                 ; a8 01
    12091     jne short 07efbh                          ; 75 f7
     12092    jne short 07f00h                          ; 75 f7
    1209212093    test AL, strict byte 002h                 ; a8 02
    12093     je short 07f16h                           ; 74 0e
     12094    je short 07f1bh                           ; 74 0e
    1209412095    lea dx, [di+003h]                         ; 8d 55 03
    1209512096    xor al, al                                ; 30 c0
     
    1209912100    ; sub ah, ah                                ; 2a e4
    1210012101    mov ax, strict word 00004h                ; b8 04 00
    12101     jmp short 07f18h                          ; eb 02
     12102    jmp short 07f1dh                          ; eb 02
    1210212103    xor ax, ax                                ; 31 c0
    1210312104    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1210612107    pop bp                                    ; 5d
    1210712108    retn 0000ah                               ; c2 0a 00
    12108 @scsi_read_sectors:                          ; 0xf7f21 LB 0xe0
     12109@scsi_read_sectors:                          ; 0xf7f26 LB 0xe0
    1210912110    push bp                                   ; 55
    1211012111    mov bp, sp                                ; 89 e5
     
    1211812119    mov byte [bp-006h], al                    ; 88 46 fa
    1211912120    cmp AL, strict byte 004h                  ; 3c 04
    12120     jbe short 07f4dh                          ; 76 11
     12121    jbe short 07f52h                          ; 76 11
    1212112122    xor ah, ah                                ; 30 e4
    1212212123    push ax                                   ; 50
     
    1212412125    push 00b30h                               ; 68 30 0b
    1212512126    push strict byte 00007h                   ; 6a 07
    12126     call 01966h                               ; e8 1c 9a
     12127    call 01966h                               ; e8 17 9a
    1212712128    add sp, strict byte 00008h                ; 83 c4 08
    1212812129    mov es, [bp+006h]                         ; 8e 46 06
     
    1216412165    sal word [bp-00ah], 1                     ; d1 66 f6
    1216512166    rcl word [bp-008h], 1                     ; d1 56 f8
    12166     loop 07fb7h                               ; e2 f8
     12167    loop 07fbch                               ; e2 f8
    1216712168    push word [bp-008h]                       ; ff 76 f8
    1216812169    push word [bp-00ah]                       ; ff 76 f6
     
    1217312174    mov cx, ss                                ; 8c d1
    1217412175    lea bx, [bp-01ah]                         ; 8d 5e e6
    12175     call 07d77h                               ; e8 9e fd
     12176    call 07d7ch                               ; e8 9e fd
    1217612177    mov ah, al                                ; 88 c4
    1217712178    test al, al                               ; 84 c0
    12178     jne short 07ff4h                          ; 75 15
     12179    jne short 07ff9h                          ; 75 15
    1217912180    mov es, [bp+006h]                         ; 8e 46 06
    1218012181    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1219012191    pop bp                                    ; 5d
    1219112192    retn 00004h                               ; c2 04 00
    12192 @scsi_write_sectors:                         ; 0xf8001 LB 0xe0
     12193@scsi_write_sectors:                         ; 0xf8006 LB 0xe0
    1219312194    push bp                                   ; 55
    1219412195    mov bp, sp                                ; 89 e5
     
    1220212203    mov byte [bp-006h], al                    ; 88 46 fa
    1220312204    cmp AL, strict byte 004h                  ; 3c 04
    12204     jbe short 0802dh                          ; 76 11
     12205    jbe short 08032h                          ; 76 11
    1220512206    xor ah, ah                                ; 30 e4
    1220612207    push ax                                   ; 50
     
    1220812209    push 00b30h                               ; 68 30 0b
    1220912210    push strict byte 00007h                   ; 6a 07
    12210     call 01966h                               ; e8 3c 99
     12211    call 01966h                               ; e8 37 99
    1221112212    add sp, strict byte 00008h                ; 83 c4 08
    1221212213    mov es, [bp+006h]                         ; 8e 46 06
     
    1224812249    sal word [bp-00ah], 1                     ; d1 66 f6
    1224912250    rcl word [bp-008h], 1                     ; d1 56 f8
    12250     loop 08097h                               ; e2 f8
     12251    loop 0809ch                               ; e2 f8
    1225112252    push word [bp-008h]                       ; ff 76 f8
    1225212253    push word [bp-00ah]                       ; ff 76 f6
     
    1225712258    mov cx, ss                                ; 8c d1
    1225812259    lea bx, [bp-01ah]                         ; 8d 5e e6
    12259     call 07e4ch                               ; e8 93 fd
     12260    call 07e51h                               ; e8 93 fd
    1226012261    mov ah, al                                ; 88 c4
    1226112262    test al, al                               ; 84 c0
    12262     jne short 080d4h                          ; 75 15
     12263    jne short 080d9h                          ; 75 15
    1226312264    mov es, [bp+006h]                         ; 8e 46 06
    1226412265    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1227412275    pop bp                                    ; 5d
    1227512276    retn 00004h                               ; c2 04 00
    12276 scsi_cmd_packet_:                            ; 0xf80e1 LB 0x168
     12277scsi_cmd_packet_:                            ; 0xf80e6 LB 0x168
    1227712278    push bp                                   ; 55
    1227812279    mov bp, sp                                ; 89 e5
     
    1228612287    mov dx, strict word 0000eh                ; ba 0e 00
    1228712288    mov ax, strict word 00040h                ; b8 40 00
    12288     call 0166ch                               ; e8 6f 95
     12289    call 0166ch                               ; e8 6a 95
    1228912290    mov si, 00122h                            ; be 22 01
    1229012291    mov word [bp-00ah], ax                    ; 89 46 f6
    1229112292    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    12292     jne short 08128h                          ; 75 1f
    12293     mov bx, 00da6h                            ; bb a6 0d
     12293    jne short 0812dh                          ; 75 1f
     12294    mov bx, 00da4h                            ; bb a4 0d
    1229412295    mov cx, ds                                ; 8c d9
    1229512296    mov ax, strict word 00004h                ; b8 04 00
    12296     call 01923h                               ; e8 0f 98
     12297    call 01923h                               ; e8 0a 98
    1229712298    push 00b62h                               ; 68 62 0b
    1229812299    push 00b72h                               ; 68 72 0b
    1229912300    push strict byte 00004h                   ; 6a 04
    12300     call 01966h                               ; e8 47 98
     12301    call 01966h                               ; e8 42 98
    1230112302    add sp, strict byte 00006h                ; 83 c4 06
    1230212303    mov dx, strict word 00001h                ; ba 01 00
    12303     jmp near 0823eh                           ; e9 16 01
     12304    jmp near 08243h                           ; e9 16 01
    1230412305    sub di, strict byte 00008h                ; 83 ef 08
    1230512306    sal di, 002h                              ; c1 e7 02
     
    1231512316    ; sub ah, ah                                ; 2a e4
    1231612317    test AL, strict byte 001h                 ; a8 01
    12317     jne short 08144h                          ; 75 f7
     12318    jne short 08149h                          ; 75 f7
    1231812319    xor ax, ax                                ; 31 c0
    1231912320    mov dx, word [bp+006h]                    ; 8b 56 06
     
    1233112332    shr dx, 1                                 ; d1 ea
    1233212333    rcr ax, 1                                 ; d1 d8
    12333     loop 0816fh                               ; e2 fa
     12334    loop 08174h                               ; e2 fa
    1233412335    and ax, 000f0h                            ; 25 f0 00
    1233512336    mov cl, byte [bp-006h]                    ; 8a 4e fa
     
    1235012351    shr dx, 1                                 ; d1 ea
    1235112352    rcr ax, 1                                 ; d1 d8
    12352     loop 08197h                               ; e2 fa
     12353    loop 0819ch                               ; e2 fa
    1235312354    mov dx, bx                                ; 89 da
    1235412355    out DX, AL                                ; ee
     
    1235712358    xor ah, ah                                ; 30 e4
    1235812359    cmp cx, ax                                ; 39 c1
    12359     jnc short 081b9h                          ; 73 0e
     12360    jnc short 081beh                          ; 73 0e
    1236012361    les di, [bp-00eh]                         ; c4 7e f2
    1236112362    add di, cx                                ; 01 cf
     
    1236412365    out DX, AL                                ; ee
    1236512366    inc cx                                    ; 41
    12366     jmp short 081a2h                          ; eb e9
     12367    jmp short 081a7h                          ; eb e9
    1236712368    mov dx, bx                                ; 89 da
    1236812369    in AL, DX                                 ; ec
     
    1237012371    ; sub ah, ah                                ; 2a e4
    1237112372    test AL, strict byte 001h                 ; a8 01
    12372     jne short 081b9h                          ; 75 f7
     12373    jne short 081beh                          ; 75 f7
    1237312374    test AL, strict byte 002h                 ; a8 02
    12374     je short 081d4h                           ; 74 0e
     12375    je short 081d9h                           ; 74 0e
    1237512376    lea dx, [bx+003h]                         ; 8d 57 03
    1237612377    xor al, al                                ; 30 c0
     
    1238012381    ; sub ah, ah                                ; 2a e4
    1238112382    mov dx, strict word 00003h                ; ba 03 00
    12382     jmp short 0823eh                          ; eb 6a
     12383    jmp short 08243h                          ; eb 6a
    1238312384    mov ax, word [bp+004h]                    ; 8b 46 04
    1238412385    test ax, ax                               ; 85 c0
    12385     je short 081e3h                           ; 74 08
     12386    je short 081e8h                           ; 74 08
    1238612387    lea dx, [bx+001h]                         ; 8d 57 01
    1238712388    mov cx, ax                                ; 89 c1
    1238812389    in AL, DX                                 ; ec
    12389     loop 081e0h                               ; e2 fd
     12390    loop 081e5h                               ; e2 fd
    1239012391    mov ax, word [bp+006h]                    ; 8b 46 06
    1239112392    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1239512396    lea ax, [bx+001h]                         ; 8d 47 01
    1239612397    cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
    12397     jne short 08204h                          ; 75 07
     12398    jne short 08209h                          ; 75 07
    1239812399    cmp word [bp+006h], 08000h                ; 81 7e 06 00 80
    12399     jbe short 08221h                          ; 76 1d
     12400    jbe short 08226h                          ; 76 1d
    1240012401    mov dx, ax                                ; 89 c2
    1240112402    mov cx, 08000h                            ; b9 00 80
     
    1240712408    add ax, 00800h                            ; 05 00 08
    1240812409    mov word [bp+00eh], ax                    ; 89 46 0e
    12409     jmp short 081f4h                          ; eb d3
     12410    jmp short 081f9h                          ; eb d3
    1241012411    mov dx, ax                                ; 89 c2
    1241112412    mov cx, word [bp+006h]                    ; 8b 4e 06
     
    1241412415    mov es, [bp-00ah]                         ; 8e 46 f6
    1241512416    cmp word [es:si+020h], strict byte 00000h ; 26 83 7c 20 00
    12416     je short 0823ch                           ; 74 07
     12417    je short 08241h                           ; 74 07
    1241712418    mov cx, word [es:si+020h]                 ; 26 8b 4c 20
    1241812419    in AL, DX                                 ; ec
    12419     loop 08239h                               ; e2 fd
     12420    loop 0823eh                               ; e2 fd
    1242012421    xor dx, dx                                ; 31 d2
    1242112422    mov ax, dx                                ; 89 d0
     
    1242512426    pop bp                                    ; 5d
    1242612427    retn 0000ch                               ; c2 0c 00
    12427 scsi_enumerate_attached_devices_:            ; 0xf8249 LB 0x4a6
     12428scsi_enumerate_attached_devices_:            ; 0xf824e LB 0x4a6
    1242812429    push bp                                   ; 55
    1242912430    mov bp, sp                                ; 89 e5
     
    1243712438    mov dx, strict word 0000eh                ; ba 0e 00
    1243812439    mov ax, strict word 00040h                ; b8 40 00
    12439     call 0166ch                               ; e8 0d 94
     12440    call 0166ch                               ; e8 08 94
    1244012441    mov di, 00122h                            ; bf 22 01
    1244112442    mov word [bp-020h], ax                    ; 89 46 e0
    1244212443    mov word [bp-022h], strict word 00000h    ; c7 46 de 00 00
    12443     jmp near 0866dh                           ; e9 00 04
     12444    jmp near 08672h                           ; e9 00 04
    1244412445    cmp AL, strict byte 004h                  ; 3c 04
    12445     jc short 08274h                           ; 72 03
    12446     jmp near 086e5h                           ; e9 71 04
     12446    jc short 08279h                           ; 72 03
     12447    jmp near 086eah                           ; e9 71 04
    1244712448    mov cx, strict word 00010h                ; b9 10 00
    1244812449    xor bx, bx                                ; 31 db
    1244912450    mov dx, ss                                ; 8c d2
    1245012451    lea ax, [bp-046h]                         ; 8d 46 ba
    12451     call 09fa0h                               ; e8 1f 1d
     12452    call 09fa0h                               ; e8 1a 1d
    1245212453    mov byte [bp-046h], 09eh                  ; c6 46 ba 9e
    1245312454    mov byte [bp-045h], 010h                  ; c6 46 bb 10
     
    1246412465    lea bx, [bp-046h]                         ; 8d 5e ba
    1246512466    mov ax, word [bp-00248h]                  ; 8b 86 b8 fd
    12466     call 07d77h                               ; e8 cd fa
     12467    call 07d7ch                               ; e8 cd fa
    1246712468    test al, al                               ; 84 c0
    12468     je short 082bch                           ; 74 0e
     12469    je short 082c1h                           ; 74 0e
    1246912470    push 00b92h                               ; 68 92 0b
    1247012471    push 00bcbh                               ; 68 cb 0b
    1247112472    push strict byte 00007h                   ; 6a 07
    12472     call 01966h                               ; e8 ad 96
     12473    call 01966h                               ; e8 a8 96
    1247312474    add sp, strict byte 00006h                ; 83 c4 06
    1247412475    mov ax, word [bp-00240h]                  ; 8b 86 c0 fd
     
    1250212503    sal ax, 1                                 ; d1 e0
    1250312504    rcl dx, 1                                 ; d1 d2
    12504     loop 0830bh                               ; e2 fa
     12505    loop 08310h                               ; e2 fa
    1250512506    or bx, ax                                 ; 09 c3
    1250612507    or dx, si                                 ; 09 f2
     
    1251012511    mov word [bp-028h], bx                    ; 89 5e d8
    1251112512    test dx, dx                               ; 85 d2
    12512     jne short 0832ah                          ; 75 06
     12513    jne short 0832fh                          ; 75 06
    1251312514    cmp bx, 00200h                            ; 81 fb 00 02
    12514     je short 0834ah                           ; 74 20
    12515     mov bx, 00da6h                            ; bb a6 0d
     12515    je short 0834fh                           ; 74 20
     12516    mov bx, 00da4h                            ; bb a4 0d
    1251612517    mov cx, ds                                ; 8c d9
    1251712518    mov ax, strict word 00004h                ; b8 04 00
    12518     call 01923h                               ; e8 ee 95
     12519    call 01923h                               ; e8 e9 95
    1251912520    push dx                                   ; 52
    1252012521    push word [bp-028h]                       ; ff 76 d8
     
    1252212523    push 00beah                               ; 68 ea 0b
    1252312524    push strict byte 00004h                   ; 6a 04
    12524     call 01966h                               ; e8 22 96
     12525    call 01966h                               ; e8 1d 96
    1252512526    add sp, strict byte 0000ah                ; 83 c4 0a
    12526     jmp near 08661h                           ; e9 17 03
     12527    jmp near 08666h                           ; e9 17 03
    1252712528    mov al, byte [bp-00ch]                    ; 8a 46 f4
    1252812529    cmp AL, strict byte 001h                  ; 3c 01
    12529     jc short 0835dh                           ; 72 0c
    12530     jbe short 08365h                          ; 76 12
     12530    jc short 08362h                           ; 72 0c
     12531    jbe short 0836ah                          ; 76 12
    1253112532    cmp AL, strict byte 003h                  ; 3c 03
    12532     je short 0836dh                           ; 74 16
     12533    je short 08372h                           ; 74 16
    1253312534    cmp AL, strict byte 002h                  ; 3c 02
    12534     je short 08369h                           ; 74 0e
    12535     jmp short 083b6h                          ; eb 59
     12535    je short 0836eh                           ; 74 0e
     12536    jmp short 083bbh                          ; eb 59
    1253612537    test al, al                               ; 84 c0
    12537     jne short 083b6h                          ; 75 55
     12538    jne short 083bbh                          ; 75 55
    1253812539    mov BL, strict byte 090h                  ; b3 90
    12539     jmp short 0836fh                          ; eb 0a
     12540    jmp short 08374h                          ; eb 0a
    1254012541    mov BL, strict byte 098h                  ; b3 98
    12541     jmp short 0836fh                          ; eb 06
     12542    jmp short 08374h                          ; eb 06
    1254212543    mov BL, strict byte 0a0h                  ; b3 a0
    12543     jmp short 0836fh                          ; eb 02
     12544    jmp short 08374h                          ; eb 02
    1254412545    mov BL, strict byte 0a8h                  ; b3 a8
    1254512546    mov cl, bl                                ; 88 d9
     
    1254712548    xor ch, ch                                ; 30 ed
    1254812549    mov ax, cx                                ; 89 c8
    12549     call 016ach                               ; e8 31 93
     12550    call 016ach                               ; e8 2c 93
    1255012551    test al, al                               ; 84 c0
    12551     je short 083b6h                           ; 74 37
     12552    je short 083bbh                           ; 74 37
    1255212553    mov al, bl                                ; 88 d8
    1255312554    db  0feh, 0c0h
    1255412555    ; inc al                                    ; fe c0
    1255512556    xor ah, ah                                ; 30 e4
    12556     call 016ach                               ; e8 24 93
     12557    call 016ach                               ; e8 1f 93
    1255712558    xor ah, ah                                ; 30 e4
    1255812559    mov dx, ax                                ; 89 c2
    1255912560    sal dx, 008h                              ; c1 e2 08
    1256012561    mov al, bl                                ; 88 d8
    12561     call 016ach                               ; e8 18 93
     12562    call 016ach                               ; e8 13 93
    1256212563    xor ah, ah                                ; 30 e4
    1256312564    add ax, dx                                ; 01 d0
     
    1256712568    add AL, strict byte 002h                  ; 04 02
    1256812569    xor ah, ah                                ; 30 e4
    12569     call 016ach                               ; e8 08 93
     12570    call 016ach                               ; e8 03 93
    1257012571    xor ah, ah                                ; 30 e4
    1257112572    mov word [bp-018h], ax                    ; 89 46 e8
    1257212573    mov ax, cx                                ; 89 c8
    12573     call 016ach                               ; e8 fe 92
     12574    call 016ach                               ; e8 f9 92
    1257412575    xor ah, ah                                ; 30 e4
    1257512576    mov word [bp-026h], ax                    ; 89 46 da
    12576     jmp near 084a4h                           ; e9 ee 00
     12577    jmp near 084a9h                           ; e9 ee 00
    1257712578    mov ax, word [bp-012h]                    ; 8b 46 ee
    1257812579    mov bx, word [bp-010h]                    ; 8b 5e f0
     
    1258012581    mov dx, word [bp-014h]                    ; 8b 56 ec
    1258112582    mov si, strict word 0000ch                ; be 0c 00
    12582     call 09f80h                               ; e8 b8 1b
     12583    call 09f80h                               ; e8 b3 1b
    1258312584    mov word [bp-02ah], ax                    ; 89 46 d6
    1258412585    mov word [bp-016h], bx                    ; 89 5e ea
     
    1258712588    mov ax, word [bp-012h]                    ; 8b 46 ee
    1258812589    test ax, ax                               ; 85 c0
    12589     jnbe short 083f0h                         ; 77 15
    12590     je short 083e0h                           ; 74 03
    12591     jmp near 08465h                           ; e9 85 00
     12590    jnbe short 083f5h                         ; 77 15
     12591    je short 083e5h                           ; 74 03
     12592    jmp near 0846ah                           ; e9 85 00
    1259212593    cmp word [bp-010h], strict byte 00000h    ; 83 7e f0 00
    12593     jnbe short 083f0h                         ; 77 0a
    12594     jne short 083ddh                          ; 75 f5
     12594    jnbe short 083f5h                         ; 77 0a
     12595    jne short 083e2h                          ; 75 f5
    1259512596    cmp word [bp-01ch], strict byte 00040h    ; 83 7e e4 40
    12596     jnbe short 083f0h                         ; 77 02
    12597     jne short 08465h                          ; 75 75
     12597    jnbe short 083f5h                         ; 77 02
     12598    jne short 0846ah                          ; 75 75
    1259812599    mov word [bp-018h], 000ffh                ; c7 46 e8 ff 00
    1259912600    mov word [bp-026h], strict word 0003fh    ; c7 46 da 3f 00
     
    1260212603    mov dx, word [bp-014h]                    ; 8b 56 ec
    1260312604    mov si, strict word 00006h                ; be 06 00
    12604     call 09f80h                               ; e8 77 1b
     12605    call 09f80h                               ; e8 72 1b
    1260512606    mov si, word [bp-01eh]                    ; 8b 76 e2
    1260612607    add si, dx                                ; 01 d6
     
    1262012621    mov dx, si                                ; 89 f2
    1262112622    mov si, strict word 00008h                ; be 08 00
    12622     call 09f80h                               ; e8 47 1b
     12623    call 09f80h                               ; e8 42 1b
    1262312624    mov word [bp-02eh], bx                    ; 89 5e d2
    1262412625    mov word [bp-030h], cx                    ; 89 4e d0
     
    1262912630    mov dx, word [bp-036h]                    ; 8b 56 ca
    1263012631    mov si, strict word 00010h                ; be 10 00
    12631     call 09f80h                               ; e8 2c 1b
     12632    call 09f80h                               ; e8 27 1b
    1263212633    mov si, word [bp-032h]                    ; 8b 76 ce
    1263312634    add si, dx                                ; 01 d6
     
    1263612637    mov ax, word [bp-02eh]                    ; 8b 46 d2
    1263712638    adc ax, bx                                ; 11 d8
    12638     jmp short 084a4h                          ; eb 3f
     12639    jmp short 084a9h                          ; eb 3f
    1263912640    test ax, ax                               ; 85 c0
    12640     jnbe short 0847bh                         ; 77 12
    12641     jne short 08487h                          ; 75 1c
     12641    jnbe short 08480h                         ; 77 12
     12642    jne short 0848ch                          ; 75 1c
    1264212643    cmp word [bp-010h], strict byte 00000h    ; 83 7e f0 00
    12643     jnbe short 0847bh                         ; 77 0a
    12644     jne short 08487h                          ; 75 14
     12644    jnbe short 08480h                         ; 77 0a
     12645    jne short 0848ch                          ; 75 14
    1264512646    cmp word [bp-01ch], strict byte 00020h    ; 83 7e e4 20
    12646     jnbe short 0847bh                         ; 77 02
    12647     jne short 08487h                          ; 75 0c
     12647    jnbe short 08480h                         ; 77 02
     12648    jne short 0848ch                          ; 75 0c
    1264812649    mov word [bp-018h], 00080h                ; c7 46 e8 80 00
    1264912650    mov word [bp-026h], strict word 00020h    ; c7 46 da 20 00
    12650     jmp short 084a0h                          ; eb 19
     12651    jmp short 084a5h                          ; eb 19
    1265112652    mov word [bp-018h], strict word 00040h    ; c7 46 e8 40 00
    1265212653    mov word [bp-026h], strict word 00020h    ; c7 46 da 20 00
     
    1265512656    mov dx, word [bp-014h]                    ; 8b 56 ec
    1265612657    mov si, strict word 0000bh                ; be 0b 00
    12657     call 09f80h                               ; e8 e0 1a
     12658    call 09f80h                               ; e8 db 1a
    1265812659    mov si, dx                                ; 89 d6
    1265912660    mov dx, cx                                ; 89 ca
     
    1269012691    mov word [es:bx+034h], ax                 ; 26 89 47 34
    1269112692    test dx, dx                               ; 85 d2
    12692     jne short 08516h                          ; 75 06
     12693    jne short 0851bh                          ; 75 06
    1269312694    cmp si, 00400h                            ; 81 fe 00 04
    12694     jbe short 08524h                          ; 76 0e
     12695    jbe short 08529h                          ; 76 0e
    1269512696    mov word [es:bx+02ch], 00400h             ; 26 c7 47 2c 00 04
    1269612697    mov word [es:bx+032h], 00400h             ; 26 c7 47 32 00 04
    12697     jmp short 0852ch                          ; eb 08
     12698    jmp short 08531h                          ; eb 08
    1269812699    mov word [es:bx+02ch], si                 ; 26 89 77 2c
    1269912700    mov word [es:bx+032h], si                 ; 26 89 77 32
    12700     mov bx, 00da6h                            ; bb a6 0d
     12701    mov bx, 00da4h                            ; bb a4 0d
    1270112702    mov cx, ds                                ; 8c d9
    1270212703    mov ax, strict word 00004h                ; b8 04 00
    12703     call 01923h                               ; e8 ec 93
     12704    call 01923h                               ; e8 e7 93
    1270412705    push word [bp-012h]                       ; ff 76 ee
    1270512706    push word [bp-010h]                       ; ff 76 f0
     
    1271612717    push 00c18h                               ; 68 18 0c
    1271712718    push strict byte 00004h                   ; 6a 04
    12718     call 01966h                               ; e8 0a 94
     12719    call 01966h                               ; e8 05 94
    1271912720    add sp, strict byte 00018h                ; 83 c4 18
    1272012721    mov al, byte [bp-00eh]                    ; 8a 46 f2
     
    1274412745    mov dx, strict word 00075h                ; ba 75 00
    1274512746    mov ax, strict word 00040h                ; b8 40 00
    12746     call 01650h                               ; e8 a0 90
     12747    call 01650h                               ; e8 9b 90
    1274712748    mov bl, al                                ; 88 c3
    1274812749    db  0feh, 0c3h
     
    1275112752    mov dx, strict word 00075h                ; ba 75 00
    1275212753    mov ax, strict word 00040h                ; b8 40 00
    12753     call 0165eh                               ; e8 9f 90
     12754    call 0165eh                               ; e8 9a 90
    1275412755    inc byte [bp-00ch]                        ; fe 46 f4
    12755     jmp near 08656h                           ; e9 91 00
    12756     mov bx, 00da6h                            ; bb a6 0d
     12756    jmp near 0865bh                           ; e9 91 00
     12757    mov bx, 00da4h                            ; bb a4 0d
    1275712758    mov cx, ds                                ; 8c d9
    1275812759    mov ax, strict word 00004h                ; b8 04 00
    12759     call 01923h                               ; e8 53 93
     12760    call 01923h                               ; e8 4e 93
    1276012761    push word [bp-022h]                       ; ff 76 de
    1276112762    mov al, byte [bp-00ch]                    ; 8a 46 f4
     
    1276412765    push 00c46h                               ; 68 46 0c
    1276512766    push strict byte 00004h                   ; 6a 04
    12766     call 01966h                               ; e8 85 93
     12767    call 01966h                               ; e8 80 93
    1276712768    add sp, strict byte 00008h                ; 83 c4 08
    1276812769    mov al, byte [bp-00ch]                    ; 8a 46 f4
     
    1277012771    mov byte [bp-00eh], al                    ; 88 46 f2
    1277112772    test byte [bp-00245h], 080h               ; f6 86 bb fd 80
    12772     je short 085f8h                           ; 74 05
     12773    je short 085fdh                           ; 74 05
    1277312774    mov dx, strict word 00001h                ; ba 01 00
    12774     jmp short 085fah                          ; eb 02
     12775    jmp short 085ffh                          ; eb 02
    1277512776    xor dx, dx                                ; 31 d2
    1277612777    mov al, byte [bp-00ch]                    ; 8a 46 f4
     
    1280812809    inc word [bp-022h]                        ; ff 46 de
    1280912810    cmp word [bp-022h], strict byte 00010h    ; 83 7e de 10
    12810     jl short 0866dh                           ; 7c 03
    12811     jmp near 086e5h                           ; e9 78 00
     12811    jl short 08672h                           ; 7c 03
     12812    jmp near 086eah                           ; e9 78 00
    1281212813    mov byte [bp-046h], 012h                  ; c6 46 ba 12
    1281312814    xor al, al                                ; 30 c0
     
    1282812829    lea bx, [bp-046h]                         ; 8d 5e ba
    1282912830    mov ax, word [bp-00248h]                  ; 8b 86 b8 fd
    12830     call 07d77h                               ; e8 d7 f6
     12831    call 07d7ch                               ; e8 d7 f6
    1283112832    test al, al                               ; 84 c0
    12832     je short 086b2h                           ; 74 0e
     12833    je short 086b7h                           ; 74 0e
    1283312834    push 00b92h                               ; 68 92 0b
    1283412835    push 00bb2h                               ; 68 b2 0b
    1283512836    push strict byte 00007h                   ; 6a 07
    12836     call 01966h                               ; e8 b7 92
     12837    call 01966h                               ; e8 b2 92
    1283712838    add sp, strict byte 00006h                ; 83 c4 06
    1283812839    mov es, [bp-020h]                         ; 8e 46 e0
     
    1284012841    mov byte [bp-00ch], al                    ; 88 46 f4
    1284112842    test byte [bp-00246h], 0e0h               ; f6 86 ba fd e0
    12842     jne short 086ceh                          ; 75 0a
     12843    jne short 086d3h                          ; 75 0a
    1284312844    test byte [bp-00246h], 01fh               ; f6 86 ba fd 1f
    12844     jne short 086ceh                          ; 75 03
    12845     jmp near 0826dh                           ; e9 9f fb
     12845    jne short 086d3h                          ; 75 03
     12846    jmp near 08272h                           ; e9 9f fb
    1284612847    test byte [bp-00246h], 0e0h               ; f6 86 ba fd e0
    12847     jne short 08656h                          ; 75 81
     12848    jne short 0865bh                          ; 75 81
    1284812849    mov al, byte [bp-00246h]                  ; 8a 86 ba fd
    1284912850    and AL, strict byte 01fh                  ; 24 1f
    1285012851    cmp AL, strict byte 005h                  ; 3c 05
    12851     jne short 086e2h                          ; 75 03
    12852     jmp near 085c5h                           ; e9 e3 fe
    12853     jmp near 08656h                           ; e9 71 ff
     12852    jne short 086e7h                          ; 75 03
     12853    jmp near 085cah                           ; e9 e3 fe
     12854    jmp near 0865bh                           ; e9 71 ff
    1285412855    lea sp, [bp-00ah]                         ; 8d 66 f6
    1285512856    pop di                                    ; 5f
     
    1286012861    pop bp                                    ; 5d
    1286112862    retn                                      ; c3
    12862 _scsi_init:                                  ; 0xf86ef LB 0x66
     12863_scsi_init:                                  ; 0xf86f4 LB 0x66
    1286312864    push bp                                   ; 55
    1286412865    mov bp, sp                                ; 89 e5
    1286512866    mov dx, strict word 0000eh                ; ba 0e 00
    1286612867    mov ax, strict word 00040h                ; b8 40 00
    12867     call 0166ch                               ; e8 71 8f
     12868    call 0166ch                               ; e8 6c 8f
    1286812869    mov bx, 00122h                            ; bb 22 01
    1286912870    mov es, ax                                ; 8e c0
     
    1287612877    ; sub ah, ah                                ; 2a e4
    1287712878    cmp AL, strict byte 055h                  ; 3c 55
    12878     jne short 0871fh                          ; 75 0c
     12879    jne short 08724h                          ; 75 0c
    1287912880    xor al, al                                ; 30 c0
    1288012881    mov dx, 00433h                            ; ba 33 04
    1288112882    out DX, AL                                ; ee
    1288212883    mov ax, 00430h                            ; b8 30 04
    12883     call 08249h                               ; e8 2a fb
     12884    call 0824eh                               ; e8 2a fb
    1288412885    mov AL, strict byte 055h                  ; b0 55
    1288512886    mov dx, 00436h                            ; ba 36 04
     
    1288912890    ; sub ah, ah                                ; 2a e4
    1289012891    cmp AL, strict byte 055h                  ; 3c 55
    12891     jne short 08738h                          ; 75 0c
     12892    jne short 0873dh                          ; 75 0c
    1289212893    xor al, al                                ; 30 c0
    1289312894    mov dx, 00437h                            ; ba 37 04
    1289412895    out DX, AL                                ; ee
    1289512896    mov ax, 00434h                            ; b8 34 04
    12896     call 08249h                               ; e8 11 fb
     12897    call 0824eh                               ; e8 11 fb
    1289712898    mov AL, strict byte 055h                  ; b0 55
    1289812899    mov dx, 0043ah                            ; ba 3a 04
     
    1290212903    ; sub ah, ah                                ; 2a e4
    1290312904    cmp AL, strict byte 055h                  ; 3c 55
    12904     jne short 08751h                          ; 75 0c
     12905    jne short 08756h                          ; 75 0c
    1290512906    xor al, al                                ; 30 c0
    1290612907    mov dx, 0043bh                            ; ba 3b 04
    1290712908    out DX, AL                                ; ee
    1290812909    mov ax, 00438h                            ; b8 38 04
    12909     call 08249h                               ; e8 f8 fa
     12910    call 0824eh                               ; e8 f8 fa
    1291012911    mov sp, bp                                ; 89 ec
    1291112912    pop bp                                    ; 5d
    1291212913    retn                                      ; c3
    12913 ahci_ctrl_extract_bits_:                     ; 0xf8755 LB 0x1c
     12914ahci_ctrl_extract_bits_:                     ; 0xf875a LB 0x1c
    1291412915    push si                                   ; 56
    1291512916    push bp                                   ; 55
     
    1292012921    mov cl, byte [bp+006h]                    ; 8a 4e 06
    1292112922    xor ch, ch                                ; 30 ed
    12922     jcxz 0876ch                               ; e3 06
     12923    jcxz 08771h                               ; e3 06
    1292312924    shr dx, 1                                 ; d1 ea
    1292412925    rcr ax, 1                                 ; d1 d8
    12925     loop 08766h                               ; e2 fa
     12926    loop 0876bh                               ; e2 fa
    1292612927    pop bp                                    ; 5d
    1292712928    pop si                                    ; 5e
    1292812929    retn 00002h                               ; c2 02 00
    12929 ahci_addr_to_phys_:                          ; 0xf8771 LB 0x1e
     12930ahci_addr_to_phys_:                          ; 0xf8776 LB 0x1e
    1293012931    push bx                                   ; 53
    1293112932    push cx                                   ; 51
     
    1293812939    sal ax, 1                                 ; d1 e0
    1293912940    rcl dx, 1                                 ; d1 d2
    12940     loop 0877fh                               ; e2 fa
     12941    loop 08784h                               ; e2 fa
    1294112942    xor cx, cx                                ; 31 c9
    1294212943    add ax, bx                                ; 01 d8
     
    1294612947    pop bx                                    ; 5b
    1294712948    retn                                      ; c3
    12948 ahci_port_cmd_sync_:                         ; 0xf878f LB 0x156
     12949ahci_port_cmd_sync_:                         ; 0xf8794 LB 0x156
    1294912950    push bp                                   ; 55
    1295012951    mov bp, sp                                ; 89 e5
     
    1296112962    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
    1296212963    cmp AL, strict byte 0ffh                  ; 3c ff
    12963     jne short 087b2h                          ; 75 03
    12964     jmp near 088ddh                           ; e9 2b 01
     12964    jne short 087b7h                          ; 75 03
     12965    jmp near 088e2h                           ; e9 2b 01
    1296512966    mov al, byte [es:si+00263h]               ; 26 8a 84 63 02
    1296612967    xor ah, ah                                ; 30 e4
     
    1297512976    lea ax, [si+00080h]                       ; 8d 84 80 00
    1297612977    mov dx, cx                                ; 89 ca
    12977     call 08771h                               ; e8 92 ff
     12978    call 08776h                               ; e8 92 ff
    1297812979    mov es, cx                                ; 8e c1
    1297912980    mov word [es:si+008h], ax                 ; 26 89 44 08
     
    1304113042    xchg dx, ax                               ; 92
    1304213043    test dh, 040h                             ; f6 c6 40
    13043     jne short 08870h                          ; 75 04
     13044    jne short 08875h                          ; 75 04
    1304413045    test AL, strict byte 001h                 ; a8 01
    13045     je short 08874h                           ; 74 04
     13046    je short 08879h                           ; 74 04
    1304613047    mov AL, strict byte 001h                  ; b0 01
    13047     jmp short 08876h                          ; eb 02
     13048    jmp short 0887bh                          ; eb 02
    1304813049    xor al, al                                ; 30 c0
    1304913050    test al, al                               ; 84 c0
    13050     je short 08843h                           ; 74 c9
     13051    je short 08848h                           ; 74 c9
    1305113052    mov al, byte [bp-008h]                    ; 8a 46 f8
    1305213053    xor ah, ah                                ; 30 e4
     
    1310413105    pop bp                                    ; 5d
    1310513106    retn                                      ; c3
    13106 ahci_cmd_data_:                              ; 0xf88e5 LB 0x267
     13107ahci_cmd_data_:                              ; 0xf88ea LB 0x267
    1310713108    push bp                                   ; 55
    1310813109    mov bp, sp                                ; 89 e5
     
    1312913130    mov ax, 00080h                            ; b8 80 00
    1313013131    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13131     call 09fa0h                               ; e8 7d 16
     13132    call 09fa0h                               ; e8 78 16
    1313213133    mov es, [bp-00ah]                         ; 8e 46 f6
    1313313134    mov word [es:di+00080h], 08027h           ; 26 c7 85 80 00 27 80
     
    1314713148    mov dx, word [es:si]                      ; 26 8b 14
    1314813149    mov si, strict word 00008h                ; be 08 00
    13149     call 09f80h                               ; e8 19 16
     13150    call 09f80h                               ; e8 14 16
    1315013151    mov es, [bp-00ah]                         ; 8e 46 f6
    1315113152    mov byte [es:di+00085h], dl               ; 26 88 95 85 00
     
    1315813159    mov dx, word [es:si]                      ; 26 8b 14
    1315913160    mov si, strict word 00010h                ; be 10 00
    13160     call 09f80h                               ; e8 f3 15
     13161    call 09f80h                               ; e8 ee 15
    1316113162    mov es, [bp-00ah]                         ; 8e 46 f6
    1316213163    mov byte [es:di+00086h], dl               ; 26 88 95 86 00
     
    1317013171    mov dx, word [es:si]                      ; 26 8b 14
    1317113172    mov si, strict word 00018h                ; be 18 00
    13172     call 09f80h                               ; e8 c7 15
     13173    call 09f80h                               ; e8 c2 15
    1317313174    mov es, [bp-00ah]                         ; 8e 46 f6
    1317413175    mov byte [es:di+00088h], dl               ; 26 88 95 88 00
     
    1318113182    mov dx, word [es:si]                      ; 26 8b 14
    1318213183    mov si, strict word 00020h                ; be 20 00
    13183     call 09f80h                               ; e8 a1 15
     13184    call 09f80h                               ; e8 9c 15
    1318413185    mov es, [bp-00ah]                         ; 8e 46 f6
    1318513186    mov byte [es:di+00089h], dl               ; 26 88 95 89 00
     
    1319213193    mov dx, word [es:si]                      ; 26 8b 14
    1319313194    mov si, strict word 00028h                ; be 28 00
    13194     call 09f80h                               ; e8 7b 15
     13195    call 09f80h                               ; e8 76 15
    1319513196    mov es, [bp-00ah]                         ; 8e 46 f6
    1319613197    mov byte [es:di+0008ah], dl               ; 26 88 95 8a 00
     
    1320613207    mov bx, word [bp-010h]                    ; 8b 5e f0
    1320713208    xor cx, cx                                ; 31 c9
    13208     call 09f30h                               ; e8 f6 14
     13209    call 09f30h                               ; e8 f1 14
    1320913210    push dx                                   ; 52
    1321013211    push ax                                   ; 50
     
    1321613217    mov ax, 0026ah                            ; b8 6a 02
    1321713218    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13218     call 09e81h                               ; e8 2b 14
     13219    call 09e86h                               ; e8 2b 14
    1321913220    mov es, [bp-00ah]                         ; 8e 46 f6
    1322013221    mov dx, word [es:di+0027eh]               ; 26 8b 95 7e 02
     
    1323913240    mov ax, word [es:bx+020h]                 ; 26 8b 47 20
    1324013241    test ax, ax                               ; 85 c0
    13241     je short 08ae8h                           ; 74 3b
     13242    je short 08aedh                           ; 74 3b
    1324213243    dec ax                                    ; 48
    1324313244    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1325713258    mov al, byte [bp-008h]                    ; 8a 46 f8
    1325813259    cmp AL, strict byte 035h                  ; 3c 35
    13259     jne short 08af5h                          ; 75 06
     13260    jne short 08afah                          ; 75 06
    1326013261    mov byte [bp-008h], 040h                  ; c6 46 f8 40
    13261     jmp short 08b0ch                          ; eb 17
     13262    jmp short 08b11h                          ; eb 17
    1326213263    cmp AL, strict byte 0a0h                  ; 3c a0
    13263     jne short 08b08h                          ; 75 0f
     13264    jne short 08b0dh                          ; 75 0f
    1326413265    or byte [bp-008h], 020h                   ; 80 4e f8 20
    1326513266    les bx, [bp-00eh]                         ; c4 5e f2
    1326613267    or byte [es:bx+00083h], 001h              ; 26 80 8f 83 00 01
    13267     jmp short 08b0ch                          ; eb 04
     13268    jmp short 08b11h                          ; eb 04
    1326813269    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1326913270    or byte [bp-008h], 005h                   ; 80 4e f8 05
     
    1327213273    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1327313274    mov dx, word [bp-00ch]                    ; 8b 56 f4
    13274     call 0878fh                               ; e8 71 fc
     13275    call 08794h                               ; e8 71 fc
    1327513276    mov cx, word [bp-00ch]                    ; 8b 4e f4
    1327613277    mov bx, word [bp-00eh]                    ; 8b 5e f2
     
    1327913280    add ax, 0026ah                            ; 05 6a 02
    1328013281    mov dx, cx                                ; 89 ca
    13281     call 09ef8h                               ; e8 c5 13
     13282    call 09efdh                               ; e8 c5 13
    1328213283    mov es, cx                                ; 8e c1
    1328313284    mov al, byte [es:bx+003h]                 ; 26 8a 47 03
    1328413285    test al, al                               ; 84 c0
    13285     je short 08b42h                           ; 74 05
     13286    je short 08b47h                           ; 74 05
    1328613287    mov ax, strict word 00004h                ; b8 04 00
    13287     jmp short 08b44h                          ; eb 02
     13288    jmp short 08b49h                          ; eb 02
    1328813289    xor ah, ah                                ; 30 e4
    1328913290    lea sp, [bp-006h]                         ; 8d 66 fa
     
    1329313294    pop bp                                    ; 5d
    1329413295    retn                                      ; c3
    13295 ahci_port_deinit_current_:                   ; 0xf8b4c LB 0x180
     13296ahci_port_deinit_current_:                   ; 0xf8b51 LB 0x180
    1329613297    push bp                                   ; 55
    1329713298    mov bp, sp                                ; 89 e5
     
    1330813309    mov byte [bp-00ah], al                    ; 88 46 f6
    1330913310    cmp AL, strict byte 0ffh                  ; 3c ff
    13310     je short 08bcdh                           ; 74 5f
     13311    je short 08bd2h                           ; 74 5f
    1331113312    xor ah, ah                                ; 30 e4
    1331213313    sal ax, 007h                              ; c1 e0 07
     
    1335213353    xchg dx, ax                               ; 92
    1335313354    test ax, 0c011h                           ; a9 11 c0
    13354     je short 08bd0h                           ; 74 07
     13355    je short 08bd5h                           ; 74 07
    1335513356    mov AL, strict byte 001h                  ; b0 01
    13356     jmp short 08bd2h                          ; eb 05
    13357     jmp near 08cc3h                           ; e9 f3 00
     13357    jmp short 08bd7h                          ; eb 05
     13358    jmp near 08cc8h                           ; e9 f3 00
    1335813359    xor al, al                                ; 30 c0
    1335913360    cmp AL, strict byte 001h                  ; 3c 01
    13360     je short 08ba0h                           ; 74 ca
     13361    je short 08ba5h                           ; 74 ca
    1336113362    mov cx, strict word 00020h                ; b9 20 00
    1336213363    xor bx, bx                                ; 31 db
    1336313364    mov ax, di                                ; 89 f8
    1336413365    mov dx, word [bp-00eh]                    ; 8b 56 f2
    13365     call 09fa0h                               ; e8 bd 13
     13366    call 09fa0h                               ; e8 b8 13
    1336613367    lea ax, [di+00080h]                       ; 8d 85 80 00
    1336713368    mov cx, strict word 00040h                ; b9 40 00
    1336813369    xor bx, bx                                ; 31 db
    1336913370    mov dx, word [bp-00eh]                    ; 8b 56 f2
    13370     call 09fa0h                               ; e8 ae 13
     13371    call 09fa0h                               ; e8 a9 13
    1337113372    lea ax, [di+00200h]                       ; 8d 85 00 02
    1337213373    mov cx, strict word 00060h                ; b9 60 00
    1337313374    xor bx, bx                                ; 31 db
    1337413375    mov dx, word [bp-00eh]                    ; 8b 56 f2
    13375     call 09fa0h                               ; e8 9f 13
     13376    call 09fa0h                               ; e8 9a 13
    1337613377    mov al, byte [bp-00ah]                    ; 8a 46 f6
    1337713378    xor ah, ah                                ; 30 e4
     
    1347813479    pop bp                                    ; 5d
    1347913480    retn                                      ; c3
    13480 ahci_port_init_:                             ; 0xf8ccc LB 0x24d
     13481ahci_port_init_:                             ; 0xf8cd1 LB 0x24d
    1348113482    push bp                                   ; 55
    1348213483    mov bp, sp                                ; 89 e5
     
    1348813489    mov word [bp-00ah], dx                    ; 89 56 f6
    1348913490    mov byte [bp-008h], bl                    ; 88 5e f8
    13490     call 08b4ch                               ; e8 6c fe
     13491    call 08b51h                               ; e8 6c fe
    1349113492    mov al, bl                                ; 88 d8
    1349213493    xor ah, ah                                ; 30 e4
     
    1353713538    xchg dx, ax                               ; 92
    1353813539    test ax, 0c011h                           ; a9 11 c0
    13539     je short 08d51h                           ; 74 04
     13540    je short 08d56h                           ; 74 04
    1354013541    mov AL, strict byte 001h                  ; b0 01
    13541     jmp short 08d53h                          ; eb 02
     13542    jmp short 08d58h                          ; eb 02
    1354213543    xor al, al                                ; 30 c0
    1354313544    cmp AL, strict byte 001h                  ; 3c 01
    13544     je short 08d1ch                           ; 74 c5
     13545    je short 08d21h                           ; 74 c5
    1354513546    mov cx, strict word 00020h                ; b9 20 00
    1354613547    xor bx, bx                                ; 31 db
    1354713548    mov ax, si                                ; 89 f0
    1354813549    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13549     call 09fa0h                               ; e8 3c 12
     13550    call 09fa0h                               ; e8 37 12
    1355013551    lea ax, [si+00080h]                       ; 8d 84 80 00
    1355113552    mov cx, strict word 00040h                ; b9 40 00
    1355213553    xor bx, bx                                ; 31 db
    1355313554    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13554     call 09fa0h                               ; e8 2d 12
     13555    call 09fa0h                               ; e8 28 12
    1355513556    lea di, [si+00200h]                       ; 8d bc 00 02
    1355613557    mov cx, strict word 00060h                ; b9 60 00
     
    1355813559    mov ax, di                                ; 89 f8
    1355913560    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13560     call 09fa0h                               ; e8 1c 12
     13561    call 09fa0h                               ; e8 17 12
    1356113562    mov bl, byte [bp-008h]                    ; 8a 5e f8
    1356213563    xor bh, bh                                ; 30 ff
     
    1357613577    mov ax, di                                ; 89 f8
    1357713578    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13578     call 08771h                               ; e8 bf f9
     13579    call 08776h                               ; e8 bf f9
    1357913580    mov es, [bp-00ah]                         ; 8e 46 f6
    1358013581    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
     
    1362113622    mov ax, si                                ; 89 f0
    1362213623    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13623     call 08771h                               ; e8 53 f9
     13624    call 08776h                               ; e8 53 f9
    1362413625    mov es, [bp-00ah]                         ; 8e 46 f6
    1362513626    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
     
    1372613727    pop bp                                    ; 5d
    1372713728    retn                                      ; c3
    13728 @ahci_read_sectors:                          ; 0xf8f19 LB 0xa8
     13729@ahci_read_sectors:                          ; 0xf8f1e LB 0xa8
    1372913730    push bp                                   ; 55
    1373013731    mov bp, sp                                ; 89 e5
     
    1373713738    sub bx, strict byte 0000ch                ; 83 eb 0c
    1373813739    cmp bx, strict byte 00004h                ; 83 fb 04
    13739     jbe short 08f3fh                          ; 76 0f
     13740    jbe short 08f44h                          ; 76 0f
    1374013741    push bx                                   ; 53
    1374113742    push 00c62h                               ; 68 62 0c
    1374213743    push 00c74h                               ; 68 74 0c
    1374313744    push strict byte 00007h                   ; 6a 07
    13744     call 01966h                               ; e8 2a 8a
     13745    call 01966h                               ; e8 25 8a
    1374513746    add sp, strict byte 00008h                ; 83 c4 08
    1374613747    xor di, di                                ; 31 ff
     
    1375713758    mov dx, word [es:di+00232h]               ; 26 8b 95 32 02
    1375813759    xor ax, ax                                ; 31 c0
    13759     call 08ccch                               ; e8 60 fd
     13760    call 08cd1h                               ; e8 60 fd
    1376013761    mov bx, strict word 00025h                ; bb 25 00
    1376113762    mov ax, si                                ; 89 f0
    1376213763    mov dx, word [bp+006h]                    ; 8b 56 06
    13763     call 088e5h                               ; e8 6e f9
     13764    call 088eah                               ; e8 6e f9
    1376413765    mov word [bp-006h], ax                    ; 89 46 fa
    1376513766    mov es, [bp+006h]                         ; 8e 46 06
     
    1379013791    pop bp                                    ; 5d
    1379113792    retn 00004h                               ; c2 04 00
    13792 @ahci_write_sectors:                         ; 0xf8fc1 LB 0x86
     13793@ahci_write_sectors:                         ; 0xf8fc6 LB 0x86
    1379313794    push bp                                   ; 55
    1379413795    mov bp, sp                                ; 89 e5
     
    1380213803    sub dx, strict byte 0000ch                ; 83 ea 0c
    1380313804    cmp dx, strict byte 00004h                ; 83 fa 04
    13804     jbe short 08febh                          ; 76 0f
     13805    jbe short 08ff0h                          ; 76 0f
    1380513806    push dx                                   ; 52
    1380613807    push 00c93h                               ; 68 93 0c
    1380713808    push 00c74h                               ; 68 74 0c
    1380813809    push strict byte 00007h                   ; 6a 07
    13809     call 01966h                               ; e8 7e 89
     13810    call 01966h                               ; e8 79 89
    1381013811    add sp, strict byte 00008h                ; 83 c4 08
    1381113812    xor bx, bx                                ; 31 db
     
    1382213823    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
    1382313824    xor ax, ax                                ; 31 c0
    13824     call 08ccch                               ; e8 b6 fc
     13825    call 08cd1h                               ; e8 b6 fc
    1382513826    mov bx, strict word 00035h                ; bb 35 00
    1382613827    mov ax, si                                ; 89 f0
    1382713828    mov dx, cx                                ; 89 ca
    13828     call 088e5h                               ; e8 c5 f8
     13829    call 088eah                               ; e8 c5 f8
    1382913830    mov dx, ax                                ; 89 c2
    1383013831    mov es, cx                                ; 8e c1
     
    1384113842    pop bp                                    ; 5d
    1384213843    retn 00004h                               ; c2 04 00
    13843 ahci_cmd_packet_:                            ; 0xf9047 LB 0x18a
     13844ahci_cmd_packet_:                            ; 0xf904c LB 0x18a
    1384413845    push bp                                   ; 55
    1384513846    mov bp, sp                                ; 89 e5
     
    1385313854    mov dx, strict word 0000eh                ; ba 0e 00
    1385413855    mov ax, strict word 00040h                ; b8 40 00
    13855     call 0166ch                               ; e8 0a 86
     13856    call 0166ch                               ; e8 05 86
    1385613857    mov si, 00122h                            ; be 22 01
    1385713858    mov word [bp-008h], ax                    ; 89 46 f8
    1385813859    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    13859     jne short 0908dh                          ; 75 1f
    13860     mov bx, 00da6h                            ; bb a6 0d
     13860    jne short 09092h                          ; 75 1f
     13861    mov bx, 00da4h                            ; bb a4 0d
    1386113862    mov cx, ds                                ; 8c d9
    1386213863    mov ax, strict word 00004h                ; b8 04 00
    13863     call 01923h                               ; e8 aa 88
     13864    call 01923h                               ; e8 a5 88
    1386413865    push 00ca6h                               ; 68 a6 0c
    1386513866    push 00cb6h                               ; 68 b6 0c
    1386613867    push strict byte 00004h                   ; 6a 04
    13867     call 01966h                               ; e8 e2 88
     13868    call 01966h                               ; e8 dd 88
    1386813869    add sp, strict byte 00006h                ; 83 c4 06
    1386913870    mov ax, strict word 00001h                ; b8 01 00
    13870     jmp near 091c8h                           ; e9 3b 01
     13871    jmp near 091cdh                           ; e9 3b 01
    1387113872    test byte [bp+004h], 001h                 ; f6 46 04 01
    13872     jne short 09087h                          ; 75 f4
     13873    jne short 0908ch                          ; 75 f4
    1387313874    mov ax, word [bp+006h]                    ; 8b 46 06
    1387413875    mov dx, word [bp+008h]                    ; 8b 56 08
     
    1387613877    sal ax, 1                                 ; d1 e0
    1387713878    rcl dx, 1                                 ; d1 d2
    13878     loop 0909ch                               ; e2 fa
     13879    loop 090a1h                               ; e2 fa
    1387913880    mov es, [bp-008h]                         ; 8e 46 f8
    1388013881    mov word [es:si], ax                      ; 26 89 04
     
    1389013891    mov dx, word [bp+008h]                    ; 8b 56 08
    1389113892    xor cx, cx                                ; 31 c9
    13892     call 09f50h                               ; e8 7b 0e
     13893    call 09f50h                               ; e8 76 0e
    1389313894    mov word [es:si+00eh], ax                 ; 26 89 44 0e
    1389413895    xor di, di                                ; 31 ff
     
    1390913910    mov bx, ax                                ; 89 c3
    1391013911    xor al, al                                ; 30 c0
    13911     call 08ccch                               ; e8 b8 fb
     13912    call 08cd1h                               ; e8 b8 fb
    1391213913    mov al, byte [bp-006h]                    ; 8a 46 fa
    1391313914    xor ah, ah                                ; 30 e4
     
    1391713918    mov ax, 000c0h                            ; b8 c0 00
    1391813919    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13919     call 09fb0h                               ; e8 87 0e
     13920    call 09fb0h                               ; e8 82 0e
    1392013921    mov es, [bp-008h]                         ; 8e 46 f8
    1392113922    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1392413925    mov ax, word [es:si+01eh]                 ; 26 8b 44 1e
    1392513926    test ax, ax                               ; 85 c0
    13926     je short 09167h                           ; 74 27
     13927    je short 0916ch                           ; 74 27
    1392713928    dec ax                                    ; 48
    1392813929    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1393713938    mov ax, si                                ; 89 f0
    1393813939    mov dx, word [bp-008h]                    ; 8b 56 f8
    13939     call 088e5h                               ; e8 73 f7
     13940    call 088eah                               ; e8 73 f7
    1394013941    les bx, [bp-00eh]                         ; c4 5e f2
    1394113942    mov dx, word [es:bx+004h]                 ; 26 8b 57 04
     
    1396413965    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
    1396513966    or ax, word [es:bx+004h]                  ; 26 0b 47 04
    13966     jne short 091c6h                          ; 75 05
     13967    jne short 091cbh                          ; 75 05
    1396713968    mov ax, strict word 00004h                ; b8 04 00
    13968     jmp short 091c8h                          ; eb 02
     13969    jmp short 091cdh                          ; eb 02
    1396913970    xor ax, ax                                ; 31 c0
    1397013971    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1397313974    pop bp                                    ; 5d
    1397413975    retn 0000ch                               ; c2 0c 00
    13975 ahci_port_detect_device_:                    ; 0xf91d1 LB 0x4e3
     13976ahci_port_detect_device_:                    ; 0xf91d6 LB 0x4e3
    1397613977    push bp                                   ; 55
    1397713978    mov bp, sp                                ; 89 e5
     
    1398613987    xor ch, ch                                ; 30 ed
    1398713988    mov bx, cx                                ; 89 cb
    13988     call 08ccch                               ; e8 e0 fa
     13989    call 08cd1h                               ; e8 e0 fa
    1398913990    mov dx, strict word 0000eh                ; ba 0e 00
    1399013991    mov ax, strict word 00040h                ; b8 40 00
    13991     call 0166ch                               ; e8 77 84
     13992    call 0166ch                               ; e8 72 84
    1399213993    mov word [bp-00eh], 00122h                ; c7 46 f2 22 01
    1399313994    mov word [bp-016h], ax                    ; 89 46 ea
     
    1405914060    mov bx, strict word 0000fh                ; bb 0f 00
    1406014061    xor cx, cx                                ; 31 c9
    14061     call 08755h                               ; e8 b5 f4
     14062    call 0875ah                               ; e8 b5 f4
    1406214063    test ax, ax                               ; 85 c0
    14063     jne short 092a7h                          ; 75 03
    14064     jmp near 096ach                           ; e9 05 04
     14064    jne short 092ach                          ; 75 03
     14065    jmp near 096b1h                           ; e9 05 04
    1406514066    mov al, byte [bp-00ch]                    ; 8a 46 f4
    1406614067    xor ah, ah                                ; 30 e4
     
    1409114092    mov bx, strict word 0000fh                ; bb 0f 00
    1409214093    xor cx, cx                                ; 31 c9
    14093     call 08755h                               ; e8 67 f4
     14094    call 0875ah                               ; e8 67 f4
    1409414095    cmp ax, strict word 00001h                ; 3d 01 00
    14095     je short 092a7h                           ; 74 b4
     14096    je short 092ach                           ; 74 b4
    1409614097    push strict byte 00000h                   ; 6a 00
    1409714098    mov bx, strict word 0000fh                ; bb 0f 00
     
    1409914100    mov ax, word [bp-01ah]                    ; 8b 46 e6
    1410014101    mov dx, di                                ; 89 fa
    14101     call 08755h                               ; e8 53 f4
     14102    call 0875ah                               ; e8 53 f4
    1410214103    cmp ax, strict word 00003h                ; 3d 03 00
    14103     jne short 092a4h                          ; 75 9d
     14104    jne short 092a9h                          ; 75 9d
    1410414105    mov ax, word [bp-01ch]                    ; 8b 46 e4
    1410514106    add ax, 00130h                            ; 05 30 01
     
    1412914130    mov byte [bp-008h], al                    ; 88 46 f8
    1413014131    cmp AL, strict byte 004h                  ; 3c 04
    14131     jc short 09351h                           ; 72 03
    14132     jmp near 096ach                           ; e9 5b 03
     14132    jc short 09356h                           ; 72 03
     14133    jmp near 096b1h                           ; e9 5b 03
    1413314134    mov ax, word [bp-01ch]                    ; 8b 46 e4
    1413414135    add ax, 00118h                            ; 05 18 01
     
    1418014181    add cl, 00ch                              ; 80 c1 0c
    1418114182    test dx, dx                               ; 85 d2
    14182     jne short 09417h                          ; 75 54
     14183    jne short 0941ch                          ; 75 54
    1418314184    cmp ax, 00101h                            ; 3d 01 01
    14184     jne short 09417h                          ; 75 4f
     14185    jne short 0941ch                          ; 75 4f
    1418514186    mov es, [bp-016h]                         ; 8e 46 ea
    1418614187    mov bx, word [bp-00eh]                    ; 8b 5e f2
     
    1419714198    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1419814199    mov dx, es                                ; 8c c2
    14199     call 088e5h                               ; e8 dd f4
     14200    call 088eah                               ; e8 dd f4
    1420014201    mov byte [bp-00ah], cl                    ; 88 4e f6
    1420114202    test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
    14202     je short 0941ah                           ; 74 08
     14203    je short 0941fh                           ; 74 08
    1420314204    mov ax, strict word 00001h                ; b8 01 00
    14204     jmp short 0941ch                          ; eb 05
    14205     jmp near 095eah                           ; e9 d0 01
     14205    jmp short 09421h                          ; eb 05
     14206    jmp near 095efh                           ; e9 d0 01
    1420614207    xor ax, ax                                ; 31 c0
    1420714208    mov dl, al                                ; 88 c2
     
    1421914220    mov word [bp-01eh], ax                    ; 89 46 e2
    1422014221    cmp word [bp-014h], 00fffh                ; 81 7e ec ff 0f
    14221     jne short 0946bh                          ; 75 1e
     14222    jne short 09470h                          ; 75 1e
    1422214223    cmp di, strict byte 0ffffh                ; 83 ff ff
    14223     jne short 0946bh                          ; 75 19
     14224    jne short 09470h                          ; 75 19
    1422414225    mov ax, word [bp-0015ch]                  ; 8b 86 a4 fe
    1422514226    mov word [bp-01eh], ax                    ; 89 46 e2
     
    1426014261    mov al, byte [bp-008h]                    ; 8a 46 f8
    1426114262    cmp AL, strict byte 001h                  ; 3c 01
    14262     jc short 094e6h                           ; 72 0c
    14263     jbe short 094eeh                          ; 76 12
     14263    jc short 094ebh                           ; 72 0c
     14264    jbe short 094f3h                          ; 76 12
    1426414265    cmp AL, strict byte 003h                  ; 3c 03
    14265     je short 094f6h                           ; 74 16
     14266    je short 094fbh                           ; 74 16
    1426614267    cmp AL, strict byte 002h                  ; 3c 02
    14267     je short 094f2h                           ; 74 0e
    14268     jmp short 0953eh                          ; eb 58
     14268    je short 094f7h                           ; 74 0e
     14269    jmp short 09543h                          ; eb 58
    1426914270    test al, al                               ; 84 c0
    14270     jne short 0953eh                          ; 75 54
     14271    jne short 09543h                          ; 75 54
    1427114272    mov DL, strict byte 040h                  ; b2 40
    14272     jmp short 094f8h                          ; eb 0a
     14273    jmp short 094fdh                          ; eb 0a
    1427314274    mov DL, strict byte 048h                  ; b2 48
    14274     jmp short 094f8h                          ; eb 06
     14275    jmp short 094fdh                          ; eb 06
    1427514276    mov DL, strict byte 050h                  ; b2 50
    14276     jmp short 094f8h                          ; eb 02
     14277    jmp short 094fdh                          ; eb 02
    1427714278    mov DL, strict byte 058h                  ; b2 58
    1427814279    mov bl, dl                                ; 88 d3
     
    1428014281    xor bh, bh                                ; 30 ff
    1428114282    mov ax, bx                                ; 89 d8
    14282     call 016ach                               ; e8 a8 81
     14283    call 016ach                               ; e8 a3 81
    1428314284    test al, al                               ; 84 c0
    14284     je short 0953eh                           ; 74 36
     14285    je short 09543h                           ; 74 36
    1428514286    mov al, dl                                ; 88 d0
    1428614287    db  0feh, 0c0h
    1428714288    ; inc al                                    ; fe c0
    1428814289    xor ah, ah                                ; 30 e4
    14289     call 016ach                               ; e8 9b 81
     14290    call 016ach                               ; e8 96 81
    1429014291    xor ah, ah                                ; 30 e4
    1429114292    mov cx, ax                                ; 89 c1
    1429214293    sal cx, 008h                              ; c1 e1 08
    1429314294    mov al, dl                                ; 88 d0
    14294     call 016ach                               ; e8 8f 81
     14295    call 016ach                               ; e8 8a 81
    1429514296    xor ah, ah                                ; 30 e4
    1429614297    add ax, cx                                ; 01 c8
     
    1429914300    add AL, strict byte 002h                  ; 04 02
    1430014301    xor ah, ah                                ; 30 e4
    14301     call 016ach                               ; e8 7f 81
     14302    call 016ach                               ; e8 7a 81
    1430214303    xor ah, ah                                ; 30 e4
    1430314304    mov word [bp-02ah], ax                    ; 89 46 d6
    1430414305    mov ax, bx                                ; 89 d8
    14305     call 016ach                               ; e8 75 81
     14306    call 016ach                               ; e8 70 81
    1430614307    xor ah, ah                                ; 30 e4
    1430714308    mov word [bp-026h], ax                    ; 89 46 da
    14308     jmp short 09550h                          ; eb 12
     14309    jmp short 09555h                          ; eb 12
    1430914310    push word [bp-01eh]                       ; ff 76 e2
    1431014311    push word [bp-012h]                       ; ff 76 ee
     
    1431314314    mov dx, ss                                ; 8c d2
    1431414315    lea ax, [bp-02ah]                         ; 8d 46 d6
    14315     call 05977h                               ; e8 27 c4
    14316     mov bx, 00da6h                            ; bb a6 0d
     14316    call 05977h                               ; e8 22 c4
     14317    mov bx, 00da4h                            ; bb a4 0d
    1431714318    mov cx, ds                                ; 8c d9
    1431814319    mov ax, strict word 00004h                ; b8 04 00
    14319     call 01923h                               ; e8 c8 83
     14320    call 01923h                               ; e8 c3 83
    1432014321    push word [bp-01eh]                       ; ff 76 e2
    1432114322    push word [bp-012h]                       ; ff 76 ee
     
    1433814339    push 00cd6h                               ; 68 d6 0c
    1433914340    push strict byte 00004h                   ; 6a 04
    14340     call 01966h                               ; e8 da 83
     14341    call 01966h                               ; e8 d5 83
    1434114342    add sp, strict byte 0001ch                ; 83 c4 1c
    1434214343    mov al, byte [bp-00ah]                    ; 8a 46 f6
     
    1436914370    mov dx, strict word 00075h                ; ba 75 00
    1437014371    mov ax, strict word 00040h                ; b8 40 00
    14371     call 01650h                               ; e8 78 80
     14372    call 01650h                               ; e8 73 80
    1437214373    mov bl, al                                ; 88 c3
    1437314374    db  0feh, 0c3h
     
    1437614377    mov dx, strict word 00075h                ; ba 75 00
    1437714378    mov ax, strict word 00040h                ; b8 40 00
    14378     call 0165eh                               ; e8 77 80
    14379     jmp near 0969bh                           ; e9 b1 00
     14379    call 0165eh                               ; e8 72 80
     14380    jmp near 096a0h                           ; e9 b1 00
    1438014381    cmp dx, 0eb14h                            ; 81 fa 14 eb
    14381     jne short 09644h                          ; 75 54
     14382    jne short 09649h                          ; 75 54
    1438214383    cmp ax, 00101h                            ; 3d 01 01
    14383     jne short 09644h                          ; 75 4f
     14384    jne short 09649h                          ; 75 4f
    1438414385    mov es, [bp-016h]                         ; 8e 46 ea
    1438514386    mov bx, word [bp-00eh]                    ; 8b 5e f2
     
    1439614397    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1439714398    mov dx, es                                ; 8c c2
    14398     call 088e5h                               ; e8 b0 f2
     14399    call 088eah                               ; e8 b0 f2
    1439914400    mov byte [bp-00ah], cl                    ; 88 4e f6
    1440014401    test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
    14401     je short 09646h                           ; 74 07
     14402    je short 0964bh                           ; 74 07
    1440214403    mov dx, strict word 00001h                ; ba 01 00
    14403     jmp short 09648h                          ; eb 04
    14404     jmp short 0969bh                          ; eb 55
     14404    jmp short 0964dh                          ; eb 04
     14405    jmp short 096a0h                          ; eb 55
    1440514406    xor dx, dx                                ; 31 d2
    1440614407    mov bl, byte [bp-008h]                    ; 8a 5e f8
     
    1444114442    pop bp                                    ; 5d
    1444214443    retn                                      ; c3
    14443 ahci_mem_alloc_:                             ; 0xf96b4 LB 0x43
     14444ahci_mem_alloc_:                             ; 0xf96b9 LB 0x43
    1444414445    push bp                                   ; 55
    1444514446    mov bp, sp                                ; 89 e5
     
    1445114452    mov dx, 00413h                            ; ba 13 04
    1445214453    xor ax, ax                                ; 31 c0
    14453     call 0166ch                               ; e8 a8 7f
     14454    call 0166ch                               ; e8 a3 7f
    1445414455    test ax, ax                               ; 85 c0
    14455     je short 096edh                           ; 74 25
     14456    je short 096f2h                           ; 74 25
    1445614457    dec ax                                    ; 48
    1445714458    mov bx, ax                                ; 89 c3
     
    1446014461    sal ax, 1                                 ; d1 e0
    1446114462    rcl dx, 1                                 ; d1 d2
    14462     loop 096d0h                               ; e2 fa
     14463    loop 096d5h                               ; e2 fa
    1446314464    mov si, ax                                ; 89 c6
    1446414465    mov di, dx                                ; 89 d7
     
    1446614467    shr di, 1                                 ; d1 ef
    1446714468    rcr si, 1                                 ; d1 de
    14468     loop 096ddh                               ; e2 fa
     14469    loop 096e2h                               ; e2 fa
    1446914470    mov dx, 00413h                            ; ba 13 04
    1447014471    xor ax, ax                                ; 31 c0
    14471     call 0167ah                               ; e8 8f 7f
     14472    call 0167ah                               ; e8 8a 7f
    1447214473    mov ax, si                                ; 89 f0
    1447314474    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1447914480    pop bp                                    ; 5d
    1448014481    retn                                      ; c3
    14481 ahci_hba_init_:                              ; 0xf96f7 LB 0x16d
     14482ahci_hba_init_:                              ; 0xf96fc LB 0x16d
    1448214483    push bp                                   ; 55
    1448314484    mov bp, sp                                ; 89 e5
     
    1449114492    mov dx, strict word 0000eh                ; ba 0e 00
    1449214493    mov ax, strict word 00040h                ; b8 40 00
    14493     call 0166ch                               ; e8 5f 7f
     14494    call 0166ch                               ; e8 5a 7f
    1449414495    mov bx, 00122h                            ; bb 22 01
    1449514496    mov di, ax                                ; 89 c7
     
    1450814509    shr eax, 010h                             ; 66 c1 e8 10
    1450914510    xchg dx, ax                               ; 92
    14510     call 096b4h                               ; e8 83 ff
     14511    call 096b9h                               ; e8 83 ff
    1451114512    mov word [bp-010h], ax                    ; 89 46 f0
    1451214513    test ax, ax                               ; 85 c0
    14513     jne short 0973bh                          ; 75 03
    14514     jmp near 09843h                           ; e9 08 01
     14514    jne short 09740h                          ; 75 03
     14515    jmp near 09848h                           ; e9 08 01
    1451514516    mov ax, word [bp-010h]                    ; 8b 46 f0
    1451614517    mov es, di                                ; 8e c7
     
    1456214563    xchg dx, ax                               ; 92
    1456314564    test AL, strict byte 001h                 ; a8 01
    14564     jne short 09795h                          ; 75 de
     14565    jne short 0979ah                          ; 75 de
    1456514566    xor ax, ax                                ; 31 c0
    1456614567    xor cx, cx                                ; 31 c9
     
    1458014581    mov bx, strict word 0001fh                ; bb 1f 00
    1458114582    xor cx, cx                                ; 31 c9
    14582     call 08755h                               ; e8 7a ef
     14583    call 0875ah                               ; e8 7a ef
    1458314584    db  0feh, 0c0h
    1458414585    ; inc al                                    ; fe c0
    1458514586    mov byte [bp-00ch], al                    ; 88 46 f4
    1458614587    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
    14587     jmp short 09807h                          ; eb 21
     14588    jmp short 0980ch                          ; eb 21
    1458814589    xor al, al                                ; 30 c0
    1458914590    test al, al                               ; 84 c0
    14590     je short 097feh                           ; 74 12
     14591    je short 09803h                           ; 74 12
    1459114592    mov bl, byte [bp-00eh]                    ; 8a 5e f2
    1459214593    xor bh, bh                                ; 30 ff
    1459314594    xor ax, ax                                ; 31 c0
    1459414595    mov dx, word [bp-010h]                    ; 8b 56 f0
    14595     call 091d1h                               ; e8 d8 f9
     14596    call 091d6h                               ; e8 d8 f9
    1459614597    dec byte [bp-00ch]                        ; fe 4e f4
    14597     je short 09841h                           ; 74 43
     14598    je short 09846h                           ; 74 43
    1459814599    inc byte [bp-00eh]                        ; fe 46 f2
    1459914600    cmp byte [bp-00eh], 020h                  ; 80 7e f2 20
    14600     jnc short 09841h                          ; 73 3a
     14601    jnc short 09846h                          ; 73 3a
    1460114602    mov cl, byte [bp-00eh]                    ; 8a 4e f2
    1460214603    xor ch, ch                                ; 30 ed
    1460314604    mov bx, strict word 00001h                ; bb 01 00
    1460414605    xor di, di                                ; 31 ff
    14605     jcxz 09819h                               ; e3 06
     14606    jcxz 0981eh                               ; e3 06
    1460614607    sal bx, 1                                 ; d1 e3
    1460714608    rcl di, 1                                 ; d1 d7
    14608     loop 09813h                               ; e2 fa
     14609    loop 09818h                               ; e2 fa
    1460914610    mov ax, strict word 0000ch                ; b8 0c 00
    1461014611    xor cx, cx                                ; 31 c9
     
    1462214623    xchg dx, ax                               ; 92
    1462314624    test dx, di                               ; 85 fa
    14624     jne short 0983dh                          ; 75 04
     14625    jne short 09842h                          ; 75 04
    1462514626    test ax, bx                               ; 85 d8
    14626     je short 097e6h                           ; 74 a9
     14627    je short 097ebh                           ; 74 a9
    1462714628    mov AL, strict byte 001h                  ; b0 01
    14628     jmp short 097e8h                          ; eb a7
     14629    jmp short 097edh                          ; eb a7
    1462914630    xor ax, ax                                ; 31 c0
    1463014631    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1463614637    pop bp                                    ; 5d
    1463714638    retn                                      ; c3
    14638     db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 04ch, 099h, 02ah, 099h, 030h, 099h, 036h, 099h, 03ch
    14639     db  099h, 042h, 099h, 048h, 099h, 04ch, 099h
    14640 _ahci_init:                                  ; 0xf9864 LB 0x119
     14639    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 051h, 099h, 02fh, 099h, 035h, 099h, 03bh, 099h, 041h
     14640    db  099h, 047h, 099h, 04dh, 099h, 051h, 099h
     14641_ahci_init:                                  ; 0xf9869 LB 0x119
    1464114642    push bp                                   ; 55
    1464214643    mov bp, sp                                ; 89 e5
     
    1464514646    mov ax, 00601h                            ; b8 01 06
    1464614647    mov dx, strict word 00001h                ; ba 01 00
    14647     call 09d98h                               ; e8 24 05
     14648    call 09d9dh                               ; e8 24 05
    1464814649    mov dx, ax                                ; 89 c2
    1464914650    cmp ax, strict word 0ffffh                ; 3d ff ff
    14650     je short 098c7h                           ; 74 4c
     14651    je short 098cch                           ; 74 4c
    1465114652    xor al, al                                ; 30 c0
    1465214653    shr ax, 008h                              ; c1 e8 08
     
    1465614657    xor ah, ah                                ; 30 e4
    1465714658    mov bx, strict word 00034h                ; bb 34 00
    14658     call 09da0h                               ; e8 10 05
     14659    call 09da5h                               ; e8 10 05
    1465914660    mov cl, al                                ; 88 c1
    1466014661    test cl, cl                               ; 84 c9
    14661     je short 098cah                           ; 74 34
     14662    je short 098cfh                           ; 74 34
    1466214663    mov bl, cl                                ; 88 cb
    1466314664    xor bh, bh                                ; 30 ff
     
    1467014671    mov dx, word [bp-010h]                    ; 8b 56 f0
    1467114672    mov ax, word [bp-00ch]                    ; 8b 46 f4
    14672     call 09da0h                               ; e8 eb 04
     14673    call 09da5h                               ; e8 eb 04
    1467314674    cmp AL, strict byte 012h                  ; 3c 12
    14674     je short 098cah                           ; 74 11
     14675    je short 098cfh                           ; 74 11
    1467514676    mov bl, cl                                ; 88 cb
    1467614677    db  0feh, 0c3h
     
    1467914680    mov dx, word [bp-010h]                    ; 8b 56 f0
    1468014681    mov ax, word [bp-00ch]                    ; 8b 46 f4
    14681     jmp short 0988dh                          ; eb c6
    14682     jmp near 09977h                           ; e9 ad 00
     14682    jmp short 09892h                          ; eb c6
     14683    jmp near 0997ch                           ; e9 ad 00
    1468314684    test cl, cl                               ; 84 c9
    14684     je short 098c7h                           ; 74 f9
     14685    je short 098cch                           ; 74 f9
    1468514686    add cl, 002h                              ; 80 c1 02
    1468614687    mov bl, cl                                ; 88 cb
     
    1469414695    mov dx, word [bp-00eh]                    ; 8b 56 f2
    1469514696    mov ax, word [bp-00ah]                    ; 8b 46 f6
    14696     call 09da0h                               ; e8 b0 04
     14697    call 09da5h                               ; e8 b0 04
    1469714698    cmp AL, strict byte 010h                  ; 3c 10
    14698     jne short 098c7h                          ; 75 d3
     14699    jne short 098cch                          ; 75 d3
    1469914700    mov byte [bp-004h], 000h                  ; c6 46 fc 00
    1470014701    mov bl, cl                                ; 88 cb
     
    1470314704    mov dx, word [bp-00eh]                    ; 8b 56 f2
    1470414705    mov ax, word [bp-00ah]                    ; 8b 46 f6
    14705     call 09dceh                               ; e8 c6 04
     14706    call 09dd3h                               ; e8 c6 04
    1470614707    mov dx, ax                                ; 89 c2
    1470714708    and ax, strict word 0000fh                ; 25 0f 00
    1470814709    sub ax, strict word 00004h                ; 2d 04 00
    1470914710    cmp ax, strict word 0000bh                ; 3d 0b 00
    14710     jnbe short 0994ch                         ; 77 37
     14711    jnbe short 09951h                         ; 77 37
    1471114712    push CS                                   ; 0e
    1471214713    pop ES                                    ; 07
    1471314714    mov cx, strict word 00008h                ; b9 08 00
    14714     mov di, 0984dh                            ; bf 4d 98
     14715    mov di, 09852h                            ; bf 52 98
    1471514716    repne scasb                               ; f2 ae
    1471614717    sal cx, 1                                 ; d1 e1
    1471714718    mov di, cx                                ; 89 cf
    14718     mov ax, word [cs:di-067ach]               ; 2e 8b 85 54 98
     14719    mov ax, word [cs:di-067a7h]               ; 2e 8b 85 59 98
    1471914720    jmp ax                                    ; ff e0
    1472014721    mov byte [bp-004h], 010h                  ; c6 46 fc 10
    14721     jmp short 0994ch                          ; eb 1c
     14722    jmp short 09951h                          ; eb 1c
    1472214723    mov byte [bp-004h], 014h                  ; c6 46 fc 14
    14723     jmp short 0994ch                          ; eb 16
     14724    jmp short 09951h                          ; eb 16
    1472414725    mov byte [bp-004h], 018h                  ; c6 46 fc 18
    14725     jmp short 0994ch                          ; eb 10
     14726    jmp short 09951h                          ; eb 10
    1472614727    mov byte [bp-004h], 01ch                  ; c6 46 fc 1c
    14727     jmp short 0994ch                          ; eb 0a
     14728    jmp short 09951h                          ; eb 0a
    1472814729    mov byte [bp-004h], 020h                  ; c6 46 fc 20
    14729     jmp short 0994ch                          ; eb 04
     14730    jmp short 09951h                          ; eb 04
    1473014731    mov byte [bp-004h], 024h                  ; c6 46 fc 24
    1473114732    mov cx, dx                                ; 89 d1
     
    1473414735    mov al, byte [bp-004h]                    ; 8a 46 fc
    1473514736    test al, al                               ; 84 c0
    14736     je short 09977h                           ; 74 1c
     14737    je short 0997ch                           ; 74 1c
    1473714738    mov bl, al                                ; 88 c3
    1473814739    xor bh, bh                                ; 30 ff
     
    1474114742    mov al, byte [bp-008h]                    ; 8a 46 f8
    1474214743    xor ah, ah                                ; 30 e4
    14743     call 09df8h                               ; e8 8c 04
     14744    call 09dfdh                               ; e8 8c 04
    1474414745    test AL, strict byte 001h                 ; a8 01
    14745     je short 09977h                           ; 74 07
     14746    je short 0997ch                           ; 74 07
    1474614747    and AL, strict byte 0f0h                  ; 24 f0
    1474714748    add ax, cx                                ; 01 c8
    14748     call 096f7h                               ; e8 80 fd
     14749    call 096fch                               ; e8 80 fd
    1474914750    lea sp, [bp-002h]                         ; 8d 66 fe
    1475014751    pop di                                    ; 5f
    1475114752    pop bp                                    ; 5d
    1475214753    retn                                      ; c3
    14753 apm_out_str_:                                ; 0xf997d LB 0x39
     14754apm_out_str_:                                ; 0xf9982 LB 0x39
    1475414755    push bp                                   ; 55
    1475514756    mov bp, sp                                ; 89 e5
     
    1475714758    mov bx, ax                                ; 89 c3
    1475814759    cmp byte [bx], 000h                       ; 80 3f 00
    14759     je short 09992h                           ; 74 0a
     14760    je short 09997h                           ; 74 0a
    1476014761    mov al, byte [bx]                         ; 8a 07
    1476114762    out DX, AL                                ; ee
     
    1476414765    db  00ah, 0c0h
    1476514766    ; or al, al                                 ; 0a c0
    14766     jne short 0998ah                          ; 75 f8
     14767    jne short 0998fh                          ; 75 f8
    1476714768    lea sp, [bp-002h]                         ; 8d 66 fe
    1476814769    pop bx                                    ; 5b
    1476914770    pop bp                                    ; 5d
    1477014771    retn                                      ; c3
    14771     xlatb                                     ; d7
     14772    fcomp qword [bx+di-0659ch]                ; dc 99 64 9a
     14773    out DX, AL                                ; ee
    1477214774    cwd                                       ; 99
    14773     pop di                                    ; 5f
    14774     call far 09a04h:099e9h                    ; 9a e9 99 04 9a
    14775     pop di                                    ; 5f
    14776     call far 09a5fh:09a2fh                    ; 9a 2f 9a 5f 9a
    14777     db  065h, 09ah, 034h, 09ah, 034h, 09ah
    14778     ; gs call far gs:09a34h:09a34h              ; 65 9a 34 9a 34 9a
     14775    or word [bp+si-0659ch], bx                ; 09 9a 64 9a
    1477914776    xor AL, strict byte 09ah                  ; 34 9a
    14780     movsb                                     ; a4
    14781     call far 09a34h:09a34h                    ; 9a 34 9a 34 9a
    14782     popfw                                     ; 9d
    14783     db  09ah
    14784 _apm_function:                               ; 0xf99b6 LB 0xf3
     14777    db  064h, 09ah, 06ah, 09ah, 039h, 09ah
     14778    ; fs call far fs:09a39h:09a6ah              ; 64 9a 6a 9a 39 9a
     14779    cmp word [bp+si-065c7h], bx               ; 39 9a 39 9a
     14780    test ax, 0399ah                           ; a9 9a 39
     14781    call far 09aa2h:09a39h                    ; 9a 39 9a a2 9a
     14782_apm_function:                               ; 0xf99bb LB 0xf3
    1478514783    push bp                                   ; 55
    1478614784    mov bp, sp                                ; 89 e5
     
    1479014788    xor ah, ah                                ; 30 e4
    1479114789    cmp ax, strict word 0000eh                ; 3d 0e 00
    14792     jnbe short 09a34h                         ; 77 6c
     14790    jnbe short 09a39h                         ; 77 6c
    1479314791    mov bx, ax                                ; 89 c3
    1479414792    add bx, ax                                ; 01 c3
    1479514793    mov dx, word [bp+018h]                    ; 8b 56 18
    1479614794    or dl, 001h                               ; 80 ca 01
    14797     jmp word [cs:bx-06668h]                   ; 2e ff a7 98 99
     14795    jmp word [cs:bx-06663h]                   ; 2e ff a7 9d 99
    1479814796    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    1479914797    mov word [bp+00ch], 0504dh                ; c7 46 0c 4d 50
    1480014798    mov word [bp+010h], strict word 00003h    ; c7 46 10 03 00
    14801     jmp near 09a5fh                           ; e9 76 00
     14799    jmp near 09a64h                           ; e9 76 00
    1480214800    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    1480314801    mov word [bp+00ch], 0a024h                ; c7 46 0c 24 a0
     
    1480614804    mov word [bp+006h], ax                    ; 89 46 06
    1480714805    mov word [bp+004h], ax                    ; 89 46 04
    14808     jmp near 09a5fh                           ; e9 5b 00
     14806    jmp near 09a64h                           ; e9 5b 00
    1480914807    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    1481014808    mov word [bp+00ch], 0da40h                ; c7 46 0c 40 da
     
    1481914817    mov si, ax                                ; 89 c6
    1482014818    sal esi, 010h                             ; 66 c1 e6 10
    14821     jmp near 09a5fh                           ; e9 30 00
     14819    jmp near 09a64h                           ; e9 30 00
    1482214820    sti                                       ; fb
    1482314821    hlt                                       ; f4
    14824     jmp near 09a5fh                           ; e9 2b 00
    14825     mov bx, 00da6h                            ; bb a6 0d
     14822    jmp near 09a64h                           ; e9 2b 00
     14823    mov bx, 00da4h                            ; bb a4 0d
    1482614824    mov cx, ds                                ; 8c d9
    1482714825    mov ax, strict word 00004h                ; b8 04 00
    14828     call 01923h                               ; e8 e4 7e
     14826    call 01923h                               ; e8 df 7e
    1482914827    push word [bp+00ch]                       ; ff 76 0c
    1483014828    push word [bp+012h]                       ; ff 76 12
    1483114829    push 00d29h                               ; 68 29 0d
    1483214830    push strict byte 00004h                   ; 6a 04
    14833     call 01966h                               ; e8 19 7f
     14831    call 01966h                               ; e8 14 7f
    1483414832    add sp, strict byte 00008h                ; 83 c4 08
    1483514833    mov ax, word [bp+012h]                    ; 8b 46 12
     
    1484314841    retn                                      ; c3
    1484414842    cmp word [bp+010h], strict byte 00003h    ; 83 7e 10 03
    14845     je short 09a8ah                           ; 74 1f
     14843    je short 09a8fh                           ; 74 1f
    1484614844    cmp word [bp+010h], strict byte 00002h    ; 83 7e 10 02
    14847     je short 09a82h                           ; 74 11
     14845    je short 09a87h                           ; 74 11
    1484814846    cmp word [bp+010h], strict byte 00001h    ; 83 7e 10 01
    14849     jne short 09a92h                          ; 75 1b
     14847    jne short 09a97h                          ; 75 1b
    1485014848    mov dx, 08900h                            ; ba 00 89
    1485114849    mov ax, 00d10h                            ; b8 10 0d
    14852     call 0997dh                               ; e8 fd fe
    14853     jmp short 09a5fh                          ; eb dd
     14850    call 09982h                               ; e8 fd fe
     14851    jmp short 09a64h                          ; eb dd
    1485414852    mov dx, 08900h                            ; ba 00 89
    1485514853    mov ax, 00d18h                            ; b8 18 0d
    14856     jmp short 09a7dh                          ; eb f3
     14854    jmp short 09a82h                          ; eb f3
    1485714855    mov dx, 08900h                            ; ba 00 89
    1485814856    mov ax, 00d20h                            ; b8 20 0d
    14859     jmp short 09a7dh                          ; eb eb
     14857    jmp short 09a82h                          ; eb eb
    1486014858    or ah, 00ah                               ; 80 cc 0a
    1486114859    mov word [bp+012h], ax                    ; 89 46 12
    1486214860    mov word [bp+018h], dx                    ; 89 56 18
    14863     jmp short 09a5fh                          ; eb c2
     14861    jmp short 09a64h                          ; eb c2
    1486414862    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    14865     jmp short 09a5fh                          ; eb bb
     14863    jmp short 09a64h                          ; eb bb
    1486614864    or ah, 080h                               ; 80 cc 80
    14867     jmp short 09a95h                          ; eb ec
    14868 pci16_select_reg_:                           ; 0xf9aa9 LB 0x24
     14865    jmp short 09a9ah                          ; eb ec
     14866pci16_select_reg_:                           ; 0xf9aae LB 0x24
    1486914867    push bp                                   ; 55
    1487014868    mov bp, sp                                ; 89 e5
     
    1488314881    pop bp                                    ; 5d
    1488414882    retn                                      ; c3
    14885 pci16_find_device_:                          ; 0xf9acd LB 0xf9
     14883pci16_find_device_:                          ; 0xf9ad2 LB 0xf9
    1488614884    push bp                                   ; 55
    1488714885    mov bp, sp                                ; 89 e5
     
    1489714895    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1489814896    test bl, 007h                             ; f6 c3 07
    14899     jne short 09b15h                          ; 75 2d
     14897    jne short 09b1ah                          ; 75 2d
    1490014898    mov dx, strict word 0000eh                ; ba 0e 00
    1490114899    mov ax, bx                                ; 89 d8
    14902     call 09aa9h                               ; e8 b9 ff
     14900    call 09aaeh                               ; e8 b9 ff
    1490314901    mov dx, 00cfeh                            ; ba fe 0c
    1490414902    in AL, DX                                 ; ec
     
    1490714905    mov byte [bp-006h], al                    ; 88 46 fa
    1490814906    cmp AL, strict byte 0ffh                  ; 3c ff
    14909     jne short 09b03h                          ; 75 06
     14907    jne short 09b08h                          ; 75 06
    1491014908    add bx, strict byte 00008h                ; 83 c3 08
    14911     jmp near 09b96h                           ; e9 93 00
     14909    jmp near 09b9bh                           ; e9 93 00
    1491214910    test byte [bp-006h], 080h                 ; f6 46 fa 80
    14913     je short 09b10h                           ; 74 07
     14911    je short 09b15h                           ; 74 07
    1491414912    mov word [bp-010h], strict word 00001h    ; c7 46 f0 01 00
    14915     jmp short 09b15h                          ; eb 05
     14913    jmp short 09b1ah                          ; eb 05
    1491614914    mov word [bp-010h], strict word 00008h    ; c7 46 f0 08 00
    1491714915    mov al, byte [bp-006h]                    ; 8a 46 fa
    1491814916    and AL, strict byte 007h                  ; 24 07
    1491914917    cmp AL, strict byte 001h                  ; 3c 01
    14920     jne short 09b3dh                          ; 75 1f
     14918    jne short 09b42h                          ; 75 1f
    1492114919    mov ax, bx                                ; 89 d8
    1492214920    shr ax, 008h                              ; c1 e8 08
    1492314921    test ax, ax                               ; 85 c0
    14924     jne short 09b3dh                          ; 75 16
     14922    jne short 09b42h                          ; 75 16
    1492514923    mov dx, strict word 0001ah                ; ba 1a 00
    1492614924    mov ax, bx                                ; 89 d8
    14927     call 09aa9h                               ; e8 7a ff
     14925    call 09aaeh                               ; e8 7a ff
    1492814926    mov dx, 00cfeh                            ; ba fe 0c
    1492914927    in AL, DX                                 ; ec
     
    1493114929    ; sub ah, ah                                ; 2a e4
    1493214930    cmp al, byte [bp-008h]                    ; 3a 46 f8
    14933     jbe short 09b3dh                          ; 76 03
     14931    jbe short 09b42h                          ; 76 03
    1493414932    mov byte [bp-008h], al                    ; 88 46 f8
    1493514933    test di, di                               ; 85 ff
    14936     je short 09b46h                           ; 74 05
     14934    je short 09b4bh                           ; 74 05
    1493714935    mov dx, strict word 00008h                ; ba 08 00
    14938     jmp short 09b48h                          ; eb 02
     14936    jmp short 09b4dh                          ; eb 02
    1493914937    xor dx, dx                                ; 31 d2
    1494014938    mov ax, bx                                ; 89 d8
    14941     call 09aa9h                               ; e8 5c ff
     14939    call 09aaeh                               ; e8 5c ff
    1494214940    mov dx, 00cfch                            ; ba fc 0c
    1494314941    in eax, DX                                ; 66 ed
     
    1495014948    mov word [bp-00eh], strict word 00000h    ; c7 46 f2 00 00
    1495114949    test di, di                               ; 85 ff
    14952     je short 09b77h                           ; 74 0f
     14950    je short 09b7ch                           ; 74 0f
    1495314951    mov cx, strict word 00008h                ; b9 08 00
    1495414952    shr dx, 1                                 ; d1 ea
    1495514953    rcr ax, 1                                 ; d1 d8
    14956     loop 09b6bh                               ; e2 fa
     14954    loop 09b70h                               ; e2 fa
    1495714955    mov word [bp-00ah], ax                    ; 89 46 f6
    1495814956    mov word [bp-00ch], dx                    ; 89 56 f4
    1495914957    mov ax, word [bp-00ch]                    ; 8b 46 f4
    1496014958    cmp ax, word [bp-014h]                    ; 3b 46 ec
    14961     jne short 09b87h                          ; 75 08
     14959    jne short 09b8ch                          ; 75 08
    1496214960    mov ax, word [bp-00ah]                    ; 8b 46 f6
    1496314961    cmp ax, word [bp-012h]                    ; 3b 46 ee
    14964     je short 09b8dh                           ; 74 06
     14962    je short 09b92h                           ; 74 06
    1496514963    cmp word [bp-00eh], strict byte 00000h    ; 83 7e f2 00
    14966     je short 09b93h                           ; 74 06
     14964    je short 09b98h                           ; 74 06
    1496714965    dec si                                    ; 4e
    1496814966    cmp si, strict byte 0ffffh                ; 83 fe ff
    14969     je short 09ba7h                           ; 74 14
     14967    je short 09bach                           ; 74 14
    1497014968    add bx, word [bp-010h]                    ; 03 5e f0
    1497114969    mov dx, bx                                ; 89 da
     
    1497414972    xor ah, ah                                ; 30 e4
    1497514973    cmp dx, ax                                ; 39 c2
    14976     jnbe short 09ba7h                         ; 77 03
    14977     jmp near 09ae3h                           ; e9 3c ff
     14974    jnbe short 09bach                         ; 77 03
     14975    jmp near 09ae8h                           ; e9 3c ff
    1497814976    cmp si, strict byte 0ffffh                ; 83 fe ff
    14979     jne short 09bb0h                          ; 75 04
     14977    jne short 09bb5h                          ; 75 04
    1498014978    mov ax, bx                                ; 89 d8
    14981     jmp short 09bb3h                          ; eb 03
     14979    jmp short 09bb8h                          ; eb 03
    1498214980    mov ax, strict word 0ffffh                ; b8 ff ff
    1498314981    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1498614984    pop bp                                    ; 5d
    1498714985    retn                                      ; c3
    14988     cmpsw                                     ; a7
     14986    lodsb                                     ; ac
    1498914987    pushfw                                    ; 9c
    14990     rcr byte [si-0632eh], 0e6h                ; c0 9c d2 9c e6
     14988    lds bx, [si-06329h]                       ; c5 9c d7 9c
     14989    jmp short 09b63h                          ; eb 9c
     14990    std                                       ; fd
    1499114991    pushfw                                    ; 9c
    14992     clc                                       ; f8
    14993     pushfw                                    ; 9c
    14994     db  00bh
     14992    db  010h
    1499514993    popfw                                     ; 9d
    14996 _pci16_function:                             ; 0xf9bc6 LB 0x1d2
     14994_pci16_function:                             ; 0xf9bcb LB 0x1d2
    1499714995    push bp                                   ; 55
    1499814996    mov bp, sp                                ; 89 e5
     
    1500815006    xor ah, ah                                ; 30 e4
    1500915007    cmp bx, strict byte 00003h                ; 83 fb 03
    15010     jc short 09bf8h                           ; 72 13
    15011     jbe short 09c4bh                          ; 76 64
     15008    jc short 09bfdh                           ; 72 13
     15009    jbe short 09c50h                          ; 76 64
    1501215010    cmp bx, strict byte 0000eh                ; 83 fb 0e
    15013     je short 09c53h                           ; 74 67
     15011    je short 09c58h                           ; 74 67
    1501415012    cmp bx, strict byte 00008h                ; 83 fb 08
    15015     jc short 09c02h                           ; 72 11
     15013    jc short 09c07h                           ; 72 11
    1501615014    cmp bx, strict byte 0000dh                ; 83 fb 0d
    15017     jbe short 09c56h                          ; 76 60
    15018     jmp short 09c02h                          ; eb 0a
     15015    jbe short 09c5bh                          ; 76 60
     15016    jmp short 09c07h                          ; eb 0a
    1501915017    cmp bx, strict byte 00002h                ; 83 fb 02
    15020     je short 09c21h                           ; 74 24
     15018    je short 09c26h                           ; 74 24
    1502115019    cmp bx, strict byte 00001h                ; 83 fb 01
    15022     je short 09c05h                           ; 74 03
    15023     jmp near 09d64h                           ; e9 5f 01
     15020    je short 09c0ah                           ; 74 03
     15021    jmp near 09d69h                           ; e9 5f 01
    1502415022    mov word [bp+020h], strict word 00001h    ; c7 46 20 01 00
    1502515023    mov word [bp+014h], 00210h                ; c7 46 14 10 02
     
    1502715025    mov word [bp+018h], 04350h                ; c7 46 18 50 43
    1502815026    mov word [bp+01ah], 02049h                ; c7 46 1a 49 20
    15029     jmp near 09d91h                           ; e9 70 01
     15027    jmp near 09d96h                           ; e9 70 01
    1503015028    cmp word [bp+018h], strict byte 0ffffh    ; 83 7e 18 ff
    15031     jne short 09c2dh                          ; 75 06
     15029    jne short 09c32h                          ; 75 06
    1503215030    or ah, 083h                               ; 80 cc 83
    15033     jmp near 09d8ah                           ; e9 5d 01
     15031    jmp near 09d8fh                           ; e9 5d 01
    1503415032    mov bx, word [bp+008h]                    ; 8b 5e 08
    1503515033    mov dx, word [bp+01ch]                    ; 8b 56 1c
    1503615034    mov ax, word [bp+018h]                    ; 8b 46 18
    1503715035    xor cx, cx                                ; 31 c9
    15038     call 09acdh                               ; e8 92 fe
     15036    call 09ad2h                               ; e8 92 fe
    1503915037    cmp ax, strict word 0ffffh                ; 3d ff ff
    15040     jne short 09c4dh                          ; 75 0d
     15038    jne short 09c52h                          ; 75 0d
    1504115039    mov ax, word [bp+020h]                    ; 8b 46 20
    1504215040    xor ah, ah                                ; 30 e4
    1504315041    or ah, 086h                               ; 80 cc 86
    15044     jmp near 09d8ah                           ; e9 3f 01
    15045     jmp short 09c58h                          ; eb 0b
     15042    jmp near 09d8fh                           ; e9 3f 01
     15043    jmp short 09c5dh                          ; eb 0b
    1504615044    mov word [bp+014h], ax                    ; 89 46 14
    15047     jmp near 09d91h                           ; e9 3e 01
    15048     jmp near 09d1fh                           ; e9 c9 00
    15049     jmp short 09c7dh                          ; eb 25
     15045    jmp near 09d96h                           ; e9 3e 01
     15046    jmp near 09d24h                           ; e9 c9 00
     15047    jmp short 09c82h                          ; eb 25
    1505015048    mov bx, word [bp+008h]                    ; 8b 5e 08
    1505115049    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1505215050    mov dx, word [bp+01eh]                    ; 8b 56 1e
    1505315051    mov cx, strict word 00001h                ; b9 01 00
    15054     call 09acdh                               ; e8 66 fe
     15052    call 09ad2h                               ; e8 66 fe
    1505515053    cmp ax, strict word 0ffffh                ; 3d ff ff
    15056     jne short 09c77h                          ; 75 0b
     15054    jne short 09c7ch                          ; 75 0b
    1505715055    mov ax, word [bp+020h]                    ; 8b 46 20
    1505815056    xor ah, ah                                ; 30 e4
    1505915057    or ah, 086h                               ; 80 cc 86
    15060     jmp near 09d8ah                           ; e9 13 01
     15058    jmp near 09d8fh                           ; e9 13 01
    1506115059    mov word [bp+014h], ax                    ; 89 46 14
    15062     jmp near 09d91h                           ; e9 14 01
     15060    jmp near 09d96h                           ; e9 14 01
    1506315061    cmp word [bp+004h], 00100h                ; 81 7e 04 00 01
    15064     jc short 09c8ah                           ; 72 06
     15062    jc short 09c8fh                           ; 72 06
    1506515063    or ah, 087h                               ; 80 cc 87
    15066     jmp near 09d8ah                           ; e9 00 01
     15064    jmp near 09d8fh                           ; e9 00 01
    1506715065    mov dx, word [bp+004h]                    ; 8b 56 04
    1506815066    mov ax, word [bp+014h]                    ; 8b 46 14
    15069     call 09aa9h                               ; e8 16 fe
     15067    call 09aaeh                               ; e8 16 fe
    1507015068    mov bx, word [bp+020h]                    ; 8b 5e 20
    1507115069    xor bh, bh                                ; 30 ff
    1507215070    sub bx, strict byte 00008h                ; 83 eb 08
    1507315071    cmp bx, strict byte 00005h                ; 83 fb 05
    15074     jnbe short 09d08h                         ; 77 68
     15072    jnbe short 09d0dh                         ; 77 68
    1507515073    add bx, bx                                ; 01 db
    15076     jmp word [cs:bx-06446h]                   ; 2e ff a7 ba 9b
     15074    jmp word [cs:bx-06441h]                   ; 2e ff a7 bf 9b
    1507715075    mov bx, word [bp+01ch]                    ; 8b 5e 1c
    1507815076    xor bl, bl                                ; 30 db
     
    1508515083    or bx, ax                                 ; 09 c3
    1508615084    mov word [bp+01ch], bx                    ; 89 5e 1c
    15087     jmp short 09d08h                          ; eb 48
     15085    jmp short 09d0dh                          ; eb 48
    1508815086    mov dx, word [bp+004h]                    ; 8b 56 04
    1508915087    xor dh, dh                                ; 30 f6
     
    1509215090    in ax, DX                                 ; ed
    1509315091    mov word [bp+01ch], ax                    ; 89 46 1c
    15094     jmp short 09d08h                          ; eb 36
     15092    jmp short 09d0dh                          ; eb 36
    1509515093    mov dx, 00cfch                            ; ba fc 0c
    1509615094    in eax, DX                                ; 66 ed
     
    1510115099    mov word [bp+01ch], ax                    ; 89 46 1c
    1510215100    mov word [bp+01eh], dx                    ; 89 56 1e
    15103     jmp short 09d08h                          ; eb 22
     15101    jmp short 09d0dh                          ; eb 22
    1510415102    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1510515103    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1510815106    add dx, 00cfch                            ; 81 c2 fc 0c
    1510915107    out DX, AL                                ; ee
    15110     jmp short 09d08h                          ; eb 10
     15108    jmp short 09d0dh                          ; eb 10
    1511115109    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1511215110    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1511515113    add dx, 00cfch                            ; 81 c2 fc 0c
    1511615114    out DX, ax                                ; ef
    15117     jmp near 09d91h                           ; e9 86 00
     15115    jmp near 09d96h                           ; e9 86 00
    1511815116    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1511915117    mov cx, word [bp+01eh]                    ; 8b 4e 1e
     
    1512415122    ; mov ax, cx                                ; 8b c1
    1512515123    out DX, eax                               ; 66 ef
    15126     jmp short 09d91h                          ; eb 72
     15124    jmp short 09d96h                          ; eb 72
    1512715125    mov bx, word [bp+004h]                    ; 8b 5e 04
    1512815126    mov es, [bp+026h]                         ; 8e 46 26
     
    1513115129    mov cx, word [0f4a0h]                     ; 8b 0e a0 f4
    1513215130    cmp cx, word [es:bx]                      ; 26 3b 0f
    15133     jbe short 09d45h                          ; 76 11
     15131    jbe short 09d4ah                          ; 76 11
    1513415132    mov ax, word [bp+020h]                    ; 8b 46 20
    1513515133    xor ah, ah                                ; 30 e4
     
    1513715135    mov word [bp+020h], ax                    ; 89 46 20
    1513815136    or word [bp+02ch], strict byte 00001h     ; 83 4e 2c 01
    15139     jmp short 09d59h                          ; eb 14
     15137    jmp short 09d5eh                          ; eb 14
    1514015138    les di, [es:bx+002h]                      ; 26 c4 7f 02
    1514115139    mov si, 0f2c0h                            ; be c0 f2
     
    1514915147    les bx, [bp-008h]                         ; c4 5e f8
    1515015148    mov word [es:bx], ax                      ; 26 89 07
    15151     jmp short 09d91h                          ; eb 2d
    15152     mov bx, 00da6h                            ; bb a6 0d
     15149    jmp short 09d96h                          ; eb 2d
     15150    mov bx, 00da4h                            ; bb a4 0d
    1515315151    mov cx, ds                                ; 8c d9
    1515415152    mov ax, strict word 00004h                ; b8 04 00
    15155     call 01923h                               ; e8 b4 7b
     15153    call 01923h                               ; e8 af 7b
    1515615154    mov ax, word [bp+014h]                    ; 8b 46 14
    1515715155    push ax                                   ; 50
     
    1516015158    push 00d5ch                               ; 68 5c 0d
    1516115159    push strict byte 00004h                   ; 6a 04
    15162     call 01966h                               ; e8 e7 7b
     15160    call 01966h                               ; e8 e2 7b
    1516315161    add sp, strict byte 00008h                ; 83 c4 08
    1516415162    mov ax, word [bp+020h]                    ; 8b 46 20
     
    1517215170    pop bp                                    ; 5d
    1517315171    retn                                      ; c3
    15174 pci_find_classcode_:                         ; 0xf9d98 LB 0x8
     15172pci_find_classcode_:                         ; 0xf9d9d LB 0x8
    1517515173    push bp                                   ; 55
    1517615174    mov bp, sp                                ; 89 e5
     
    1517815176    pop bp                                    ; 5d
    1517915177    retn                                      ; c3
    15180 pci_read_config_byte_:                       ; 0xf9da0 LB 0x2e
     15178pci_read_config_byte_:                       ; 0xf9da5 LB 0x2e
    1518115179    push bp                                   ; 55
    1518215180    mov bp, sp                                ; 89 e5
     
    1520415202    pop bp                                    ; 5d
    1520515203    retn                                      ; c3
    15206 pci_read_config_word_:                       ; 0xf9dce LB 0x2a
     15204pci_read_config_word_:                       ; 0xf9dd3 LB 0x2a
    1520715205    push bp                                   ; 55
    1520815206    mov bp, sp                                ; 89 e5
     
    1522815226    pop bp                                    ; 5d
    1522915227    retn                                      ; c3
    15230 pci_read_config_dword_:                      ; 0xf9df8 LB 0x4e
     15228pci_read_config_dword_:                      ; 0xf9dfd LB 0x4e
    1523115229    push bp                                   ; 55
    1523215230    mov bp, sp                                ; 89 e5
     
    1525015248    int 01ah                                  ; cd 1a
    1525115249    test cx, cx                               ; 85 c9
    15252     jne short 09e37h                          ; 75 14
     15250    jne short 09e3ch                          ; 75 14
    1525315251    mov al, byte [bp-006h]                    ; 8a 46 fa
    1525415252    xor ah, ah                                ; 30 e4
     
    1526015258    int 01ah                                  ; cd 1a
    1526115259    test cx, cx                               ; 85 c9
    15262     je short 09e3ch                           ; 74 05
     15260    je short 09e41h                           ; 74 05
    1526315261    mov ax, strict word 00001h                ; b8 01 00
    15264     jmp short 09e3eh                          ; eb 02
     15262    jmp short 09e43h                          ; eb 02
    1526515263    xor ax, ax                                ; 31 c0
    1526615264    cwd                                       ; 99
     
    1527015268    pop bp                                    ; 5d
    1527115269    retn                                      ; c3
    15272 vds_is_present_:                             ; 0xf9e46 LB 0x1d
     15270vds_is_present_:                             ; 0xf9e4b LB 0x1d
    1527315271    push bx                                   ; 53
    1527415272    push bp                                   ; 55
     
    1527815276    mov es, ax                                ; 8e c0
    1527915277    test byte [es:bx], 020h                   ; 26 f6 07 20
    15280     je short 09e5eh                           ; 74 06
     15278    je short 09e63h                           ; 74 06
    1528115279    mov ax, strict word 00001h                ; b8 01 00
    1528215280    pop bp                                    ; 5d
     
    1528715285    pop bx                                    ; 5b
    1528815286    retn                                      ; c3
    15289 vds_real_to_lin_:                            ; 0xf9e63 LB 0x1e
     15287vds_real_to_lin_:                            ; 0xf9e68 LB 0x1e
    1529015288    push bx                                   ; 53
    1529115289    push cx                                   ; 51
     
    1529815296    sal ax, 1                                 ; d1 e0
    1529915297    rcl dx, 1                                 ; d1 d2
    15300     loop 09e71h                               ; e2 fa
     15298    loop 09e76h                               ; e2 fa
    1530115299    xor cx, cx                                ; 31 c9
    1530215300    add ax, bx                                ; 01 d8
     
    1530615304    pop bx                                    ; 5b
    1530715305    retn                                      ; c3
    15308 vds_build_sg_list_:                          ; 0xf9e81 LB 0x77
     15306vds_build_sg_list_:                          ; 0xf9e86 LB 0x77
    1530915307    push bp                                   ; 55
    1531015308    mov bp, sp                                ; 89 e5
     
    1532015318    mov bx, word [bp+006h]                    ; 8b 5e 06
    1532115319    mov word [es:di+002h], bx                 ; 26 89 5d 02
    15322     call 09e63h                               ; e8 c3 ff
     15320    call 09e68h                               ; e8 c3 ff
    1532315321    mov es, si                                ; 8e c6
    1532415322    mov word [es:di+004h], ax                 ; 26 89 45 04
    1532515323    mov word [es:di+006h], dx                 ; 26 89 55 06
    1532615324    mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00
    15327     call 09e46h                               ; e8 93 ff
     15325    call 09e4bh                               ; e8 93 ff
    1532815326    test ax, ax                               ; 85 c0
    15329     je short 09ec8h                           ; 74 11
     15327    je short 09ecdh                           ; 74 11
    1533015328    mov es, si                                ; 8e c6
    1533115329    mov ax, 08105h                            ; b8 05 81
    1533215330    mov dx, strict word 00000h                ; ba 00 00
    1533315331    int 04bh                                  ; cd 4b
    15334     jc short 09ec5h                           ; 72 02
     15332    jc short 09ecah                           ; 72 02
    1533515333    db  032h, 0c0h
    1533615334    ; xor al, al                                ; 32 c0
    1533715335    cbw                                       ; 98
    15338     jmp short 09eefh                          ; eb 27
     15336    jmp short 09ef4h                          ; eb 27
    1533915337    mov es, si                                ; 8e c6
    1534015338    mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00
     
    1535315351    pop bp                                    ; 5d
    1535415352    retn 00004h                               ; c2 04 00
    15355 vds_free_sg_list_:                           ; 0xf9ef8 LB 0x38
     15353vds_free_sg_list_:                           ; 0xf9efd LB 0x33
    1535615354    push bp                                   ; 55
    1535715355    mov bp, sp                                ; 89 e5
     
    1535915357    push di                                   ; 57
    1536015358    mov bx, ax                                ; 89 c3
    15361     call 09e46h                               ; e8 44 ff
     15359    call 09e4bh                               ; e8 44 ff
    1536215360    test ax, ax                               ; 85 c0
    15363     je short 09f17h                           ; 74 11
     15361    je short 09f1ch                           ; 74 11
    1536415362    mov di, bx                                ; 89 df
    1536515363    mov es, dx                                ; 8e c2
     
    1536715365    mov dx, strict word 00000h                ; ba 00 00
    1536815366    int 04bh                                  ; cd 4b
    15369     jc short 09f16h                           ; 72 02
     15367    jc short 09f1bh                           ; 72 02
    1537015368    db  032h, 0c0h
    1537115369    ; xor al, al                                ; 32 c0
     
    1537815376    pop bp                                    ; 5d
    1537915377    retn                                      ; c3
    15380     times 0xa db 0
     15378    times 0x5 db 0
    1538115379__U4M:                                       ; 0xf9f30 LB 0x20
    1538215380    pushfw                                    ; 9c
     
    1658116579    call 01c9fh                               ; e8 63 39
    1658216580    call 02118h                               ; e8 d9 3d
    16583     call 09864h                               ; e8 22 b5
    16584     call 086efh                               ; e8 aa a3
     16581    call 09869h                               ; e8 27 b5
     16582    call 086f4h                               ; e8 af a3
    1658516583    call 0ed2fh                               ; e8 e7 09
    1658616584    call 0e2d2h                               ; e8 87 ff
     
    1684816846    pop DS                                    ; 1f
    1684916847    cld                                       ; fc
    16850     call 06e5eh                               ; e8 7f 84
     16848    call 06e63h                               ; e8 84 84
    1685116849    pop DS                                    ; 1f
    1685216850    pop ES                                    ; 07
     
    1716617164    pop DS                                    ; 1f
    1716717165    cld                                       ; fc
    17168     call 077fch                               ; e8 1f 88
     17166    call 07801h                               ; e8 24 88
    1716917167    popaw                                     ; 61
    1717017168    pop ES                                    ; 07
     
    1752217520    pop DS                                    ; 1f
    1752317521    cld                                       ; fc
    17524     call 06cd4h                               ; e8 6d 74
     17522    call 06cd9h                               ; e8 72 74
    1752517523    pop DS                                    ; 1f
    1752617524    pop ES                                    ; 07
     
    1754417542    cmp ah, 0c2h                              ; 80 fc c2
    1754517543    je short 0f899h                           ; 74 0e
    17546     call 0660eh                               ; e8 80 6d
     17544    call 06613h                               ; e8 85 6d
    1754717545    popaw                                     ; 61
    1754817546    pop ES                                    ; 07
     
    1755017548    popfw                                     ; 9d
    1755117549    jmp short 0f8a5h                          ; eb 11
    17552     call 099b6h                               ; e8 1f a1
     17550    call 099bbh                               ; e8 24 a1
    1755317551    jmp short 0f88eh                          ; eb f5
    1755417552int15_handler_mouse:                         ; 0xff899 LB 0x5
    17555     call 0746fh                               ; e8 d3 7b
     17553    call 07474h                               ; e8 d8 7b
    1755617554    jmp short 0f88eh                          ; eb f0
    1755717555int15_handler32:                             ; 0xff89e LB 0x7
    1755817556    pushaw                                    ; 60
    17559     call 0694ah                               ; e8 a8 70
     17557    call 0694fh                               ; e8 ad 70
    1756017558    popaw                                     ; 61
    1756117559    jmp short 0f88fh                          ; eb ea
     
    1758917587    pop DS                                    ; 1f
    1759017588    cld                                       ; fc
    17591     call 0739dh                               ; e8 d3 7a
     17589    call 073a2h                               ; e8 d8 7a
    1759217590    pop cx                                    ; 59
    1759317591    jcxz 0f8d9h                               ; e3 0c
     
    1762117619    pop DS                                    ; 1f
    1762217620    cld                                       ; fc
    17623     call 07042h                               ; e8 43 77
     17621    call 07047h                               ; e8 48 77
    1762417622    popaw                                     ; 61
    1762517623    pop DS                                    ; 1f
     
    1771017708    pop DS                                    ; 1f
    1771117709    cld                                       ; fc
    17712     call 07101h                               ; e8 8a 72
     17710    call 07106h                               ; e8 8f 72
    1771317711    popaw                                     ; 61
    1771417712    pop DS                                    ; 1f
     
    1781517813cpu_reset:                                   ; 0xffff0 LB 0x10
    1781617814    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    17817     db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0b4h
     17815    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 094h
  • TabularUnified trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.md5sum

    r61733 r62120  
    1 5d85b3dd65aa1cec48a67e325e83affc *VBoxPcBios286.rom
     1e4ac8aec672491c587d1a698e0673e65 *VBoxPcBios286.rom
  • TabularUnified trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.asm

    r61733 r62120  
    951951    db  001h, 000h, 002h, 002h, 003h, 003h, 004h, 004h, 005h, 005h, 00eh, 006h, 00fh, 006h, 000h
    952952_pktacc:                                     ; 0xf006a LB 0xc
    953     db  000h, 000h, 000h, 000h, 000h, 000h, 0cch, 02bh, 0dah, 080h, 001h, 090h
     953    db  000h, 000h, 000h, 000h, 000h, 000h, 0cch, 02bh, 0dfh, 080h, 006h, 090h
    954954_softrst:                                    ; 0xf0076 LB 0xc
    955955    db  000h, 000h, 000h, 000h, 000h, 000h, 0b4h, 02eh, 091h, 03bh, 091h, 03bh
    956956_dskacc:                                     ; 0xf0082 LB 0x2e
    957957    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0bch, 02ah, 071h, 02bh, 000h, 000h, 000h, 000h
    958     db  024h, 07fh, 0ffh, 07fh, 0d7h, 08eh, 07dh, 08fh, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
     958    db  029h, 07fh, 004h, 080h, 0dch, 08eh, 082h, 08fh, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
    959959    db  032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h
    960960
     
    10771077    db   'PCI: Unsupported function AX=%04X BX=%04X called', 00ah, 000h
    10781078
    1079 section CONST2 progbits vstart=0xd8e align=1 ; size=0x400 class=DATA group=DGROUP
    1080 _bios_cvs_version_string:                    ; 0xf0d8e LB 0x18
    1081     db  'VirtualBox 5.1.0_BETA3', 000h, 000h
    1082 _bios_prefix_string:                         ; 0xf0da6 LB 0x8
     1079section CONST2 progbits vstart=0xd8e align=1 ; size=0x3fe class=DATA group=DGROUP
     1080_bios_cvs_version_string:                    ; 0xf0d8e LB 0x16
     1081    db  'VirtualBox 5.1.0_RC1', 000h, 000h
     1082_bios_prefix_string:                         ; 0xf0da4 LB 0x8
    10831083    db  'BIOS: ', 000h, 000h
    1084 _isotag:                                     ; 0xf0dae LB 0x6
     1084_isotag:                                     ; 0xf0dac LB 0x6
    10851085    db  'CD001', 000h
    1086 _eltorito:                                   ; 0xf0db4 LB 0x18
     1086_eltorito:                                   ; 0xf0db2 LB 0x18
    10871087    db  'EL TORITO SPECIFICATION', 000h
    1088 _drivetypes:                                 ; 0xf0dcc LB 0x28
     1088_drivetypes:                                 ; 0xf0dca LB 0x28
    10891089    db  046h, 06ch, 06fh, 070h, 070h, 079h, 000h, 000h, 000h, 000h, 048h, 061h, 072h, 064h, 020h, 044h
    10901090    db  069h, 073h, 06bh, 000h, 043h, 044h, 02dh, 052h, 04fh, 04dh, 000h, 000h, 000h, 000h, 04ch, 041h
    10911091    db  04eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    1092 _scan_to_scanascii:                          ; 0xf0df4 LB 0x37a
     1092_scan_to_scanascii:                          ; 0xf0df2 LB 0x37a
    10931093    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 01bh, 001h, 01bh, 001h, 01bh, 001h
    10941094    db  000h, 001h, 000h, 000h, 031h, 002h, 021h, 002h, 000h, 000h, 000h, 078h, 000h, 000h, 032h, 003h
     
    11471147    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h, 000h, 087h, 000h, 089h, 000h, 08bh, 000h, 000h
    11481148    db  000h, 086h, 000h, 088h, 000h, 08ah, 000h, 08ch, 000h, 000h
    1149 _panic_msg_keyb_buffer_full:                 ; 0xf116e LB 0x20
     1149_panic_msg_keyb_buffer_full:                 ; 0xf116c LB 0x20
    11501150    db  '%s: keyboard input buffer full', 00ah, 000h
    11511151
    1152   ; Padding 0x472 bytes at 0xf118e
    1153   times 1138 db 0
     1152  ; Padding 0x474 bytes at 0xf118c
     1153  times 1140 db 0
    11541154
    11551155section _TEXT progbits vstart=0x1600 align=1 ; size=0x89b5 class=CODE group=AUTO
     
    14291429    push bp                                   ; 55
    14301430    mov bp, sp                                ; 89 e5
    1431     mov bx, 00da6h                            ; bb a6 0d
     1431    mov bx, 00da4h                            ; bb a4 0d
    14321432    mov cx, ds                                ; 8c d9
    14331433    mov ax, strict word 00004h                ; b8 04 00
     
    14581458    int 010h                                  ; cd 10
    14591459    jmp short 01829h                          ; eb 03
    1460     call 07aefh                               ; e8 c6 62
     1460    call 07af4h                               ; e8 cb 62
    14611461    mov sp, bp                                ; 89 ec
    14621462    pop bp                                    ; 5d
     
    27162716    lea ax, [bp-03ah]                         ; 8d 46 c6
    27172717    call 059a6h                               ; e8 66 35
    2718     mov bx, 00da6h                            ; bb a6 0d
     2718    mov bx, 00da4h                            ; bb a4 0d
    27192719    mov cx, ds                                ; 8c d9
    27202720    mov ax, strict word 00004h                ; b8 04 00
     
    34673467    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    34683468    jne short 02c1eh                          ; 75 1f
    3469     mov bx, 00da6h                            ; bb a6 0d
     3469    mov bx, 00da4h                            ; bb a4 0d
    34703470    mov cx, ds                                ; 8c d9
    34713471    mov ax, strict word 00004h                ; b8 04 00
     
    43474347    cmp cl, 048h                              ; 80 f9 48
    43484348    jbe short 033d6h                          ; 76 2a
    4349     mov bx, 00da6h                            ; bb a6 0d
     4349    mov bx, 00da4h                            ; bb a4 0d
    43504350    mov cx, ds                                ; 8c d9
    43514351    mov ax, strict word 00004h                ; b8 04 00
     
    51095109    mov word [bp+008h], ax                    ; 89 46 08
    51105110    jmp near 039e1h                           ; e9 a2 fe
    5111     mov bx, 00da6h                            ; bb a6 0d
     5111    mov bx, 00da4h                            ; bb a4 0d
    51125112    mov cx, ds                                ; 8c d9
    51135113    mov ax, strict word 00004h                ; b8 04 00
     
    52065206    cmp ax, strict word 0004ah                ; 3d 4a 00
    52075207    jne near 03d29h                           ; 0f 85 1e 01
    5208     mov bx, 00da6h                            ; bb a6 0d
     5208    mov bx, 00da4h                            ; bb a4 0d
    52095209    mov cx, ds                                ; 8c d9
    52105210    mov ax, strict word 00004h                ; b8 04 00
     
    53045304    pop bp                                    ; 5d
    53055305    retn                                      ; c3
    5306     mov bx, 00da6h                            ; bb a6 0d
     5306    mov bx, 00da4h                            ; bb a4 0d
    53075307    mov cx, ds                                ; 8c d9
    53085308    mov ax, strict word 00004h                ; b8 04 00
     
    54395439    jnc short 03e93h                          ; 73 10
    54405440    mov al, byte [bp+di-00825h]               ; 8a 83 db f7
    5441     cmp al, byte [di+00daeh]                  ; 3a 85 ae 0d
     5441    cmp al, byte [di+00dach]                  ; 3a 85 ac 0d
    54425442    je short 03e7dh                           ; 74 f0
    54435443    mov ax, strict word 00005h                ; b8 05 00
     
    54495449    jnc short 03eadh                          ; 73 10
    54505450    mov al, byte [bp+di-0081fh]               ; 8a 83 e1 f7
    5451     cmp al, byte [di+00db4h]                  ; 3a 85 b4 0d
     5451    cmp al, byte [di+00db2h]                  ; 3a 85 b2 0d
    54525452    je short 03e97h                           ; 74 f0
    54535453    mov ax, strict word 00006h                ; b8 06 00
     
    57275727    cmp dx, ax                                ; 39 c2
    57285728    je short 0422fh                           ; 74 29
    5729     mov bx, 00da6h                            ; bb a6 0d
     5729    mov bx, 00da4h                            ; bb a4 0d
    57305730    mov cx, ds                                ; 8c d9
    57315731    mov ax, strict word 00004h                ; b8 04 00
     
    59495949    test al, al                               ; 84 c0
    59505950    je near 0427bh                            ; 0f 84 13 fe
    5951     mov bx, 00da6h                            ; bb a6 0d
     5951    mov bx, 00da4h                            ; bb a4 0d
    59525952    mov cx, ds                                ; 8c d9
    59535953    mov ax, strict word 00004h                ; b8 04 00
     
    60306030    mov word [bp+016h], bx                    ; 89 5e 16
    60316031    jmp near 0427fh                           ; e9 37 fd
    6032     mov bx, 00da6h                            ; bb a6 0d
     6032    mov bx, 00da4h                            ; bb a4 0d
    60336033    mov cx, ds                                ; 8c d9
    60346034    mov ax, strict word 00004h                ; b8 04 00
     
    62416241    test dl, dl                               ; 84 d2
    62426242    je near 048a5h                            ; 0f 84 cb 00
    6243     mov bx, 00da6h                            ; bb a6 0d
     6243    mov bx, 00da4h                            ; bb a4 0d
    62446244    mov cx, ds                                ; 8c d9
    62456245    mov ax, strict word 00004h                ; b8 04 00
     
    65256525    or byte [bp+01eh], 001h                   ; 80 4e 1e 01
    65266526    jmp near 048b8h                           ; e9 8f fd
    6527     mov bx, 00da6h                            ; bb a6 0d
     6527    mov bx, 00da4h                            ; bb a4 0d
    65286528    mov cx, ds                                ; 8c d9
    65296529    mov ax, strict word 00004h                ; b8 04 00
     
    65556555    je short 04b8bh                           ; 74 21
    65566556    mov dx, strict word 00001h                ; ba 01 00
    6557     mov bx, 00da6h                            ; bb a6 0d
     6557    mov bx, 00da4h                            ; bb a4 0d
    65586558    mov cx, ds                                ; 8c d9
    65596559    mov ax, strict word 00004h                ; b8 04 00
    65606560    call 01999h                               ; e8 21 ce
    65616561    imul dx, dx, strict byte 0000ah           ; 6b d2 0a
    6562     add dx, 00dcch                            ; 81 c2 cc 0d
     6562    add dx, 00dcah                            ; 81 c2 ca 0d
    65636563    push dx                                   ; 52
    65646564    push 00494h                               ; 68 94 04
     
    65806580    test al, al                               ; 84 c0
    65816581    je short 04bbeh                           ; 74 1b
    6582     mov bx, 00da6h                            ; bb a6 0d
     6582    mov bx, 00da4h                            ; bb a4 0d
    65836583    mov cx, ds                                ; 8c d9
    65846584    mov ax, strict word 00004h                ; b8 04 00
    65856585    call 01999h                               ; e8 eb cd
    6586     push 00de0h                               ; 68 e0 0d
     6586    push 00ddeh                               ; 68 de 0d
    65876587    push 004a8h                               ; 68 a8 04
    65886588    push strict byte 00004h                   ; 6a 04
     
    65926592    test dl, dl                               ; 84 d2
    65936593    je short 04bd2h                           ; 74 10
    6594     mov bx, 00da6h                            ; bb a6 0d
     6594    mov bx, 00da4h                            ; bb a4 0d
    65956595    mov cx, ds                                ; 8c d9
    65966596    mov ax, strict word 00004h                ; b8 04 00
    65976597    call 01999h                               ; e8 cc cd
    6598     push 00deah                               ; 68 ea 0d
     6598    push 00de8h                               ; 68 e8 0d
    65996599    jmp short 04bb1h                          ; eb df
    66006600    test bl, 080h                             ; f6 c3 80
    66016601    je short 04be8h                           ; 74 11
    6602     mov bx, 00da6h                            ; bb a6 0d
     6602    mov bx, 00da4h                            ; bb a4 0d
    66036603    mov cx, ds                                ; 8c d9
    66046604    mov ax, strict word 00004h                ; b8 04 00
    66056605    call 01999h                               ; e8 b7 cd
    66066606    push si                                   ; 56
    6607     push 00dd6h                               ; 68 d6 0d
     6607    push 00dd4h                               ; 68 d4 0d
    66086608    jmp short 04bf7h                          ; eb 0f
    6609     mov bx, 00da6h                            ; bb a6 0d
     6609    mov bx, 00da4h                            ; bb a4 0d
    66106610    mov cx, ds                                ; 8c d9
    66116611    mov ax, strict word 00004h                ; b8 04 00
    66126612    call 01999h                               ; e8 a6 cd
    66136613    push si                                   ; 56
    6614     push 00dcch                               ; 68 cc 0d
     6614    push 00dcah                               ; 68 ca 0d
    66156615    push 004bdh                               ; 68 bd 04
    66166616    push strict byte 00004h                   ; 6a 04
     
    66386638    push dx                                   ; 52
    66396639    mov dx, ax                                ; 89 c2
    6640     mov bx, 00da6h                            ; bb a6 0d
     6640    mov bx, 00da4h                            ; bb a4 0d
    66416641    mov cx, ds                                ; 8c d9
    66426642    mov ax, strict word 00004h                ; b8 04 00
     
    66966696    xor ah, ah                                ; 30 e4
    66976697    sar ax, 004h                              ; c1 f8 04
    6698     call 07d13h                               ; e8 5a 30
     6698    call 07d18h                               ; e8 5f 30
    66996699    cmp byte [bp+004h], 002h                  ; 80 7e 04 02
    67006700    jne short 04cc2h                          ; 75 03
     
    67136713    mov byte [bp-00ah], al                    ; 88 46 f6
    67146714    mov byte [bp-00ch], al                    ; 88 46 f4
    6715     mov bx, 00da6h                            ; bb a6 0d
     6715    mov bx, 00da4h                            ; bb a4 0d
    67166716    mov cx, ds                                ; 8c d9
    67176717    mov ax, strict word 00004h                ; b8 04 00
     
    71897189    out DX, AL                                ; ee
    71907190    xor ax, ax                                ; 31 c0
    7191     call 06561h                               ; e8 47 14
     7191    call 06566h                               ; e8 4c 14
    71927192    mov sp, bp                                ; 89 ec
    71937193    pop bp                                    ; 5d
     
    72837283    test al, al                               ; 84 c0
    72847284    jne short 051e1h                          ; 75 19
    7285     mov bx, 00da6h                            ; bb a6 0d
     7285    mov bx, 00da4h                            ; bb a4 0d
    72867286    mov cx, ds                                ; 8c d9
    72877287    mov ax, strict word 00004h                ; b8 04 00
     
    76007600    cmp byte [bp-00ch], 058h                  ; 80 7e f4 58
    76017601    jbe short 05555h                          ; 76 1e
    7602     mov bx, 00da6h                            ; bb a6 0d
     7602    mov bx, 00da4h                            ; bb a4 0d
    76037603    mov cx, ds                                ; 8c d9
    76047604    mov ax, strict word 00004h                ; b8 04 00
     
    76167616    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    76177617    imul bx, bx, strict byte 0000ah           ; 6b db 0a
    7618     mov dl, byte [bx+00dfah]                  ; 8a 97 fa 0d
    7619     mov ax, word [bx+00dfah]                  ; 8b 87 fa 0d
     7618    mov dl, byte [bx+00df8h]                  ; 8a 97 f8 0d
     7619    mov ax, word [bx+00df8h]                  ; 8b 87 f8 0d
    76207620    jmp near 055fch                           ; e9 8e 00
    76217621    test AL, strict byte 004h                 ; a8 04
     
    76237623    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    76247624    imul bx, bx, strict byte 0000ah           ; 6b db 0a
    7625     mov dl, byte [bx+00df8h]                  ; 8a 97 f8 0d
    7626     mov ax, word [bx+00df8h]                  ; 8b 87 f8 0d
     7625    mov dl, byte [bx+00df6h]                  ; 8a 97 f6 0d
     7626    mov ax, word [bx+00df6h]                  ; 8b 87 f6 0d
    76277627    jmp near 055fch                           ; e9 78 00
    76287628    mov al, byte [bp-004h]                    ; 8a 46 fc
     
    76437643    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    76447644    imul bx, bx, strict byte 0000ah           ; 6b db 0a
    7645     movzx ax, byte [bx+00dfch]                ; 0f b6 87 fc 0d
     7645    movzx ax, byte [bx+00dfah]                ; 0f b6 87 fa 0d
    76467646    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    76477647    test dx, ax                               ; 85 c2
    76487648    je short 055c6h                           ; 74 0a
     7649    mov dl, byte [bx+00df2h]                  ; 8a 97 f2 0d
     7650    mov ax, word [bx+00df2h]                  ; 8b 87 f2 0d
     7651    jmp short 055ceh                          ; eb 08
    76497652    mov dl, byte [bx+00df4h]                  ; 8a 97 f4 0d
    76507653    mov ax, word [bx+00df4h]                  ; 8b 87 f4 0d
    7651     jmp short 055ceh                          ; eb 08
    7652     mov dl, byte [bx+00df6h]                  ; 8a 97 f6 0d
    7653     mov ax, word [bx+00df6h]                  ; 8b 87 f6 0d
    76547654    shr ax, 008h                              ; c1 e8 08
    76557655    mov byte [bp-00ch], al                    ; 88 46 f4
     
    76577657    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    76587658    imul bx, bx, strict byte 0000ah           ; 6b db 0a
    7659     movzx ax, byte [bx+00dfch]                ; 0f b6 87 fc 0d
     7659    movzx ax, byte [bx+00dfah]                ; 0f b6 87 fa 0d
    76607660    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    76617661    test dx, ax                               ; 85 c2
    76627662    je short 055f4h                           ; 74 0a
    7663     mov dl, byte [bx+00df6h]                  ; 8a 97 f6 0d
    7664     mov ax, word [bx+00df6h]                  ; 8b 87 f6 0d
    7665     jmp short 055fch                          ; eb 08
    76667663    mov dl, byte [bx+00df4h]                  ; 8a 97 f4 0d
    76677664    mov ax, word [bx+00df4h]                  ; 8b 87 f4 0d
     7665    jmp short 055fch                          ; eb 08
     7666    mov dl, byte [bx+00df2h]                  ; 8a 97 f2 0d
     7667    mov ax, word [bx+00df2h]                  ; 8b 87 f2 0d
    76687668    shr ax, 008h                              ; c1 e8 08
    76697669    mov byte [bp-00ch], al                    ; 88 46 f4
     
    76727672    test dl, dl                               ; 84 d2
    76737673    jne short 05622h                          ; 75 16
    7674     mov bx, 00da6h                            ; bb a6 0d
     7674    mov bx, 00da4h                            ; bb a4 0d
    76757675    mov cx, ds                                ; 8c d9
    76767676    mov ax, strict word 00004h                ; b8 04 00
     
    80258025    or ah, 080h                               ; 80 cc 80
    80268026    jmp near 05832h                           ; e9 d5 fe
    8027     mov bx, 00da6h                            ; bb a6 0d
     8027    mov bx, 00da4h                            ; bb a4 0d
    80288028    mov cx, ds                                ; 8c d9
    80298029    mov ax, strict word 00004h                ; b8 04 00
     
    80368036    call 019dah                               ; e8 63 c0
    80378037    add sp, strict byte 00006h                ; 83 c4 06
    8038     mov bx, 00da6h                            ; bb a6 0d
     8038    mov bx, 00da4h                            ; bb a4 0d
    80398039    mov cx, ds                                ; 8c d9
    80408040    mov ax, strict word 00004h                ; b8 04 00
     
    82618261    test ax, ax                               ; 85 c0
    82628262    jne short 05bc6h                          ; 75 23
    8263     mov bx, 00da6h                            ; bb a6 0d
     8263    mov bx, 00da4h                            ; bb a4 0d
    82648264    mov cx, ds                                ; 8c d9
    82658265    mov ax, strict word 00004h                ; b8 04 00
     
    82908290    cmp ax, dx                                ; 39 d0
    82918291    jbe short 05c21h                          ; 76 2e
    8292     mov bx, 00da6h                            ; bb a6 0d
     8292    mov bx, 00da4h                            ; bb a4 0d
    82938293    mov cx, ds                                ; 8c d9
    82948294    mov ax, strict word 00004h                ; b8 04 00
     
    83908390    test dl, dl                               ; 84 d2
    83918391    je near 05b24h                            ; 0f 84 0a fe
    8392     mov bx, 00da6h                            ; bb a6 0d
     8392    mov bx, 00da4h                            ; bb a4 0d
    83938393    mov cx, ds                                ; 8c d9
    83948394    mov ax, strict word 00004h                ; b8 04 00
     
    84088408    or ah, 00ch                               ; 80 cc 0c
    84098409    jmp near 05e9ah                           ; e9 51 01
    8410     mov bx, 00da6h                            ; bb a6 0d
     8410    mov bx, 00da4h                            ; bb a4 0d
    84118411    mov cx, ds                                ; 8c d9
    84128412    mov ax, strict word 00004h                ; b8 04 00
     
    85078507    mov word [bp+016h], ax                    ; 89 46 16
    85088508    jmp near 05b28h                           ; e9 d4 fc
    8509     mov bx, 00da6h                            ; bb a6 0d
     8509    mov bx, 00da4h                            ; bb a4 0d
    85108510    mov cx, ds                                ; 8c d9
    85118511    mov ax, strict word 00004h                ; b8 04 00
     
    85208520    add sp, strict byte 00008h                ; 83 c4 08
    85218521    jmp near 05b24h                           ; e9 ad fc
    8522     mov bx, 00da6h                            ; bb a6 0d
     8522    mov bx, 00da4h                            ; bb a4 0d
    85238523    mov cx, ds                                ; 8c d9
    85248524    mov ax, strict word 00004h                ; b8 04 00
     
    86648664    cmp dx, word [es:di+036h]                 ; 26 3b 55 36
    86658665    jc short 06028h                           ; 72 23
    8666     mov bx, 00da6h                            ; bb a6 0d
     8666    mov bx, 00da4h                            ; bb a4 0d
    86678667    mov cx, ds                                ; 8c d9
    86688668    mov ax, strict word 00004h                ; b8 04 00
     
    87208720    test dl, dl                               ; 84 d2
    87218721    je near 0635fh                            ; 0f 84 a8 02
    8722     mov bx, 00da6h                            ; bb a6 0d
     8722    mov bx, 00da4h                            ; bb a4 0d
    87238723    mov cx, ds                                ; 8c d9
    87248724    mov ax, strict word 00004h                ; b8 04 00
     
    89668966    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    89678967    jmp short 06372h                          ; eb c4
    8968     mov bx, 00da6h                            ; bb a6 0d
     8968    mov bx, 00da4h                            ; bb a4 0d
    89698969    mov cx, ds                                ; 8c d9
    89708970    mov ax, strict word 00004h                ; b8 04 00
     
    89768976    push 007c7h                               ; 68 c7 07
    89778977    jmp near 0601dh                           ; e9 54 fc
    8978 _int14_function:                             ; 0xf63c9 LB 0x155
     8978_int14_function:                             ; 0xf63c9 LB 0x15a
    89798979    push bp                                   ; 55
    89808980    mov bp, sp                                ; 89 e5
     
    89938993    mov cl, al                                ; 88 c1
    89948994    cmp word [bp+00eh], strict byte 00004h    ; 83 7e 0e 04
    8995     jnc near 06514h                           ; 0f 83 21 01
     8995    jnc near 06519h                           ; 0f 83 26 01
    89968996    test si, si                               ; 85 f6
    8997     jbe near 06514h                           ; 0f 86 1b 01
     8997    jbe near 06519h                           ; 0f 86 20 01
    89988998    mov al, byte [bp+013h]                    ; 8a 46 13
    89998999    cmp AL, strict byte 001h                  ; 3c 01
    90009000    jc short 06411h                           ; 72 11
    9001     jbe short 06465h                          ; 76 63
     9001    jbe short 0646ah                          ; 76 68
    90029002    cmp AL, strict byte 003h                  ; 3c 03
    9003     je near 064fdh                            ; 0f 84 f5 00
     9003    je near 06502h                            ; 0f 84 fa 00
    90049004    cmp AL, strict byte 002h                  ; 3c 02
    9005     je near 064b3h                            ; 0f 84 a5 00
    9006     jmp near 0650eh                           ; e9 fd 00
     9005    je near 064b8h                            ; 0f 84 aa 00
     9006    jmp near 06513h                           ; e9 02 01
    90079007    test al, al                               ; 84 c0
    9008     jne near 0650eh                           ; 0f 85 f7 00
     9008    jne near 06513h                           ; 0f 85 fc 00
    90099009    lea dx, [bx+003h]                         ; 8d 57 03
    90109010    in AL, DX                                 ; ec
     
    90139013    or AL, strict byte 080h                   ; 0c 80
    90149014    out DX, AL                                ; ee
     9015    lea si, [bx+001h]                         ; 8d 77 01
    90159016    mov al, byte [bp+012h]                    ; 8a 46 12
     9017    test AL, strict byte 0e0h                 ; a8 e0
     9018    jne short 06436h                          ; 75 0c
     9019    mov AL, strict byte 017h                  ; b0 17
     9020    mov dx, bx                                ; 89 da
     9021    out DX, AL                                ; ee
     9022    mov AL, strict byte 004h                  ; b0 04
     9023    mov dx, si                                ; 89 f2
     9024    out DX, AL                                ; ee
     9025    jmp short 0644ch                          ; eb 16
    90169026    and AL, strict byte 0e0h                  ; 24 e0
    90179027    movzx cx, al                              ; 0f b6 c8
     
    90229032    out DX, AL                                ; ee
    90239033    shr ax, 008h                              ; c1 e8 08
    9024     lea dx, [bx+001h]                         ; 8d 57 01
     9034    mov dx, si                                ; 89 f2
    90259035    out DX, AL                                ; ee
    90269036    mov al, byte [bp+012h]                    ; 8a 46 12
     
    90389048    ; sub ah, ah                                ; 2a e4
    90399049    mov byte [bp+012h], al                    ; 88 46 12
    9040     jmp near 064efh                           ; e9 97 00
    9041     mov AL, strict byte 017h                  ; b0 17
    9042     mov dx, bx                                ; 89 da
    9043     out DX, AL                                ; ee
    9044     lea dx, [bx+001h]                         ; 8d 57 01
    9045     mov AL, strict byte 004h                  ; b0 04
    9046     out DX, AL                                ; ee
    9047     jmp short 0643ah                          ; eb d5
     9050    jmp near 064f4h                           ; e9 8a 00
    90489051    mov dx, strict word 0006ch                ; ba 6c 00
    90499052    mov ax, strict word 00040h                ; b8 40 00
    9050     call 016d4h                               ; e8 66 b2
     9053    call 016d4h                               ; e8 61 b2
    90519054    mov si, ax                                ; 89 c6
    90529055    lea dx, [bx+005h]                         ; 8d 57 05
     
    90569059    and ax, strict word 00060h                ; 25 60 00
    90579060    cmp ax, strict word 00060h                ; 3d 60 00
    9058     je short 06495h                           ; 74 17
     9061    je short 0649ah                           ; 74 17
    90599062    test cl, cl                               ; 84 c9
    9060     je short 06495h                           ; 74 13
     9063    je short 0649ah                           ; 74 13
    90619064    mov dx, strict word 0006ch                ; ba 6c 00
    90629065    mov ax, strict word 00040h                ; b8 40 00
    9063     call 016d4h                               ; e8 49 b2
     9066    call 016d4h                               ; e8 44 b2
    90649067    cmp ax, si                                ; 39 f0
    9065     je short 06470h                           ; 74 e1
     9068    je short 06475h                           ; 74 e1
    90669069    mov si, ax                                ; 89 c6
    90679070    db  0feh, 0c9h
    90689071    ; dec cl                                    ; fe c9
    9069     jmp short 06470h                          ; eb db
     9072    jmp short 06475h                          ; eb db
    90709073    test cl, cl                               ; 84 c9
    9071     je short 0649fh                           ; 74 06
     9074    je short 064a4h                           ; 74 06
    90729075    mov al, byte [bp+012h]                    ; 8a 46 12
    90739076    mov dx, bx                                ; 89 da
     
    90799082    mov byte [bp+013h], al                    ; 88 46 13
    90809083    test cl, cl                               ; 84 c9
    9081     jne short 064efh                          ; 75 43
     9084    jne short 064f4h                          ; 75 43
    90829085    or AL, strict byte 080h                   ; 0c 80
    90839086    mov byte [bp+013h], al                    ; 88 46 13
    9084     jmp short 064efh                          ; eb 3c
     9087    jmp short 064f4h                          ; eb 3c
    90859088    mov dx, strict word 0006ch                ; ba 6c 00
    90869089    mov ax, strict word 00040h                ; b8 40 00
    9087     call 016d4h                               ; e8 18 b2
     9090    call 016d4h                               ; e8 13 b2
    90889091    mov si, ax                                ; 89 c6
    90899092    lea dx, [bx+005h]                         ; 8d 57 05
     
    90929095    ; sub ah, ah                                ; 2a e4
    90939096    test AL, strict byte 001h                 ; a8 01
    9094     jne short 064dfh                          ; 75 17
     9097    jne short 064e4h                          ; 75 17
    90959098    test cl, cl                               ; 84 c9
    9096     je short 064dfh                           ; 74 13
     9099    je short 064e4h                           ; 74 13
    90979100    mov dx, strict word 0006ch                ; ba 6c 00
    90989101    mov ax, strict word 00040h                ; b8 40 00
    9099     call 016d4h                               ; e8 ff b1
     9102    call 016d4h                               ; e8 fa b1
    91009103    cmp ax, si                                ; 39 f0
    9101     je short 064beh                           ; 74 e5
     9104    je short 064c3h                           ; 74 e5
    91029105    mov si, ax                                ; 89 c6
    91039106    db  0feh, 0c9h
    91049107    ; dec cl                                    ; fe c9
    9105     jmp short 064beh                          ; eb df
     9108    jmp short 064c3h                          ; eb df
    91069109    test cl, cl                               ; 84 c9
    9107     je short 064f5h                           ; 74 12
     9110    je short 064fah                           ; 74 12
    91089111    mov byte [bp+013h], 000h                  ; c6 46 13 00
    91099112    mov dx, bx                                ; 89 da
     
    91139116    mov byte [bp+012h], al                    ; 88 46 12
    91149117    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    9115     jmp short 06518h                          ; eb 23
     9118    jmp short 0651dh                          ; eb 23
    91169119    lea dx, [bx+005h]                         ; 8d 57 05
    91179120    in AL, DX                                 ; ec
    91189121    db  02ah, 0e4h
    91199122    ; sub ah, ah                                ; 2a e4
    9120     jmp short 064aeh                          ; eb b1
     9123    jmp short 064b3h                          ; eb b1
    91219124    lea dx, [si+005h]                         ; 8d 54 05
    91229125    in AL, DX                                 ; ec
     
    91289131    db  02ah, 0e4h
    91299132    ; sub ah, ah                                ; 2a e4
    9130     jmp short 064ech                          ; eb de
     9133    jmp short 064f1h                          ; eb de
    91319134    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    9132     jmp short 06518h                          ; eb 04
     9135    jmp short 0651dh                          ; eb 04
    91339136    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    91349137    lea sp, [bp-002h]                         ; 8d 66 fe
     
    91369139    pop bp                                    ; 5d
    91379140    retn                                      ; c3
    9138 timer_wait_:                                 ; 0xf651e LB 0x43
     9141timer_wait_:                                 ; 0xf6523 LB 0x43
    91399142    push bp                                   ; 55
    91409143    mov bp, sp                                ; 89 e5
     
    91449147    mov bx, strict word 0000fh                ; bb 0f 00
    91459148    xor cx, cx                                ; 31 c9
    9146     call 09ec0h                               ; e8 94 39
     9149    call 09ec0h                               ; e8 8f 39
    91479150    mov cx, ax                                ; 89 c1
    91489151    mov bx, dx                                ; 89 d3
     
    91569159    adc bx, strict byte 0ffffh                ; 83 d3 ff
    91579160    cmp bx, strict byte 0ffffh                ; 83 fb ff
    9158     jne short 0654bh                          ; 75 05
     9161    jne short 06550h                          ; 75 05
    91599162    cmp cx, strict byte 0ffffh                ; 83 f9 ff
    9160     je short 0655ah                           ; 74 0f
     9163    je short 0655fh                           ; 74 0f
    91619164    mov dx, strict word 00061h                ; ba 61 00
    91629165    in AL, DX                                 ; ec
     
    91659168    and AL, strict byte 010h                  ; 24 10
    91669169    cmp al, byte [bp-006h]                    ; 3a 46 fa
    9167     jne short 0654bh                          ; 75 f3
    9168     jmp short 0653bh                          ; eb e1
     9170    jne short 06550h                          ; 75 f3
     9171    jmp short 06540h                          ; eb e1
    91699172    lea sp, [bp-004h]                         ; 8d 66 fc
    91709173    pop cx                                    ; 59
     
    91729175    pop bp                                    ; 5d
    91739176    retn                                      ; c3
    9174 set_enable_a20_:                             ; 0xf6561 LB 0x2c
     9177set_enable_a20_:                             ; 0xf6566 LB 0x2c
    91759178    push bp                                   ; 55
    91769179    mov bp, sp                                ; 89 e5
     
    91859188    mov cl, al                                ; 88 c1
    91869189    test bx, bx                               ; 85 db
    9187     je short 0657ah                           ; 74 05
     9190    je short 0657fh                           ; 74 05
    91889191    or AL, strict byte 002h                   ; 0c 02
    91899192    out DX, AL                                ; ee
    9190     jmp short 0657dh                          ; eb 03
     9193    jmp short 06582h                          ; eb 03
    91919194    and AL, strict byte 0fdh                  ; 24 fd
    91929195    out DX, AL                                ; ee
     
    92019204    pop bp                                    ; 5d
    92029205    retn                                      ; c3
    9203 set_e820_range_:                             ; 0xf658d LB 0x89
     9206set_e820_range_:                             ; 0xf6592 LB 0x89
    92049207    push si                                   ; 56
    92059208    push bp                                   ; 55
     
    92309233    retn 0000ah                               ; c2 0a 00
    92319234    db  0ech, 0e9h, 0d8h, 0c1h, 0c0h, 0bfh, 091h, 090h, 089h, 088h, 083h, 052h, 04fh, 041h, 024h, 000h
    9232     db  01ah, 069h, 053h, 066h, 066h, 066h, 0fbh, 066h, 001h, 067h, 006h, 067h, 00bh, 067h, 0adh, 067h
    9233     db  0d7h, 067h, 0f4h, 066h, 0f4h, 066h, 0a4h, 068h, 0cch, 068h, 0dfh, 068h, 0eeh, 068h, 0fbh, 066h
    9234     db  0f5h, 068h
    9235 _int15_function:                             ; 0xf6616 LB 0x336
     9235    db  01fh, 069h, 058h, 066h, 06bh, 066h, 000h, 067h, 006h, 067h, 00bh, 067h, 010h, 067h, 0b2h, 067h
     9236    db  0dch, 067h, 0f9h, 066h, 0f9h, 066h, 0a9h, 068h, 0d1h, 068h, 0e4h, 068h, 0f3h, 068h, 000h, 067h
     9237    db  0fah, 068h
     9238_int15_function:                             ; 0xf661b LB 0x336
    92369239    push bp                                   ; 55
    92379240    mov bp, sp                                ; 89 e5
     
    92419244    shr ax, 008h                              ; c1 e8 08
    92429245    cmp ax, 000ech                            ; 3d ec 00
    9243     jnbe near 0691ah                          ; 0f 87 f2 02
     9246    jnbe near 0691fh                          ; 0f 87 f2 02
    92449247    push CS                                   ; 0e
    92459248    pop ES                                    ; 07
    92469249    mov cx, strict word 00011h                ; b9 11 00
    9247     mov di, 065e4h                            ; bf e4 65
     9250    mov di, 065e9h                            ; bf e9 65
    92489251    repne scasb                               ; f2 ae
    92499252    sal cx, 1                                 ; d1 e1
    92509253    mov di, cx                                ; 89 cf
    9251     mov si, word [cs:di+065f4h]               ; 2e 8b b5 f4 65
     9254    mov si, word [cs:di+065f9h]               ; 2e 8b b5 f9 65
    92529255    mov ax, word [bp+012h]                    ; 8b 46 12
    92539256    xor ah, ah                                ; 30 e4
     
    92629265    xor ah, ah                                ; 30 e4
    92639266    cmp ax, 000c0h                            ; 3d c0 00
    9264     jne near 0691ah                           ; 0f 85 bb 02
     9267    jne near 0691fh                           ; 0f 85 bb 02
    92659268    or byte [bp+018h], 001h                   ; 80 4e 18 01
    9266     jmp near 068c3h                           ; e9 5d 02
     9269    jmp near 068c8h                           ; e9 5d 02
    92679270    mov dx, ax                                ; 89 c2
    92689271    cmp ax, strict word 00001h                ; 3d 01 00
    9269     jc short 0667bh                           ; 72 0e
    9270     jbe short 0668fh                          ; 76 20
     9272    jc short 06680h                           ; 72 0e
     9273    jbe short 06694h                          ; 76 20
    92719274    cmp ax, strict word 00003h                ; 3d 03 00
    9272     je short 066bch                           ; 74 48
     9275    je short 066c1h                           ; 74 48
    92739276    cmp ax, strict word 00002h                ; 3d 02 00
    9274     je short 0669fh                           ; 74 26
    9275     jmp short 066c9h                          ; eb 4e
     9277    je short 066a4h                           ; 74 26
     9278    jmp short 066ceh                          ; eb 4e
    92769279    test ax, ax                               ; 85 c0
    9277     jne short 066c9h                          ; 75 4a
     9280    jne short 066ceh                          ; 75 4a
    92789281    xor ax, ax                                ; 31 c0
    9279     call 06561h                               ; e8 dd fe
     9282    call 06566h                               ; e8 dd fe
    92809283    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    92819284    mov byte [bp+013h], 000h                  ; c6 46 13 00
    9282     jmp near 066f4h                           ; e9 65 00
     9285    jmp near 066f9h                           ; e9 65 00
    92839286    mov ax, strict word 00001h                ; b8 01 00
    9284     call 06561h                               ; e8 cc fe
     9287    call 06566h                               ; e8 cc fe
    92859288    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    92869289    mov byte [bp+013h], dh                    ; 88 76 13
    9287     jmp near 066f4h                           ; e9 55 00
     9290    jmp near 066f9h                           ; e9 55 00
    92889291    mov dx, 00092h                            ; ba 92 00
    92899292    in AL, DX                                 ; ec
     
    92979300    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    92989301    mov byte [bp+013h], ah                    ; 88 66 13
    9299     jmp near 066f4h                           ; e9 38 00
     9302    jmp near 066f9h                           ; e9 38 00
    93009303    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    93019304    mov byte [bp+013h], ah                    ; 88 66 13
    93029305    mov word [bp+00ch], ax                    ; 89 46 0c
    9303     jmp near 066f4h                           ; e9 2b 00
    9304     mov bx, 00da6h                            ; bb a6 0d
     9306    jmp near 066f9h                           ; e9 2b 00
     9307    mov bx, 00da4h                            ; bb a4 0d
    93059308    mov cx, ds                                ; 8c d9
    93069309    mov ax, strict word 00004h                ; b8 04 00
    9307     call 01999h                               ; e8 c5 b2
     9310    call 01999h                               ; e8 c0 b2
    93089311    mov ax, word [bp+012h]                    ; 8b 46 12
    93099312    xor ah, ah                                ; 30 e4
     
    93119314    push 0082eh                               ; 68 2e 08
    93129315    push strict byte 00004h                   ; 6a 04
    9313     call 019dah                               ; e8 f8 b2
     9316    call 019dah                               ; e8 f3 b2
    93149317    add sp, strict byte 00006h                ; 83 c4 06
    93159318    or byte [bp+018h], 001h                   ; 80 4e 18 01
     
    93249327    retn                                      ; c3
    93259328    mov word [bp+018h], bx                    ; 89 5e 18
    9326     jmp near 067a7h                           ; e9 a6 00
     9329    jmp near 067ach                           ; e9 a6 00
    93279330    mov word [bp+018h], bx                    ; 89 5e 18
    9328     jmp short 066f4h                          ; eb ee
     9331    jmp short 066f9h                          ; eb ee
    93299332    mov word [bp+018h], cx                    ; 89 4e 18
    9330     jmp short 066f1h                          ; eb e6
     9333    jmp short 066f6h                          ; eb e6
    93319334    test byte [bp+012h], 0ffh                 ; f6 46 12 ff
    9332     jne short 0677dh                          ; 75 6c
     9335    jne short 06782h                          ; 75 6c
    93339336    mov dx, 000a0h                            ; ba a0 00
    93349337    mov ax, strict word 00040h                ; b8 40 00
    9335     call 016b8h                               ; e8 9e af
     9338    call 016b8h                               ; e8 99 af
    93369339    test AL, strict byte 001h                 ; a8 01
    9337     jne near 068bah                           ; 0f 85 9a 01
     9340    jne near 068bfh                           ; 0f 85 9a 01
    93389341    mov bx, strict word 00001h                ; bb 01 00
    93399342    mov dx, 000a0h                            ; ba a0 00
    93409343    mov ax, strict word 00040h                ; b8 40 00
    9341     call 016c6h                               ; e8 9a af
     9344    call 016c6h                               ; e8 95 af
    93429345    mov bx, word [bp+014h]                    ; 8b 5e 14
    93439346    mov dx, 00098h                            ; ba 98 00
    93449347    mov ax, strict word 00040h                ; b8 40 00
    9345     call 016e2h                               ; e8 aa af
     9348    call 016e2h                               ; e8 a5 af
    93469349    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    93479350    mov dx, 0009ah                            ; ba 9a 00
    93489351    mov ax, strict word 00040h                ; b8 40 00
    9349     call 016e2h                               ; e8 9e af
     9352    call 016e2h                               ; e8 99 af
    93509353    mov bx, word [bp+00eh]                    ; 8b 5e 0e
    93519354    mov dx, 0009ch                            ; ba 9c 00
    93529355    mov ax, strict word 00040h                ; b8 40 00
    9353     call 016e2h                               ; e8 92 af
     9356    call 016e2h                               ; e8 8d af
    93549357    mov bx, word [bp+010h]                    ; 8b 5e 10
    93559358    mov dx, 0009eh                            ; ba 9e 00
    93569359    mov ax, strict word 00040h                ; b8 40 00
    9357     call 016e2h                               ; e8 86 af
     9360    call 016e2h                               ; e8 81 af
    93589361    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    93599362    mov dx, 000a1h                            ; ba a1 00
     
    93649367    out DX, AL                                ; ee
    93659368    mov ax, strict word 0000bh                ; b8 0b 00
    9366     call 01714h                               ; e8 a5 af
     9369    call 01714h                               ; e8 a0 af
    93679370    or AL, strict byte 040h                   ; 0c 40
    93689371    movzx dx, al                              ; 0f b6 d0
    93699372    mov ax, strict word 0000bh                ; b8 0b 00
    9370     call 01731h                               ; e8 b7 af
    9371     jmp near 066f4h                           ; e9 77 ff
     9373    call 01731h                               ; e8 b2 af
     9374    jmp near 066f9h                           ; e9 77 ff
    93729375    cmp ax, strict word 00001h                ; 3d 01 00
    9373     jne short 0679bh                          ; 75 19
     9376    jne short 067a0h                          ; 75 19
    93749377    xor bx, bx                                ; 31 db
    93759378    mov dx, 000a0h                            ; ba a0 00
    93769379    mov ax, strict word 00040h                ; b8 40 00
    9377     call 016c6h                               ; e8 39 af
     9380    call 016c6h                               ; e8 34 af
    93789381    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    93799382    mov ax, strict word 0000bh                ; b8 0b 00
    9380     call 01714h                               ; e8 7d af
     9383    call 01714h                               ; e8 78 af
    93819384    and AL, strict byte 0bfh                  ; 24 bf
    9382     jmp short 06771h                          ; eb d6
     9385    jmp short 06776h                          ; eb d6
    93839386    mov word [bp+018h], bx                    ; 89 5e 18
    93849387    mov ax, dx                                ; 89 d0
     
    93889391    or dx, ax                                 ; 09 c2
    93899392    mov word [bp+012h], dx                    ; 89 56 12
    9390     jmp near 066f4h                           ; e9 47 ff
     9393    jmp near 066f9h                           ; e9 47 ff
    93919394    mov ax, strict word 00031h                ; b8 31 00
    9392     call 01714h                               ; e8 61 af
     9395    call 01714h                               ; e8 5c af
    93939396    movzx dx, al                              ; 0f b6 d0
    93949397    sal dx, 008h                              ; c1 e2 08
    93959398    mov ax, strict word 00030h                ; b8 30 00
    9396     call 01714h                               ; e8 55 af
     9399    call 01714h                               ; e8 50 af
    93979400    xor ah, ah                                ; 30 e4
    93989401    or dx, ax                                 ; 09 c2
    93999402    mov word [bp+012h], dx                    ; 89 56 12
    94009403    cmp dx, strict byte 0ffc0h                ; 83 fa c0
    9401     jbe short 067d0h                          ; 76 05
     9404    jbe short 067d5h                          ; 76 05
    94029405    mov word [bp+012h], strict word 0ffc0h    ; c7 46 12 c0 ff
    94039406    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    9404     jmp near 066f4h                           ; e9 1d ff
     9407    jmp near 066f9h                           ; e9 1d ff
    94059408    cli                                       ; fa
    94069409    mov ax, strict word 00001h                ; b8 01 00
    9407     call 06561h                               ; e8 83 fd
     9410    call 06566h                               ; e8 83 fd
    94089411    mov dx, word [bp+006h]                    ; 8b 56 06
    94099412    add dx, strict byte 00038h                ; 83 c2 38
    94109413    mov ax, word [bp+014h]                    ; 8b 46 14
    94119414    mov bx, strict word 0ffffh                ; bb ff ff
    9412     call 016e2h                               ; e8 f5 ae
     9415    call 016e2h                               ; e8 f0 ae
    94139416    mov dx, word [bp+006h]                    ; 8b 56 06
    94149417    add dx, strict byte 0003ah                ; 83 c2 3a
    94159418    mov ax, word [bp+014h]                    ; 8b 46 14
    94169419    xor bx, bx                                ; 31 db
    9417     call 016e2h                               ; e8 e7 ae
     9420    call 016e2h                               ; e8 e2 ae
    94189421    mov dx, word [bp+006h]                    ; 8b 56 06
    94199422    add dx, strict byte 0003ch                ; 83 c2 3c
    94209423    mov ax, word [bp+014h]                    ; 8b 46 14
    94219424    mov bx, strict word 0000fh                ; bb 0f 00
    9422     call 016c6h                               ; e8 bc ae
     9425    call 016c6h                               ; e8 b7 ae
    94239426    mov dx, word [bp+006h]                    ; 8b 56 06
    94249427    add dx, strict byte 0003dh                ; 83 c2 3d
    94259428    mov ax, word [bp+014h]                    ; 8b 46 14
    94269429    mov bx, 0009bh                            ; bb 9b 00
    9427     call 016c6h                               ; e8 ad ae
     9430    call 016c6h                               ; e8 a8 ae
    94289431    mov dx, word [bp+006h]                    ; 8b 56 06
    94299432    add dx, strict byte 0003eh                ; 83 c2 3e
    94309433    mov ax, word [bp+014h]                    ; 8b 46 14
    94319434    xor bx, bx                                ; 31 db
    9432     call 016e2h                               ; e8 bb ae
     9435    call 016e2h                               ; e8 b6 ae
    94339436    mov AL, strict byte 011h                  ; b0 11
    94349437    mov dx, strict word 00020h                ; ba 20 00
     
    94609463    out DX, AL                                ; ee
    94619464    mov si, word [bp+006h]                    ; 8b 76 06
    9462     call 06868h                               ; e8 00 00
     9465    call 0686dh                               ; e8 00 00
    94639466    pop di                                    ; 5f
    94649467    add di, strict byte 00018h                ; 83 c7 18
     
    94889491    push cx                                   ; 51
    94899492    retf                                      ; cb
    9490     jmp near 066f4h                           ; e9 50 fe
    9491     mov bx, 00da6h                            ; bb a6 0d
     9493    jmp near 066f9h                           ; e9 50 fe
     9494    mov bx, 00da4h                            ; bb a4 0d
    94929495    mov cx, ds                                ; 8c d9
    94939496    mov ax, strict word 00004h                ; b8 04 00
    9494     call 01999h                               ; e8 ea b0
     9497    call 01999h                               ; e8 e5 b0
    94959498    push 0086eh                               ; 68 6e 08
    94969499    push strict byte 00004h                   ; 6a 04
    9497     call 019dah                               ; e8 23 b1
     9500    call 019dah                               ; e8 1e b1
    94989501    add sp, strict byte 00004h                ; 83 c4 04
    94999502    or byte [bp+018h], 001h                   ; 80 4e 18 01
     
    95029505    or ah, 086h                               ; 80 cc 86
    95039506    mov word [bp+012h], ax                    ; 89 46 12
    9504     jmp near 066f4h                           ; e9 28 fe
     9507    jmp near 066f9h                           ; e9 28 fe
    95059508    mov word [bp+018h], cx                    ; 89 4e 18
    95069509    mov word [bp+012h], ax                    ; 89 46 12
    95079510    mov word [bp+00ch], 0e6f5h                ; c7 46 0c f5 e6
    95089511    mov word [bp+014h], 0f000h                ; c7 46 14 00 f0
    9509     jmp near 066f4h                           ; e9 15 fe
     9512    jmp near 066f9h                           ; e9 15 fe
    95109513    mov dx, strict word 0000eh                ; ba 0e 00
    95119514    mov ax, strict word 00040h                ; b8 40 00
    9512     call 016d4h                               ; e8 ec ad
     9515    call 016d4h                               ; e8 e7 ad
    95139516    mov word [bp+014h], ax                    ; 89 46 14
    9514     jmp near 067d0h                           ; e9 e2 fe
     9517    jmp near 067d5h                           ; e9 e2 fe
    95159518    push 0089dh                               ; 68 9d 08
    95169519    push strict byte 00008h                   ; 6a 08
    9517     jmp short 068b4h                          ; eb bf
     9520    jmp short 068b9h                          ; eb bf
    95189521    test byte [bp+012h], 0ffh                 ; f6 46 12 ff
    9519     jne short 0691ah                          ; 75 1f
     9522    jne short 0691fh                          ; 75 1f
    95209523    mov word [bp+012h], ax                    ; 89 46 12
    95219524    mov ax, word [bp+00ch]                    ; 8b 46 0c
    95229525    xor ah, ah                                ; 30 e4
    95239526    cmp ax, strict word 00001h                ; 3d 01 00
    9524     jc short 06913h                           ; 72 0b
     9527    jc short 06918h                           ; 72 0b
    95259528    cmp ax, strict word 00003h                ; 3d 03 00
    9526     jnbe short 06913h                         ; 77 06
     9529    jnbe short 06918h                         ; 77 06
    95279530    mov word [bp+018h], cx                    ; 89 4e 18
    9528     jmp near 066f4h                           ; e9 e1 fd
     9531    jmp near 066f9h                           ; e9 e1 fd
    95299532    or byte [bp+018h], 001h                   ; 80 4e 18 01
    9530     jmp near 066f4h                           ; e9 da fd
    9531     mov bx, 00da6h                            ; bb a6 0d
     9533    jmp near 066f9h                           ; e9 da fd
     9534    mov bx, 00da4h                            ; bb a4 0d
    95329535    mov cx, ds                                ; 8c d9
    95339536    mov ax, strict word 00004h                ; b8 04 00
    9534     call 01999h                               ; e8 74 b0
     9537    call 01999h                               ; e8 6f b0
    95359538    push word [bp+00ch]                       ; ff 76 0c
    95369539    push word [bp+012h]                       ; ff 76 12
    95379540    push 008b4h                               ; 68 b4 08
    95389541    push strict byte 00004h                   ; 6a 04
    9539     call 019dah                               ; e8 a7 b0
     9542    call 019dah                               ; e8 a2 b0
    95409543    add sp, strict byte 00008h                ; 83 c4 08
    9541     jmp short 068bah                          ; eb 82
    9542     lds bp, [bp+si-019h]                      ; c5 6a e7
    9543     push strict byte 0000ah                   ; 6a 0a
    9544     imul bp, word [si], strict byte 0006bh    ; 6b 2c 6b
    9545     dec sp                                    ; 4c
    9546     imul bp, word [bp+di+06bh], strict byte 0ff8fh ; 6b 6b 6b 8f
    9547     imul si, word [bp+di-00d95h], strict byte 0006bh ; 6b b3 6b f2 6b
    9548     push DS                                   ; 1e
     9544    jmp short 068bfh                          ; eb 82
     9545    retf 0ec6ah                               ; ca 6a ec
     9546    push strict byte 0000fh                   ; 6a 0f
     9547    imul si, word [bx+di], strict byte 0006bh ; 6b 31 6b
     9548    push cx                                   ; 51
     9549    imul si, word [bx+si+06bh], strict byte 0ff94h ; 6b 70 6b 94
     9550    imul di, word [bx+si-00895h], strict byte 0006bh ; 6b b8 6b f7 6b
     9551    db  023h
    95499552    insb                                      ; 6c
    9550 _int15_function32:                           ; 0xf694c LB 0x396
     9553_int15_function32:                           ; 0xf6951 LB 0x396
    95519554    push bp                                   ; 55
    95529555    mov bp, sp                                ; 89 e5
     
    95609563    xor dh, dh                                ; 30 f6
    95619564    cmp ax, 000e8h                            ; 3d e8 00
    9562     je near 069e9h                            ; 0f 84 7e 00
     9565    je near 069eeh                            ; 0f 84 7e 00
    95639566    cmp ax, 000d0h                            ; 3d d0 00
    9564     je short 06984h                           ; 74 14
     9567    je short 06989h                           ; 74 14
    95659568    cmp ax, 00086h                            ; 3d 86 00
    9566     jne near 06cb2h                           ; 0f 85 3b 03
     9569    jne near 06cb7h                           ; 0f 85 3b 03
    95679570    sti                                       ; fb
    95689571    mov dx, word [bp+01ch]                    ; 8b 56 1c
    95699572    mov ax, word [bp+018h]                    ; 8b 46 18
    9570     call 0651eh                               ; e8 9d fb
    9571     jmp near 06cdch                           ; e9 58 03
     9573    call 06523h                               ; e8 9d fb
     9574    jmp near 06ce1h                           ; e9 58 03
    95729575    cmp dx, strict byte 0004fh                ; 83 fa 4f
    9573     jne near 06cb2h                           ; 0f 85 27 03
     9576    jne near 06cb7h                           ; 0f 85 27 03
    95749577    cmp word [bp+016h], 05052h                ; 81 7e 16 52 50
    9575     jne near 06cb2h                           ; 0f 85 1e 03
     9578    jne near 06cb7h                           ; 0f 85 1e 03
    95769579    cmp word [bp+014h], 04f43h                ; 81 7e 14 43 4f
    9577     jne near 06cb2h                           ; 0f 85 15 03
     9580    jne near 06cb7h                           ; 0f 85 15 03
    95789581    cmp word [bp+01eh], 04d4fh                ; 81 7e 1e 4f 4d
    9579     jne near 06cb2h                           ; 0f 85 0c 03
     9582    jne near 06cb7h                           ; 0f 85 0c 03
    95809583    cmp word [bp+01ch], 04445h                ; 81 7e 1c 45 44
    9581     jne near 06cb2h                           ; 0f 85 03 03
     9584    jne near 06cb7h                           ; 0f 85 03 03
    95829585    mov ax, word [bp+00ah]                    ; 8b 46 0a
    95839586    or ax, word [bp+008h]                     ; 0b 46 08
    9584     jne near 06cb2h                           ; 0f 85 f9 02
     9587    jne near 06cb7h                           ; 0f 85 f9 02
    95859588    mov ax, word [bp+006h]                    ; 8b 46 06
    95869589    or ax, word [bp+004h]                     ; 0b 46 04
    9587     jne near 06cb2h                           ; 0f 85 ef 02
     9590    jne near 06cb7h                           ; 0f 85 ef 02
    95889591    mov word [bp+028h], bx                    ; 89 5e 28
    95899592    mov ax, word [bp+014h]                    ; 8b 46 14
     
    95969599    mov word [bp+006h], ax                    ; 89 46 06
    95979600    mov dword [bp+020h], strict dword 049413332h ; 66 c7 46 20 32 33 41 49
    9598     jmp near 06cdch                           ; e9 f3 02
     9601    jmp near 06ce1h                           ; e9 f3 02
    95999602    cmp dx, strict byte 00020h                ; 83 fa 20
    9600     je short 069f8h                           ; 74 0a
     9603    je short 069fdh                           ; 74 0a
    96019604    cmp dx, strict byte 00001h                ; 83 fa 01
    9602     je near 06c65h                            ; 0f 84 70 02
    9603     jmp near 06cb2h                           ; e9 ba 02
     9605    je near 06c6ah                            ; 0f 84 70 02
     9606    jmp near 06cb7h                           ; e9 ba 02
    96049607    cmp word [bp+01ah], 0534dh                ; 81 7e 1a 4d 53
    9605     jne near 06cb2h                           ; 0f 85 b1 02
     9608    jne near 06cb7h                           ; 0f 85 b1 02
    96069609    cmp word [bp+018h], 04150h                ; 81 7e 18 50 41
    9607     jne near 06cb2h                           ; 0f 85 a8 02
     9610    jne near 06cb7h                           ; 0f 85 a8 02
    96089611    mov ax, strict word 00035h                ; b8 35 00
    9609     call 01714h                               ; e8 04 ad
     9612    call 01714h                               ; e8 ff ac
    96109613    movzx bx, al                              ; 0f b6 d8
    96119614    xor dx, dx                                ; 31 d2
     
    96139616    sal bx, 1                                 ; d1 e3
    96149617    rcl dx, 1                                 ; d1 d2
    9615     loop 06a18h                               ; e2 fa
     9618    loop 06a1dh                               ; e2 fa
    96169619    mov ax, strict word 00034h                ; b8 34 00
    9617     call 01714h                               ; e8 f0 ac
     9620    call 01714h                               ; e8 eb ac
    96189621    xor ah, ah                                ; 30 e4
    96199622    mov dx, bx                                ; 89 da
     
    96239626    adc dx, 00100h                            ; 81 d2 00 01
    96249627    cmp dx, 00100h                            ; 81 fa 00 01
    9625     jc short 06a3eh                           ; 72 06
    9626     jne short 06a6bh                          ; 75 31
     9628    jc short 06a43h                           ; 72 06
     9629    jne short 06a70h                          ; 75 31
    96279630    test bx, bx                               ; 85 db
    9628     jnbe short 06a6bh                         ; 77 2d
     9631    jnbe short 06a70h                         ; 77 2d
    96299632    mov ax, strict word 00031h                ; b8 31 00
    9630     call 01714h                               ; e8 d0 ac
     9633    call 01714h                               ; e8 cb ac
    96319634    movzx bx, al                              ; 0f b6 d8
    96329635    xor dx, dx                                ; 31 d2
     
    96349637    sal bx, 1                                 ; d1 e3
    96359638    rcl dx, 1                                 ; d1 d2
    9636     loop 06a4ch                               ; e2 fa
     9639    loop 06a51h                               ; e2 fa
    96379640    mov ax, strict word 00030h                ; b8 30 00
    9638     call 01714h                               ; e8 bc ac
     9641    call 01714h                               ; e8 b7 ac
    96399642    xor ah, ah                                ; 30 e4
    96409643    or bx, ax                                 ; 09 c3
     
    96429645    sal bx, 1                                 ; d1 e3
    96439646    rcl dx, 1                                 ; d1 d2
    9644     loop 06a5fh                               ; e2 fa
     9647    loop 06a64h                               ; e2 fa
    96459648    add bx, strict byte 00000h                ; 83 c3 00
    96469649    adc dx, strict byte 00010h                ; 83 d2 10
    96479650    mov ax, strict word 00062h                ; b8 62 00
    9648     call 01714h                               ; e8 a3 ac
     9651    call 01714h                               ; e8 9e ac
    96499652    xor ah, ah                                ; 30 e4
    96509653    mov word [bp-00ah], ax                    ; 89 46 f6
     
    96549657    sal word [bp-00ah], 1                     ; d1 66 f6
    96559658    rcl word [bp-008h], 1                     ; d1 56 f8
    9656     loop 06a7eh                               ; e2 f8
     9659    loop 06a83h                               ; e2 f8
    96579660    mov ax, strict word 00061h                ; b8 61 00
    9658     call 01714h                               ; e8 88 ac
     9661    call 01714h                               ; e8 83 ac
    96599662    xor ah, ah                                ; 30 e4
    96609663    or word [bp-00ah], ax                     ; 09 46 f6
     
    96639666    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
    96649667    mov ax, strict word 00063h                ; b8 63 00
    9665     call 01714h                               ; e8 72 ac
     9668    call 01714h                               ; e8 6d ac
    96669669    mov byte [bp-004h], al                    ; 88 46 fc
    96679670    mov byte [bp-006h], al                    ; 88 46 fa
    96689671    mov ax, word [bp+014h]                    ; 8b 46 14
    96699672    cmp ax, strict word 00009h                ; 3d 09 00
    9670     jnbe near 06cb2h                          ; 0f 87 00 02
     9673    jnbe near 06cb7h                          ; 0f 87 00 02
    96719674    mov si, ax                                ; 89 c6
    96729675    add si, ax                                ; 01 c6
     
    96759678    mov cx, dx                                ; 89 d1
    96769679    adc cx, strict byte 0ffffh                ; 83 d1 ff
    9677     jmp word [cs:si+06938h]                   ; 2e ff a4 38 69
     9680    jmp word [cs:si+0693dh]                   ; 2e ff a4 3d 69
    96789681    push strict byte 00001h                   ; 6a 01
    96799682    push dword 000000000h                     ; 66 6a 00
     
    96849687    xor bx, bx                                ; 31 db
    96859688    xor cx, cx                                ; 31 c9
    9686     call 0658dh                               ; e8 b1 fa
     9689    call 06592h                               ; e8 b1 fa
    96879690    mov dword [bp+014h], strict dword 000000001h ; 66 c7 46 14 01 00 00 00
    9688     jmp near 06c4fh                           ; e9 68 01
     9691    jmp near 06c54h                           ; e9 68 01
    96899692    push strict byte 00002h                   ; 6a 02
    96909693    push dword 000000000h                     ; 66 6a 00
     
    96959698    mov bx, 0fc00h                            ; bb 00 fc
    96969699    mov cx, strict word 00009h                ; b9 09 00
    9697     call 0658dh                               ; e8 8e fa
     9700    call 06592h                               ; e8 8e fa
    96989701    mov dword [bp+014h], strict dword 000000002h ; 66 c7 46 14 02 00 00 00
    9699     jmp near 06c4fh                           ; e9 45 01
     9702    jmp near 06c54h                           ; e9 45 01
    97009703    push strict byte 00002h                   ; 6a 02
    97019704    push dword 000000000h                     ; 66 6a 00
     
    97069709    xor bx, bx                                ; 31 db
    97079710    mov cx, strict word 0000fh                ; b9 0f 00
    9708     call 0658dh                               ; e8 6c fa
     9711    call 06592h                               ; e8 6c fa
    97099712    mov dword [bp+014h], strict dword 000000003h ; 66 c7 46 14 03 00 00 00
    9710     jmp near 06c4fh                           ; e9 23 01
     9713    jmp near 06c54h                           ; e9 23 01
    97119714    push strict byte 00001h                   ; 6a 01
    97129715    push dword 000000000h                     ; 66 6a 00
     
    97179720    xor bx, bx                                ; 31 db
    97189721    mov cx, strict word 00010h                ; b9 10 00
    9719     call 0658dh                               ; e8 4c fa
     9722    call 06592h                               ; e8 4c fa
    97209723    mov dword [bp+014h], strict dword 000000004h ; 66 c7 46 14 04 00 00 00
    9721     jmp near 06c4fh                           ; e9 03 01
     9724    jmp near 06c54h                           ; e9 03 01
    97229725    push strict byte 00003h                   ; 6a 03
    97239726    push dword 000000000h                     ; 66 6a 00
     
    97289731    mov bx, ax                                ; 89 c3
    97299732    mov ax, si                                ; 89 f0
    9730     call 0658dh                               ; e8 2d fa
     9733    call 06592h                               ; e8 2d fa
    97319734    mov dword [bp+014h], strict dword 000000005h ; 66 c7 46 14 05 00 00 00
    9732     jmp near 06c4fh                           ; e9 e4 00
     9735    jmp near 06c54h                           ; e9 e4 00
    97339736    push strict byte 00002h                   ; 6a 02
    97349737    push dword 000000000h                     ; 66 6a 00
     
    97399742    xor bx, bx                                ; 31 db
    97409743    mov cx, 0fec0h                            ; b9 c0 fe
    9741     call 0658dh                               ; e8 09 fa
     9744    call 06592h                               ; e8 09 fa
    97429745    mov dword [bp+014h], strict dword 000000006h ; 66 c7 46 14 06 00 00 00
    9743     jmp near 06c4fh                           ; e9 c0 00
     9746    jmp near 06c54h                           ; e9 c0 00
    97449747    push strict byte 00002h                   ; 6a 02
    97459748    push dword 000000000h                     ; 66 6a 00
     
    97509753    xor bx, bx                                ; 31 db
    97519754    mov cx, 0fee0h                            ; b9 e0 fe
    9752     call 0658dh                               ; e8 e5 f9
     9755    call 06592h                               ; e8 e5 f9
    97539756    mov dword [bp+014h], strict dword 000000007h ; 66 c7 46 14 07 00 00 00
    9754     jmp near 06c4fh                           ; e9 9c 00
     9757    jmp near 06c54h                           ; e9 9c 00
    97559758    push strict byte 00002h                   ; 6a 02
    97569759    push dword 000000000h                     ; 66 6a 00
     
    97609763    xor bx, bx                                ; 31 db
    97619764    mov cx, strict word 0fffch                ; b9 fc ff
    9762     call 0658dh                               ; e8 c4 f9
     9765    call 06592h                               ; e8 c4 f9
    97639766    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    9764     jne short 06bd6h                          ; 75 07
     9767    jne short 06bdbh                          ; 75 07
    97659768    mov ax, word [bp-008h]                    ; 8b 46 f8
    97669769    test ax, ax                               ; 85 c0
    9767     je short 06beah                           ; 74 14
     9770    je short 06befh                           ; 74 14
    97689771    mov dword [bp+014h], strict dword 000000009h ; 66 c7 46 14 09 00 00 00
    9769     jmp short 06c4fh                          ; eb 6f
     9772    jmp short 06c54h                          ; eb 6f
    97709773    mov dword [bp+014h], strict dword 000000008h ; 66 c7 46 14 08 00 00 00
    9771     jmp short 06c4fh                          ; eb 65
     9774    jmp short 06c54h                          ; eb 65
    97729775    mov word [bp+014h], ax                    ; 89 46 14
    97739776    mov word [bp+016h], ax                    ; 89 46 16
    9774     jmp short 06c4fh                          ; eb 5d
     9777    jmp short 06c54h                          ; eb 5d
    97759778    push strict byte 00002h                   ; 6a 02
    97769779    push dword 000000000h                     ; 66 6a 00
     
    97809783    xor bx, bx                                ; 31 db
    97819784    xor cx, cx                                ; 31 c9
    9782     call 0658dh                               ; e8 86 f9
     9785    call 06592h                               ; e8 86 f9
    97839786    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    9784     jne short 06c14h                          ; 75 07
     9787    jne short 06c19h                          ; 75 07
    97859788    mov ax, word [bp-008h]                    ; 8b 46 f8
    97869789    test ax, ax                               ; 85 c0
    9787     je short 06c16h                           ; 74 02
    9788     jmp short 06bd6h                          ; eb c0
     9790    je short 06c1bh                           ; 74 02
     9791    jmp short 06bdbh                          ; eb c0
    97899792    mov word [bp+014h], ax                    ; 89 46 14
    97909793    mov word [bp+016h], ax                    ; 89 46 16
    9791     jmp short 06c4fh                          ; eb 31
     9794    jmp short 06c54h                          ; eb 31
    97929795    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    9793     jne short 06c2ah                          ; 75 06
     9796    jne short 06c2fh                          ; 75 06
    97949797    cmp word [bp-008h], strict byte 00000h    ; 83 7e f8 00
    9795     je short 06c4fh                           ; 74 25
     9798    je short 06c54h                           ; 74 25
    97969799    push strict byte 00001h                   ; 6a 01
    97979800    mov al, byte [bp-006h]                    ; 8a 46 fa
     
    98069809    xor bx, bx                                ; 31 db
    98079810    xor cx, cx                                ; 31 c9
    9808     call 0658dh                               ; e8 46 f9
     9811    call 06592h                               ; e8 46 f9
    98099812    xor ax, ax                                ; 31 c0
    98109813    mov word [bp+014h], ax                    ; 89 46 14
     
    98139816    mov dword [bp+01ch], strict dword 000000014h ; 66 c7 46 1c 14 00 00 00
    98149817    and byte [bp+028h], 0feh                  ; 80 66 28 fe
    9815     jmp short 06cdch                          ; eb 77
     9818    jmp short 06ce1h                          ; eb 77
    98169819    mov word [bp+028h], bx                    ; 89 5e 28
    98179820    mov ax, strict word 00031h                ; b8 31 00
    9818     call 01714h                               ; e8 a6 aa
     9821    call 01714h                               ; e8 a1 aa
    98199822    xor ah, ah                                ; 30 e4
    98209823    mov dx, ax                                ; 89 c2
    98219824    sal dx, 008h                              ; c1 e2 08
    98229825    mov ax, strict word 00030h                ; b8 30 00
    9823     call 01714h                               ; e8 99 aa
     9826    call 01714h                               ; e8 94 aa
    98249827    xor ah, ah                                ; 30 e4
    98259828    or dx, ax                                 ; 09 c2
    98269829    mov word [bp+01ch], dx                    ; 89 56 1c
    98279830    cmp dx, 03c00h                            ; 81 fa 00 3c
    9828     jbe short 06c8dh                          ; 76 05
     9831    jbe short 06c92h                          ; 76 05
    98299832    mov word [bp+01ch], 03c00h                ; c7 46 1c 00 3c
    98309833    mov ax, strict word 00035h                ; b8 35 00
    9831     call 01714h                               ; e8 81 aa
     9834    call 01714h                               ; e8 7c aa
    98329835    xor ah, ah                                ; 30 e4
    98339836    mov dx, ax                                ; 89 c2
    98349837    sal dx, 008h                              ; c1 e2 08
    98359838    mov ax, strict word 00034h                ; b8 34 00
    9836     call 01714h                               ; e8 74 aa
     9839    call 01714h                               ; e8 6f aa
    98379840    xor ah, ah                                ; 30 e4
    98389841    or dx, ax                                 ; 09 c2
     
    98419844    mov word [bp+020h], ax                    ; 89 46 20
    98429845    mov word [bp+014h], dx                    ; 89 56 14
    9843     jmp short 06cdch                          ; eb 2a
    9844     mov bx, 00da6h                            ; bb a6 0d
     9846    jmp short 06ce1h                          ; eb 2a
     9847    mov bx, 00da4h                            ; bb a4 0d
    98459848    mov cx, ds                                ; 8c d9
    98469849    mov ax, strict word 00004h                ; b8 04 00
    9847     call 01999h                               ; e8 dc ac
     9850    call 01999h                               ; e8 d7 ac
    98489851    push word [bp+014h]                       ; ff 76 14
    98499852    push word [bp+020h]                       ; ff 76 20
    98509853    push 008b4h                               ; 68 b4 08
    98519854    push strict byte 00004h                   ; 6a 04
    9852     call 019dah                               ; e8 0f ad
     9855    call 019dah                               ; e8 0a ad
    98539856    add sp, strict byte 00008h                ; 83 c4 08
    98549857    or byte [bp+028h], 001h                   ; 80 4e 28 01
     
    98619864    pop bp                                    ; 5d
    98629865    retn                                      ; c3
    9863 _int15_blkmove:                              ; 0xf6ce2 LB 0x1ab
     9866_int15_blkmove:                              ; 0xf6ce7 LB 0x1ab
    98649867    push bp                                   ; 55
    98659868    mov bp, sp                                ; 89 e5
     
    98709873    cli                                       ; fa
    98719874    mov ax, strict word 00001h                ; b8 01 00
    9872     call 06561h                               ; e8 71 f8
     9875    call 06566h                               ; e8 71 f8
    98739876    mov di, ax                                ; 89 c7
    98749877    mov ax, word [bp+006h]                    ; 8b 46 06
     
    98809883    mov byte [bp-006h], dl                    ; 88 56 fa
    98819884    cmp cx, ax                                ; 39 c1
    9882     jnc short 06d0fh                          ; 73 05
     9885    jnc short 06d14h                          ; 73 05
    98839886    db  0feh, 0c2h
    98849887    ; inc dl                                    ; fe c2
     
    98889891    mov ax, word [bp+006h]                    ; 8b 46 06
    98899892    mov bx, strict word 0002fh                ; bb 2f 00
    9890     call 016e2h                               ; e8 c4 a9
     9893    call 016e2h                               ; e8 bf a9
    98919894    mov dx, word [bp+00ah]                    ; 8b 56 0a
    98929895    add dx, strict byte 0000ah                ; 83 c2 0a
    98939896    mov ax, word [bp+006h]                    ; 8b 46 06
    98949897    mov bx, cx                                ; 89 cb
    9895     call 016e2h                               ; e8 b6 a9
     9898    call 016e2h                               ; e8 b1 a9
    98969899    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    98979900    mov dx, word [bp+00ah]                    ; 8b 56 0a
    98989901    add dx, strict byte 0000ch                ; 83 c2 0c
    98999902    mov ax, word [bp+006h]                    ; 8b 46 06
    9900     call 016c6h                               ; e8 8a a9
     9903    call 016c6h                               ; e8 85 a9
    99019904    mov dx, word [bp+00ah]                    ; 8b 56 0a
    99029905    add dx, strict byte 0000dh                ; 83 c2 0d
    99039906    mov ax, word [bp+006h]                    ; 8b 46 06
    99049907    mov bx, 00093h                            ; bb 93 00
    9905     call 016c6h                               ; e8 7b a9
     9908    call 016c6h                               ; e8 76 a9
    99069909    mov dx, word [bp+00ah]                    ; 8b 56 0a
    99079910    add dx, strict byte 0000eh                ; 83 c2 0e
    99089911    mov ax, word [bp+006h]                    ; 8b 46 06
    99099912    xor bx, bx                                ; 31 db
    9910     call 016e2h                               ; e8 89 a9
     9913    call 016e2h                               ; e8 84 a9
    99119914    mov dx, word [bp+00ah]                    ; 8b 56 0a
    99129915    add dx, strict byte 00020h                ; 83 c2 20
    99139916    mov ax, word [bp+006h]                    ; 8b 46 06
    99149917    mov bx, strict word 0ffffh                ; bb ff ff
    9915     call 016e2h                               ; e8 7a a9
     9918    call 016e2h                               ; e8 75 a9
    99169919    mov dx, word [bp+00ah]                    ; 8b 56 0a
    99179920    add dx, strict byte 00022h                ; 83 c2 22
    99189921    mov ax, word [bp+006h]                    ; 8b 46 06
    99199922    xor bx, bx                                ; 31 db
    9920     call 016e2h                               ; e8 6c a9
     9923    call 016e2h                               ; e8 67 a9
    99219924    mov dx, word [bp+00ah]                    ; 8b 56 0a
    99229925    add dx, strict byte 00024h                ; 83 c2 24
    99239926    mov ax, word [bp+006h]                    ; 8b 46 06
    99249927    mov bx, strict word 0000fh                ; bb 0f 00
    9925     call 016c6h                               ; e8 41 a9
     9928    call 016c6h                               ; e8 3c a9
    99269929    mov dx, word [bp+00ah]                    ; 8b 56 0a
    99279930    add dx, strict byte 00025h                ; 83 c2 25
    99289931    mov ax, word [bp+006h]                    ; 8b 46 06
    99299932    mov bx, 0009bh                            ; bb 9b 00
    9930     call 016c6h                               ; e8 32 a9
     9933    call 016c6h                               ; e8 2d a9
    99319934    mov dx, word [bp+00ah]                    ; 8b 56 0a
    99329935    add dx, strict byte 00026h                ; 83 c2 26
    99339936    mov ax, word [bp+006h]                    ; 8b 46 06
    99349937    xor bx, bx                                ; 31 db
    9935     call 016e2h                               ; e8 40 a9
     9938    call 016e2h                               ; e8 3b a9
    99369939    mov ax, ss                                ; 8c d0
    99379940    mov cx, ax                                ; 89 c1
     
    99439946    mov ax, word [bp+006h]                    ; 8b 46 06
    99449947    mov bx, strict word 0ffffh                ; bb ff ff
    9945     call 016e2h                               ; e8 24 a9
     9948    call 016e2h                               ; e8 1f a9
    99469949    mov dx, word [bp+00ah]                    ; 8b 56 0a
    99479950    add dx, strict byte 0002ah                ; 83 c2 2a
    99489951    mov ax, word [bp+006h]                    ; 8b 46 06
    99499952    mov bx, cx                                ; 89 cb
    9950     call 016e2h                               ; e8 16 a9
     9953    call 016e2h                               ; e8 11 a9
    99519954    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
    99529955    mov dx, word [bp+00ah]                    ; 8b 56 0a
    99539956    add dx, strict byte 0002ch                ; 83 c2 2c
    99549957    mov ax, word [bp+006h]                    ; 8b 46 06
    9955     call 016c6h                               ; e8 ea a8
     9958    call 016c6h                               ; e8 e5 a8
    99569959    mov dx, word [bp+00ah]                    ; 8b 56 0a
    99579960    add dx, strict byte 0002dh                ; 83 c2 2d
    99589961    mov ax, word [bp+006h]                    ; 8b 46 06
    99599962    mov bx, 00093h                            ; bb 93 00
    9960     call 016c6h                               ; e8 db a8
     9963    call 016c6h                               ; e8 d6 a8
    99619964    mov dx, word [bp+00ah]                    ; 8b 56 0a
    99629965    add dx, strict byte 0002eh                ; 83 c2 2e
    99639966    mov ax, word [bp+006h]                    ; 8b 46 06
    99649967    xor bx, bx                                ; 31 db
    9965     call 016e2h                               ; e8 e9 a8
     9968    call 016e2h                               ; e8 e4 a8
    99669969    lea ax, [bp+004h]                         ; 8d 46 04
    99679970    mov si, word [bp+00ah]                    ; 8b 76 0a
     
    99759978    mov word [00467h], sp                     ; 89 26 67 04
    99769979    mov [00469h], ss                          ; 8c 16 69 04
    9977     call 06e18h                               ; e8 00 00
     9980    call 06e1dh                               ; e8 00 00
    99789981    pop di                                    ; 5f
    99799982    add di, strict byte 0001bh                ; 83 c7 1b
     
    999810001    cld                                       ; fc
    999910002    rep movsw                                 ; f3 a5
    10000     call 06e4ch                               ; e8 00 00
     10003    call 06e51h                               ; e8 00 00
    1000110004    pop ax                                    ; 58
    1000210005    push 0f000h                               ; 68 00 f0
     
    1001910022    pop DS                                    ; 1f
    1002010023    mov ax, di                                ; 89 f8
    10021     call 06561h                               ; e8 e4 f6
     10024    call 06566h                               ; e8 e4 f6
    1002210025    sti                                       ; fb
    1002310026    mov byte [bp+017h], 000h                  ; c6 46 17 00
     
    1002810031    pop bp                                    ; 5d
    1002910032    retn                                      ; c3
    10030 _inv_op_handler:                             ; 0xf6e8d LB 0x195
     10033_inv_op_handler:                             ; 0xf6e92 LB 0x195
    1003110034    push bp                                   ; 55
    1003210035    mov bp, sp                                ; 89 e5
     
    1003710040    les bx, [bp+018h]                         ; c4 5e 18
    1003810041    cmp byte [es:bx], 0f0h                    ; 26 80 3f f0
    10039     jne short 06ea3h                          ; 75 06
     10042    jne short 06ea8h                          ; 75 06
    1004010043    inc word [bp+018h]                        ; ff 46 18
    10041     jmp near 0701bh                           ; e9 78 01
     10044    jmp near 07020h                           ; e9 78 01
    1004210045    cmp word [es:bx], 0050fh                  ; 26 81 3f 0f 05
    10043     jne near 07017h                           ; 0f 85 6b 01
     10046    jne near 0701ch                           ; 0f 85 6b 01
    1004410047    mov si, 00800h                            ; be 00 08
    1004510048    xor ax, ax                                ; 31 c0
     
    1006910072    sal ax, 1                                 ; d1 e0
    1007010073    rcl dx, 1                                 ; d1 d2
    10071     loop 06efch                               ; e2 fa
     10074    loop 06f01h                               ; e2 fa
    1007210075    cmp bx, dx                                ; 39 d3
    10073     jne short 06f0ah                          ; 75 04
     10076    jne short 06f0fh                          ; 75 04
    1007410077    cmp di, ax                                ; 39 c7
    10075     je short 06f0fh                           ; 74 05
     10078    je short 06f14h                           ; 74 05
    1007610079    mov word [bp-008h], strict word 00001h    ; c7 46 f8 01 00
    1007710080    mov es, [bp-006h]                         ; 8e 46 fa
     
    1008310086    sal ax, 1                                 ; d1 e0
    1008410087    rcl dx, 1                                 ; d1 d2
    10085     loop 06f24h                               ; e2 fa
     10088    loop 06f29h                               ; e2 fa
    1008610089    cmp di, dx                                ; 39 d7
    10087     jne short 06f32h                          ; 75 04
     10090    jne short 06f37h                          ; 75 04
    1008810091    cmp bx, ax                                ; 39 c3
    10089     je short 06f36h                           ; 74 04
     10092    je short 06f3bh                           ; 74 04
    1009010093    or byte [bp-008h], 002h                   ; 80 4e f8 02
    1009110094    push strict byte 00000h                   ; 6a 00
     
    1013710140    mov ax, strict word 00008h                ; b8 08 00
    1013810141    test cx, strict word 00001h               ; f7 c1 01 00
    10139     je near 06fd4h                            ; 0f 84 02 00
     10142    je near 06fd9h                            ; 0f 84 02 00
    1014010143    mov es, ax                                ; 8e c0
    1014110144    test cx, strict word 00002h               ; f7 c1 02 00
    10142     je near 06ffch                            ; 0f 84 20 00
     10145    je near 07001h                            ; 0f 84 20 00
    1014310146    mov bx, word [word ss:00000h]             ; 36 8b 1e 00 00
    1014410147    mov word [word ss:00008h], bx             ; 36 89 1e 08 00
     
    1015710160    mov ss, [word ss:00020h]                  ; 36 8e 16 20 00
    1015810161    iret                                      ; cf
    10159     jmp short 0701bh                          ; eb 04
     10162    jmp short 07020h                          ; eb 04
    1016010163    sti                                       ; fb
    1016110164    hlt                                       ; f4
    10162     jmp short 07018h                          ; eb fd
     10165    jmp short 0701dh                          ; eb fd
    1016310166    lea sp, [bp-004h]                         ; 8d 66 fc
    1016410167    pop di                                    ; 5f
     
    1016610169    pop bp                                    ; 5d
    1016710170    retn                                      ; c3
    10168 init_rtc_:                                   ; 0xf7022 LB 0x28
     10171init_rtc_:                                   ; 0xf7027 LB 0x28
    1016910172    push bp                                   ; 55
    1017010173    mov bp, sp                                ; 89 e5
     
    1017210175    mov dx, strict word 00026h                ; ba 26 00
    1017310176    mov ax, strict word 0000ah                ; b8 0a 00
    10174     call 01731h                               ; e8 02 a7
     10177    call 01731h                               ; e8 fd a6
    1017510178    mov dx, strict word 00002h                ; ba 02 00
    1017610179    mov ax, strict word 0000bh                ; b8 0b 00
    10177     call 01731h                               ; e8 f9 a6
     10180    call 01731h                               ; e8 f4 a6
    1017810181    mov ax, strict word 0000ch                ; b8 0c 00
    10179     call 01714h                               ; e8 d6 a6
     10182    call 01714h                               ; e8 d1 a6
    1018010183    mov ax, strict word 0000dh                ; b8 0d 00
    10181     call 01714h                               ; e8 d0 a6
     10184    call 01714h                               ; e8 cb a6
    1018210185    lea sp, [bp-002h]                         ; 8d 66 fe
    1018310186    pop dx                                    ; 5a
    1018410187    pop bp                                    ; 5d
    1018510188    retn                                      ; c3
    10186 rtc_updating_:                               ; 0xf704a LB 0x21
     10189rtc_updating_:                               ; 0xf704f LB 0x21
    1018710190    push bp                                   ; 55
    1018810191    mov bp, sp                                ; 89 e5
     
    1019010193    mov dx, 061a8h                            ; ba a8 61
    1019110194    dec dx                                    ; 4a
    10192     je short 07062h                           ; 74 0e
     10195    je short 07067h                           ; 74 0e
    1019310196    mov ax, strict word 0000ah                ; b8 0a 00
    10194     call 01714h                               ; e8 ba a6
     10197    call 01714h                               ; e8 b5 a6
    1019510198    test AL, strict byte 080h                 ; a8 80
    10196     jne short 07051h                          ; 75 f3
     10199    jne short 07056h                          ; 75 f3
    1019710200    xor ax, ax                                ; 31 c0
    10198     jmp short 07065h                          ; eb 03
     10201    jmp short 0706ah                          ; eb 03
    1019910202    mov ax, strict word 00001h                ; b8 01 00
    1020010203    lea sp, [bp-002h]                         ; 8d 66 fe
     
    1020210205    pop bp                                    ; 5d
    1020310206    retn                                      ; c3
    10204 _int70_function:                             ; 0xf706b LB 0xbe
     10207_int70_function:                             ; 0xf7070 LB 0xbe
    1020510208    push bp                                   ; 55
    1020610209    mov bp, sp                                ; 89 e5
     
    1020810211    push ax                                   ; 50
    1020910212    mov ax, strict word 0000bh                ; b8 0b 00
    10210     call 01714h                               ; e8 9e a6
     10213    call 01714h                               ; e8 99 a6
    1021110214    mov dl, al                                ; 88 c2
    1021210215    mov byte [bp-004h], al                    ; 88 46 fc
    1021310216    mov ax, strict word 0000ch                ; b8 0c 00
    10214     call 01714h                               ; e8 93 a6
     10217    call 01714h                               ; e8 8e a6
    1021510218    mov dh, al                                ; 88 c6
    1021610219    test dl, 060h                             ; f6 c2 60
    10217     je near 07110h                            ; 0f 84 86 00
     10220    je near 07115h                            ; 0f 84 86 00
    1021810221    test AL, strict byte 020h                 ; a8 20
    10219     je short 07092h                           ; 74 04
     10222    je short 07097h                           ; 74 04
    1022010223    sti                                       ; fb
    1022110224    int 04ah                                  ; cd 4a
    1022210225    cli                                       ; fa
    1022310226    test dh, 040h                             ; f6 c6 40
    10224     je near 07110h                            ; 0f 84 77 00
     10227    je near 07115h                            ; 0f 84 77 00
    1022510228    mov dx, 000a0h                            ; ba a0 00
    1022610229    mov ax, strict word 00040h                ; b8 40 00
    10227     call 016b8h                               ; e8 16 a6
     10230    call 016b8h                               ; e8 11 a6
    1022810231    test al, al                               ; 84 c0
    10229     je short 07110h                           ; 74 6a
     10232    je short 07115h                           ; 74 6a
    1023010233    mov dx, 0009ch                            ; ba 9c 00
    1023110234    mov ax, strict word 00040h                ; b8 40 00
    10232     call 016f0h                               ; e8 41 a6
     10235    call 016f0h                               ; e8 3c a6
    1023310236    test dx, dx                               ; 85 d2
    10234     jne short 070fch                          ; 75 49
     10237    jne short 07101h                          ; 75 49
    1023510238    cmp ax, 003d1h                            ; 3d d1 03
    10236     jnc short 070fch                          ; 73 44
     10239    jnc short 07101h                          ; 73 44
    1023710240    mov dx, 00098h                            ; ba 98 00
    1023810241    mov ax, strict word 00040h                ; b8 40 00
    10239     call 016d4h                               ; e8 13 a6
     10242    call 016d4h                               ; e8 0e a6
    1024010243    mov si, ax                                ; 89 c6
    1024110244    mov dx, 0009ah                            ; ba 9a 00
    1024210245    mov ax, strict word 00040h                ; b8 40 00
    10243     call 016d4h                               ; e8 08 a6
     10246    call 016d4h                               ; e8 03 a6
    1024410247    mov cx, ax                                ; 89 c1
    1024510248    xor bx, bx                                ; 31 db
    1024610249    mov dx, 000a0h                            ; ba a0 00
    1024710250    mov ax, strict word 00040h                ; b8 40 00
    10248     call 016c6h                               ; e8 ed a5
     10251    call 016c6h                               ; e8 e8 a5
    1024910252    mov al, byte [bp-004h]                    ; 8a 46 fc
    1025010253    and AL, strict byte 037h                  ; 24 37
    1025110254    movzx dx, al                              ; 0f b6 d0
    1025210255    mov ax, strict word 0000bh                ; b8 0b 00
    10253     call 01731h                               ; e8 4a a6
     10256    call 01731h                               ; e8 45 a6
    1025410257    mov dx, cx                                ; 89 ca
    1025510258    mov ax, si                                ; 89 f0
    10256     call 016b8h                               ; e8 ca a5
     10259    call 016b8h                               ; e8 c5 a5
    1025710260    or AL, strict byte 080h                   ; 0c 80
    1025810261    movzx bx, al                              ; 0f b6 d8
    1025910262    mov dx, cx                                ; 89 ca
    1026010263    mov ax, si                                ; 89 f0
    10261     call 016c6h                               ; e8 cc a5
    10262     jmp short 07110h                          ; eb 14
     10264    call 016c6h                               ; e8 c7 a5
     10265    jmp short 07115h                          ; eb 14
    1026310266    mov bx, ax                                ; 89 c3
    1026410267    add bx, 0fc2fh                            ; 81 c3 2f fc
     
    1026710270    mov dx, 0009ch                            ; ba 9c 00
    1026810271    mov ax, strict word 00040h                ; b8 40 00
    10269     call 01702h                               ; e8 f2 a5
    10270     call 0e030h                               ; e8 1d 6f
     10272    call 01702h                               ; e8 ed a5
     10273    call 0e030h                               ; e8 18 6f
    1027110274    lea sp, [bp-002h]                         ; 8d 66 fe
    1027210275    pop si                                    ; 5e
    1027310276    pop bp                                    ; 5d
    1027410277    retn                                      ; c3
    10275     inc ax                                    ; 40
    10276     jno short 07185h                          ; 71 69
    10277     jno short 070ach                          ; 71 8e
    10278     jno short 070e0h                          ; 71 c0
    10279     jno short 07131h                          ; 71 0f
    10280     jc short 0716bh                           ; 72 47
    10281     jc short 070b0h                           ; 72 8a
    10282     jc short 07109h                           ; 72 e1
     10278    inc bp                                    ; 45
     10279    jno short 0718fh                          ; 71 6e
     10280    jno short 070b6h                          ; 71 93
     10281    jno short 070eah                          ; 71 c5
     10282    jno short 0713bh                          ; 71 14
     10283    jc short 07175h                           ; 72 4c
     10284    jc short 070bah                           ; 72 8f
     10285    jc short 07113h                           ; 72 e6
    1028310286    db  072h
    10284 _int1a_function:                             ; 0xf7129 LB 0x1c8
     10287_int1a_function:                             ; 0xf712e LB 0x1c8
    1028510288    push bp                                   ; 55
    1028610289    mov bp, sp                                ; 89 e5
     
    1028810291    mov al, byte [bp+013h]                    ; 8a 46 13
    1028910292    cmp AL, strict byte 007h                  ; 3c 07
    10290     jnbe near 07165h                          ; 0f 87 2f 00
     10293    jnbe near 0716ah                          ; 0f 87 2f 00
    1029110294    movzx bx, al                              ; 0f b6 d8
    1029210295    add bx, bx                                ; 01 db
    10293     jmp word [cs:bx+07119h]                   ; 2e ff a7 19 71
     10296    jmp word [cs:bx+0711eh]                   ; 2e ff a7 1e 71
    1029410297    cli                                       ; fa
    1029510298    mov bx, 0046eh                            ; bb 6e 04
     
    1032210325    sti                                       ; fb
    1032310326    mov byte [bp+013h], 000h                  ; c6 46 13 00
    10324     jmp short 07165h                          ; eb d7
    10325     call 0704ah                               ; e8 b9 fe
     10327    jmp short 0716ah                          ; eb d7
     10328    call 0704fh                               ; e8 b9 fe
    1032610329    test ax, ax                               ; 85 c0
    10327     je short 07197h                           ; 74 02
    10328     jmp short 07165h                          ; eb ce
     10330    je short 0719ch                           ; 74 02
     10331    jmp short 0716ah                          ; eb ce
    1032910332    xor ax, ax                                ; 31 c0
    10330     call 01714h                               ; e8 78 a5
     10333    call 01714h                               ; e8 73 a5
    1033110334    mov byte [bp+00fh], al                    ; 88 46 0f
    1033210335    mov ax, strict word 00002h                ; b8 02 00
    10333     call 01714h                               ; e8 6f a5
     10336    call 01714h                               ; e8 6a a5
    1033410337    mov byte [bp+010h], al                    ; 88 46 10
    1033510338    mov ax, strict word 00004h                ; b8 04 00
    10336     call 01714h                               ; e8 66 a5
     10339    call 01714h                               ; e8 61 a5
    1033710340    mov bl, al                                ; 88 c3
    1033810341    mov byte [bp+011h], al                    ; 88 46 11
    1033910342    mov ax, strict word 0000bh                ; b8 0b 00
    10340     call 01714h                               ; e8 5b a5
     10343    call 01714h                               ; e8 56 a5
    1034110344    and AL, strict byte 001h                  ; 24 01
    1034210345    mov byte [bp+00eh], al                    ; 88 46 0e
    10343     jmp short 07205h                          ; eb 45
    10344     call 0704ah                               ; e8 87 fe
     10346    jmp short 0720ah                          ; eb 45
     10347    call 0704fh                               ; e8 87 fe
    1034510348    test ax, ax                               ; 85 c0
    10346     je short 071cah                           ; 74 03
    10347     call 07022h                               ; e8 58 fe
     10349    je short 071cfh                           ; 74 03
     10350    call 07027h                               ; e8 58 fe
    1034810351    movzx dx, byte [bp+00fh]                  ; 0f b6 56 0f
    1034910352    xor ax, ax                                ; 31 c0
    10350     call 01731h                               ; e8 5e a5
     10353    call 01731h                               ; e8 59 a5
    1035110354    movzx dx, byte [bp+010h]                  ; 0f b6 56 10
    1035210355    mov ax, strict word 00002h                ; b8 02 00
    10353     call 01731h                               ; e8 54 a5
     10356    call 01731h                               ; e8 4f a5
    1035410357    movzx dx, byte [bp+011h]                  ; 0f b6 56 11
    1035510358    mov ax, strict word 00004h                ; b8 04 00
    10356     call 01731h                               ; e8 4a a5
     10359    call 01731h                               ; e8 45 a5
    1035710360    mov ax, strict word 0000bh                ; b8 0b 00
    10358     call 01714h                               ; e8 27 a5
     10361    call 01714h                               ; e8 22 a5
    1035910362    mov bl, al                                ; 88 c3
    1036010363    and bl, 060h                              ; 80 e3 60
     
    1036510368    movzx dx, bl                              ; 0f b6 d3
    1036610369    mov ax, strict word 0000bh                ; b8 0b 00
    10367     call 01731h                               ; e8 2c a5
     10370    call 01731h                               ; e8 27 a5
    1036810371    mov byte [bp+013h], 000h                  ; c6 46 13 00
    1036910372    mov byte [bp+012h], bl                    ; 88 5e 12
    10370     jmp near 07165h                           ; e9 56 ff
     10373    jmp near 0716ah                           ; e9 56 ff
    1037110374    mov byte [bp+013h], 000h                  ; c6 46 13 00
    10372     call 0704ah                               ; e8 34 fe
     10375    call 0704fh                               ; e8 34 fe
    1037310376    test ax, ax                               ; 85 c0
    10374     je short 0721dh                           ; 74 03
    10375     jmp near 07165h                           ; e9 48 ff
     10377    je short 07222h                           ; 74 03
     10378    jmp near 0716ah                           ; e9 48 ff
    1037610379    mov ax, strict word 00009h                ; b8 09 00
    10377     call 01714h                               ; e8 f1 a4
     10380    call 01714h                               ; e8 ec a4
    1037810381    mov byte [bp+010h], al                    ; 88 46 10
    1037910382    mov ax, strict word 00008h                ; b8 08 00
    10380     call 01714h                               ; e8 e8 a4
     10383    call 01714h                               ; e8 e3 a4
    1038110384    mov byte [bp+00fh], al                    ; 88 46 0f
    1038210385    mov ax, strict word 00007h                ; b8 07 00
    10383     call 01714h                               ; e8 df a4
     10386    call 01714h                               ; e8 da a4
    1038410387    mov byte [bp+00eh], al                    ; 88 46 0e
    1038510388    mov ax, strict word 00032h                ; b8 32 00
    10386     call 01714h                               ; e8 d6 a4
     10389    call 01714h                               ; e8 d1 a4
    1038710390    mov byte [bp+011h], al                    ; 88 46 11
    1038810391    mov byte [bp+012h], al                    ; 88 46 12
    10389     jmp near 07165h                           ; e9 1e ff
    10390     call 0704ah                               ; e8 00 fe
     10392    jmp near 0716ah                           ; e9 1e ff
     10393    call 0704fh                               ; e8 00 fe
    1039110394    test ax, ax                               ; 85 c0
    10392     je short 07254h                           ; 74 06
    10393     call 07022h                               ; e8 d1 fd
    10394     jmp near 07165h                           ; e9 11 ff
     10395    je short 07259h                           ; 74 06
     10396    call 07027h                               ; e8 d1 fd
     10397    jmp near 0716ah                           ; e9 11 ff
    1039510398    movzx dx, byte [bp+010h]                  ; 0f b6 56 10
    1039610399    mov ax, strict word 00009h                ; b8 09 00
    10397     call 01731h                               ; e8 d3 a4
     10400    call 01731h                               ; e8 ce a4
    1039810401    movzx dx, byte [bp+00fh]                  ; 0f b6 56 0f
    1039910402    mov ax, strict word 00008h                ; b8 08 00
    10400     call 01731h                               ; e8 c9 a4
     10403    call 01731h                               ; e8 c4 a4
    1040110404    movzx dx, byte [bp+00eh]                  ; 0f b6 56 0e
    1040210405    mov ax, strict word 00007h                ; b8 07 00
    10403     call 01731h                               ; e8 bf a4
     10406    call 01731h                               ; e8 ba a4
    1040410407    movzx dx, byte [bp+011h]                  ; 0f b6 56 11
    1040510408    mov ax, strict word 00032h                ; b8 32 00
    10406     call 01731h                               ; e8 b5 a4
     10409    call 01731h                               ; e8 b0 a4
    1040710410    mov ax, strict word 0000bh                ; b8 0b 00
    10408     call 01714h                               ; e8 92 a4
     10411    call 01714h                               ; e8 8d a4
    1040910412    mov bl, al                                ; 88 c3
    1041010413    and bl, 07fh                              ; 80 e3 7f
    10411     jmp near 071fch                           ; e9 72 ff
     10414    jmp near 07201h                           ; e9 72 ff
    1041210415    mov ax, strict word 0000bh                ; b8 0b 00
    10413     call 01714h                               ; e8 84 a4
     10416    call 01714h                               ; e8 7f a4
    1041410417    mov bl, al                                ; 88 c3
    1041510418    mov word [bp+012h], strict word 00000h    ; c7 46 12 00 00
    1041610419    test AL, strict byte 020h                 ; a8 20
    10417     je short 0729eh                           ; 74 03
    10418     jmp near 07165h                           ; e9 c7 fe
    10419     call 0704ah                               ; e8 a9 fd
     10420    je short 072a3h                           ; 74 03
     10421    jmp near 0716ah                           ; e9 c7 fe
     10422    call 0704fh                               ; e8 a9 fd
    1042010423    test ax, ax                               ; 85 c0
    10421     je short 072a8h                           ; 74 03
    10422     call 07022h                               ; e8 7a fd
     10424    je short 072adh                           ; 74 03
     10425    call 07027h                               ; e8 7a fd
    1042310426    movzx dx, byte [bp+00fh]                  ; 0f b6 56 0f
    1042410427    mov ax, strict word 00001h                ; b8 01 00
    10425     call 01731h                               ; e8 7f a4
     10428    call 01731h                               ; e8 7a a4
    1042610429    movzx dx, byte [bp+010h]                  ; 0f b6 56 10
    1042710430    mov ax, strict word 00003h                ; b8 03 00
    10428     call 01731h                               ; e8 75 a4
     10431    call 01731h                               ; e8 70 a4
    1042910432    movzx dx, byte [bp+011h]                  ; 0f b6 56 11
    1043010433    mov ax, strict word 00005h                ; b8 05 00
    10431     call 01731h                               ; e8 6b a4
     10434    call 01731h                               ; e8 66 a4
    1043210435    mov dx, 000a1h                            ; ba a1 00
    1043310436    in AL, DX                                 ; ec
     
    1044110444    movzx dx, al                              ; 0f b6 d0
    1044210445    mov ax, strict word 0000bh                ; b8 0b 00
    10443     call 01731h                               ; e8 53 a4
    10444     jmp near 07165h                           ; e9 84 fe
     10446    call 01731h                               ; e8 4e a4
     10447    jmp near 0716ah                           ; e9 84 fe
    1044510448    mov ax, strict word 0000bh                ; b8 0b 00
    10446     call 01714h                               ; e8 2d a4
     10449    call 01714h                               ; e8 28 a4
    1044710450    mov bl, al                                ; 88 c3
    1044810451    and AL, strict byte 057h                  ; 24 57
    1044910452    movzx dx, al                              ; 0f b6 d0
    10450     jmp near 071ffh                           ; e9 0e ff
    10451 send_to_mouse_ctrl_:                         ; 0xf72f1 LB 0x34
     10453    jmp near 07204h                           ; e9 0e ff
     10454send_to_mouse_ctrl_:                         ; 0xf72f6 LB 0x34
    1045210455    push bp                                   ; 55
    1045310456    mov bp, sp                                ; 89 e5
     
    1046010463    ; sub ah, ah                                ; 2a e4
    1046110464    test AL, strict byte 002h                 ; a8 02
    10462     je short 07310h                           ; 74 0e
     10465    je short 07315h                           ; 74 0e
    1046310466    push 008eeh                               ; 68 ee 08
    10464     push 0116eh                               ; 68 6e 11
     10467    push 0116ch                               ; 68 6c 11
    1046510468    push strict byte 00007h                   ; 6a 07
    10466     call 019dah                               ; e8 cd a6
     10469    call 019dah                               ; e8 c8 a6
    1046710470    add sp, strict byte 00006h                ; 83 c4 06
    1046810471    mov AL, strict byte 0d4h                  ; b0 d4
     
    1047810481    pop bp                                    ; 5d
    1047910482    retn                                      ; c3
    10480 get_mouse_data_:                             ; 0xf7325 LB 0x5c
     10483get_mouse_data_:                             ; 0xf732a LB 0x5c
    1048110484    push bp                                   ; 55
    1048210485    mov bp, sp                                ; 89 e5
     
    1049310496    and ax, strict word 00021h                ; 25 21 00
    1049410497    cmp ax, strict word 00021h                ; 3d 21 00
    10495     je short 07367h                           ; 74 27
     10498    je short 0736ch                           ; 74 27
    1049610499    test cx, cx                               ; 85 c9
    10497     je short 07367h                           ; 74 23
     10500    je short 0736ch                           ; 74 23
    1049810501    mov dx, strict word 00061h                ; ba 61 00
    1049910502    in AL, DX                                 ; ec
     
    1051110514    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    1051210515    cmp dx, ax                                ; 39 c2
    10513     je short 0734fh                           ; 74 eb
     10516    je short 07354h                           ; 74 eb
    1051410517    dec cx                                    ; 49
    10515     jmp short 07332h                          ; eb cb
     10518    jmp short 07337h                          ; eb cb
    1051610519    test cx, cx                               ; 85 c9
    10517     jne short 0736fh                          ; 75 04
     10520    jne short 07374h                          ; 75 04
    1051810521    mov AL, strict byte 001h                  ; b0 01
    10519     jmp short 0737ah                          ; eb 0b
     10522    jmp short 0737fh                          ; eb 0b
    1052010523    mov dx, strict word 00060h                ; ba 60 00
    1052110524    in AL, DX                                 ; ec
     
    1052910532    pop bp                                    ; 5d
    1053010533    retn                                      ; c3
    10531 set_kbd_command_byte_:                       ; 0xf7381 LB 0x32
     10534set_kbd_command_byte_:                       ; 0xf7386 LB 0x32
    1053210535    push bp                                   ; 55
    1053310536    mov bp, sp                                ; 89 e5
     
    1054010543    ; sub ah, ah                                ; 2a e4
    1054110544    test AL, strict byte 002h                 ; a8 02
    10542     je short 073a0h                           ; 74 0e
     10545    je short 073a5h                           ; 74 0e
    1054310546    push 008f8h                               ; 68 f8 08
    10544     push 0116eh                               ; 68 6e 11
     10547    push 0116ch                               ; 68 6c 11
    1054510548    push strict byte 00007h                   ; 6a 07
    10546     call 019dah                               ; e8 3d a6
     10549    call 019dah                               ; e8 38 a6
    1054710550    add sp, strict byte 00006h                ; 83 c4 06
    1054810551    mov AL, strict byte 060h                  ; b0 60
     
    1055710560    pop bp                                    ; 5d
    1055810561    retn                                      ; c3
    10559 _int74_function:                             ; 0xf73b3 LB 0xca
     10562_int74_function:                             ; 0xf73b8 LB 0xca
    1056010563    push bp                                   ; 55
    1056110564    mov bp, sp                                ; 89 e5
     
    1056310566    mov dx, strict word 0000eh                ; ba 0e 00
    1056410567    mov ax, strict word 00040h                ; b8 40 00
    10565     call 016d4h                               ; e8 12 a3
     10568    call 016d4h                               ; e8 0d a3
    1056610569    mov cx, ax                                ; 89 c1
    1056710570    mov word [bp+004h], strict word 00000h    ; c7 46 04 00 00
     
    1057210575    and AL, strict byte 021h                  ; 24 21
    1057310576    cmp AL, strict byte 021h                  ; 3c 21
    10574     jne near 07469h                           ; 0f 85 92 00
     10577    jne near 0746eh                           ; 0f 85 92 00
    1057510578    mov dx, strict word 00060h                ; ba 60 00
    1057610579    in AL, DX                                 ; ec
     
    1058010583    mov dx, strict word 00026h                ; ba 26 00
    1058110584    mov ax, cx                                ; 89 c8
    10582     call 016b8h                               ; e8 d1 a2
     10585    call 016b8h                               ; e8 cc a2
    1058310586    mov byte [bp-006h], al                    ; 88 46 fa
    1058410587    mov dx, strict word 00027h                ; ba 27 00
    1058510588    mov ax, cx                                ; 89 c8
    10586     call 016b8h                               ; e8 c6 a2
     10589    call 016b8h                               ; e8 c1 a2
    1058710590    mov byte [bp-008h], al                    ; 88 46 f8
    1058810591    test AL, strict byte 080h                 ; a8 80
    10589     je short 07469h                           ; 74 70
     10592    je short 0746eh                           ; 74 70
    1059010593    mov al, byte [bp-008h]                    ; 8a 46 f8
    1059110594    and AL, strict byte 007h                  ; 24 07
     
    1059810601    add dx, strict byte 00028h                ; 83 c2 28
    1059910602    mov ax, cx                                ; 89 c8
    10600     call 016c6h                               ; e8 b0 a2
     10603    call 016c6h                               ; e8 ab a2
    1060110604    mov al, byte [bp-004h]                    ; 8a 46 fc
    1060210605    cmp al, byte [bp-002h]                    ; 3a 46 fe
    10603     jc short 0745ah                           ; 72 3c
     10606    jc short 0745fh                           ; 72 3c
    1060410607    mov dx, strict word 00028h                ; ba 28 00
    1060510608    mov ax, cx                                ; 89 c8
    10606     call 016b8h                               ; e8 92 a2
     10609    call 016b8h                               ; e8 8d a2
    1060710610    xor ah, ah                                ; 30 e4
    1060810611    mov word [bp+00ch], ax                    ; 89 46 0c
    1060910612    mov dx, strict word 00029h                ; ba 29 00
    1061010613    mov ax, cx                                ; 89 c8
    10611     call 016b8h                               ; e8 85 a2
     10614    call 016b8h                               ; e8 80 a2
    1061210615    xor ah, ah                                ; 30 e4
    1061310616    mov word [bp+00ah], ax                    ; 89 46 0a
    1061410617    mov dx, strict word 0002ah                ; ba 2a 00
    1061510618    mov ax, cx                                ; 89 c8
    10616     call 016b8h                               ; e8 78 a2
     10619    call 016b8h                               ; e8 73 a2
    1061710620    xor ah, ah                                ; 30 e4
    1061810621    mov word [bp+008h], ax                    ; 89 46 08
     
    1062110624    mov byte [bp-006h], ah                    ; 88 66 fa
    1062210625    test byte [bp-008h], 080h                 ; f6 46 f8 80
    10623     je short 0745dh                           ; 74 0a
     10626    je short 07462h                           ; 74 0a
    1062410627    mov word [bp+004h], strict word 00001h    ; c7 46 04 01 00
    10625     jmp short 0745dh                          ; eb 03
     10628    jmp short 07462h                          ; eb 03
    1062610629    inc byte [bp-006h]                        ; fe 46 fa
    1062710630    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    1062810631    mov dx, strict word 00026h                ; ba 26 00
    1062910632    mov ax, cx                                ; 89 c8
    10630     call 016c6h                               ; e8 5d a2
     10633    call 016c6h                               ; e8 58 a2
    1063110634    mov sp, bp                                ; 89 ec
    1063210635    pop bp                                    ; 5d
    1063310636    retn                                      ; c3
    10634     db  0c1h, 074h, 037h, 075h
    10635     ; sal word [si+037h], 075h                  ; c1 74 37 75
    10636     mov dx, 04b75h                            ; ba 75 4b
    10637     jbe short 0742fh                          ; 76 b9
    10638     jbe short 07485h                          ; 76 0d
    10639     jne short 0745bh                          ; 75 e1
    10640     jbe short 07422h                          ; 76 a6
     10637    db  0c6h, 074h, 03ch, 075h
     10638    ; mov byte [si+03ch], 075h                  ; c6 74 3c 75
     10639    mov di, 05075h                            ; bf 75 50
     10640    jbe short 07439h                          ; 76 be
     10641    jbe short 0748fh                          ; 76 12
     10642    jne short 07465h                          ; 75 e6
     10643    jbe short 0742ch                          ; 76 ab
    1064110644    db  077h
    10642 _int15_function_mouse:                       ; 0xf747d LB 0x38b
     10645_int15_function_mouse:                       ; 0xf7482 LB 0x38b
    1064310646    push bp                                   ; 55
    1064410647    mov bp, sp                                ; 89 e5
     
    1064710650    mov dx, strict word 0000eh                ; ba 0e 00
    1064810651    mov ax, strict word 00040h                ; b8 40 00
    10649     call 016d4h                               ; e8 47 a2
     10652    call 016d4h                               ; e8 42 a2
    1065010653    mov cx, ax                                ; 89 c1
    1065110654    cmp byte [bp+012h], 007h                  ; 80 7e 12 07
    10652     jbe short 074a0h                          ; 76 0b
     10655    jbe short 074a5h                          ; 76 0b
    1065310656    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1065410657    mov byte [bp+013h], 001h                  ; c6 46 13 01
    10655     jmp near 07802h                           ; e9 62 03
     10658    jmp near 07807h                           ; e9 62 03
    1065610659    mov ax, strict word 00065h                ; b8 65 00
    10657     call 07381h                               ; e8 db fe
     10660    call 07386h                               ; e8 db fe
    1065810661    and word [bp+018h], strict byte 0fffeh    ; 83 66 18 fe
    1065910662    mov byte [bp+013h], 000h                  ; c6 46 13 00
    1066010663    mov al, byte [bp+012h]                    ; 8a 46 12
    1066110664    cmp AL, strict byte 007h                  ; 3c 07
    10662     jnbe near 077e9h                          ; 0f 87 32 03
     10665    jnbe near 077eeh                          ; 0f 87 32 03
    1066310666    movzx si, al                              ; 0f b6 f0
    1066410667    add si, si                                ; 01 f6
    10665     jmp word [cs:si+0746dh]                   ; 2e ff a4 6d 74
     10668    jmp word [cs:si+07472h]                   ; 2e ff a4 72 74
    1066610669    cmp byte [bp+00dh], 001h                  ; 80 7e 0d 01
    10667     jnbe near 077f4h                          ; 0f 87 2b 03
     10670    jnbe near 077f9h                          ; 0f 87 2b 03
    1066810671    mov dx, strict word 00027h                ; ba 27 00
    1066910672    mov ax, cx                                ; 89 c8
    10670     call 016b8h                               ; e8 e7 a1
     10673    call 016b8h                               ; e8 e2 a1
    1067110674    test AL, strict byte 080h                 ; a8 80
    10672     jne short 074e0h                          ; 75 0b
     10675    jne short 074e5h                          ; 75 0b
    1067310676    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1067410677    mov byte [bp+013h], 005h                  ; c6 46 13 05
    10675     jmp near 077fch                           ; e9 1c 03
     10678    jmp near 07801h                           ; e9 1c 03
    1067610679    cmp byte [bp+00dh], 000h                  ; 80 7e 0d 00
    1067710680    db  00fh, 094h, 0c0h
     
    1067910682    add AL, strict byte 0f4h                  ; 04 f4
    1068010683    xor ah, ah                                ; 30 e4
    10681     call 072f1h                               ; e8 03 fe
     10684    call 072f6h                               ; e8 03 fe
    1068210685    test al, al                               ; 84 c0
    10683     jne near 07782h                           ; 0f 85 8e 02
     10686    jne near 07787h                           ; 0f 85 8e 02
    1068410687    mov dx, ss                                ; 8c d2
    1068510688    lea ax, [bp-008h]                         ; 8d 46 f8
    10686     call 07325h                               ; e8 29 fe
     10689    call 0732ah                               ; e8 29 fe
    1068710690    test al, al                               ; 84 c0
    10688     je near 077fch                            ; 0f 84 fa 02
     10691    je near 07801h                            ; 0f 84 fa 02
    1068910692    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    10690     jne near 07782h                           ; 0f 85 78 02
    10691     jmp near 077fch                           ; e9 ef 02
     10693    jne near 07787h                           ; 0f 85 78 02
     10694    jmp near 07801h                           ; e9 ef 02
    1069210695    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1069310696    cmp AL, strict byte 001h                  ; 3c 01
    10694     jc short 07518h                           ; 72 04
     10697    jc short 0751dh                           ; 72 04
    1069510698    cmp AL, strict byte 008h                  ; 3c 08
    10696     jbe short 0751bh                          ; 76 03
    10697     jmp near 076aeh                           ; e9 93 01
     10699    jbe short 07520h                          ; 76 03
     10700    jmp near 076b3h                           ; e9 93 01
    1069810701    mov dx, strict word 00027h                ; ba 27 00
    1069910702    mov ax, cx                                ; 89 c8
    10700     call 016b8h                               ; e8 95 a1
     10703    call 016b8h                               ; e8 90 a1
    1070110704    mov ah, byte [bp+00dh]                    ; 8a 66 0d
    1070210705    db  0feh, 0cch
     
    1070710710    mov dx, strict word 00027h                ; ba 27 00
    1070810711    mov ax, cx                                ; 89 c8
    10709     call 016c6h                               ; e8 8f a1
     10712    call 016c6h                               ; e8 8a a1
    1071010713    mov dx, strict word 00026h                ; ba 26 00
    1071110714    mov ax, cx                                ; 89 c8
    10712     call 016b8h                               ; e8 79 a1
     10715    call 016b8h                               ; e8 74 a1
    1071310716    and AL, strict byte 0f8h                  ; 24 f8
    1071410717    movzx bx, al                              ; 0f b6 d8
    1071510718    mov dx, strict word 00026h                ; ba 26 00
    1071610719    mov ax, cx                                ; 89 c8
    10717     call 016c6h                               ; e8 7a a1
     10720    call 016c6h                               ; e8 75 a1
    1071810721    mov ax, 000ffh                            ; b8 ff 00
    10719     call 072f1h                               ; e8 9f fd
     10722    call 072f6h                               ; e8 9f fd
    1072010723    test al, al                               ; 84 c0
    10721     jne near 07782h                           ; 0f 85 2a 02
     10724    jne near 07787h                           ; 0f 85 2a 02
    1072210725    mov dx, ss                                ; 8c d2
    1072310726    lea ax, [bp-004h]                         ; 8d 46 fc
    10724     call 07325h                               ; e8 c5 fd
     10727    call 0732ah                               ; e8 c5 fd
    1072510728    mov cl, al                                ; 88 c1
    1072610729    cmp byte [bp-004h], 0feh                  ; 80 7e fc fe
    10727     jne short 07573h                          ; 75 0b
     10730    jne short 07578h                          ; 75 0b
    1072810731    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1072910732    mov byte [bp+013h], 004h                  ; c6 46 13 04
    10730     jmp near 077fch                           ; e9 89 02
     10733    jmp near 07801h                           ; e9 89 02
    1073110734    cmp byte [bp-004h], 0fah                  ; 80 7e fc fa
    10732     je short 07589h                           ; 74 10
     10735    je short 0758eh                           ; 74 10
    1073310736    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    1073410737    push ax                                   ; 50
    1073510738    push 00903h                               ; 68 03 09
    1073610739    push strict byte 00007h                   ; 6a 07
    10737     call 019dah                               ; e8 54 a4
     10740    call 019dah                               ; e8 4f a4
    1073810741    add sp, strict byte 00006h                ; 83 c4 06
    1073910742    test cl, cl                               ; 84 c9
    10740     jne near 07782h                           ; 0f 85 f3 01
     10743    jne near 07787h                           ; 0f 85 f3 01
    1074110744    mov dx, ss                                ; 8c d2
    1074210745    lea ax, [bp-008h]                         ; 8d 46 f8
    10743     call 07325h                               ; e8 8e fd
     10746    call 0732ah                               ; e8 8e fd
    1074410747    test al, al                               ; 84 c0
    10745     jne near 07782h                           ; 0f 85 e5 01
     10748    jne near 07787h                           ; 0f 85 e5 01
    1074610749    mov dx, ss                                ; 8c d2
    1074710750    lea ax, [bp-006h]                         ; 8d 46 fa
    10748     call 07325h                               ; e8 80 fd
     10751    call 0732ah                               ; e8 80 fd
    1074910752    test al, al                               ; 84 c0
    10750     jne near 07782h                           ; 0f 85 d7 01
     10753    jne near 07787h                           ; 0f 85 d7 01
    1075110754    mov al, byte [bp-008h]                    ; 8a 46 f8
    1075210755    mov byte [bp+00ch], al                    ; 88 46 0c
    1075310756    mov al, byte [bp-006h]                    ; 8a 46 fa
    1075410757    mov byte [bp+00dh], al                    ; 88 46 0d
    10755     jmp near 077fch                           ; e9 42 02
     10758    jmp near 07801h                           ; e9 42 02
    1075610759    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1075710760    cmp AL, strict byte 003h                  ; 3c 03
    10758     jc short 075d1h                           ; 72 10
    10759     jbe short 075efh                          ; 76 2c
     10761    jc short 075d6h                           ; 72 10
     10762    jbe short 075f4h                          ; 76 2c
    1076010763    cmp AL, strict byte 006h                  ; 3c 06
    10761     je short 07601h                           ; 74 3a
     10764    je short 07606h                           ; 74 3a
    1076210765    cmp AL, strict byte 005h                  ; 3c 05
    10763     je short 075fbh                           ; 74 30
     10766    je short 07600h                           ; 74 30
    1076410767    cmp AL, strict byte 004h                  ; 3c 04
    10765     je short 075f5h                           ; 74 26
    10766     jmp short 07607h                          ; eb 36
     10768    je short 075fah                           ; 74 26
     10769    jmp short 0760ch                          ; eb 36
    1076710770    cmp AL, strict byte 002h                  ; 3c 02
    10768     je short 075e9h                           ; 74 14
     10771    je short 075eeh                           ; 74 14
    1076910772    cmp AL, strict byte 001h                  ; 3c 01
    10770     je short 075e3h                           ; 74 0a
     10773    je short 075e8h                           ; 74 0a
    1077110774    test al, al                               ; 84 c0
    10772     jne short 07607h                          ; 75 2a
     10775    jne short 0760ch                          ; 75 2a
    1077310776    mov byte [bp-008h], 00ah                  ; c6 46 f8 0a
    10774     jmp short 0760bh                          ; eb 28
     10777    jmp short 07610h                          ; eb 28
    1077510778    mov byte [bp-008h], 014h                  ; c6 46 f8 14
    10776     jmp short 0760bh                          ; eb 22
     10779    jmp short 07610h                          ; eb 22
    1077710780    mov byte [bp-008h], 028h                  ; c6 46 f8 28
    10778     jmp short 0760bh                          ; eb 1c
     10781    jmp short 07610h                          ; eb 1c
    1077910782    mov byte [bp-008h], 03ch                  ; c6 46 f8 3c
    10780     jmp short 0760bh                          ; eb 16
     10783    jmp short 07610h                          ; eb 16
    1078110784    mov byte [bp-008h], 050h                  ; c6 46 f8 50
    10782     jmp short 0760bh                          ; eb 10
     10785    jmp short 07610h                          ; eb 10
    1078310786    mov byte [bp-008h], 064h                  ; c6 46 f8 64
    10784     jmp short 0760bh                          ; eb 0a
     10787    jmp short 07610h                          ; eb 0a
    1078510788    mov byte [bp-008h], 0c8h                  ; c6 46 f8 c8
    10786     jmp short 0760bh                          ; eb 04
     10789    jmp short 07610h                          ; eb 04
    1078710790    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1078810791    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    10789     jbe short 07640h                          ; 76 2f
     10792    jbe short 07645h                          ; 76 2f
    1079010793    mov ax, 000f3h                            ; b8 f3 00
    10791     call 072f1h                               ; e8 da fc
     10794    call 072f6h                               ; e8 da fc
    1079210795    test al, al                               ; 84 c0
    10793     jne short 07635h                          ; 75 1a
     10796    jne short 0763ah                          ; 75 1a
    1079410797    mov dx, ss                                ; 8c d2
    1079510798    lea ax, [bp-006h]                         ; 8d 46 fa
    10796     call 07325h                               ; e8 02 fd
     10799    call 0732ah                               ; e8 02 fd
    1079710800    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    10798     call 072f1h                               ; e8 c7 fc
     10801    call 072f6h                               ; e8 c7 fc
    1079910802    mov dx, ss                                ; 8c d2
    1080010803    lea ax, [bp-006h]                         ; 8d 46 fa
    10801     call 07325h                               ; e8 f3 fc
    10802     jmp near 077fch                           ; e9 c7 01
     10804    call 0732ah                               ; e8 f3 fc
     10805    jmp near 07801h                           ; e9 c7 01
    1080310806    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1080410807    mov byte [bp+013h], 003h                  ; c6 46 13 03
    10805     jmp near 077fch                           ; e9 bc 01
     10808    jmp near 07801h                           ; e9 bc 01
    1080610809    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1080710810    mov byte [bp+013h], 002h                  ; c6 46 13 02
    10808     jmp near 077fch                           ; e9 b1 01
     10811    jmp near 07801h                           ; e9 b1 01
    1080910812    cmp byte [bp+00dh], 004h                  ; 80 7e 0d 04
    10810     jnc short 076aeh                          ; 73 5d
     10813    jnc short 076b3h                          ; 73 5d
    1081110814    mov ax, 000e8h                            ; b8 e8 00
    10812     call 072f1h                               ; e8 9a fc
     10815    call 072f6h                               ; e8 9a fc
    1081310816    test al, al                               ; 84 c0
    10814     jne short 076a3h                          ; 75 48
     10817    jne short 076a8h                          ; 75 48
    1081510818    mov dx, ss                                ; 8c d2
    1081610819    lea ax, [bp-008h]                         ; 8d 46 f8
    10817     call 07325h                               ; e8 c2 fc
     10820    call 0732ah                               ; e8 c2 fc
    1081810821    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    10819     je short 07679h                           ; 74 10
     10822    je short 0767eh                           ; 74 10
    1082010823    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    1082110824    push ax                                   ; 50
    1082210825    push 0092eh                               ; 68 2e 09
    1082310826    push strict byte 00007h                   ; 6a 07
    10824     call 019dah                               ; e8 64 a3
     10827    call 019dah                               ; e8 5f a3
    1082510828    add sp, strict byte 00006h                ; 83 c4 06
    1082610829    movzx ax, byte [bp+00dh]                  ; 0f b6 46 0d
    10827     call 072f1h                               ; e8 71 fc
     10830    call 072f6h                               ; e8 71 fc
    1082810831    mov dx, ss                                ; 8c d2
    1082910832    lea ax, [bp-008h]                         ; 8d 46 f8
    10830     call 07325h                               ; e8 9d fc
     10833    call 0732ah                               ; e8 9d fc
    1083110834    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    10832     je near 077fch                            ; 0f 84 6c 01
     10835    je near 07801h                            ; 0f 84 6c 01
    1083310836    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    1083410837    push ax                                   ; 50
    1083510838    push 0092eh                               ; 68 2e 09
    1083610839    push strict byte 00007h                   ; 6a 07
    10837     call 019dah                               ; e8 3d a3
     10840    call 019dah                               ; e8 38 a3
    1083810841    add sp, strict byte 00006h                ; 83 c4 06
    10839     jmp near 077fch                           ; e9 59 01
     10842    jmp near 07801h                           ; e9 59 01
    1084010843    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1084110844    mov byte [bp+013h], 003h                  ; c6 46 13 03
    10842     jmp near 077fch                           ; e9 4e 01
     10845    jmp near 07801h                           ; e9 4e 01
    1084310846    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1084410847    mov byte [bp+013h], 002h                  ; c6 46 13 02
    10845     jmp near 077fch                           ; e9 43 01
     10848    jmp near 07801h                           ; e9 43 01
    1084610849    mov ax, 000f2h                            ; b8 f2 00
    10847     call 072f1h                               ; e8 32 fc
     10850    call 072f6h                               ; e8 32 fc
    1084810851    test al, al                               ; 84 c0
    10849     jne short 076d6h                          ; 75 13
     10852    jne short 076dbh                          ; 75 13
    1085010853    mov dx, ss                                ; 8c d2
    1085110854    lea ax, [bp-008h]                         ; 8d 46 f8
    10852     call 07325h                               ; e8 5a fc
     10855    call 0732ah                               ; e8 5a fc
    1085310856    mov dx, ss                                ; 8c d2
    1085410857    lea ax, [bp-006h]                         ; 8d 46 fa
    10855     call 07325h                               ; e8 52 fc
    10856     jmp near 075b1h                           ; e9 db fe
     10858    call 0732ah                               ; e8 52 fc
     10859    jmp near 075b6h                           ; e9 db fe
    1085710860    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1085810861    mov byte [bp+013h], 003h                  ; c6 46 13 03
    10859     jmp near 077fch                           ; e9 1b 01
     10862    jmp near 07801h                           ; e9 1b 01
    1086010863    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1086110864    test al, al                               ; 84 c0
    10862     jbe short 076efh                          ; 76 07
     10865    jbe short 076f4h                          ; 76 07
    1086310866    cmp AL, strict byte 002h                  ; 3c 02
    10864     jbe short 07758h                          ; 76 6c
    10865     jmp near 0778ch                           ; e9 9d 00
     10867    jbe short 0775dh                          ; 76 6c
     10868    jmp near 07791h                           ; e9 9d 00
    1086610869    mov ax, 000e9h                            ; b8 e9 00
    10867     call 072f1h                               ; e8 fc fb
     10870    call 072f6h                               ; e8 fc fb
    1086810871    test al, al                               ; 84 c0
    10869     jne near 07782h                           ; 0f 85 87 00
     10872    jne near 07787h                           ; 0f 85 87 00
    1087010873    mov dx, ss                                ; 8c d2
    1087110874    lea ax, [bp-008h]                         ; 8d 46 f8
    10872     call 07325h                               ; e8 22 fc
     10875    call 0732ah                               ; e8 22 fc
    1087310876    mov cl, al                                ; 88 c1
    1087410877    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    10875     je short 0771bh                           ; 74 10
     10878    je short 07720h                           ; 74 10
    1087610879    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    1087710880    push ax                                   ; 50
    1087810881    push 0092eh                               ; 68 2e 09
    1087910882    push strict byte 00007h                   ; 6a 07
    10880     call 019dah                               ; e8 c2 a2
     10883    call 019dah                               ; e8 bd a2
    1088110884    add sp, strict byte 00006h                ; 83 c4 06
    1088210885    test cl, cl                               ; 84 c9
    10883     jne short 07782h                          ; 75 63
     10886    jne short 07787h                          ; 75 63
    1088410887    mov dx, ss                                ; 8c d2
    1088510888    lea ax, [bp-008h]                         ; 8d 46 f8
    10886     call 07325h                               ; e8 fe fb
     10889    call 0732ah                               ; e8 fe fb
    1088710890    test al, al                               ; 84 c0
    10888     jne short 07782h                          ; 75 57
     10891    jne short 07787h                          ; 75 57
    1088910892    mov dx, ss                                ; 8c d2
    1089010893    lea ax, [bp-006h]                         ; 8d 46 fa
    10891     call 07325h                               ; e8 f2 fb
     10894    call 0732ah                               ; e8 f2 fb
    1089210895    test al, al                               ; 84 c0
    10893     jne short 07782h                          ; 75 4b
     10896    jne short 07787h                          ; 75 4b
    1089410897    mov dx, ss                                ; 8c d2
    1089510898    lea ax, [bp-004h]                         ; 8d 46 fc
    10896     call 07325h                               ; e8 e6 fb
     10899    call 0732ah                               ; e8 e6 fb
    1089710900    test al, al                               ; 84 c0
    10898     jne short 07782h                          ; 75 3f
     10901    jne short 07787h                          ; 75 3f
    1089910902    mov al, byte [bp-008h]                    ; 8a 46 f8
    1090010903    mov byte [bp+00ch], al                    ; 88 46 0c
     
    1090310906    mov al, byte [bp-004h]                    ; 8a 46 fc
    1090410907    mov byte [bp+00eh], al                    ; 88 46 0e
    10905     jmp near 077fch                           ; e9 a4 00
     10908    jmp near 07801h                           ; e9 a4 00
    1090610909    cmp AL, strict byte 001h                  ; 3c 01
    10907     jne short 07761h                          ; 75 05
     10910    jne short 07766h                          ; 75 05
    1090810911    mov ax, 000e6h                            ; b8 e6 00
    10909     jmp short 07764h                          ; eb 03
     10912    jmp short 07769h                          ; eb 03
    1091010913    mov ax, 000e7h                            ; b8 e7 00
    10911     call 072f1h                               ; e8 8a fb
     10914    call 072f6h                               ; e8 8a fb
    1091210915    mov cl, al                                ; 88 c1
    1091310916    test cl, cl                               ; 84 c9
    10914     jne short 0777ch                          ; 75 0f
     10917    jne short 07781h                          ; 75 0f
    1091510918    mov dx, ss                                ; 8c d2
    1091610919    lea ax, [bp-008h]                         ; 8d 46 f8
    10917     call 07325h                               ; e8 b0 fb
     10920    call 0732ah                               ; e8 b0 fb
    1091810921    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    1091910922    db  00fh, 095h, 0c1h
    1092010923    ; setne cl                                  ; 0f 95 c1
    1092110924    test cl, cl                               ; 84 c9
    10922     je near 077fch                            ; 0f 84 7a 00
     10925    je near 07801h                            ; 0f 84 7a 00
    1092310926    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1092410927    mov byte [bp+013h], 003h                  ; c6 46 13 03
    10925     jmp short 077fch                          ; eb 70
     10928    jmp short 07801h                          ; eb 70
    1092610929    movzx ax, byte [bp+00dh]                  ; 0f b6 46 0d
    1092710930    push ax                                   ; 50
    1092810931    push 0095ah                               ; 68 5a 09
    1092910932    push strict byte 00007h                   ; 6a 07
    10930     call 019dah                               ; e8 41 a2
     10933    call 019dah                               ; e8 3c a2
    1093110934    add sp, strict byte 00006h                ; 83 c4 06
    1093210935    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1093310936    mov byte [bp+013h], 001h                  ; c6 46 13 01
    10934     jmp short 077fch                          ; eb 56
     10937    jmp short 07801h                          ; eb 56
    1093510938    mov si, word [bp+00ch]                    ; 8b 76 0c
    1093610939    mov bx, si                                ; 89 f3
    1093710940    mov dx, strict word 00022h                ; ba 22 00
    1093810941    mov ax, cx                                ; 89 c8
    10939     call 016e2h                               ; e8 2f 9f
     10942    call 016e2h                               ; e8 2a 9f
    1094010943    mov bx, word [bp+014h]                    ; 8b 5e 14
    1094110944    mov dx, strict word 00024h                ; ba 24 00
    1094210945    mov ax, cx                                ; 89 c8
    10943     call 016e2h                               ; e8 24 9f
     10946    call 016e2h                               ; e8 1f 9f
    1094410947    mov dx, strict word 00027h                ; ba 27 00
    1094510948    mov ax, cx                                ; 89 c8
    10946     call 016b8h                               ; e8 f2 9e
     10949    call 016b8h                               ; e8 ed 9e
    1094710950    mov ah, al                                ; 88 c4
    1094810951    test si, si                               ; 85 f6
    10949     jne short 077dah                          ; 75 0e
     10952    jne short 077dfh                          ; 75 0e
    1095010953    cmp word [bp+014h], strict byte 00000h    ; 83 7e 14 00
    10951     jne short 077dah                          ; 75 08
     10954    jne short 077dfh                          ; 75 08
    1095210955    test AL, strict byte 080h                 ; a8 80
    10953     je short 077dch                           ; 74 06
     10956    je short 077e1h                           ; 74 06
    1095410957    and AL, strict byte 07fh                  ; 24 7f
    10955     jmp short 077dch                          ; eb 02
     10958    jmp short 077e1h                          ; eb 02
    1095610959    or AL, strict byte 080h                   ; 0c 80
    1095710960    movzx bx, al                              ; 0f b6 d8
    1095810961    mov dx, strict word 00027h                ; ba 27 00
    1095910962    mov ax, cx                                ; 89 c8
    10960     call 016c6h                               ; e8 df 9e
    10961     jmp short 077fch                          ; eb 13
     10963    call 016c6h                               ; e8 da 9e
     10964    jmp short 07801h                          ; eb 13
    1096210965    push 00974h                               ; 68 74 09
    1096310966    push strict byte 00007h                   ; 6a 07
    10964     call 019dah                               ; e8 e9 a1
     10967    call 019dah                               ; e8 e4 a1
    1096510968    add sp, strict byte 00004h                ; 83 c4 04
    1096610969    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1096710970    mov byte [bp+013h], 001h                  ; c6 46 13 01
    1096810971    mov ax, strict word 00047h                ; b8 47 00
    10969     call 07381h                               ; e8 7f fb
     10972    call 07386h                               ; e8 7f fb
    1097010973    lea sp, [bp-002h]                         ; 8d 66 fe
    1097110974    pop si                                    ; 5e
    1097210975    pop bp                                    ; 5d
    1097310976    retn                                      ; c3
    10974 _int17_function:                             ; 0xf7808 LB 0xb3
     10977_int17_function:                             ; 0xf780d LB 0xb3
    1097510978    push bp                                   ; 55
    1097610979    mov bp, sp                                ; 89 e5
     
    1098210985    add dx, strict byte 00008h                ; 83 c2 08
    1098310986    mov ax, strict word 00040h                ; b8 40 00
    10984     call 016d4h                               ; e8 b8 9e
     10987    call 016d4h                               ; e8 b3 9e
    1098510988    mov bx, ax                                ; 89 c3
    1098610989    mov si, ax                                ; 89 c6
    1098710990    cmp byte [bp+013h], 003h                  ; 80 7e 13 03
    10988     jnc near 078b1h                           ; 0f 83 89 00
     10991    jnc near 078b6h                           ; 0f 83 89 00
    1098910992    mov ax, word [bp+00eh]                    ; 8b 46 0e
    1099010993    cmp ax, strict word 00003h                ; 3d 03 00
    10991     jnc near 078b1h                           ; 0f 83 7f 00
     10994    jnc near 078b6h                           ; 0f 83 7f 00
    1099210995    test bx, bx                               ; 85 db
    10993     jbe near 078b1h                           ; 0f 86 79 00
     10996    jbe near 078b6h                           ; 0f 86 79 00
    1099410997    mov dx, ax                                ; 89 c2
    1099510998    add dx, strict byte 00078h                ; 83 c2 78
    1099610999    mov ax, strict word 00040h                ; b8 40 00
    10997     call 016b8h                               ; e8 75 9e
     11000    call 016b8h                               ; e8 70 9e
    1099811001    movzx cx, al                              ; 0f b6 c8
    1099911002    sal cx, 008h                              ; c1 e1 08
    1100011003    cmp byte [bp+013h], 000h                  ; 80 7e 13 00
    11001     jne short 0787ch                          ; 75 2d
     11004    jne short 07881h                          ; 75 2d
    1100211005    mov al, byte [bp+012h]                    ; 8a 46 12
    1100311006    mov dx, bx                                ; 89 da
     
    1101911022    ; sub ah, ah                                ; 2a e4
    1102011023    test AL, strict byte 040h                 ; a8 40
    11021     je short 0787ch                           ; 74 07
     11024    je short 07881h                           ; 74 07
    1102211025    test cx, cx                               ; 85 c9
    11023     je short 0787ch                           ; 74 03
     11026    je short 07881h                           ; 74 03
    1102411027    dec cx                                    ; 49
    11025     jmp short 0786bh                          ; eb ef
     11028    jmp short 07870h                          ; eb ef
    1102611029    cmp byte [bp+013h], 001h                  ; 80 7e 13 01
    11027     jne short 07898h                          ; 75 16
     11030    jne short 0789dh                          ; 75 16
    1102811031    lea dx, [si+002h]                         ; 8d 54 02
    1102911032    in AL, DX                                 ; ec
     
    1104411047    mov byte [bp+013h], al                    ; 88 46 13
    1104511048    test cx, cx                               ; 85 c9
    11046     jne short 078abh                          ; 75 04
     11049    jne short 078b0h                          ; 75 04
    1104711050    or byte [bp+013h], 001h                   ; 80 4e 13 01
    1104811051    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    11049     jmp short 078b5h                          ; eb 04
     11052    jmp short 078bah                          ; eb 04
    1105011053    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    1105111054    lea sp, [bp-002h]                         ; 8d 66 fe
     
    1105311056    pop bp                                    ; 5d
    1105411057    retn                                      ; c3
    11055 wait_:                                       ; 0xf78bb LB 0xb2
     11058wait_:                                       ; 0xf78c0 LB 0xb2
    1105611059    push bp                                   ; 55
    1105711060    mov bp, sp                                ; 89 e5
     
    1107111074    mov dx, 0046ch                            ; ba 6c 04
    1107211075    xor ax, ax                                ; 31 c0
    11073     call 016f0h                               ; e8 12 9e
     11076    call 016f0h                               ; e8 0d 9e
    1107411077    mov word [bp-00eh], ax                    ; 89 46 f2
    1107511078    mov bx, dx                                ; 89 d3
     
    1107711080    mov dx, 0046ch                            ; ba 6c 04
    1107811081    xor ax, ax                                ; 31 c0
    11079     call 016f0h                               ; e8 04 9e
     11082    call 016f0h                               ; e8 ff 9d
    1108011083    mov word [bp-012h], ax                    ; 89 46 ee
    1108111084    mov di, dx                                ; 89 d7
    1108211085    cmp dx, bx                                ; 39 da
    11083     jnbe short 078fch                         ; 77 07
    11084     jne short 07903h                          ; 75 0c
     11086    jnbe short 07901h                         ; 77 07
     11087    jne short 07908h                          ; 75 0c
    1108511088    cmp ax, word [bp-00eh]                    ; 3b 46 f2
    11086     jbe short 07903h                          ; 76 07
     11089    jbe short 07908h                          ; 76 07
    1108711090    sub ax, word [bp-00eh]                    ; 2b 46 f2
    1108811091    sbb dx, bx                                ; 19 da
    11089     jmp short 0790eh                          ; eb 0b
     11092    jmp short 07913h                          ; eb 0b
    1109011093    cmp dx, bx                                ; 39 da
    11091     jc short 0790eh                           ; 72 07
    11092     jne short 07912h                          ; 75 09
     11094    jc short 07913h                           ; 72 07
     11095    jne short 07917h                          ; 75 09
    1109311096    cmp ax, word [bp-00eh]                    ; 3b 46 f2
    11094     jnc short 07912h                          ; 73 04
     11097    jnc short 07917h                          ; 73 04
    1109511098    sub si, ax                                ; 29 c6
    1109611099    sbb cx, dx                                ; 19 d1
     
    1110011103    mov ax, 00100h                            ; b8 00 01
    1110111104    int 016h                                  ; cd 16
    11102     je near 07928h                            ; 0f 84 05 00
     11105    je near 0792dh                            ; 0f 84 05 00
    1110311106    mov AL, strict byte 001h                  ; b0 01
    11104     jmp near 0792ah                           ; e9 02 00
     11107    jmp near 0792fh                           ; e9 02 00
    1110511108    db  032h, 0c0h
    1110611109    ; xor al, al                                ; 32 c0
    1110711110    test al, al                               ; 84 c0
    11108     je short 07952h                           ; 74 24
     11111    je short 07957h                           ; 74 24
    1110911112    db  033h, 0c0h
    1111011113    ; xor ax, ax                                ; 33 c0
     
    1111711120    push 00996h                               ; 68 96 09
    1111811121    push strict byte 00004h                   ; 6a 04
    11119     call 019dah                               ; e8 95 a0
     11122    call 019dah                               ; e8 90 a0
    1112011123    add sp, strict byte 00006h                ; 83 c4 06
    1112111124    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11122     je short 07952h                           ; 74 04
     11125    je short 07957h                           ; 74 04
    1112311126    mov al, dl                                ; 88 d0
    11124     jmp short 07964h                          ; eb 12
     11127    jmp short 07969h                          ; eb 12
    1112511128    test cx, cx                               ; 85 c9
    11126     jnle short 078e3h                         ; 7f 8d
    11127     jne short 0795ch                          ; 75 04
     11129    jnle short 078e8h                         ; 7f 8d
     11130    jne short 07961h                          ; 75 04
    1112811131    test si, si                               ; 85 f6
    11129     jnbe short 078e3h                         ; 77 87
     11132    jnbe short 078e8h                         ; 77 87
    1113011133    mov ax, word [bp-010h]                    ; 8b 46 f0
    1113111134    push ax                                   ; 50
     
    1113911142    pop bp                                    ; 5d
    1114011143    retn                                      ; c3
    11141 read_logo_byte_:                             ; 0xf796d LB 0x16
     11144read_logo_byte_:                             ; 0xf7972 LB 0x16
    1114211145    push bp                                   ; 55
    1114311146    mov bp, sp                                ; 89 e5
     
    1115411157    pop bp                                    ; 5d
    1115511158    retn                                      ; c3
    11156 read_logo_word_:                             ; 0xf7983 LB 0x14
     11159read_logo_word_:                             ; 0xf7988 LB 0x14
    1115711160    push bp                                   ; 55
    1115811161    mov bp, sp                                ; 89 e5
     
    1116711170    pop bp                                    ; 5d
    1116811171    retn                                      ; c3
    11169 print_detected_harddisks_:                   ; 0xf7997 LB 0x130
     11172print_detected_harddisks_:                   ; 0xf799c LB 0x130
    1117011173    push bp                                   ; 55
    1117111174    mov bp, sp                                ; 89 e5
     
    1117911182    mov dx, strict word 0000eh                ; ba 0e 00
    1118011183    mov ax, strict word 00040h                ; b8 40 00
    11181     call 016d4h                               ; e8 2a 9d
     11184    call 016d4h                               ; e8 25 9d
    1118211185    mov si, ax                                ; 89 c6
    1118311186    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
     
    1118511188    xor ch, ch                                ; 30 ed
    1118611189    mov dx, 00304h                            ; ba 04 03
    11187     call 016b8h                               ; e8 fe 9c
     11190    call 016b8h                               ; e8 f9 9c
    1118811191    mov byte [bp-00eh], al                    ; 88 46 f2
    1118911192    xor bl, bl                                ; 30 db
    1119011193    cmp bl, byte [bp-00eh]                    ; 3a 5e f2
    11191     jnc near 07a99h                           ; 0f 83 d3 00
     11194    jnc near 07a9eh                           ; 0f 83 d3 00
    1119211195    movzx dx, bl                              ; 0f b6 d3
    1119311196    add dx, 00305h                            ; 81 c2 05 03
    1119411197    mov ax, si                                ; 89 f0
    11195     call 016b8h                               ; e8 e6 9c
     11198    call 016b8h                               ; e8 e1 9c
    1119611199    mov bh, al                                ; 88 c7
    1119711200    cmp AL, strict byte 00ch                  ; 3c 0c
    11198     jc short 079fch                           ; 72 24
     11201    jc short 07a01h                           ; 72 24
    1119911202    test cl, cl                               ; 84 c9
    11200     jne short 079e9h                          ; 75 0d
     11203    jne short 079eeh                          ; 75 0d
    1120111204    push 009a7h                               ; 68 a7 09
    1120211205    push strict byte 00002h                   ; 6a 02
    11203     call 019dah                               ; e8 f6 9f
     11206    call 019dah                               ; e8 f1 9f
    1120411207    add sp, strict byte 00004h                ; 83 c4 04
    1120511208    mov CL, strict byte 001h                  ; b1 01
     
    1120911212    push 009bch                               ; 68 bc 09
    1121011213    push strict byte 00002h                   ; 6a 02
    11211     call 019dah                               ; e8 e4 9f
     11214    call 019dah                               ; e8 df 9f
    1121211215    add sp, strict byte 00006h                ; 83 c4 06
    11213     jmp near 07a94h                           ; e9 98 00
     11216    jmp near 07a99h                           ; e9 98 00
    1121411217    cmp AL, strict byte 008h                  ; 3c 08
    11215     jc short 07a13h                           ; 72 13
     11218    jc short 07a18h                           ; 72 13
    1121611219    test ch, ch                               ; 84 ed
    11217     jne short 07a11h                          ; 75 0d
     11220    jne short 07a16h                          ; 75 0d
    1121811221    push 009cfh                               ; 68 cf 09
    1121911222    push strict byte 00002h                   ; 6a 02
    11220     call 019dah                               ; e8 ce 9f
     11223    call 019dah                               ; e8 c9 9f
    1122111224    add sp, strict byte 00004h                ; 83 c4 04
    1122211225    mov CH, strict byte 001h                  ; b5 01
    11223     jmp short 079e9h                          ; eb d6
     11226    jmp short 079eeh                          ; eb d6
    1122411227    cmp AL, strict byte 004h                  ; 3c 04
    11225     jnc short 07a2eh                          ; 73 17
     11228    jnc short 07a33h                          ; 73 17
    1122611229    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11227     jne short 07a2eh                          ; 75 11
     11230    jne short 07a33h                          ; 75 11
    1122811231    push 009e4h                               ; 68 e4 09
    1122911232    push strict byte 00002h                   ; 6a 02
    11230     call 019dah                               ; e8 b5 9f
     11233    call 019dah                               ; e8 b0 9f
    1123111234    add sp, strict byte 00004h                ; 83 c4 04
    1123211235    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    11233     jmp short 07a44h                          ; eb 16
     11236    jmp short 07a49h                          ; eb 16
    1123411237    cmp bh, 004h                              ; 80 ff 04
    11235     jc short 07a44h                           ; 72 11
     11238    jc short 07a49h                           ; 72 11
    1123611239    test cl, cl                               ; 84 c9
    11237     jne short 07a44h                          ; 75 0d
     11240    jne short 07a49h                          ; 75 0d
    1123811241    push 009f6h                               ; 68 f6 09
    1123911242    push strict byte 00002h                   ; 6a 02
    11240     call 019dah                               ; e8 9b 9f
     11243    call 019dah                               ; e8 96 9f
    1124111244    add sp, strict byte 00004h                ; 83 c4 04
    1124211245    mov CL, strict byte 001h                  ; b1 01
     
    1124611249    push 00a0ah                               ; 68 0a 0a
    1124711250    push strict byte 00002h                   ; 6a 02
    11248     call 019dah                               ; e8 89 9f
     11251    call 019dah                               ; e8 84 9f
    1124911252    add sp, strict byte 00006h                ; 83 c4 06
    1125011253    cmp bh, 004h                              ; 80 ff 04
    11251     jc short 07a5ch                           ; 72 03
     11254    jc short 07a61h                           ; 72 03
    1125211255    sub bh, 004h                              ; 80 ef 04
    1125311256    movzx ax, bh                              ; 0f b6 c7
     
    1125711260    sar ax, 1                                 ; d1 f8
    1125811261    test ax, ax                               ; 85 c0
    11259     je short 07a6dh                           ; 74 05
     11262    je short 07a72h                           ; 74 05
    1126011263    push 00a14h                               ; 68 14 0a
    11261     jmp short 07a70h                          ; eb 03
     11264    jmp short 07a75h                          ; eb 03
    1126211265    push 00a1fh                               ; 68 1f 0a
    1126311266    push strict byte 00002h                   ; 6a 02
    11264     call 019dah                               ; e8 65 9f
     11267    call 019dah                               ; e8 60 9f
    1126511268    add sp, strict byte 00004h                ; 83 c4 04
    1126611269    movzx ax, bh                              ; 0f b6 c7
     
    1126911272    idiv di                                   ; f7 ff
    1127011273    test dx, dx                               ; 85 d2
    11271     je short 07a8ah                           ; 74 05
     11274    je short 07a8fh                           ; 74 05
    1127211275    push 00a28h                               ; 68 28 0a
    11273     jmp short 07a8dh                          ; eb 03
     11276    jmp short 07a92h                          ; eb 03
    1127411277    push 00a2eh                               ; 68 2e 0a
    1127511278    push di                                   ; 57
    11276     call 019dah                               ; e8 49 9f
     11279    call 019dah                               ; e8 44 9f
    1127711280    add sp, strict byte 00004h                ; 83 c4 04
    1127811281    db  0feh, 0c3h
    1127911282    ; inc bl                                    ; fe c3
    11280     jmp near 079bfh                           ; e9 26 ff
     11283    jmp near 079c4h                           ; e9 26 ff
    1128111284    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11282     jne short 07ab2h                          ; 75 13
     11285    jne short 07ab7h                          ; 75 13
    1128311286    test cl, cl                               ; 84 c9
    11284     jne short 07ab2h                          ; 75 0f
     11287    jne short 07ab7h                          ; 75 0f
    1128511288    test ch, ch                               ; 84 ed
    11286     jne short 07ab2h                          ; 75 0b
     11289    jne short 07ab7h                          ; 75 0b
    1128711290    push 00a35h                               ; 68 35 0a
    1128811291    push strict byte 00002h                   ; 6a 02
    11289     call 019dah                               ; e8 2b 9f
     11292    call 019dah                               ; e8 26 9f
    1129011293    add sp, strict byte 00004h                ; 83 c4 04
    1129111294    push 00a49h                               ; 68 49 0a
    1129211295    push strict byte 00002h                   ; 6a 02
    11293     call 019dah                               ; e8 20 9f
     11296    call 019dah                               ; e8 1b 9f
    1129411297    add sp, strict byte 00004h                ; 83 c4 04
    1129511298    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1130111304    pop bp                                    ; 5d
    1130211305    retn                                      ; c3
    11303 get_boot_drive_:                             ; 0xf7ac7 LB 0x28
     11306get_boot_drive_:                             ; 0xf7acc LB 0x28
    1130411307    push bp                                   ; 55
    1130511308    mov bp, sp                                ; 89 e5
     
    1130911312    mov dx, strict word 0000eh                ; ba 0e 00
    1131011313    mov ax, strict word 00040h                ; b8 40 00
    11311     call 016d4h                               ; e8 fd 9b
     11314    call 016d4h                               ; e8 f8 9b
    1131211315    mov dx, 00304h                            ; ba 04 03
    11313     call 016b8h                               ; e8 db 9b
     11316    call 016b8h                               ; e8 d6 9b
    1131411317    sub bl, 002h                              ; 80 eb 02
    1131511318    cmp bl, al                                ; 38 c3
    11316     jc short 07ae6h                           ; 72 02
     11319    jc short 07aebh                           ; 72 02
    1131711320    mov BL, strict byte 0ffh                  ; b3 ff
    1131811321    mov al, bl                                ; 88 d8
     
    1132211325    pop bp                                    ; 5d
    1132311326    retn                                      ; c3
    11324 show_logo_:                                  ; 0xf7aef LB 0x224
     11327show_logo_:                                  ; 0xf7af4 LB 0x224
    1132511328    push bp                                   ; 55
    1132611329    mov bp, sp                                ; 89 e5
     
    1133311336    mov dx, strict word 0000eh                ; ba 0e 00
    1133411337    mov ax, strict word 00040h                ; b8 40 00
    11335     call 016d4h                               ; e8 d1 9b
     11338    call 016d4h                               ; e8 cc 9b
    1133611339    mov si, ax                                ; 89 c6
    1133711340    xor cl, cl                                ; 30 c9
     
    1134411347    out strict byte 040h, AL                  ; e6 40
    1134511348    movzx ax, dl                              ; 0f b6 c2
    11346     call 07983h                               ; e8 68 fe
     11349    call 07988h                               ; e8 68 fe
    1134711350    cmp ax, 066bbh                            ; 3d bb 66
    11348     jne near 07bf3h                           ; 0f 85 d1 00
     11351    jne near 07bf8h                           ; 0f 85 d1 00
    1134911352    push SS                                   ; 16
    1135011353    pop ES                                    ; 07
     
    1135411357    mov word [es:di], bx                      ; 26 89 1d
    1135511358    cmp ax, strict word 0004fh                ; 3d 4f 00
    11356     jne near 07bf3h                           ; 0f 85 bd 00
     11359    jne near 07bf8h                           ; 0f 85 bd 00
    1135711360    mov al, dl                                ; 88 d0
    1135811361    add AL, strict byte 004h                  ; 04 04
    1135911362    xor ah, ah                                ; 30 e4
    11360     call 0796dh                               ; e8 2e fe
     11363    call 07972h                               ; e8 2e fe
    1136111364    mov ch, al                                ; 88 c5
    1136211365    mov byte [bp-00ch], al                    ; 88 46 f4
     
    1136411367    add AL, strict byte 005h                  ; 04 05
    1136511368    xor ah, ah                                ; 30 e4
    11366     call 0796dh                               ; e8 20 fe
     11369    call 07972h                               ; e8 20 fe
    1136711370    mov dh, al                                ; 88 c6
    1136811371    mov byte [bp-010h], al                    ; 88 46 f0
     
    1137011373    add AL, strict byte 002h                  ; 04 02
    1137111374    xor ah, ah                                ; 30 e4
    11372     call 07983h                               ; e8 28 fe
     11375    call 07988h                               ; e8 28 fe
    1137311376    mov bx, ax                                ; 89 c3
    1137411377    mov word [bp-014h], ax                    ; 89 46 ec
     
    1137611379    add AL, strict byte 006h                  ; 04 06
    1137711380    xor ah, ah                                ; 30 e4
    11378     call 0796dh                               ; e8 04 fe
     11381    call 07972h                               ; e8 04 fe
    1137911382    mov byte [bp-012h], al                    ; 88 46 ee
    1138011383    test ch, ch                               ; 84 ed
    11381     jne short 07b7ah                          ; 75 0a
     11384    jne short 07b7fh                          ; 75 0a
    1138211385    test dh, dh                               ; 84 f6
    11383     jne short 07b7ah                          ; 75 06
     11386    jne short 07b7fh                          ; 75 06
    1138411387    test bx, bx                               ; 85 db
    11385     je near 07bf3h                            ; 0f 84 79 00
     11388    je near 07bf8h                            ; 0f 84 79 00
    1138611389    mov bx, 00142h                            ; bb 42 01
    1138711390    mov ax, 04f02h                            ; b8 02 4f
    1138811391    int 010h                                  ; cd 10
    1138911392    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11390     je short 07babh                           ; 74 23
     11393    je short 07bb0h                           ; 74 23
    1139111394    xor bx, bx                                ; 31 db
    11392     jmp short 07b92h                          ; eb 06
     11395    jmp short 07b97h                          ; eb 06
    1139311396    inc bx                                    ; 43
    1139411397    cmp bx, strict byte 00010h                ; 83 fb 10
    11395     jnbe short 07bb2h                         ; 77 20
     11398    jnbe short 07bb7h                         ; 77 20
    1139611399    mov ax, bx                                ; 89 d8
    1139711400    or ah, 002h                               ; 80 cc 02
     
    1140011403    xor dx, dx                                ; 31 d2
    1140111404    mov ax, strict word 00001h                ; b8 01 00
    11402     call 078bbh                               ; e8 18 fd
     11405    call 078c0h                               ; e8 18 fd
    1140311406    cmp AL, strict byte 086h                  ; 3c 86
    11404     jne short 07b8ch                          ; 75 e5
     11407    jne short 07b91h                          ; 75 e5
    1140511408    mov CL, strict byte 001h                  ; b1 01
    11406     jmp short 07bb2h                          ; eb 07
     11409    jmp short 07bb7h                          ; eb 07
    1140711410    mov ax, 00210h                            ; b8 10 02
    1140811411    mov dx, 003b8h                            ; ba b8 03
    1140911412    out DX, ax                                ; ef
    1141011413    test cl, cl                               ; 84 c9
    11411     jne short 07bc8h                          ; 75 12
     11414    jne short 07bcdh                          ; 75 12
    1141211415    mov ax, word [bp-014h]                    ; 8b 46 ec
    1141311416    shr ax, 004h                              ; c1 e8 04
    1141411417    mov dx, strict word 00001h                ; ba 01 00
    11415     call 078bbh                               ; e8 f9 fc
     11418    call 078c0h                               ; e8 f9 fc
    1141611419    cmp AL, strict byte 086h                  ; 3c 86
    11417     jne short 07bc8h                          ; 75 02
     11420    jne short 07bcdh                          ; 75 02
    1141811421    mov CL, strict byte 001h                  ; b1 01
    1141911422    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    11420     je short 07bf3h                           ; 74 25
     11423    je short 07bf8h                           ; 74 25
    1142111424    test cl, cl                               ; 84 c9
    11422     jne short 07bf3h                          ; 75 21
     11425    jne short 07bf8h                          ; 75 21
    1142311426    mov bx, strict word 00010h                ; bb 10 00
    11424     jmp short 07bdch                          ; eb 05
     11427    jmp short 07be1h                          ; eb 05
    1142511428    dec bx                                    ; 4b
    1142611429    test bx, bx                               ; 85 db
    11427     jbe short 07bf3h                          ; 76 17
     11430    jbe short 07bf8h                          ; 76 17
    1142811431    mov ax, bx                                ; 89 d8
    1142911432    or ah, 002h                               ; 80 cc 02
     
    1143211435    xor dx, dx                                ; 31 d2
    1143311436    mov ax, strict word 00001h                ; b8 01 00
    11434     call 078bbh                               ; e8 ce fc
     11437    call 078c0h                               ; e8 ce fc
    1143511438    cmp AL, strict byte 086h                  ; 3c 86
    11436     jne short 07bd7h                          ; 75 e6
     11439    jne short 07bdch                          ; 75 e6
    1143711440    mov CL, strict byte 001h                  ; b1 01
    1143811441    xor bx, bx                                ; 31 db
    1143911442    mov dx, 0037dh                            ; ba 7d 03
    1144011443    mov ax, si                                ; 89 f0
    11441     call 016c6h                               ; e8 c9 9a
     11444    call 016c6h                               ; e8 c4 9a
    1144211445    mov AL, strict byte 003h                  ; b0 03
    1144311446    mov AH, strict byte 000h                  ; b4 00
    1144411447    int 010h                                  ; cd 10
    1144511448    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
    11446     je near 07cf4h                            ; 0f 84 e9 00
     11449    je near 07cf9h                            ; 0f 84 e9 00
    1144711450    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11448     jne short 07c41h                          ; 75 30
     11451    jne short 07c46h                          ; 75 30
    1144911452    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    11450     jne short 07c41h                          ; 75 2a
     11453    jne short 07c46h                          ; 75 2a
    1145111454    cmp word [bp-014h], strict byte 00000h    ; 83 7e ec 00
    11452     jne short 07c41h                          ; 75 24
     11455    jne short 07c46h                          ; 75 24
    1145311456    cmp byte [bp-012h], 002h                  ; 80 7e ee 02
    11454     jne short 07c2eh                          ; 75 0b
     11457    jne short 07c33h                          ; 75 0b
    1145511458    push 00a4bh                               ; 68 4b 0a
    1145611459    push strict byte 00002h                   ; 6a 02
    11457     call 019dah                               ; e8 af 9d
     11460    call 019dah                               ; e8 aa 9d
    1145811461    add sp, strict byte 00004h                ; 83 c4 04
    1145911462    test cl, cl                               ; 84 c9
    11460     jne short 07c41h                          ; 75 0f
     11463    jne short 07c46h                          ; 75 0f
    1146111464    mov dx, strict word 00001h                ; ba 01 00
    1146211465    mov ax, 000c0h                            ; b8 c0 00
    11463     call 078bbh                               ; e8 80 fc
     11466    call 078c0h                               ; e8 80 fc
    1146411467    cmp AL, strict byte 086h                  ; 3c 86
    11465     jne short 07c41h                          ; 75 02
     11468    jne short 07c46h                          ; 75 02
    1146611469    mov CL, strict byte 001h                  ; b1 01
    1146711470    test cl, cl                               ; 84 c9
    11468     je near 07cf4h                            ; 0f 84 ad 00
     11471    je near 07cf9h                            ; 0f 84 ad 00
    1146911472    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
    1147011473    mov ax, 00100h                            ; b8 00 01
     
    1148511488    push 00a6dh                               ; 68 6d 0a
    1148611489    push strict byte 00002h                   ; 6a 02
    11487     call 019dah                               ; e8 6a 9d
     11490    call 019dah                               ; e8 65 9d
    1148811491    add sp, strict byte 00004h                ; 83 c4 04
    11489     call 07997h                               ; e8 21 fd
     11492    call 0799ch                               ; e8 21 fd
    1149011493    push 00ab1h                               ; 68 b1 0a
    1149111494    push strict byte 00002h                   ; 6a 02
    11492     call 019dah                               ; e8 5c 9d
     11495    call 019dah                               ; e8 57 9d
    1149311496    add sp, strict byte 00004h                ; 83 c4 04
    1149411497    mov dx, strict word 00001h                ; ba 01 00
    1149511498    mov ax, strict word 00040h                ; b8 40 00
    11496     call 078bbh                               ; e8 31 fc
     11499    call 078c0h                               ; e8 31 fc
    1149711500    mov bl, al                                ; 88 c3
    1149811501    test al, al                               ; 84 c0
    11499     je short 07c81h                           ; 74 f1
     11502    je short 07c86h                           ; 74 f1
    1150011503    cmp AL, strict byte 030h                  ; 3c 30
    11501     je short 07ce2h                           ; 74 4e
     11504    je short 07ce7h                           ; 74 4e
    1150211505    cmp bl, 002h                              ; 80 fb 02
    11503     jc short 07cbbh                           ; 72 22
     11506    jc short 07cc0h                           ; 72 22
    1150411507    cmp bl, 009h                              ; 80 fb 09
    11505     jnbe short 07cbbh                         ; 77 1d
     11508    jnbe short 07cc0h                         ; 77 1d
    1150611509    movzx ax, bl                              ; 0f b6 c3
    11507     call 07ac7h                               ; e8 23 fe
     11510    call 07acch                               ; e8 23 fe
    1150811511    cmp AL, strict byte 0ffh                  ; 3c ff
    11509     jne short 07caah                          ; 75 02
    11510     jmp short 07c81h                          ; eb d7
     11512    jne short 07cafh                          ; 75 02
     11513    jmp short 07c86h                          ; eb d7
    1151111514    movzx bx, al                              ; 0f b6 d8
    1151211515    mov dx, 0037ch                            ; ba 7c 03
    1151311516    mov ax, si                                ; 89 f0
    11514     call 016c6h                               ; e8 11 9a
     11517    call 016c6h                               ; e8 0c 9a
    1151511518    mov byte [bp-00eh], 002h                  ; c6 46 f2 02
    11516     jmp short 07ce2h                          ; eb 27
     11519    jmp short 07ce7h                          ; eb 27
    1151711520    cmp bl, 02eh                              ; 80 fb 2e
    11518     je short 07cd0h                           ; 74 10
     11521    je short 07cd5h                           ; 74 10
    1151911522    cmp bl, 026h                              ; 80 fb 26
    11520     je short 07cd6h                           ; 74 11
     11523    je short 07cdbh                           ; 74 11
    1152111524    cmp bl, 021h                              ; 80 fb 21
    11522     jne short 07cdch                          ; 75 12
     11525    jne short 07ce1h                          ; 75 12
    1152311526    mov byte [bp-00eh], 001h                  ; c6 46 f2 01
    11524     jmp short 07ce2h                          ; eb 12
     11527    jmp short 07ce7h                          ; eb 12
    1152511528    mov byte [bp-00eh], 003h                  ; c6 46 f2 03
    11526     jmp short 07ce2h                          ; eb 0c
     11529    jmp short 07ce7h                          ; eb 0c
    1152711530    mov byte [bp-00eh], 004h                  ; c6 46 f2 04
    11528     jmp short 07ce2h                          ; eb 06
     11531    jmp short 07ce7h                          ; eb 06
    1152911532    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    11530     je short 07c81h                           ; 74 9f
     11533    je short 07c86h                           ; 74 9f
    1153111534    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
    1153211535    mov dx, 0037dh                            ; ba 7d 03
    1153311536    mov ax, si                                ; 89 f0
    11534     call 016c6h                               ; e8 d8 99
     11537    call 016c6h                               ; e8 d3 99
    1153511538    mov AL, strict byte 003h                  ; b0 03
    1153611539    mov AH, strict byte 000h                  ; b4 00
     
    1154511548    push DS                                   ; 1e
    1154611549    mov ds, ax                                ; 8e d8
    11547     call 0edbfh                               ; e8 b9 70
     11550    call 0edbfh                               ; e8 b4 70
    1154811551    pop DS                                    ; 1f
    1154911552    popad                                     ; 66 61
     
    1155611559    pop bp                                    ; 5d
    1155711560    retn                                      ; c3
    11558 delay_boot_:                                 ; 0xf7d13 LB 0x67
     11561delay_boot_:                                 ; 0xf7d18 LB 0x67
    1155911562    push bp                                   ; 55
    1156011563    mov bp, sp                                ; 89 e5
     
    1156311566    mov dx, ax                                ; 89 c2
    1156411567    test ax, ax                               ; 85 c0
    11565     je short 07d73h                           ; 74 55
     11568    je short 07d78h                           ; 74 55
    1156611569    mov AL, strict byte 034h                  ; b0 34
    1156711570    out strict byte 043h, AL                  ; e6 43
     
    1157311576    push 00afbh                               ; 68 fb 0a
    1157411577    push strict byte 00002h                   ; 6a 02
    11575     call 019dah                               ; e8 a7 9c
     11578    call 019dah                               ; e8 a2 9c
    1157611579    add sp, strict byte 00006h                ; 83 c4 06
    1157711580    mov bx, dx                                ; 89 d3
    1157811581    test bx, bx                               ; 85 db
    11579     jbe short 07d53h                          ; 76 17
     11582    jbe short 07d58h                          ; 76 17
    1158011583    push bx                                   ; 53
    1158111584    push 00b19h                               ; 68 19 0b
    1158211585    push strict byte 00002h                   ; 6a 02
    11583     call 019dah                               ; e8 95 9c
     11586    call 019dah                               ; e8 90 9c
    1158411587    add sp, strict byte 00006h                ; 83 c4 06
    1158511588    xor dx, dx                                ; 31 d2
    1158611589    mov ax, strict word 00040h                ; b8 40 00
    11587     call 078bbh                               ; e8 6b fb
     11590    call 078c0h                               ; e8 6b fb
    1158811591    dec bx                                    ; 4b
    11589     jmp short 07d38h                          ; eb e5
     11592    jmp short 07d3dh                          ; eb e5
    1159011593    push 00a49h                               ; 68 49 0a
    1159111594    push strict byte 00002h                   ; 6a 02
    11592     call 019dah                               ; e8 7f 9c
     11595    call 019dah                               ; e8 7a 9c
    1159311596    add sp, strict byte 00004h                ; 83 c4 04
    1159411597    mov AL, strict byte 034h                  ; b0 34
     
    1160111604    push DS                                   ; 1e
    1160211605    mov ds, ax                                ; 8e d8
    11603     call 0edbfh                               ; e8 4f 70
     11606    call 0edbfh                               ; e8 4a 70
    1160411607    pop DS                                    ; 1f
    1160511608    popad                                     ; 66 61
     
    1160911612    pop bp                                    ; 5d
    1161011613    retn                                      ; c3
    11611 scsi_cmd_data_in_:                           ; 0xf7d7a LB 0xd5
     11614scsi_cmd_data_in_:                           ; 0xf7d7f LB 0xd5
    1161211615    push bp                                   ; 55
    1161311616    mov bp, sp                                ; 89 e5
     
    1162511628    ; sub ah, ah                                ; 2a e4
    1162611629    test AL, strict byte 001h                 ; a8 01
    11627     jne short 07d90h                          ; 75 f7
     11630    jne short 07d95h                          ; 75 f7
    1162811631    cmp byte [bp+004h], 010h                  ; 80 7e 04 10
    11629     jne short 07da3h                          ; 75 04
     11632    jne short 07da8h                          ; 75 04
    1163011633    xor ax, ax                                ; 31 c0
    11631     jmp short 07da7h                          ; eb 04
     11634    jmp short 07dach                          ; eb 04
    1163211635    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    1163311636    mov di, ax                                ; 89 c7
     
    1163711640    shr dx, 1                                 ; d1 ea
    1163811641    rcr ax, 1                                 ; d1 d8
    11639     loop 07db1h                               ; e2 fa
     11642    loop 07db6h                               ; e2 fa
    1164011643    mov cx, ax                                ; 89 c1
    1164111644    and cx, 000f0h                            ; 81 e1 f0 00
     
    1165511658    shr dx, 1                                 ; d1 ea
    1165611659    rcr ax, 1                                 ; d1 d8
    11657     loop 07dd6h                               ; e2 fa
     11660    loop 07ddbh                               ; e2 fa
    1165811661    mov dx, si                                ; 89 f2
    1165911662    out DX, AL                                ; ee
     
    1166111664    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    1166211665    cmp cx, ax                                ; 39 c1
    11663     jnc short 07df7h                          ; 73 0e
     11666    jnc short 07dfch                          ; 73 0e
    1166411667    les di, [bp-00ah]                         ; c4 7e f6
    1166511668    add di, cx                                ; 01 cf
     
    1166811671    out DX, AL                                ; ee
    1166911672    inc cx                                    ; 41
    11670     jmp short 07de1h                          ; eb ea
     11673    jmp short 07de6h                          ; eb ea
    1167111674    mov dx, si                                ; 89 f2
    1167211675    in AL, DX                                 ; ec
     
    1167411677    ; sub ah, ah                                ; 2a e4
    1167511678    test AL, strict byte 001h                 ; a8 01
    11676     jne short 07df7h                          ; 75 f7
     11679    jne short 07dfch                          ; 75 f7
    1167711680    test AL, strict byte 002h                 ; a8 02
    11678     je short 07e12h                           ; 74 0e
     11681    je short 07e17h                           ; 74 0e
    1167911682    lea dx, [si+003h]                         ; 8d 54 03
    1168011683    xor al, al                                ; 30 c0
     
    1168411687    ; sub ah, ah                                ; 2a e4
    1168511688    mov di, strict word 00004h                ; bf 04 00
    11686     jmp short 07e44h                          ; eb 32
     11689    jmp short 07e49h                          ; eb 32
    1168711690    lea dx, [si+001h]                         ; 8d 54 01
    1168811691    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    11689     jne short 07e21h                          ; 75 06
     11692    jne short 07e26h                          ; 75 06
    1169011693    cmp bx, 08000h                            ; 81 fb 00 80
    11691     jbe short 07e3bh                          ; 76 1a
     11694    jbe short 07e40h                          ; 76 1a
    1169211695    mov cx, 08000h                            ; b9 00 80
    1169311696    les di, [bp+006h]                         ; c4 7e 06
     
    1169811701    add ax, 00800h                            ; 05 00 08
    1169911702    mov word [bp+008h], ax                    ; 89 46 08
    11700     jmp short 07e12h                          ; eb d7
     11703    jmp short 07e17h                          ; eb d7
    1170111704    mov cx, bx                                ; 89 d9
    1170211705    les di, [bp+006h]                         ; c4 7e 06
     
    1170911712    pop bp                                    ; 5d
    1171011713    retn 0000ah                               ; c2 0a 00
    11711 scsi_cmd_data_out_:                          ; 0xf7e4f LB 0xd5
     11714scsi_cmd_data_out_:                          ; 0xf7e54 LB 0xd5
    1171211715    push bp                                   ; 55
    1171311716    mov bp, sp                                ; 89 e5
     
    1172511728    ; sub ah, ah                                ; 2a e4
    1172611729    test AL, strict byte 001h                 ; a8 01
    11727     jne short 07e65h                          ; 75 f7
     11730    jne short 07e6ah                          ; 75 f7
    1172811731    cmp byte [bp+004h], 010h                  ; 80 7e 04 10
    11729     jne short 07e78h                          ; 75 04
     11732    jne short 07e7dh                          ; 75 04
    1173011733    xor ax, ax                                ; 31 c0
    11731     jmp short 07e7ch                          ; eb 04
     11734    jmp short 07e81h                          ; eb 04
    1173211735    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    1173311736    mov si, ax                                ; 89 c6
     
    1173711740    shr dx, 1                                 ; d1 ea
    1173811741    rcr ax, 1                                 ; d1 d8
    11739     loop 07e86h                               ; e2 fa
     11742    loop 07e8bh                               ; e2 fa
    1174011743    mov cx, ax                                ; 89 c1
    1174111744    and cx, 000f0h                            ; 81 e1 f0 00
     
    1175511758    shr dx, 1                                 ; d1 ea
    1175611759    rcr ax, 1                                 ; d1 d8
    11757     loop 07eabh                               ; e2 fa
     11760    loop 07eb0h                               ; e2 fa
    1175811761    mov dx, di                                ; 89 fa
    1175911762    out DX, AL                                ; ee
     
    1176111764    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    1176211765    cmp cx, ax                                ; 39 c1
    11763     jnc short 07ecch                          ; 73 0e
     11766    jnc short 07ed1h                          ; 73 0e
    1176411767    les si, [bp-00ah]                         ; c4 76 f6
    1176511768    add si, cx                                ; 01 ce
     
    1176811771    out DX, AL                                ; ee
    1176911772    inc cx                                    ; 41
    11770     jmp short 07eb6h                          ; eb ea
     11773    jmp short 07ebbh                          ; eb ea
    1177111774    lea dx, [di+001h]                         ; 8d 55 01
    1177211775    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    11773     jne short 07edbh                          ; 75 06
     11776    jne short 07ee0h                          ; 75 06
    1177411777    cmp bx, 08000h                            ; 81 fb 00 80
    11775     jbe short 07ef6h                          ; 76 1b
     11778    jbe short 07efbh                          ; 76 1b
    1177611779    mov cx, 08000h                            ; b9 00 80
    1177711780    les si, [bp+006h]                         ; c4 76 06
     
    1178311786    add ax, 00800h                            ; 05 00 08
    1178411787    mov word [bp+008h], ax                    ; 89 46 08
    11785     jmp short 07ecch                          ; eb d6
     11788    jmp short 07ed1h                          ; eb d6
    1178611789    mov cx, bx                                ; 89 d9
    1178711790    les si, [bp+006h]                         ; c4 76 06
     
    1179311796    ; sub ah, ah                                ; 2a e4
    1179411797    test AL, strict byte 001h                 ; a8 01
    11795     jne short 07efeh                          ; 75 f7
     11798    jne short 07f03h                          ; 75 f7
    1179611799    test AL, strict byte 002h                 ; a8 02
    11797     je short 07f19h                           ; 74 0e
     11800    je short 07f1eh                           ; 74 0e
    1179811801    lea dx, [di+003h]                         ; 8d 55 03
    1179911802    xor al, al                                ; 30 c0
     
    1180311806    ; sub ah, ah                                ; 2a e4
    1180411807    mov ax, strict word 00004h                ; b8 04 00
    11805     jmp short 07f1bh                          ; eb 02
     11808    jmp short 07f20h                          ; eb 02
    1180611809    xor ax, ax                                ; 31 c0
    1180711810    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1181011813    pop bp                                    ; 5d
    1181111814    retn 0000ah                               ; c2 0a 00
    11812 @scsi_read_sectors:                          ; 0xf7f24 LB 0xdb
     11815@scsi_read_sectors:                          ; 0xf7f29 LB 0xdb
    1181311816    push bp                                   ; 55
    1181411817    mov bp, sp                                ; 89 e5
     
    1182211825    mov byte [bp-006h], al                    ; 88 46 fa
    1182311826    cmp AL, strict byte 004h                  ; 3c 04
    11824     jbe short 07f52h                          ; 76 13
     11827    jbe short 07f57h                          ; 76 13
    1182511828    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    1182611829    push ax                                   ; 50
     
    1182811831    push 00b30h                               ; 68 30 0b
    1182911832    push strict byte 00007h                   ; 6a 07
    11830     call 019dah                               ; e8 8b 9a
     11833    call 019dah                               ; e8 86 9a
    1183111834    add sp, strict byte 00008h                ; 83 c4 08
    1183211835    mov es, [bp+006h]                         ; 8e 46 06
     
    1186711870    sal word [bp-00ah], 1                     ; d1 66 f6
    1186811871    rcl word [bp-008h], 1                     ; d1 56 f8
    11869     loop 07fbbh                               ; e2 f8
     11872    loop 07fc0h                               ; e2 f8
    1187011873    push dword [bp-00ah]                      ; 66 ff 76 f6
    1187111874    db  066h, 026h, 0ffh, 074h, 008h
     
    1187511878    mov cx, ss                                ; 8c d1
    1187611879    lea bx, [bp-01ah]                         ; 8d 5e e6
    11877     call 07d7ah                               ; e8 a2 fd
     11880    call 07d7fh                               ; e8 a2 fd
    1187811881    mov ah, al                                ; 88 c4
    1187911882    test al, al                               ; 84 c0
    11880     jne short 07ff3h                          ; 75 15
     11883    jne short 07ff8h                          ; 75 15
    1188111884    mov es, [bp+006h]                         ; 8e 46 06
    1188211885    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1189111894    pop bp                                    ; 5d
    1189211895    retn 00004h                               ; c2 04 00
    11893 @scsi_write_sectors:                         ; 0xf7fff LB 0xdb
     11896@scsi_write_sectors:                         ; 0xf8004 LB 0xdb
    1189411897    push bp                                   ; 55
    1189511898    mov bp, sp                                ; 89 e5
     
    1190311906    mov byte [bp-006h], al                    ; 88 46 fa
    1190411907    cmp AL, strict byte 004h                  ; 3c 04
    11905     jbe short 0802dh                          ; 76 13
     11908    jbe short 08032h                          ; 76 13
    1190611909    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    1190711910    push ax                                   ; 50
     
    1190911912    push 00b30h                               ; 68 30 0b
    1191011913    push strict byte 00007h                   ; 6a 07
    11911     call 019dah                               ; e8 b0 99
     11914    call 019dah                               ; e8 ab 99
    1191211915    add sp, strict byte 00008h                ; 83 c4 08
    1191311916    mov es, [bp+006h]                         ; 8e 46 06
     
    1194811951    sal word [bp-00ah], 1                     ; d1 66 f6
    1194911952    rcl word [bp-008h], 1                     ; d1 56 f8
    11950     loop 08096h                               ; e2 f8
     11953    loop 0809bh                               ; e2 f8
    1195111954    push dword [bp-00ah]                      ; 66 ff 76 f6
    1195211955    db  066h, 026h, 0ffh, 074h, 008h
     
    1195611959    mov cx, ss                                ; 8c d1
    1195711960    lea bx, [bp-01ah]                         ; 8d 5e e6
    11958     call 07e4fh                               ; e8 9c fd
     11961    call 07e54h                               ; e8 9c fd
    1195911962    mov ah, al                                ; 88 c4
    1196011963    test al, al                               ; 84 c0
    11961     jne short 080ceh                          ; 75 15
     11964    jne short 080d3h                          ; 75 15
    1196211965    mov es, [bp+006h]                         ; 8e 46 06
    1196311966    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1197211975    pop bp                                    ; 5d
    1197311976    retn 00004h                               ; c2 04 00
    11974 scsi_cmd_packet_:                            ; 0xf80da LB 0x166
     11977scsi_cmd_packet_:                            ; 0xf80df LB 0x166
    1197511978    push bp                                   ; 55
    1197611979    mov bp, sp                                ; 89 e5
     
    1198411987    mov dx, strict word 0000eh                ; ba 0e 00
    1198511988    mov ax, strict word 00040h                ; b8 40 00
    11986     call 016d4h                               ; e8 de 95
     11989    call 016d4h                               ; e8 d9 95
    1198711990    mov si, 00122h                            ; be 22 01
    1198811991    mov word [bp-00eh], ax                    ; 89 46 f2
    1198911992    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    11990     jne short 08121h                          ; 75 1f
    11991     mov bx, 00da6h                            ; bb a6 0d
     11993    jne short 08126h                          ; 75 1f
     11994    mov bx, 00da4h                            ; bb a4 0d
    1199211995    mov cx, ds                                ; 8c d9
    1199311996    mov ax, strict word 00004h                ; b8 04 00
    11994     call 01999h                               ; e8 8c 98
     11997    call 01999h                               ; e8 87 98
    1199511998    push 00b62h                               ; 68 62 0b
    1199611999    push 00b72h                               ; 68 72 0b
    1199712000    push strict byte 00004h                   ; 6a 04
    11998     call 019dah                               ; e8 c2 98
     12001    call 019dah                               ; e8 bd 98
    1199912002    add sp, strict byte 00006h                ; 83 c4 06
    1200012003    mov dx, strict word 00001h                ; ba 01 00
    12001     jmp near 08235h                           ; e9 14 01
     12004    jmp near 0823ah                           ; e9 14 01
    1200212005    sub di, strict byte 00008h                ; 83 ef 08
    1200312006    sal di, 002h                              ; c1 e7 02
     
    1201312016    ; sub ah, ah                                ; 2a e4
    1201412017    test AL, strict byte 001h                 ; a8 01
    12015     jne short 0813dh                          ; 75 f7
     12018    jne short 08142h                          ; 75 f7
    1201612019    xor ax, ax                                ; 31 c0
    1201712020    mov dx, word [bp+006h]                    ; 8b 56 06
     
    1202912032    shr dx, 1                                 ; d1 ea
    1203012033    rcr ax, 1                                 ; d1 d8
    12031     loop 08168h                               ; e2 fa
     12034    loop 0816dh                               ; e2 fa
    1203212035    and ax, 000f0h                            ; 25 f0 00
    1203312036    movzx cx, byte [bp-006h]                  ; 0f b6 4e fa
     
    1204712050    shr dx, 1                                 ; d1 ea
    1204812051    rcr ax, 1                                 ; d1 d8
    12049     loop 0818fh                               ; e2 fa
     12052    loop 08194h                               ; e2 fa
    1205012053    mov dx, bx                                ; 89 da
    1205112054    out DX, AL                                ; ee
     
    1205312056    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    1205412057    cmp cx, ax                                ; 39 c1
    12055     jnc short 081b0h                          ; 73 0e
     12058    jnc short 081b5h                          ; 73 0e
    1205612059    les di, [bp-00ch]                         ; c4 7e f4
    1205712060    add di, cx                                ; 01 cf
     
    1206012063    out DX, AL                                ; ee
    1206112064    inc cx                                    ; 41
    12062     jmp short 0819ah                          ; eb ea
     12065    jmp short 0819fh                          ; eb ea
    1206312066    mov dx, bx                                ; 89 da
    1206412067    in AL, DX                                 ; ec
     
    1206612069    ; sub ah, ah                                ; 2a e4
    1206712070    test AL, strict byte 001h                 ; a8 01
    12068     jne short 081b0h                          ; 75 f7
     12071    jne short 081b5h                          ; 75 f7
    1206912072    test AL, strict byte 002h                 ; a8 02
    12070     je short 081cbh                           ; 74 0e
     12073    je short 081d0h                           ; 74 0e
    1207112074    lea dx, [bx+003h]                         ; 8d 57 03
    1207212075    xor al, al                                ; 30 c0
     
    1207612079    ; sub ah, ah                                ; 2a e4
    1207712080    mov dx, strict word 00003h                ; ba 03 00
    12078     jmp short 08235h                          ; eb 6a
     12081    jmp short 0823ah                          ; eb 6a
    1207912082    mov ax, word [bp+004h]                    ; 8b 46 04
    1208012083    test ax, ax                               ; 85 c0
    12081     je short 081dah                           ; 74 08
     12084    je short 081dfh                           ; 74 08
    1208212085    lea dx, [bx+001h]                         ; 8d 57 01
    1208312086    mov cx, ax                                ; 89 c1
    1208412087    in AL, DX                                 ; ec
    12085     loop 081d7h                               ; e2 fd
     12088    loop 081dch                               ; e2 fd
    1208612089    mov ax, word [bp+006h]                    ; 8b 46 06
    1208712090    mov es, [bp-00eh]                         ; 8e 46 f2
     
    1209112094    lea ax, [bx+001h]                         ; 8d 47 01
    1209212095    cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
    12093     jne short 081fbh                          ; 75 07
     12096    jne short 08200h                          ; 75 07
    1209412097    cmp word [bp+006h], 08000h                ; 81 7e 06 00 80
    12095     jbe short 08218h                          ; 76 1d
     12098    jbe short 0821dh                          ; 76 1d
    1209612099    mov dx, ax                                ; 89 c2
    1209712100    mov cx, 08000h                            ; b9 00 80
     
    1210312106    add ax, 00800h                            ; 05 00 08
    1210412107    mov word [bp+00eh], ax                    ; 89 46 0e
    12105     jmp short 081ebh                          ; eb d3
     12108    jmp short 081f0h                          ; eb d3
    1210612109    mov dx, ax                                ; 89 c2
    1210712110    mov cx, word [bp+006h]                    ; 8b 4e 06
     
    1211012113    mov es, [bp-00eh]                         ; 8e 46 f2
    1211112114    cmp word [es:si+020h], strict byte 00000h ; 26 83 7c 20 00
    12112     je short 08233h                           ; 74 07
     12115    je short 08238h                           ; 74 07
    1211312116    mov cx, word [es:si+020h]                 ; 26 8b 4c 20
    1211412117    in AL, DX                                 ; ec
    12115     loop 08230h                               ; e2 fd
     12118    loop 08235h                               ; e2 fd
    1211612119    xor dx, dx                                ; 31 d2
    1211712120    mov ax, dx                                ; 89 d0
     
    1212112124    pop bp                                    ; 5d
    1212212125    retn 0000ch                               ; c2 0c 00
    12123 scsi_enumerate_attached_devices_:            ; 0xf8240 LB 0x482
     12126scsi_enumerate_attached_devices_:            ; 0xf8245 LB 0x482
    1212412127    push bp                                   ; 55
    1212512128    mov bp, sp                                ; 89 e5
     
    1213312136    mov dx, strict word 0000eh                ; ba 0e 00
    1213412137    mov ax, strict word 00040h                ; b8 40 00
    12135     call 016d4h                               ; e8 7e 94
     12138    call 016d4h                               ; e8 79 94
    1213612139    mov di, 00122h                            ; bf 22 01
    1213712140    mov word [bp-02eh], ax                    ; 89 46 d2
    1213812141    mov word [bp-01eh], strict word 00000h    ; c7 46 e2 00 00
    12139     jmp near 08644h                           ; e9 e0 03
     12142    jmp near 08649h                           ; e9 e0 03
    1214012143    cmp AL, strict byte 004h                  ; 3c 04
    12141     jnc near 086b8h                           ; 0f 83 4e 04
     12144    jnc near 086bdh                           ; 0f 83 4e 04
    1214212145    mov cx, strict word 00010h                ; b9 10 00
    1214312146    xor bx, bx                                ; 31 db
    1214412147    mov dx, ss                                ; 8c d2
    1214512148    lea ax, [bp-046h]                         ; 8d 46 ba
    12146     call 09f20h                               ; e8 a9 1c
     12149    call 09f20h                               ; e8 a4 1c
    1214712150    mov byte [bp-046h], 09eh                  ; c6 46 ba 9e
    1214812151    mov byte [bp-045h], 010h                  ; c6 46 bb 10
     
    1215712160    lea bx, [bp-046h]                         ; 8d 5e ba
    1215812161    mov ax, word [bp-00248h]                  ; 8b 86 b8 fd
    12159     call 07d7ah                               ; e8 dc fa
     12162    call 07d7fh                               ; e8 dc fa
    1216012163    test al, al                               ; 84 c0
    12161     je short 082b0h                           ; 74 0e
     12164    je short 082b5h                           ; 74 0e
    1216212165    push 00b92h                               ; 68 92 0b
    1216312166    push 00bcbh                               ; 68 cb 0b
    1216412167    push strict byte 00007h                   ; 6a 07
    12165     call 019dah                               ; e8 2d 97
     12168    call 019dah                               ; e8 28 97
    1216612169    add sp, strict byte 00006h                ; 83 c4 06
    1216712170    mov ax, word [bp-00240h]                  ; 8b 86 c0 fd
     
    1219312196    sal ax, 1                                 ; d1 e0
    1219412197    rcl dx, 1                                 ; d1 d2
    12195     loop 082feh                               ; e2 fa
     12198    loop 08303h                               ; e2 fa
    1219612199    or bx, ax                                 ; 09 c3
    1219712200    or dx, si                                 ; 09 f2
     
    1220012203    mov word [bp-024h], bx                    ; 89 5e dc
    1220112204    test dx, dx                               ; 85 d2
    12202     jne short 0831ch                          ; 75 06
     12205    jne short 08321h                          ; 75 06
    1220312206    cmp bx, 00200h                            ; 81 fb 00 02
    12204     je short 0833ch                           ; 74 20
    12205     mov bx, 00da6h                            ; bb a6 0d
     12207    je short 08341h                           ; 74 20
     12208    mov bx, 00da4h                            ; bb a4 0d
    1220612209    mov cx, ds                                ; 8c d9
    1220712210    mov ax, strict word 00004h                ; b8 04 00
    12208     call 01999h                               ; e8 72 96
     12211    call 01999h                               ; e8 6d 96
    1220912212    push dx                                   ; 52
    1221012213    push word [bp-024h]                       ; ff 76 dc
     
    1221212215    push 00beah                               ; 68 ea 0b
    1221312216    push strict byte 00004h                   ; 6a 04
    12214     call 019dah                               ; e8 a4 96
     12217    call 019dah                               ; e8 9f 96
    1221512218    add sp, strict byte 0000ah                ; 83 c4 0a
    12216     jmp near 0863bh                           ; e9 ff 02
     12219    jmp near 08640h                           ; e9 ff 02
    1221712220    mov al, byte [bp-00ch]                    ; 8a 46 f4
    1221812221    cmp AL, strict byte 001h                  ; 3c 01
    12219     jc short 0834fh                           ; 72 0c
    12220     jbe short 08357h                          ; 76 12
     12222    jc short 08354h                           ; 72 0c
     12223    jbe short 0835ch                          ; 76 12
    1222112224    cmp AL, strict byte 003h                  ; 3c 03
    12222     je short 0835fh                           ; 74 16
     12225    je short 08364h                           ; 74 16
    1222312226    cmp AL, strict byte 002h                  ; 3c 02
    12224     je short 0835bh                           ; 74 0e
    12225     jmp short 083a8h                          ; eb 59
     12227    je short 08360h                           ; 74 0e
     12228    jmp short 083adh                          ; eb 59
    1222612229    test al, al                               ; 84 c0
    12227     jne short 083a8h                          ; 75 55
     12230    jne short 083adh                          ; 75 55
    1222812231    mov BL, strict byte 090h                  ; b3 90
    12229     jmp short 08361h                          ; eb 0a
     12232    jmp short 08366h                          ; eb 0a
    1223012233    mov BL, strict byte 098h                  ; b3 98
    12231     jmp short 08361h                          ; eb 06
     12234    jmp short 08366h                          ; eb 06
    1223212235    mov BL, strict byte 0a0h                  ; b3 a0
    12233     jmp short 08361h                          ; eb 02
     12236    jmp short 08366h                          ; eb 02
    1223412237    mov BL, strict byte 0a8h                  ; b3 a8
    1223512238    mov al, bl                                ; 88 d8
     
    1223712240    movzx cx, al                              ; 0f b6 c8
    1223812241    mov ax, cx                                ; 89 c8
    12239     call 01714h                               ; e8 a7 93
     12242    call 01714h                               ; e8 a2 93
    1224012243    test al, al                               ; 84 c0
    12241     je short 083a8h                           ; 74 37
     12244    je short 083adh                           ; 74 37
    1224212245    mov al, bl                                ; 88 d8
    1224312246    db  0feh, 0c0h
    1224412247    ; inc al                                    ; fe c0
    1224512248    xor ah, ah                                ; 30 e4
    12246     call 01714h                               ; e8 9a 93
     12249    call 01714h                               ; e8 95 93
    1224712250    movzx dx, al                              ; 0f b6 d0
    1224812251    sal dx, 008h                              ; c1 e2 08
    1224912252    movzx ax, bl                              ; 0f b6 c3
    12250     call 01714h                               ; e8 8e 93
     12253    call 01714h                               ; e8 89 93
    1225112254    xor ah, ah                                ; 30 e4
    1225212255    add ax, dx                                ; 01 d0
     
    1225612259    add AL, strict byte 002h                  ; 04 02
    1225712260    xor ah, ah                                ; 30 e4
    12258     call 01714h                               ; e8 7e 93
     12261    call 01714h                               ; e8 79 93
    1225912262    xor ah, ah                                ; 30 e4
    1226012263    mov word [bp-034h], ax                    ; 89 46 cc
    1226112264    mov ax, cx                                ; 89 c8
    12262     call 01714h                               ; e8 74 93
     12265    call 01714h                               ; e8 6f 93
    1226312266    xor ah, ah                                ; 30 e4
    1226412267    mov word [bp-032h], ax                    ; 89 46 ce
    12265     jmp near 08491h                           ; e9 e9 00
     12268    jmp near 08496h                           ; e9 e9 00
    1226612269    mov ax, word [bp-010h]                    ; 8b 46 f0
    1226712270    mov bx, word [bp-030h]                    ; 8b 5e d0
     
    1226912272    mov dx, word [bp-016h]                    ; 8b 56 ea
    1227012273    mov si, strict word 0000ch                ; be 0c 00
    12271     call 09f00h                               ; e8 46 1b
     12274    call 09f00h                               ; e8 41 1b
    1227212275    mov word [bp-018h], ax                    ; 89 46 e8
    1227312276    mov word [bp-014h], bx                    ; 89 5e ec
     
    1227612279    mov ax, word [bp-010h]                    ; 8b 46 f0
    1227712280    test ax, ax                               ; 85 c0
    12278     jnbe short 083e3h                         ; 77 16
    12279     jne near 08456h                           ; 0f 85 85 00
     12281    jnbe short 083e8h                         ; 77 16
     12282    jne near 0845bh                           ; 0f 85 85 00
    1228012283    cmp word [bp-030h], strict byte 00000h    ; 83 7e d0 00
    12281     jnbe short 083e3h                         ; 77 0c
    12282     jne near 08456h                           ; 0f 85 7b 00
     12284    jnbe short 083e8h                         ; 77 0c
     12285    jne near 0845bh                           ; 0f 85 7b 00
    1228312286    cmp word [bp-012h], strict byte 00040h    ; 83 7e ee 40
    12284     jnbe short 083e3h                         ; 77 02
    12285     jne short 08456h                          ; 75 73
     12287    jnbe short 083e8h                         ; 77 02
     12288    jne short 0845bh                          ; 75 73
    1228612289    mov dword [bp-034h], strict dword 0003f00ffh ; 66 c7 46 cc ff 00 3f 00
    1228712290    mov bx, word [bp-030h]                    ; 8b 5e d0
     
    1228912292    mov dx, word [bp-016h]                    ; 8b 56 ea
    1229012293    mov si, strict word 00006h                ; be 06 00
    12291     call 09f00h                               ; e8 06 1b
     12294    call 09f00h                               ; e8 01 1b
    1229212295    mov si, word [bp-020h]                    ; 8b 76 e0
    1229312296    add si, dx                                ; 01 d6
     
    1230712310    mov dx, si                                ; 89 f2
    1230812311    mov si, strict word 00008h                ; be 08 00
    12309     call 09f00h                               ; e8 d6 1a
     12312    call 09f00h                               ; e8 d1 1a
    1231012313    mov word [bp-022h], bx                    ; 89 5e de
    1231112314    mov word [bp-02ch], cx                    ; 89 4e d4
     
    1231612319    mov dx, word [bp-02ah]                    ; 8b 56 d6
    1231712320    mov si, strict word 00010h                ; be 10 00
    12318     call 09f00h                               ; e8 bb 1a
     12321    call 09f00h                               ; e8 b6 1a
    1231912322    mov si, word [bp-01ah]                    ; 8b 76 e6
    1232012323    add si, dx                                ; 01 d6
     
    1232312326    mov ax, word [bp-022h]                    ; 8b 46 de
    1232412327    adc ax, bx                                ; 11 d8
    12325     jmp short 08491h                          ; eb 3b
     12328    jmp short 08496h                          ; eb 3b
    1232612329    test ax, ax                               ; 85 c0
    12327     jnbe short 0846ch                         ; 77 12
    12328     jne short 08476h                          ; 75 1a
     12330    jnbe short 08471h                         ; 77 12
     12331    jne short 0847bh                          ; 75 1a
    1232912332    cmp word [bp-030h], strict byte 00000h    ; 83 7e d0 00
    12330     jnbe short 0846ch                         ; 77 0a
    12331     jne short 08476h                          ; 75 12
     12333    jnbe short 08471h                         ; 77 0a
     12334    jne short 0847bh                          ; 75 12
    1233212335    cmp word [bp-012h], strict byte 00020h    ; 83 7e ee 20
    12333     jnbe short 0846ch                         ; 77 02
    12334     jne short 08476h                          ; 75 0a
     12336    jnbe short 08471h                         ; 77 02
     12337    jne short 0847bh                          ; 75 0a
    1233512338    mov dword [bp-034h], strict dword 000200080h ; 66 c7 46 cc 80 00 20 00
    12336     jmp short 0848dh                          ; eb 17
     12339    jmp short 08492h                          ; eb 17
    1233712340    mov dword [bp-034h], strict dword 000200040h ; 66 c7 46 cc 40 00 20 00
    1233812341    mov bx, word [bp-030h]                    ; 8b 5e d0
     
    1234012343    mov dx, word [bp-016h]                    ; 8b 56 ea
    1234112344    mov si, strict word 0000bh                ; be 0b 00
    12342     call 09f00h                               ; e8 73 1a
     12345    call 09f00h                               ; e8 6e 1a
    1234312346    mov si, dx                                ; 89 d6
    1234412347    mov dx, cx                                ; 89 ca
     
    1237312376    mov word [es:bx+034h], ax                 ; 26 89 47 34
    1237412377    test dx, dx                               ; 85 d2
    12375     jne short 084feh                          ; 75 06
     12378    jne short 08503h                          ; 75 06
    1237612379    cmp si, 00400h                            ; 81 fe 00 04
    12377     jbe short 0850ch                          ; 76 0e
     12380    jbe short 08511h                          ; 76 0e
    1237812381    mov word [es:bx+02ch], 00400h             ; 26 c7 47 2c 00 04
    1237912382    mov word [es:bx+032h], 00400h             ; 26 c7 47 32 00 04
    12380     jmp short 08514h                          ; eb 08
     12383    jmp short 08519h                          ; eb 08
    1238112384    mov word [es:bx+02ch], si                 ; 26 89 77 2c
    1238212385    mov word [es:bx+032h], si                 ; 26 89 77 32
    12383     mov bx, 00da6h                            ; bb a6 0d
     12386    mov bx, 00da4h                            ; bb a4 0d
    1238412387    mov cx, ds                                ; 8c d9
    1238512388    mov ax, strict word 00004h                ; b8 04 00
    12386     call 01999h                               ; e8 7a 94
     12389    call 01999h                               ; e8 75 94
    1238712390    push word [bp-010h]                       ; ff 76 f0
    1238812391    push word [bp-030h]                       ; ff 76 d0
     
    1239712400    push 00c18h                               ; 68 18 0c
    1239812401    push strict byte 00004h                   ; 6a 04
    12399     call 019dah                               ; e8 99 94
     12402    call 019dah                               ; e8 94 94
    1240012403    add sp, strict byte 00018h                ; 83 c4 18
    1240112404    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
     
    1242212425    mov dx, strict word 00075h                ; ba 75 00
    1242312426    mov ax, strict word 00040h                ; b8 40 00
    12424     call 016b8h                               ; e8 27 91
     12427    call 016b8h                               ; e8 22 91
    1242512428    db  0feh, 0c0h
    1242612429    ; inc al                                    ; fe c0
     
    1242812431    mov dx, strict word 00075h                ; ba 75 00
    1242912432    mov ax, strict word 00040h                ; b8 40 00
    12430     call 016c6h                               ; e8 27 91
     12433    call 016c6h                               ; e8 22 91
    1243112434    inc byte [bp-00ch]                        ; fe 46 f4
    12432     jmp near 08630h                           ; e9 8b 00
    12433     mov bx, 00da6h                            ; bb a6 0d
     12435    jmp near 08635h                           ; e9 8b 00
     12436    mov bx, 00da4h                            ; bb a4 0d
    1243412437    mov cx, ds                                ; 8c d9
    1243512438    mov ax, strict word 00004h                ; b8 04 00
    12436     call 01999h                               ; e8 e9 93
     12439    call 01999h                               ; e8 e4 93
    1243712440    push word [bp-01eh]                       ; ff 76 e2
    1243812441    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     
    1244012443    push 00c46h                               ; 68 46 0c
    1244112444    push strict byte 00004h                   ; 6a 04
    12442     call 019dah                               ; e8 1a 94
     12445    call 019dah                               ; e8 15 94
    1244312446    add sp, strict byte 00008h                ; 83 c4 08
    1244412447    mov al, byte [bp-00ch]                    ; 8a 46 f4
     
    1248112484    inc word [bp-01eh]                        ; ff 46 e2
    1248212485    cmp word [bp-01eh], strict byte 00010h    ; 83 7e e2 10
    12483     jnl short 086b8h                          ; 7d 74
     12486    jnl short 086bdh                          ; 7d 74
    1248412487    mov byte [bp-046h], 012h                  ; c6 46 ba 12
    1248512488    xor al, al                                ; 30 c0
     
    1249812501    lea bx, [bp-046h]                         ; 8d 5e ba
    1249912502    mov ax, word [bp-00248h]                  ; 8b 86 b8 fd
    12500     call 07d7ah                               ; e8 05 f7
     12503    call 07d7fh                               ; e8 05 f7
    1250112504    test al, al                               ; 84 c0
    12502     je short 08687h                           ; 74 0e
     12505    je short 0868ch                           ; 74 0e
    1250312506    push 00b92h                               ; 68 92 0b
    1250412507    push 00bb2h                               ; 68 b2 0b
    1250512508    push strict byte 00007h                   ; 6a 07
    12506     call 019dah                               ; e8 56 93
     12509    call 019dah                               ; e8 51 93
    1250712510    add sp, strict byte 00006h                ; 83 c4 06
    1250812511    mov es, [bp-02eh]                         ; 8e 46 d2
     
    1251012513    mov byte [bp-00ch], al                    ; 88 46 f4
    1251112514    test byte [bp-00246h], 0e0h               ; f6 86 ba fd e0
    12512     jne short 086a2h                          ; 75 09
     12515    jne short 086a7h                          ; 75 09
    1251312516    test byte [bp-00246h], 01fh               ; f6 86 ba fd 1f
    12514     je near 08264h                            ; 0f 84 c2 fb
     12517    je near 08269h                            ; 0f 84 c2 fb
    1251512518    test byte [bp-00246h], 0e0h               ; f6 86 ba fd e0
    12516     jne short 08630h                          ; 75 87
     12519    jne short 08635h                          ; 75 87
    1251712520    mov al, byte [bp-00246h]                  ; 8a 86 ba fd
    1251812521    and AL, strict byte 01fh                  ; 24 1f
    1251912522    cmp AL, strict byte 005h                  ; 3c 05
    12520     je near 085a5h                            ; 0f 84 f0 fe
    12521     jmp near 08630h                           ; e9 78 ff
     12523    je near 085aah                            ; 0f 84 f0 fe
     12524    jmp near 08635h                           ; e9 78 ff
    1252212525    lea sp, [bp-00ah]                         ; 8d 66 f6
    1252312526    pop di                                    ; 5f
     
    1252812531    pop bp                                    ; 5d
    1252912532    retn                                      ; c3
    12530 _scsi_init:                                  ; 0xf86c2 LB 0x66
     12533_scsi_init:                                  ; 0xf86c7 LB 0x66
    1253112534    push bp                                   ; 55
    1253212535    mov bp, sp                                ; 89 e5
    1253312536    mov dx, strict word 0000eh                ; ba 0e 00
    1253412537    mov ax, strict word 00040h                ; b8 40 00
    12535     call 016d4h                               ; e8 06 90
     12538    call 016d4h                               ; e8 01 90
    1253612539    mov bx, 00122h                            ; bb 22 01
    1253712540    mov es, ax                                ; 8e c0
     
    1254412547    ; sub ah, ah                                ; 2a e4
    1254512548    cmp AL, strict byte 055h                  ; 3c 55
    12546     jne short 086f2h                          ; 75 0c
     12549    jne short 086f7h                          ; 75 0c
    1254712550    xor al, al                                ; 30 c0
    1254812551    mov dx, 00433h                            ; ba 33 04
    1254912552    out DX, AL                                ; ee
    1255012553    mov ax, 00430h                            ; b8 30 04
    12551     call 08240h                               ; e8 4e fb
     12554    call 08245h                               ; e8 4e fb
    1255212555    mov AL, strict byte 055h                  ; b0 55
    1255312556    mov dx, 00436h                            ; ba 36 04
     
    1255712560    ; sub ah, ah                                ; 2a e4
    1255812561    cmp AL, strict byte 055h                  ; 3c 55
    12559     jne short 0870bh                          ; 75 0c
     12562    jne short 08710h                          ; 75 0c
    1256012563    xor al, al                                ; 30 c0
    1256112564    mov dx, 00437h                            ; ba 37 04
    1256212565    out DX, AL                                ; ee
    1256312566    mov ax, 00434h                            ; b8 34 04
    12564     call 08240h                               ; e8 35 fb
     12567    call 08245h                               ; e8 35 fb
    1256512568    mov AL, strict byte 055h                  ; b0 55
    1256612569    mov dx, 0043ah                            ; ba 3a 04
     
    1257012573    ; sub ah, ah                                ; 2a e4
    1257112574    cmp AL, strict byte 055h                  ; 3c 55
    12572     jne short 08724h                          ; 75 0c
     12575    jne short 08729h                          ; 75 0c
    1257312576    xor al, al                                ; 30 c0
    1257412577    mov dx, 0043bh                            ; ba 3b 04
    1257512578    out DX, AL                                ; ee
    1257612579    mov ax, 00438h                            ; b8 38 04
    12577     call 08240h                               ; e8 1c fb
     12580    call 08245h                               ; e8 1c fb
    1257812581    mov sp, bp                                ; 89 ec
    1257912582    pop bp                                    ; 5d
    1258012583    retn                                      ; c3
    12581 ahci_ctrl_extract_bits_:                     ; 0xf8728 LB 0x1b
     12584ahci_ctrl_extract_bits_:                     ; 0xf872d LB 0x1b
    1258212585    push si                                   ; 56
    1258312586    push bp                                   ; 55
     
    1258712590    and dx, cx                                ; 21 ca
    1258812591    movzx cx, byte [bp+006h]                  ; 0f b6 4e 06
    12589     jcxz 0873eh                               ; e3 06
     12592    jcxz 08743h                               ; e3 06
    1259012593    shr dx, 1                                 ; d1 ea
    1259112594    rcr ax, 1                                 ; d1 d8
    12592     loop 08738h                               ; e2 fa
     12595    loop 0873dh                               ; e2 fa
    1259312596    pop bp                                    ; 5d
    1259412597    pop si                                    ; 5e
    1259512598    retn 00002h                               ; c2 02 00
    12596 ahci_addr_to_phys_:                          ; 0xf8743 LB 0x1e
     12599ahci_addr_to_phys_:                          ; 0xf8748 LB 0x1e
    1259712600    push bx                                   ; 53
    1259812601    push cx                                   ; 51
     
    1260512608    sal ax, 1                                 ; d1 e0
    1260612609    rcl dx, 1                                 ; d1 d2
    12607     loop 08751h                               ; e2 fa
     12610    loop 08756h                               ; e2 fa
    1260812611    xor cx, cx                                ; 31 c9
    1260912612    add ax, bx                                ; 01 d8
     
    1261312616    pop bx                                    ; 5b
    1261412617    retn                                      ; c3
    12615 ahci_port_cmd_sync_:                         ; 0xf8761 LB 0x14b
     12618ahci_port_cmd_sync_:                         ; 0xf8766 LB 0x14b
    1261612619    push bp                                   ; 55
    1261712620    mov bp, sp                                ; 89 e5
     
    1262812631    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
    1262912632    cmp ah, 0ffh                              ; 80 fc ff
    12630     je near 088a4h                            ; 0f 84 20 01
     12633    je near 088a9h                            ; 0f 84 20 01
    1263112634    movzx dx, byte [es:si+00263h]             ; 26 0f b6 94 63 02
    1263212635    xor di, di                                ; 31 ff
     
    1264012643    lea ax, [si+00080h]                       ; 8d 84 80 00
    1264112644    mov dx, cx                                ; 89 ca
    12642     call 08743h                               ; e8 96 ff
     12645    call 08748h                               ; e8 96 ff
    1264312646    mov es, cx                                ; 8e c1
    1264412647    mov word [es:si+008h], ax                 ; 26 89 44 08
     
    1270312706    xchg dx, ax                               ; 92
    1270412707    test dh, 040h                             ; f6 c6 40
    12705     jne short 0883ah                          ; 75 04
     12708    jne short 0883fh                          ; 75 04
    1270612709    test AL, strict byte 001h                 ; a8 01
    12707     je short 0883eh                           ; 74 04
     12710    je short 08843h                           ; 74 04
    1270812711    mov AL, strict byte 001h                  ; b0 01
    12709     jmp short 08840h                          ; eb 02
     12712    jmp short 08845h                          ; eb 02
    1271012713    xor al, al                                ; 30 c0
    1271112714    test al, al                               ; 84 c0
    12712     je short 0880eh                           ; 74 ca
     12715    je short 08813h                           ; 74 ca
    1271312716    movzx di, byte [bp-008h]                  ; 0f b6 7e f8
    1271412717    sal di, 007h                              ; c1 e7 07
     
    1276412767    pop bp                                    ; 5d
    1276512768    retn                                      ; c3
    12766 ahci_cmd_data_:                              ; 0xf88ac LB 0x262
     12769ahci_cmd_data_:                              ; 0xf88b1 LB 0x262
    1276712770    push bp                                   ; 55
    1276812771    mov bp, sp                                ; 89 e5
     
    1278912792    mov ax, 00080h                            ; b8 80 00
    1279012793    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12791     call 09f20h                               ; e8 36 16
     12794    call 09f20h                               ; e8 31 16
    1279212795    mov es, [bp-00ah]                         ; 8e 46 f6
    1279312796    mov word [es:di+00080h], 08027h           ; 26 c7 85 80 00 27 80
     
    1280712810    mov dx, word [es:si]                      ; 26 8b 14
    1280812811    mov si, strict word 00008h                ; be 08 00
    12809     call 09f00h                               ; e8 d2 15
     12812    call 09f00h                               ; e8 cd 15
    1281012813    mov es, [bp-00ah]                         ; 8e 46 f6
    1281112814    mov byte [es:di+00085h], dl               ; 26 88 95 85 00
     
    1281812821    mov dx, word [es:si]                      ; 26 8b 14
    1281912822    mov si, strict word 00010h                ; be 10 00
    12820     call 09f00h                               ; e8 ac 15
     12823    call 09f00h                               ; e8 a7 15
    1282112824    mov es, [bp-00ah]                         ; 8e 46 f6
    1282212825    mov byte [es:di+00086h], dl               ; 26 88 95 86 00
     
    1283012833    mov dx, word [es:si]                      ; 26 8b 14
    1283112834    mov si, strict word 00018h                ; be 18 00
    12832     call 09f00h                               ; e8 80 15
     12835    call 09f00h                               ; e8 7b 15
    1283312836    mov es, [bp-00ah]                         ; 8e 46 f6
    1283412837    mov byte [es:di+00088h], dl               ; 26 88 95 88 00
     
    1284112844    mov dx, word [es:si]                      ; 26 8b 14
    1284212845    mov si, strict word 00020h                ; be 20 00
    12843     call 09f00h                               ; e8 5a 15
     12846    call 09f00h                               ; e8 55 15
    1284412847    mov es, [bp-00ah]                         ; 8e 46 f6
    1284512848    mov byte [es:di+00089h], dl               ; 26 88 95 89 00
     
    1285212855    mov dx, word [es:si]                      ; 26 8b 14
    1285312856    mov si, strict word 00028h                ; be 28 00
    12854     call 09f00h                               ; e8 34 15
     12857    call 09f00h                               ; e8 2f 15
    1285512858    mov es, [bp-00ah]                         ; 8e 46 f6
    1285612859    mov byte [es:di+0008ah], dl               ; 26 88 95 8a 00
     
    1286612869    mov bx, word [bp-010h]                    ; 8b 5e f0
    1286712870    xor cx, cx                                ; 31 c9
    12868     call 09e80h                               ; e8 7f 14
     12871    call 09e80h                               ; e8 7a 14
    1286912872    push dx                                   ; 52
    1287012873    push ax                                   ; 50
     
    1287612879    mov ax, 0026ah                            ; b8 6a 02
    1287712880    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12878     call 09dcfh                               ; e8 b2 13
     12881    call 09dd4h                               ; e8 b2 13
    1287912882    mov es, [bp-00ah]                         ; 8e 46 f6
    1288012883    mov ax, word [es:di+0027eh]               ; 26 8b 85 7e 02
     
    1289712900    mov ax, word [es:bx+020h]                 ; 26 8b 47 20
    1289812901    test ax, ax                               ; 85 c0
    12899     je short 08aabh                           ; 74 39
     12902    je short 08ab0h                           ; 74 39
    1290012903    dec ax                                    ; 48
    1290112904    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1291312916    mov al, byte [bp-008h]                    ; 8a 46 f8
    1291412917    cmp AL, strict byte 035h                  ; 3c 35
    12915     jne short 08ab8h                          ; 75 06
     12918    jne short 08abdh                          ; 75 06
    1291612919    mov byte [bp-008h], 040h                  ; c6 46 f8 40
    12917     jmp short 08acfh                          ; eb 17
     12920    jmp short 08ad4h                          ; eb 17
    1291812921    cmp AL, strict byte 0a0h                  ; 3c a0
    12919     jne short 08acbh                          ; 75 0f
     12922    jne short 08ad0h                          ; 75 0f
    1292012923    or byte [bp-008h], 020h                   ; 80 4e f8 20
    1292112924    les bx, [bp-00eh]                         ; c4 5e f2
    1292212925    or byte [es:bx+00083h], 001h              ; 26 80 8f 83 00 01
    12923     jmp short 08acfh                          ; eb 04
     12926    jmp short 08ad4h                          ; eb 04
    1292412927    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1292512928    or byte [bp-008h], 005h                   ; 80 4e f8 05
     
    1292712930    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1292812931    mov dx, word [bp-00ch]                    ; 8b 56 f4
    12929     call 08761h                               ; e8 81 fc
     12932    call 08766h                               ; e8 81 fc
    1293012933    mov cx, word [bp-00ch]                    ; 8b 4e f4
    1293112934    mov bx, word [bp-00eh]                    ; 8b 5e f2
     
    1293412937    add ax, 0026ah                            ; 05 6a 02
    1293512938    mov dx, cx                                ; 89 ca
    12936     call 09e48h                               ; e8 53 13
     12939    call 09e4dh                               ; e8 53 13
    1293712940    mov es, cx                                ; 8e c1
    1293812941    mov al, byte [es:bx+003h]                 ; 26 8a 47 03
    1293912942    test al, al                               ; 84 c0
    12940     je short 08b04h                           ; 74 05
     12943    je short 08b09h                           ; 74 05
    1294112944    mov ax, strict word 00004h                ; b8 04 00
    12942     jmp short 08b06h                          ; eb 02
     12945    jmp short 08b0bh                          ; eb 02
    1294312946    xor ah, ah                                ; 30 e4
    1294412947    lea sp, [bp-006h]                         ; 8d 66 fa
     
    1294812951    pop bp                                    ; 5d
    1294912952    retn                                      ; c3
    12950 ahci_port_deinit_current_:                   ; 0xf8b0e LB 0x17f
     12953ahci_port_deinit_current_:                   ; 0xf8b13 LB 0x17f
    1295112954    push bp                                   ; 55
    1295212955    mov bp, sp                                ; 89 e5
     
    1296312966    mov byte [bp-00ah], al                    ; 88 46 f6
    1296412967    cmp AL, strict byte 0ffh                  ; 3c ff
    12965     je near 08c84h                            ; 0f 84 52 01
     12968    je near 08c89h                            ; 0f 84 52 01
    1296612969    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    1296712970    sal ax, 007h                              ; c1 e0 07
     
    1300613009    xchg dx, ax                               ; 92
    1300713010    test ax, 0c011h                           ; a9 11 c0
    13008     je short 08b92h                           ; 74 04
     13011    je short 08b97h                           ; 74 04
    1300913012    mov AL, strict byte 001h                  ; b0 01
    13010     jmp short 08b94h                          ; eb 02
     13013    jmp short 08b99h                          ; eb 02
    1301113014    xor al, al                                ; 30 c0
    1301213015    cmp AL, strict byte 001h                  ; 3c 01
    13013     je short 08b66h                           ; 74 ce
     13016    je short 08b6bh                           ; 74 ce
    1301413017    mov cx, strict word 00020h                ; b9 20 00
    1301513018    xor bx, bx                                ; 31 db
    1301613019    mov ax, di                                ; 89 f8
    1301713020    mov dx, word [bp-00ch]                    ; 8b 56 f4
    13018     call 09f20h                               ; e8 7b 13
     13021    call 09f20h                               ; e8 76 13
    1301913022    lea ax, [di+00080h]                       ; 8d 85 80 00
    1302013023    mov cx, strict word 00040h                ; b9 40 00
    1302113024    xor bx, bx                                ; 31 db
    1302213025    mov dx, word [bp-00ch]                    ; 8b 56 f4
    13023     call 09f20h                               ; e8 6c 13
     13026    call 09f20h                               ; e8 67 13
    1302413027    lea ax, [di+00200h]                       ; 8d 85 00 02
    1302513028    mov cx, strict word 00060h                ; b9 60 00
    1302613029    xor bx, bx                                ; 31 db
    1302713030    mov dx, word [bp-00ch]                    ; 8b 56 f4
    13028     call 09f20h                               ; e8 5d 13
     13031    call 09f20h                               ; e8 58 13
    1302913032    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    1303013033    sal ax, 007h                              ; c1 e0 07
     
    1313013133    pop bp                                    ; 5d
    1313113134    retn                                      ; c3
    13132 ahci_port_init_:                             ; 0xf8c8d LB 0x24a
     13135ahci_port_init_:                             ; 0xf8c92 LB 0x24a
    1313313136    push bp                                   ; 55
    1313413137    mov bp, sp                                ; 89 e5
     
    1314013143    mov word [bp-00ah], dx                    ; 89 56 f6
    1314113144    mov byte [bp-008h], bl                    ; 88 5e f8
    13142     call 08b0eh                               ; e8 6d fe
     13145    call 08b13h                               ; e8 6d fe
    1314313146    movzx ax, bl                              ; 0f b6 c3
    1314413147    sal ax, 007h                              ; c1 e0 07
     
    1318713190    xchg dx, ax                               ; 92
    1318813191    test ax, 0c011h                           ; a9 11 c0
    13189     je short 08d10h                           ; 74 04
     13192    je short 08d15h                           ; 74 04
    1319013193    mov AL, strict byte 001h                  ; b0 01
    13191     jmp short 08d12h                          ; eb 02
     13194    jmp short 08d17h                          ; eb 02
    1319213195    xor al, al                                ; 30 c0
    1319313196    cmp AL, strict byte 001h                  ; 3c 01
    13194     je short 08cdch                           ; 74 c6
     13197    je short 08ce1h                           ; 74 c6
    1319513198    mov cx, strict word 00020h                ; b9 20 00
    1319613199    xor bx, bx                                ; 31 db
    1319713200    mov ax, si                                ; 89 f0
    1319813201    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13199     call 09f20h                               ; e8 fd 11
     13202    call 09f20h                               ; e8 f8 11
    1320013203    lea ax, [si+00080h]                       ; 8d 84 80 00
    1320113204    mov cx, strict word 00040h                ; b9 40 00
    1320213205    xor bx, bx                                ; 31 db
    1320313206    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13204     call 09f20h                               ; e8 ee 11
     13207    call 09f20h                               ; e8 e9 11
    1320513208    lea di, [si+00200h]                       ; 8d bc 00 02
    1320613209    mov cx, strict word 00060h                ; b9 60 00
     
    1320813211    mov ax, di                                ; 89 f8
    1320913212    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13210     call 09f20h                               ; e8 dd 11
     13213    call 09f20h                               ; e8 d8 11
    1321113214    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
    1321213215    sal bx, 007h                              ; c1 e3 07
     
    1322513228    mov ax, di                                ; 89 f8
    1322613229    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13227     call 08743h                               ; e8 d3 f9
     13230    call 08748h                               ; e8 d3 f9
    1322813231    mov es, [bp-00ah]                         ; 8e 46 f6
    1322913232    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
     
    1327013273    mov ax, si                                ; 89 f0
    1327113274    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13272     call 08743h                               ; e8 67 f9
     13275    call 08748h                               ; e8 67 f9
    1327313276    mov es, [bp-00ah]                         ; 8e 46 f6
    1327413277    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
     
    1337513378    pop bp                                    ; 5d
    1337613379    retn                                      ; c3
    13377 @ahci_read_sectors:                          ; 0xf8ed7 LB 0xa6
     13380@ahci_read_sectors:                          ; 0xf8edc LB 0xa6
    1337813381    push bp                                   ; 55
    1337913382    mov bp, sp                                ; 89 e5
     
    1338513388    sub di, strict byte 0000ch                ; 83 ef 0c
    1338613389    cmp di, strict byte 00004h                ; 83 ff 04
    13387     jbe short 08efch                          ; 76 0f
     13390    jbe short 08f01h                          ; 76 0f
    1338813391    push di                                   ; 57
    1338913392    push 00c62h                               ; 68 62 0c
    1339013393    push 00c74h                               ; 68 74 0c
    1339113394    push strict byte 00007h                   ; 6a 07
    13392     call 019dah                               ; e8 e1 8a
     13395    call 019dah                               ; e8 dc 8a
    1339313396    add sp, strict byte 00008h                ; 83 c4 08
    1339413397    xor bx, bx                                ; 31 db
     
    1340413407    mov dx, word [es:di+00232h]               ; 26 8b 95 32 02
    1340513408    xor ax, ax                                ; 31 c0
    13406     call 08c8dh                               ; e8 65 fd
     13409    call 08c92h                               ; e8 65 fd
    1340713410    mov bx, strict word 00025h                ; bb 25 00
    1340813411    mov ax, si                                ; 89 f0
    1340913412    mov dx, word [bp+006h]                    ; 8b 56 06
    13410     call 088ach                               ; e8 79 f9
     13413    call 088b1h                               ; e8 79 f9
    1341113414    mov word [bp-006h], ax                    ; 89 46 fa
    1341213415    mov es, [bp+006h]                         ; 8e 46 06
     
    1343713440    pop bp                                    ; 5d
    1343813441    retn 00004h                               ; c2 04 00
    13439 @ahci_write_sectors:                         ; 0xf8f7d LB 0x84
     13442@ahci_write_sectors:                         ; 0xf8f82 LB 0x84
    1344013443    push bp                                   ; 55
    1344113444    mov bp, sp                                ; 89 e5
     
    1344813451    sub dx, strict byte 0000ch                ; 83 ea 0c
    1344913452    cmp dx, strict byte 00004h                ; 83 fa 04
    13450     jbe short 08fa6h                          ; 76 0f
     13453    jbe short 08fabh                          ; 76 0f
    1345113454    push dx                                   ; 52
    1345213455    push 00c93h                               ; 68 93 0c
    1345313456    push 00c74h                               ; 68 74 0c
    1345413457    push strict byte 00007h                   ; 6a 07
    13455     call 019dah                               ; e8 37 8a
     13458    call 019dah                               ; e8 32 8a
    1345613459    add sp, strict byte 00008h                ; 83 c4 08
    1345713460    xor bx, bx                                ; 31 db
     
    1346713470    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
    1346813471    xor ax, ax                                ; 31 c0
    13469     call 08c8dh                               ; e8 bd fc
     13472    call 08c92h                               ; e8 bd fc
    1347013473    mov bx, strict word 00035h                ; bb 35 00
    1347113474    mov ax, si                                ; 89 f0
    1347213475    mov dx, cx                                ; 89 ca
    13473     call 088ach                               ; e8 d2 f8
     13476    call 088b1h                               ; e8 d2 f8
    1347413477    mov dx, ax                                ; 89 c2
    1347513478    mov es, cx                                ; 8e c1
     
    1348613489    pop bp                                    ; 5d
    1348713490    retn 00004h                               ; c2 04 00
    13488 ahci_cmd_packet_:                            ; 0xf9001 LB 0x183
     13491ahci_cmd_packet_:                            ; 0xf9006 LB 0x183
    1348913492    push bp                                   ; 55
    1349013493    mov bp, sp                                ; 89 e5
     
    1349813501    mov dx, strict word 0000eh                ; ba 0e 00
    1349913502    mov ax, strict word 00040h                ; b8 40 00
    13500     call 016d4h                               ; e8 b8 86
     13503    call 016d4h                               ; e8 b3 86
    1350113504    mov si, 00122h                            ; be 22 01
    1350213505    mov word [bp-008h], ax                    ; 89 46 f8
    1350313506    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    13504     jne short 09047h                          ; 75 1f
    13505     mov bx, 00da6h                            ; bb a6 0d
     13507    jne short 0904ch                          ; 75 1f
     13508    mov bx, 00da4h                            ; bb a4 0d
    1350613509    mov cx, ds                                ; 8c d9
    1350713510    mov ax, strict word 00004h                ; b8 04 00
    13508     call 01999h                               ; e8 66 89
     13511    call 01999h                               ; e8 61 89
    1350913512    push 00ca6h                               ; 68 a6 0c
    1351013513    push 00cb6h                               ; 68 b6 0c
    1351113514    push strict byte 00004h                   ; 6a 04
    13512     call 019dah                               ; e8 9c 89
     13515    call 019dah                               ; e8 97 89
    1351313516    add sp, strict byte 00006h                ; 83 c4 06
    1351413517    mov ax, strict word 00001h                ; b8 01 00
    13515     jmp near 0917bh                           ; e9 34 01
     13518    jmp near 09180h                           ; e9 34 01
    1351613519    test byte [bp+004h], 001h                 ; f6 46 04 01
    13517     jne short 09041h                          ; 75 f4
     13520    jne short 09046h                          ; 75 f4
    1351813521    mov ax, word [bp+006h]                    ; 8b 46 06
    1351913522    mov dx, word [bp+008h]                    ; 8b 56 08
     
    1352113524    sal ax, 1                                 ; d1 e0
    1352213525    rcl dx, 1                                 ; d1 d2
    13523     loop 09056h                               ; e2 fa
     13526    loop 0905bh                               ; e2 fa
    1352413527    mov es, [bp-008h]                         ; 8e 46 f8
    1352513528    mov word [es:si], ax                      ; 26 89 04
     
    1353513538    mov dx, word [bp+008h]                    ; 8b 56 08
    1353613539    xor cx, cx                                ; 31 c9
    13537     call 09ec0h                               ; e8 34 0e
     13540    call 09ec0h                               ; e8 2f 0e
    1353813541    mov word [es:si+00eh], ax                 ; 26 89 44 0e
    1353913542    xor di, di                                ; 31 ff
     
    1355213555    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
    1355313556    xor ax, ax                                ; 31 c0
    13554     call 08c8dh                               ; e8 c5 fb
     13557    call 08c92h                               ; e8 c5 fb
    1355513558    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    1355613559    push ax                                   ; 50
     
    1355913562    mov ax, 000c0h                            ; b8 c0 00
    1356013563    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13561     call 09f30h                               ; e8 54 0e
     13564    call 09f30h                               ; e8 4f 0e
    1356213565    mov es, [bp-008h]                         ; 8e 46 f8
    1356313566    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1356613569    mov ax, word [es:si+01eh]                 ; 26 8b 44 1e
    1356713570    test ax, ax                               ; 85 c0
    13568     je short 0911ah                           ; 74 27
     13571    je short 0911fh                           ; 74 27
    1356913572    dec ax                                    ; 48
    1357013573    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1357913582    mov ax, si                                ; 89 f0
    1358013583    mov dx, word [bp-008h]                    ; 8b 56 f8
    13581     call 088ach                               ; e8 87 f7
     13584    call 088b1h                               ; e8 87 f7
    1358213585    les bx, [bp-00eh]                         ; c4 5e f2
    1358313586    mov ax, word [es:bx+004h]                 ; 26 8b 47 04
     
    1360613609    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
    1360713610    or ax, word [es:bx+004h]                  ; 26 0b 47 04
    13608     jne short 09179h                          ; 75 05
     13611    jne short 0917eh                          ; 75 05
    1360913612    mov ax, strict word 00004h                ; b8 04 00
    13610     jmp short 0917bh                          ; eb 02
     13613    jmp short 09180h                          ; eb 02
    1361113614    xor ax, ax                                ; 31 c0
    1361213615    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1361513618    pop bp                                    ; 5d
    1361613619    retn 0000ch                               ; c2 0c 00
    13617 ahci_port_detect_device_:                    ; 0xf9184 LB 0x4b1
     13620ahci_port_detect_device_:                    ; 0xf9189 LB 0x4b1
    1361813621    push bp                                   ; 55
    1361913622    mov bp, sp                                ; 89 e5
     
    1362713630    movzx di, bl                              ; 0f b6 fb
    1362813631    mov bx, di                                ; 89 fb
    13629     call 08c8dh                               ; e8 ef fa
     13632    call 08c92h                               ; e8 ef fa
    1363013633    mov dx, strict word 0000eh                ; ba 0e 00
    1363113634    mov ax, strict word 00040h                ; b8 40 00
    13632     call 016d4h                               ; e8 2d 85
     13635    call 016d4h                               ; e8 28 85
    1363313636    mov word [bp-010h], 00122h                ; c7 46 f0 22 01
    1363413637    mov word [bp-00eh], ax                    ; 89 46 f2
     
    1369913702    mov bx, strict word 0000fh                ; bb 0f 00
    1370013703    xor cx, cx                                ; 31 c9
    13701     call 08728h                               ; e8 d7 f4
     13704    call 0872dh                               ; e8 d7 f4
    1370213705    test ax, ax                               ; 85 c0
    13703     je near 0962dh                            ; 0f 84 d6 03
     13706    je near 09632h                            ; 0f 84 d6 03
    1370413707    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    1370513708    sal ax, 007h                              ; c1 e0 07
     
    1372913732    mov bx, strict word 0000fh                ; bb 0f 00
    1373013733    xor cx, cx                                ; 31 c9
    13731     call 08728h                               ; e8 8b f4
     13734    call 0872dh                               ; e8 8b f4
    1373213735    cmp ax, strict word 00001h                ; 3d 01 00
    13733     je short 09257h                           ; 74 b5
     13736    je short 0925ch                           ; 74 b5
    1373413737    push strict byte 00000h                   ; 6a 00
    1373513738    mov bx, strict word 0000fh                ; bb 0f 00
     
    1373713740    mov ax, di                                ; 89 f8
    1373813741    mov dx, word [bp-022h]                    ; 8b 56 de
    13739     call 08728h                               ; e8 77 f4
     13742    call 0872dh                               ; e8 77 f4
    1374013743    cmp ax, strict word 00003h                ; 3d 03 00
    13741     jne near 0962dh                           ; 0f 85 75 03
     13744    jne near 09632h                           ; 0f 85 75 03
    1374213745    mov ax, word [bp-018h]                    ; 8b 46 e8
    1374313746    add ax, 00130h                            ; 05 30 01
     
    1376613769    mov byte [bp-008h], al                    ; 88 46 f8
    1376713770    cmp AL, strict byte 004h                  ; 3c 04
    13768     jnc near 0962dh                           ; 0f 83 2f 03
     13771    jnc near 09632h                           ; 0f 83 2f 03
    1376913772    mov ax, word [bp-018h]                    ; 8b 46 e8
    1377013773    add ax, 00118h                            ; 05 18 01
     
    1381813821    add cl, 00ch                              ; 80 c1 0c
    1381913822    test dx, dx                               ; 85 d2
    13820     jne near 09583h                           ; 0f 85 0d 02
     13823    jne near 09588h                           ; 0f 85 0d 02
    1382113824    cmp di, 00101h                            ; 81 ff 01 01
    13822     jne near 09583h                           ; 0f 85 05 02
     13825    jne near 09588h                           ; 0f 85 05 02
    1382313826    les bx, [bp-010h]                         ; c4 5e f0
    1382413827    db  066h, 026h, 0c7h, 047h, 004h, 000h, 000h, 000h, 000h
     
    1383413837    mov ax, word [bp-010h]                    ; 8b 46 f0
    1383513838    mov dx, es                                ; 8c c2
    13836     call 088ach                               ; e8 fa f4
     13839    call 088b1h                               ; e8 fa f4
    1383713840    mov byte [bp-00ch], cl                    ; 88 4e f4
    1383813841    test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
     
    1385113854    mov dword [bp-016h], strict dword 000000000h ; 66 c7 46 ea 00 00 00 00
    1385213855    cmp di, 00fffh                            ; 81 ff ff 0f
    13853     jne short 0940bh                          ; 75 1e
     13856    jne short 09410h                          ; 75 1e
    1385413857    cmp dx, strict byte 0ffffh                ; 83 fa ff
    13855     jne short 0940bh                          ; 75 19
     13858    jne short 09410h                          ; 75 19
    1385613859    mov dx, word [bp-0015ch]                  ; 8b 96 a4 fe
    1385713860    mov word [bp-014h], dx                    ; 89 56 ec
     
    1389013893    mov al, byte [bp-008h]                    ; 8a 46 f8
    1389113894    cmp AL, strict byte 001h                  ; 3c 01
    13892     jc short 09484h                           ; 72 0c
    13893     jbe short 0948ch                          ; 76 12
     13895    jc short 09489h                           ; 72 0c
     13896    jbe short 09491h                          ; 76 12
    1389413897    cmp AL, strict byte 003h                  ; 3c 03
    13895     je short 09494h                           ; 74 16
     13898    je short 09499h                           ; 74 16
    1389613899    cmp AL, strict byte 002h                  ; 3c 02
    13897     je short 09490h                           ; 74 0e
    13898     jmp short 094ddh                          ; eb 59
     13900    je short 09495h                           ; 74 0e
     13901    jmp short 094e2h                          ; eb 59
    1389913902    test al, al                               ; 84 c0
    13900     jne short 094ddh                          ; 75 55
     13903    jne short 094e2h                          ; 75 55
    1390113904    mov DL, strict byte 040h                  ; b2 40
    13902     jmp short 09496h                          ; eb 0a
     13905    jmp short 0949bh                          ; eb 0a
    1390313906    mov DL, strict byte 048h                  ; b2 48
    13904     jmp short 09496h                          ; eb 06
     13907    jmp short 0949bh                          ; eb 06
    1390513908    mov DL, strict byte 050h                  ; b2 50
    13906     jmp short 09496h                          ; eb 02
     13909    jmp short 0949bh                          ; eb 02
    1390713910    mov DL, strict byte 058h                  ; b2 58
    1390813911    mov al, dl                                ; 88 d0
     
    1391013913    movzx bx, al                              ; 0f b6 d8
    1391113914    mov ax, bx                                ; 89 d8
    13912     call 01714h                               ; e8 72 82
     13915    call 01714h                               ; e8 6d 82
    1391313916    test al, al                               ; 84 c0
    13914     je short 094ddh                           ; 74 37
     13917    je short 094e2h                           ; 74 37
    1391513918    mov al, dl                                ; 88 d0
    1391613919    db  0feh, 0c0h
    1391713920    ; inc al                                    ; fe c0
    1391813921    xor ah, ah                                ; 30 e4
    13919     call 01714h                               ; e8 65 82
     13922    call 01714h                               ; e8 60 82
    1392013923    xor ah, ah                                ; 30 e4
    1392113924    mov si, ax                                ; 89 c6
    1392213925    sal si, 008h                              ; c1 e6 08
    1392313926    movzx ax, dl                              ; 0f b6 c2
    13924     call 01714h                               ; e8 58 82
     13927    call 01714h                               ; e8 53 82
    1392513928    xor ah, ah                                ; 30 e4
    1392613929    add ax, si                                ; 01 f0
     
    1392913932    add AL, strict byte 002h                  ; 04 02
    1393013933    xor ah, ah                                ; 30 e4
    13931     call 01714h                               ; e8 48 82
     13934    call 01714h                               ; e8 43 82
    1393213935    xor ah, ah                                ; 30 e4
    1393313936    mov word [bp-02ah], ax                    ; 89 46 d6
    1393413937    mov ax, bx                                ; 89 d8
    13935     call 01714h                               ; e8 3e 82
     13938    call 01714h                               ; e8 39 82
    1393613939    xor ah, ah                                ; 30 e4
    1393713940    mov word [bp-026h], ax                    ; 89 46 da
    13938     jmp short 094edh                          ; eb 10
     13941    jmp short 094f2h                          ; eb 10
    1393913942    push dword [bp-016h]                      ; 66 ff 76 ea
    1394013943    push di                                   ; 57
     
    1394213945    mov dx, ss                                ; 8c d2
    1394313946    lea ax, [bp-02ah]                         ; 8d 46 d6
    13944     call 059a6h                               ; e8 b9 c4
    13945     mov bx, 00da6h                            ; bb a6 0d
     13947    call 059a6h                               ; e8 b4 c4
     13948    mov bx, 00da4h                            ; bb a4 0d
    1394613949    mov cx, ds                                ; 8c d9
    1394713950    mov ax, strict word 00004h                ; b8 04 00
    13948     call 01999h                               ; e8 a1 84
     13951    call 01999h                               ; e8 9c 84
    1394913952    push dword [bp-016h]                      ; 66 ff 76 ea
    1395013953    push di                                   ; 57
     
    1396513968    push 00cd6h                               ; 68 d6 0c
    1396613969    push strict byte 00004h                   ; 6a 04
    13967     call 019dah                               ; e8 b3 84
     13970    call 019dah                               ; e8 ae 84
    1396813971    add sp, strict byte 0001ch                ; 83 c4 1c
    1396913972    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     
    1399413997    mov dx, strict word 00075h                ; ba 75 00
    1399513998    mov ax, strict word 00040h                ; b8 40 00
    13996     call 016b8h                               ; e8 46 81
     13999    call 016b8h                               ; e8 41 81
    1399714000    db  0feh, 0c0h
    1399814001    ; inc al                                    ; fe c0
     
    1400014003    mov dx, strict word 00075h                ; ba 75 00
    1400114004    mov ax, strict word 00040h                ; b8 40 00
    14002     call 016c6h                               ; e8 46 81
    14003     jmp near 0961fh                           ; e9 9c 00
     14005    call 016c6h                               ; e8 41 81
     14006    jmp near 09624h                           ; e9 9c 00
    1400414007    cmp dx, 0eb14h                            ; 81 fa 14 eb
    14005     jne near 0961fh                           ; 0f 85 94 00
     14008    jne near 09624h                           ; 0f 85 94 00
    1400614009    cmp di, 00101h                            ; 81 ff 01 01
    14007     jne near 0961fh                           ; 0f 85 8c 00
     14010    jne near 09624h                           ; 0f 85 8c 00
    1400814011    les bx, [bp-010h]                         ; c4 5e f0
    1400914012    db  066h, 026h, 0c7h, 047h, 004h, 000h, 000h, 000h, 000h
     
    1401914022    mov ax, word [bp-010h]                    ; 8b 46 f0
    1402014023    mov dx, es                                ; 8c c2
    14021     call 088ach                               ; e8 e5 f2
     14024    call 088b1h                               ; e8 e5 f2
    1402214025    test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
    1402314026    db  00fh, 095h, 0c0h
     
    1405614059    pop bp                                    ; 5d
    1405714060    retn                                      ; c3
    14058 ahci_mem_alloc_:                             ; 0xf9635 LB 0x43
     14061ahci_mem_alloc_:                             ; 0xf963a LB 0x43
    1405914062    push bp                                   ; 55
    1406014063    mov bp, sp                                ; 89 e5
     
    1406614069    mov dx, 00413h                            ; ba 13 04
    1406714070    xor ax, ax                                ; 31 c0
    14068     call 016d4h                               ; e8 8f 80
     14071    call 016d4h                               ; e8 8a 80
    1406914072    test ax, ax                               ; 85 c0
    14070     je short 0966eh                           ; 74 25
     14073    je short 09673h                           ; 74 25
    1407114074    dec ax                                    ; 48
    1407214075    mov bx, ax                                ; 89 c3
     
    1407514078    sal ax, 1                                 ; d1 e0
    1407614079    rcl dx, 1                                 ; d1 d2
    14077     loop 09651h                               ; e2 fa
     14080    loop 09656h                               ; e2 fa
    1407814081    mov si, ax                                ; 89 c6
    1407914082    mov di, dx                                ; 89 d7
     
    1408114084    shr di, 1                                 ; d1 ef
    1408214085    rcr si, 1                                 ; d1 de
    14083     loop 0965eh                               ; e2 fa
     14086    loop 09663h                               ; e2 fa
    1408414087    mov dx, 00413h                            ; ba 13 04
    1408514088    xor ax, ax                                ; 31 c0
    14086     call 016e2h                               ; e8 76 80
     14089    call 016e2h                               ; e8 71 80
    1408714090    mov ax, si                                ; 89 f0
    1408814091    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1409414097    pop bp                                    ; 5d
    1409514098    retn                                      ; c3
    14096 ahci_hba_init_:                              ; 0xf9678 LB 0x166
     14099ahci_hba_init_:                              ; 0xf967d LB 0x166
    1409714100    push bp                                   ; 55
    1409814101    mov bp, sp                                ; 89 e5
     
    1410614109    mov dx, strict word 0000eh                ; ba 0e 00
    1410714110    mov ax, strict word 00040h                ; b8 40 00
    14108     call 016d4h                               ; e8 46 80
     14111    call 016d4h                               ; e8 41 80
    1410914112    mov bx, 00122h                            ; bb 22 01
    1411014113    mov di, ax                                ; 89 c7
     
    1412314126    shr eax, 010h                             ; 66 c1 e8 10
    1412414127    xchg dx, ax                               ; 92
    14125     call 09635h                               ; e8 83 ff
     14128    call 0963ah                               ; e8 83 ff
    1412614129    mov word [bp-010h], ax                    ; 89 46 f0
    1412714130    test ax, ax                               ; 85 c0
    14128     je near 097bdh                            ; 0f 84 02 01
     14131    je near 097c2h                            ; 0f 84 02 01
    1412914132    mov ax, word [bp-010h]                    ; 8b 46 f0
    1413014133    mov es, di                                ; 8e c7
     
    1417614179    xchg dx, ax                               ; 92
    1417714180    test AL, strict byte 001h                 ; a8 01
    14178     jne short 09711h                          ; 75 de
     14181    jne short 09716h                          ; 75 de
    1417914182    xor ax, ax                                ; 31 c0
    1418014183    xor cx, cx                                ; 31 c9
     
    1419414197    mov bx, strict word 0001fh                ; bb 1f 00
    1419514198    xor cx, cx                                ; 31 c9
    14196     call 08728h                               ; e8 d1 ef
     14199    call 0872dh                               ; e8 d1 ef
    1419714200    db  0feh, 0c0h
    1419814201    ; inc al                                    ; fe c0
    1419914202    mov byte [bp-00eh], al                    ; 88 46 f2
    1420014203    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    14201     jmp short 09782h                          ; eb 20
     14204    jmp short 09787h                          ; eb 20
    1420214205    xor al, al                                ; 30 c0
    1420314206    test al, al                               ; 84 c0
    14204     je short 09779h                           ; 74 11
     14207    je short 0977eh                           ; 74 11
    1420514208    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    1420614209    xor ax, ax                                ; 31 c0
    1420714210    mov dx, word [bp-010h]                    ; 8b 56 f0
    14208     call 09184h                               ; e8 10 fa
     14211    call 09189h                               ; e8 10 fa
    1420914212    dec byte [bp-00eh]                        ; fe 4e f2
    14210     je short 097bbh                           ; 74 42
     14213    je short 097c0h                           ; 74 42
    1421114214    inc byte [bp-00ch]                        ; fe 46 f4
    1421214215    cmp byte [bp-00ch], 020h                  ; 80 7e f4 20
    14213     jnc short 097bbh                          ; 73 39
     14216    jnc short 097c0h                          ; 73 39
    1421414217    movzx cx, byte [bp-00ch]                  ; 0f b6 4e f4
    1421514218    mov bx, strict word 00001h                ; bb 01 00
    1421614219    xor di, di                                ; 31 ff
    14217     jcxz 09793h                               ; e3 06
     14220    jcxz 09798h                               ; e3 06
    1421814221    sal bx, 1                                 ; d1 e3
    1421914222    rcl di, 1                                 ; d1 d7
    14220     loop 0978dh                               ; e2 fa
     14223    loop 09792h                               ; e2 fa
    1422114224    mov ax, strict word 0000ch                ; b8 0c 00
    1422214225    xor cx, cx                                ; 31 c9
     
    1423414237    xchg dx, ax                               ; 92
    1423514238    test dx, di                               ; 85 fa
    14236     jne short 097b7h                          ; 75 04
     14239    jne short 097bch                          ; 75 04
    1423714240    test ax, bx                               ; 85 d8
    14238     je short 09762h                           ; 74 ab
     14241    je short 09767h                           ; 74 ab
    1423914242    mov AL, strict byte 001h                  ; b0 01
    14240     jmp short 09764h                          ; eb a9
     14243    jmp short 09769h                          ; eb a9
    1424114244    xor ax, ax                                ; 31 c0
    1424214245    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1424814251    pop bp                                    ; 5d
    1424914252    retn                                      ; c3
    14250     db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0adh, 098h, 08bh, 098h, 091h, 098h, 097h, 098h, 09dh
    14251     db  098h, 0a3h, 098h, 0a9h, 098h, 0adh, 098h
    14252 _ahci_init:                                  ; 0xf97de LB 0xfe
     14253    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0b2h, 098h, 090h, 098h, 096h, 098h, 09ch, 098h, 0a2h
     14254    db  098h, 0a8h, 098h, 0aeh, 098h, 0b2h, 098h
     14255_ahci_init:                                  ; 0xf97e3 LB 0xfe
    1425314256    push bp                                   ; 55
    1425414257    mov bp, sp                                ; 89 e5
     
    1425814261    mov ax, 00601h                            ; b8 01 06
    1425914262    mov dx, strict word 00001h                ; ba 01 00
    14260     call 09cfch                               ; e8 0d 05
     14263    call 09d01h                               ; e8 0d 05
    1426114264    mov dx, ax                                ; 89 c2
    1426214265    cmp ax, strict word 0ffffh                ; 3d ff ff
    14263     je near 098d5h                            ; 0f 84 dd 00
     14266    je near 098dah                            ; 0f 84 dd 00
    1426414267    xor al, al                                ; 30 c0
    1426514268    shr ax, 008h                              ; c1 e8 08
     
    1426914272    xor ah, ah                                ; 30 e4
    1427014273    mov bx, strict word 00034h                ; bb 34 00
    14271     call 09d27h                               ; e8 1a 05
     14274    call 09d2ch                               ; e8 1a 05
    1427214275    mov cl, al                                ; 88 c1
    1427314276    test cl, cl                               ; 84 c9
    14274     je short 09836h                           ; 74 23
     14277    je short 0983bh                           ; 74 23
    1427514278    movzx bx, cl                              ; 0f b6 d9
    1427614279    movzx di, byte [bp-008h]                  ; 0f b6 7e f8
     
    1427814281    mov dx, di                                ; 89 fa
    1427914282    mov ax, si                                ; 89 f0
    14280     call 09d27h                               ; e8 02 05
     14283    call 09d2ch                               ; e8 02 05
    1428114284    cmp AL, strict byte 012h                  ; 3c 12
    14282     je short 09836h                           ; 74 0d
     14285    je short 0983bh                           ; 74 0d
    1428314286    mov al, cl                                ; 88 c8
    1428414287    db  0feh, 0c0h
     
    1428714290    mov dx, di                                ; 89 fa
    1428814291    mov ax, si                                ; 89 f0
    14289     jmp short 0980ah                          ; eb d4
     14292    jmp short 0980fh                          ; eb d4
    1429014293    test cl, cl                               ; 84 c9
    14291     je near 098d5h                            ; 0f 84 99 00
     14294    je near 098dah                            ; 0f 84 99 00
    1429214295    add cl, 002h                              ; 80 c1 02
    1429314296    movzx bx, cl                              ; 0f b6 d9
     
    1429614299    mov dx, di                                ; 89 fa
    1429714300    mov ax, si                                ; 89 f0
    14298     call 09d27h                               ; e8 d6 04
     14301    call 09d2ch                               ; e8 d6 04
    1429914302    cmp AL, strict byte 010h                  ; 3c 10
    14300     jne near 098d5h                           ; 0f 85 7e 00
     14303    jne near 098dah                           ; 0f 85 7e 00
    1430114304    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    1430214305    mov al, cl                                ; 88 c8
     
    1430514308    mov dx, di                                ; 89 fa
    1430614309    mov ax, si                                ; 89 f0
    14307     call 09d4bh                               ; e8 e2 04
     14310    call 09d50h                               ; e8 e2 04
    1430814311    mov dx, ax                                ; 89 c2
    1430914312    and ax, strict word 0000fh                ; 25 0f 00
    1431014313    sub ax, strict word 00004h                ; 2d 04 00
    1431114314    cmp ax, strict word 0000bh                ; 3d 0b 00
    14312     jnbe short 098adh                         ; 77 37
     14315    jnbe short 098b2h                         ; 77 37
    1431314316    push CS                                   ; 0e
    1431414317    pop ES                                    ; 07
    1431514318    mov cx, strict word 00008h                ; b9 08 00
    14316     mov di, 097c7h                            ; bf c7 97
     14319    mov di, 097cch                            ; bf cc 97
    1431714320    repne scasb                               ; f2 ae
    1431814321    sal cx, 1                                 ; d1 e1
    1431914322    mov di, cx                                ; 89 cf
    14320     mov ax, word [cs:di-06832h]               ; 2e 8b 85 ce 97
     14323    mov ax, word [cs:di-0682dh]               ; 2e 8b 85 d3 97
    1432114324    jmp ax                                    ; ff e0
    1432214325    mov byte [bp-006h], 010h                  ; c6 46 fa 10
    14323     jmp short 098adh                          ; eb 1c
     14326    jmp short 098b2h                          ; eb 1c
    1432414327    mov byte [bp-006h], 014h                  ; c6 46 fa 14
    14325     jmp short 098adh                          ; eb 16
     14328    jmp short 098b2h                          ; eb 16
    1432614329    mov byte [bp-006h], 018h                  ; c6 46 fa 18
    14327     jmp short 098adh                          ; eb 10
     14330    jmp short 098b2h                          ; eb 10
    1432814331    mov byte [bp-006h], 01ch                  ; c6 46 fa 1c
    14329     jmp short 098adh                          ; eb 0a
     14332    jmp short 098b2h                          ; eb 0a
    1433014333    mov byte [bp-006h], 020h                  ; c6 46 fa 20
    14331     jmp short 098adh                          ; eb 04
     14334    jmp short 098b2h                          ; eb 04
    1433214335    mov byte [bp-006h], 024h                  ; c6 46 fa 24
    1433314336    mov si, dx                                ; 89 d6
     
    1433614339    mov al, byte [bp-006h]                    ; 8a 46 fa
    1433714340    test al, al                               ; 84 c0
    14338     je short 098d5h                           ; 74 19
     14341    je short 098dah                           ; 74 19
    1433914342    movzx bx, al                              ; 0f b6 d8
    1434014343    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    1434114344    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    14342     call 09d6dh                               ; e8 a3 04
     14345    call 09d72h                               ; e8 a3 04
    1434314346    test AL, strict byte 001h                 ; a8 01
    14344     je short 098d5h                           ; 74 07
     14347    je short 098dah                           ; 74 07
    1434514348    and AL, strict byte 0f0h                  ; 24 f0
    1434614349    add ax, si                                ; 01 f0
    14347     call 09678h                               ; e8 a3 fd
     14350    call 0967dh                               ; e8 a3 fd
    1434814351    lea sp, [bp-004h]                         ; 8d 66 fc
    1434914352    pop di                                    ; 5f
     
    1435114354    pop bp                                    ; 5d
    1435214355    retn                                      ; c3
    14353 apm_out_str_:                                ; 0xf98dc LB 0x39
     14356apm_out_str_:                                ; 0xf98e1 LB 0x39
    1435414357    push bp                                   ; 55
    1435514358    mov bp, sp                                ; 89 e5
     
    1435714360    mov bx, ax                                ; 89 c3
    1435814361    cmp byte [bx], 000h                       ; 80 3f 00
    14359     je short 098f1h                           ; 74 0a
     14362    je short 098f6h                           ; 74 0a
    1436014363    mov al, byte [bx]                         ; 8a 07
    1436114364    out DX, AL                                ; ee
     
    1436414367    db  00ah, 0c0h
    1436514368    ; or al, al                                 ; 0a c0
    14366     jne short 098e9h                          ; 75 f8
     14369    jne short 098eeh                          ; 75 f8
    1436714370    lea sp, [bp-002h]                         ; 8d 66 fe
    1436814371    pop bx                                    ; 5b
    1436914372    pop bp                                    ; 5d
    1437014373    retn                                      ; c3
    14371     cmp byte [bx+di-065fch], bl               ; 38 99 04 9a
    14372     dec dx                                    ; 4a
     14374    cmp ax, 00999h                            ; 3d 99 09
     14375    call far 0996ah:0994fh                    ; 9a 4f 99 6a 99
     14376    or word [bp+si-0666bh], bx                ; 09 9a 95 99
     14377    or word [bp+si-06666h], bx                ; 09 9a 9a 99
     14378    ficomp word [bx+di-06622h]                ; de 99 de 99
     14379    ficomp word [bx+di-06627h]                ; de 99 d9 99
     14380    ficomp word [bx+di-06622h]                ; de 99 de 99
     14381    db  0d2h
    1437314382    cwd                                       ; 99
    14374     db  065h, 099h
    14375     ; gs cwd                                    ; 65 99
    14376     add AL, strict byte 09ah                  ; 04 9a
    14377     nop                                       ; 90
    14378     cwd                                       ; 99
    14379     add AL, strict byte 09ah                  ; 04 9a
    14380     xchg bp, ax                               ; 95
    14381     cwd                                       ; 99
    14382     fstp dword [bx+di-06627h]                 ; d9 99 d9 99
    14383     fstp dword [bx+di-0662ch]                 ; d9 99 d4 99
    14384     fstp dword [bx+di-06627h]                 ; d9 99 d9 99
    14385     int 099h                                  ; cd 99
    14386 _apm_function:                               ; 0xf9915 LB 0xf5
     14383_apm_function:                               ; 0xf991a LB 0xf5
    1438714384    push bp                                   ; 55
    1438814385    mov bp, sp                                ; 89 e5
     
    1439214389    xor ah, ah                                ; 30 e4
    1439314390    cmp ax, strict word 0000eh                ; 3d 0e 00
    14394     jnbe near 099d9h                          ; 0f 87 b0 00
     14391    jnbe near 099deh                          ; 0f 87 b0 00
    1439514392    mov bx, ax                                ; 89 c3
    1439614393    add bx, ax                                ; 01 c3
    1439714394    mov dx, word [bp+018h]                    ; 8b 56 18
    1439814395    or dl, 001h                               ; 80 ca 01
    14399     jmp word [cs:bx-06709h]                   ; 2e ff a7 f7 98
     14396    jmp word [cs:bx-06704h]                   ; 2e ff a7 fc 98
    1440014397    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    1440114398    mov word [bp+00ch], 0504dh                ; c7 46 0c 4d 50
    1440214399    mov word [bp+010h], strict word 00003h    ; c7 46 10 03 00
    14403     jmp near 09a04h                           ; e9 ba 00
     14400    jmp near 09a09h                           ; e9 ba 00
    1440414401    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    1440514402    mov word [bp+00ch], 09fa4h                ; c7 46 0c a4 9f
     
    1440814405    mov word [bp+006h], ax                    ; 89 46 06
    1440914406    mov word [bp+004h], ax                    ; 89 46 04
    14410     jmp near 09a04h                           ; e9 9f 00
     14407    jmp near 09a09h                           ; e9 9f 00
    1441114408    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    1441214409    mov word [bp+00ch], 0da40h                ; c7 46 0c 40 da
     
    1442114418    mov si, ax                                ; 89 c6
    1442214419    sal esi, 010h                             ; 66 c1 e6 10
    14423     jmp near 09a04h                           ; e9 74 00
     14420    jmp near 09a09h                           ; e9 74 00
    1442414421    sti                                       ; fb
    1442514422    hlt                                       ; f4
    14426     jmp near 09a04h                           ; e9 6f 00
     14423    jmp near 09a09h                           ; e9 6f 00
    1442714424    cmp word [bp+010h], strict byte 00003h    ; 83 7e 10 03
    14428     je short 099bah                           ; 74 1f
     14425    je short 099bfh                           ; 74 1f
    1442914426    cmp word [bp+010h], strict byte 00002h    ; 83 7e 10 02
    14430     je short 099b2h                           ; 74 11
     14427    je short 099b7h                           ; 74 11
    1443114428    cmp word [bp+010h], strict byte 00001h    ; 83 7e 10 01
    14432     jne short 099c2h                          ; 75 1b
     14429    jne short 099c7h                          ; 75 1b
    1443314430    mov dx, 08900h                            ; ba 00 89
    1443414431    mov ax, 00d10h                            ; b8 10 0d
    14435     call 098dch                               ; e8 2c ff
    14436     jmp short 09a04h                          ; eb 52
     14432    call 098e1h                               ; e8 2c ff
     14433    jmp short 09a09h                          ; eb 52
    1443714434    mov dx, 08900h                            ; ba 00 89
    1443814435    mov ax, 00d18h                            ; b8 18 0d
    14439     jmp short 099adh                          ; eb f3
     14436    jmp short 099b2h                          ; eb f3
    1444014437    mov dx, 08900h                            ; ba 00 89
    1444114438    mov ax, 00d20h                            ; b8 20 0d
    14442     jmp short 099adh                          ; eb eb
     14439    jmp short 099b2h                          ; eb eb
    1444314440    or ah, 00ah                               ; 80 cc 0a
    1444414441    mov word [bp+012h], ax                    ; 89 46 12
    1444514442    mov word [bp+018h], dx                    ; 89 56 18
    14446     jmp short 09a04h                          ; eb 37
     14443    jmp short 09a09h                          ; eb 37
    1444714444    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    14448     jmp short 09a04h                          ; eb 30
     14445    jmp short 09a09h                          ; eb 30
    1444914446    or ah, 080h                               ; 80 cc 80
    14450     jmp short 099c5h                          ; eb ec
    14451     mov bx, 00da6h                            ; bb a6 0d
     14447    jmp short 099cah                          ; eb ec
     14448    mov bx, 00da4h                            ; bb a4 0d
    1445214449    mov cx, ds                                ; 8c d9
    1445314450    mov ax, strict word 00004h                ; b8 04 00
    14454     call 01999h                               ; e8 b5 7f
     14451    call 01999h                               ; e8 b0 7f
    1445514452    push word [bp+00ch]                       ; ff 76 0c
    1445614453    push word [bp+012h]                       ; ff 76 12
    1445714454    push 00d29h                               ; 68 29 0d
    1445814455    push strict byte 00004h                   ; 6a 04
    14459     call 019dah                               ; e8 e8 7f
     14456    call 019dah                               ; e8 e3 7f
    1446014457    add sp, strict byte 00008h                ; 83 c4 08
    1446114458    mov ax, word [bp+012h]                    ; 8b 46 12
     
    1446814465    pop bp                                    ; 5d
    1446914466    retn                                      ; c3
    14470 pci16_select_reg_:                           ; 0xf9a0a LB 0x24
     14467pci16_select_reg_:                           ; 0xf9a0f LB 0x24
    1447114468    push bp                                   ; 55
    1447214469    mov bp, sp                                ; 89 e5
     
    1448514482    pop bp                                    ; 5d
    1448614483    retn                                      ; c3
    14487 pci16_find_device_:                          ; 0xf9a2e LB 0xf7
     14484pci16_find_device_:                          ; 0xf9a33 LB 0xf7
    1448814485    push bp                                   ; 55
    1448914486    mov bp, sp                                ; 89 e5
     
    1449914496    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1450014497    test bl, 007h                             ; f6 c3 07
    14501     jne short 09a76h                          ; 75 2d
     14498    jne short 09a7bh                          ; 75 2d
    1450214499    mov dx, strict word 0000eh                ; ba 0e 00
    1450314500    mov ax, bx                                ; 89 d8
    14504     call 09a0ah                               ; e8 b9 ff
     14501    call 09a0fh                               ; e8 b9 ff
    1450514502    mov dx, 00cfeh                            ; ba fe 0c
    1450614503    in AL, DX                                 ; ec
     
    1450914506    mov byte [bp-006h], al                    ; 88 46 fa
    1451014507    cmp AL, strict byte 0ffh                  ; 3c ff
    14511     jne short 09a64h                          ; 75 06
     14508    jne short 09a69h                          ; 75 06
    1451214509    add bx, strict byte 00008h                ; 83 c3 08
    14513     jmp near 09af7h                           ; e9 93 00
     14510    jmp near 09afch                           ; e9 93 00
    1451414511    test byte [bp-006h], 080h                 ; f6 46 fa 80
    14515     je short 09a71h                           ; 74 07
     14512    je short 09a76h                           ; 74 07
    1451614513    mov word [bp-00ah], strict word 00001h    ; c7 46 f6 01 00
    14517     jmp short 09a76h                          ; eb 05
     14514    jmp short 09a7bh                          ; eb 05
    1451814515    mov word [bp-00ah], strict word 00008h    ; c7 46 f6 08 00
    1451914516    mov al, byte [bp-006h]                    ; 8a 46 fa
    1452014517    and AL, strict byte 007h                  ; 24 07
    1452114518    cmp AL, strict byte 001h                  ; 3c 01
    14522     jne short 09a9eh                          ; 75 1f
     14519    jne short 09aa3h                          ; 75 1f
    1452314520    mov ax, bx                                ; 89 d8
    1452414521    shr ax, 008h                              ; c1 e8 08
    1452514522    test ax, ax                               ; 85 c0
    14526     jne short 09a9eh                          ; 75 16
     14523    jne short 09aa3h                          ; 75 16
    1452714524    mov dx, strict word 0001ah                ; ba 1a 00
    1452814525    mov ax, bx                                ; 89 d8
    14529     call 09a0ah                               ; e8 7a ff
     14526    call 09a0fh                               ; e8 7a ff
    1453014527    mov dx, 00cfeh                            ; ba fe 0c
    1453114528    in AL, DX                                 ; ec
     
    1453314530    ; sub ah, ah                                ; 2a e4
    1453414531    cmp al, byte [bp-008h]                    ; 3a 46 f8
    14535     jbe short 09a9eh                          ; 76 03
     14532    jbe short 09aa3h                          ; 76 03
    1453614533    mov byte [bp-008h], al                    ; 88 46 f8
    1453714534    test di, di                               ; 85 ff
    14538     je short 09aa7h                           ; 74 05
     14535    je short 09aach                           ; 74 05
    1453914536    mov dx, strict word 00008h                ; ba 08 00
    14540     jmp short 09aa9h                          ; eb 02
     14537    jmp short 09aaeh                          ; eb 02
    1454114538    xor dx, dx                                ; 31 d2
    1454214539    mov ax, bx                                ; 89 d8
    14543     call 09a0ah                               ; e8 5c ff
     14540    call 09a0fh                               ; e8 5c ff
    1454414541    mov dx, 00cfch                            ; ba fc 0c
    1454514542    in eax, DX                                ; 66 ed
     
    1455214549    mov word [bp-010h], strict word 00000h    ; c7 46 f0 00 00
    1455314550    test di, di                               ; 85 ff
    14554     je short 09ad8h                           ; 74 0f
     14551    je short 09addh                           ; 74 0f
    1455514552    mov cx, strict word 00008h                ; b9 08 00
    1455614553    shr dx, 1                                 ; d1 ea
    1455714554    rcr ax, 1                                 ; d1 d8
    14558     loop 09acch                               ; e2 fa
     14555    loop 09ad1h                               ; e2 fa
    1455914556    mov word [bp-00eh], ax                    ; 89 46 f2
    1456014557    mov word [bp-00ch], dx                    ; 89 56 f4
    1456114558    mov ax, word [bp-00ch]                    ; 8b 46 f4
    1456214559    cmp ax, word [bp-014h]                    ; 3b 46 ec
    14563     jne short 09ae8h                          ; 75 08
     14560    jne short 09aedh                          ; 75 08
    1456414561    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1456514562    cmp ax, word [bp-012h]                    ; 3b 46 ee
    14566     je short 09aeeh                           ; 74 06
     14563    je short 09af3h                           ; 74 06
    1456714564    cmp word [bp-010h], strict byte 00000h    ; 83 7e f0 00
    14568     je short 09af4h                           ; 74 06
     14565    je short 09af9h                           ; 74 06
    1456914566    dec si                                    ; 4e
    1457014567    cmp si, strict byte 0ffffh                ; 83 fe ff
    14571     je short 09b06h                           ; 74 12
     14568    je short 09b0bh                           ; 74 12
    1457214569    add bx, word [bp-00ah]                    ; 03 5e f6
    1457314570    mov dx, bx                                ; 89 da
     
    1457514572    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    1457614573    cmp dx, ax                                ; 39 c2
    14577     jbe near 09a44h                           ; 0f 86 3e ff
     14574    jbe near 09a49h                           ; 0f 86 3e ff
    1457814575    cmp si, strict byte 0ffffh                ; 83 fe ff
    14579     jne short 09b0fh                          ; 75 04
     14576    jne short 09b14h                          ; 75 04
    1458014577    mov ax, bx                                ; 89 d8
    14581     jmp short 09b12h                          ; eb 03
     14578    jmp short 09b17h                          ; eb 03
    1458214579    mov ax, strict word 0ffffh                ; b8 ff ff
    1458314580    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1458614583    pop bp                                    ; 5d
    1458714584    retn                                      ; c3
    14588     pop ES                                    ; 07
     14585    or AL, strict byte 09ch                   ; 0c 9c
     14586    db  026h, 09ch
     14587    ; es pushfw                                 ; 26 9c
     14588    cmp word [si-063b2h], bx                  ; 39 9c 4e 9c
     14589    popaw                                     ; 61
    1458914590    pushfw                                    ; 9c
    14590     and word [si-063cch], bx                  ; 21 9c 34 9c
    14591     dec cx                                    ; 49
    14592     pushfw                                    ; 9c
    14593     pop sp                                    ; 5c
    14594     pushfw                                    ; 9c
    14595     outsw                                     ; 6f
    14596     pushfw                                    ; 9c
    14597 _pci16_function:                             ; 0xf9b25 LB 0x1d7
     14591    je short 09ac6h                           ; 74 9c
     14592_pci16_function:                             ; 0xf9b2a LB 0x1d7
    1459814593    push bp                                   ; 55
    1459914594    mov bp, sp                                ; 89 e5
     
    1460914604    xor ah, ah                                ; 30 e4
    1461014605    cmp bx, strict byte 00003h                ; 83 fb 03
    14611     jc short 09b5eh                           ; 72 1a
    14612     jbe short 09bb6h                          ; 76 70
     14606    jc short 09b63h                           ; 72 1a
     14607    jbe short 09bbbh                          ; 76 70
    1461314608    cmp bx, strict byte 0000eh                ; 83 fb 0e
    14614     je near 09c83h                            ; 0f 84 36 01
     14609    je near 09c88h                            ; 0f 84 36 01
    1461514610    cmp bx, strict byte 00008h                ; 83 fb 08
    14616     jc near 09cc8h                            ; 0f 82 74 01
     14611    jc near 09ccdh                            ; 0f 82 74 01
    1461714612    cmp bx, strict byte 0000dh                ; 83 fb 0d
    14618     jbe near 09bdbh                           ; 0f 86 80 00
    14619     jmp near 09cc8h                           ; e9 6a 01
     14613    jbe near 09be0h                           ; 0f 86 80 00
     14614    jmp near 09ccdh                           ; e9 6a 01
    1462014615    cmp bx, strict byte 00002h                ; 83 fb 02
    14621     je short 09b86h                           ; 74 23
     14616    je short 09b8bh                           ; 74 23
    1462214617    cmp bx, strict byte 00001h                ; 83 fb 01
    14623     jne near 09cc8h                           ; 0f 85 5e 01
     14618    jne near 09ccdh                           ; 0f 85 5e 01
    1462414619    mov word [bp+020h], strict word 00001h    ; c7 46 20 01 00
    1462514620    mov word [bp+014h], 00210h                ; c7 46 14 10 02
     
    1462714622    mov word [bp+018h], 04350h                ; c7 46 18 50 43
    1462814623    mov word [bp+01ah], 02049h                ; c7 46 1a 49 20
    14629     jmp near 09cf5h                           ; e9 6f 01
     14624    jmp near 09cfah                           ; e9 6f 01
    1463014625    cmp word [bp+018h], strict byte 0ffffh    ; 83 7e 18 ff
    14631     jne short 09b92h                          ; 75 06
     14626    jne short 09b97h                          ; 75 06
    1463214627    or ah, 083h                               ; 80 cc 83
    14633     jmp near 09ceeh                           ; e9 5c 01
     14628    jmp near 09cf3h                           ; e9 5c 01
    1463414629    mov bx, word [bp+008h]                    ; 8b 5e 08
    1463514630    mov dx, word [bp+01ch]                    ; 8b 56 1c
    1463614631    mov ax, word [bp+018h]                    ; 8b 46 18
    1463714632    xor cx, cx                                ; 31 c9
    14638     call 09a2eh                               ; e8 8e fe
     14633    call 09a33h                               ; e8 8e fe
    1463914634    cmp ax, strict word 0ffffh                ; 3d ff ff
    14640     jne short 09bb0h                          ; 75 0b
     14635    jne short 09bb5h                          ; 75 0b
    1464114636    mov ax, word [bp+020h]                    ; 8b 46 20
    1464214637    xor ah, ah                                ; 30 e4
    1464314638    or ah, 086h                               ; 80 cc 86
    14644     jmp near 09ceeh                           ; e9 3e 01
     14639    jmp near 09cf3h                           ; e9 3e 01
    1464514640    mov word [bp+014h], ax                    ; 89 46 14
    14646     jmp near 09cf5h                           ; e9 3f 01
     14641    jmp near 09cfah                           ; e9 3f 01
    1464714642    mov bx, word [bp+008h]                    ; 8b 5e 08
    1464814643    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1464914644    mov dx, word [bp+01eh]                    ; 8b 56 1e
    1465014645    mov cx, strict word 00001h                ; b9 01 00
    14651     call 09a2eh                               ; e8 69 fe
     14646    call 09a33h                               ; e8 69 fe
    1465214647    cmp ax, strict word 0ffffh                ; 3d ff ff
    14653     jne short 09bd5h                          ; 75 0b
     14648    jne short 09bdah                          ; 75 0b
    1465414649    mov ax, word [bp+020h]                    ; 8b 46 20
    1465514650    xor ah, ah                                ; 30 e4
    1465614651    or ah, 086h                               ; 80 cc 86
    14657     jmp near 09ceeh                           ; e9 19 01
     14652    jmp near 09cf3h                           ; e9 19 01
    1465814653    mov word [bp+014h], ax                    ; 89 46 14
    14659     jmp near 09cf5h                           ; e9 1a 01
     14654    jmp near 09cfah                           ; e9 1a 01
    1466014655    cmp word [bp+004h], 00100h                ; 81 7e 04 00 01
    14661     jc short 09be8h                           ; 72 06
     14656    jc short 09bedh                           ; 72 06
    1466214657    or ah, 087h                               ; 80 cc 87
    14663     jmp near 09ceeh                           ; e9 06 01
     14658    jmp near 09cf3h                           ; e9 06 01
    1466414659    mov dx, word [bp+004h]                    ; 8b 56 04
    1466514660    mov ax, word [bp+014h]                    ; 8b 46 14
    14666     call 09a0ah                               ; e8 19 fe
     14661    call 09a0fh                               ; e8 19 fe
    1466714662    mov bx, word [bp+020h]                    ; 8b 5e 20
    1466814663    xor bh, bh                                ; 30 ff
    1466914664    sub bx, strict byte 00008h                ; 83 eb 08
    1467014665    cmp bx, strict byte 00005h                ; 83 fb 05
    14671     jnbe near 09cf5h                          ; 0f 87 f5 00
     14666    jnbe near 09cfah                          ; 0f 87 f5 00
    1467214667    add bx, bx                                ; 01 db
    14673     jmp word [cs:bx-064e7h]                   ; 2e ff a7 19 9b
     14668    jmp word [cs:bx-064e2h]                   ; 2e ff a7 1e 9b
    1467414669    mov bx, word [bp+01ch]                    ; 8b 5e 1c
    1467514670    xor bl, bl                                ; 30 db
     
    1468214677    or bx, ax                                 ; 09 c3
    1468314678    mov word [bp+01ch], bx                    ; 89 5e 1c
    14684     jmp near 09cf5h                           ; e9 d4 00
     14679    jmp near 09cfah                           ; e9 d4 00
    1468514680    mov dx, word [bp+004h]                    ; 8b 56 04
    1468614681    xor dh, dh                                ; 30 f6
     
    1468914684    in ax, DX                                 ; ed
    1469014685    mov word [bp+01ch], ax                    ; 89 46 1c
    14691     jmp near 09cf5h                           ; e9 c1 00
     14686    jmp near 09cfah                           ; e9 c1 00
    1469214687    mov dx, 00cfch                            ; ba fc 0c
    1469314688    in eax, DX                                ; 66 ed
     
    1469814693    mov word [bp+01ch], ax                    ; 89 46 1c
    1469914694    mov word [bp+01eh], dx                    ; 89 56 1e
    14700     jmp near 09cf5h                           ; e9 ac 00
     14695    jmp near 09cfah                           ; e9 ac 00
    1470114696    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1470214697    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1470514700    add dx, 00cfch                            ; 81 c2 fc 0c
    1470614701    out DX, AL                                ; ee
    14707     jmp near 09cf5h                           ; e9 99 00
     14702    jmp near 09cfah                           ; e9 99 00
    1470814703    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1470914704    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1471214707    add dx, 00cfch                            ; 81 c2 fc 0c
    1471314708    out DX, ax                                ; ef
    14714     jmp near 09cf5h                           ; e9 86 00
     14709    jmp near 09cfah                           ; e9 86 00
    1471514710    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1471614711    mov cx, word [bp+01eh]                    ; 8b 4e 1e
     
    1472114716    ; mov ax, cx                                ; 8b c1
    1472214717    out DX, eax                               ; 66 ef
    14723     jmp short 09cf5h                          ; eb 72
     14718    jmp short 09cfah                          ; eb 72
    1472414719    mov bx, word [bp+004h]                    ; 8b 5e 04
    1472514720    mov es, [bp+026h]                         ; 8e 46 26
     
    1472814723    mov cx, word [0f4a0h]                     ; 8b 0e a0 f4
    1472914724    cmp cx, word [es:bx]                      ; 26 3b 0f
    14730     jbe short 09ca9h                          ; 76 11
     14725    jbe short 09caeh                          ; 76 11
    1473114726    mov ax, word [bp+020h]                    ; 8b 46 20
    1473214727    xor ah, ah                                ; 30 e4
     
    1473414729    mov word [bp+020h], ax                    ; 89 46 20
    1473514730    or word [bp+02ch], strict byte 00001h     ; 83 4e 2c 01
    14736     jmp short 09cbdh                          ; eb 14
     14731    jmp short 09cc2h                          ; eb 14
    1473714732    les di, [es:bx+002h]                      ; 26 c4 7f 02
    1473814733    mov si, 0f2c0h                            ; be c0 f2
     
    1474614741    les bx, [bp-008h]                         ; c4 5e f8
    1474714742    mov word [es:bx], ax                      ; 26 89 07
    14748     jmp short 09cf5h                          ; eb 2d
    14749     mov bx, 00da6h                            ; bb a6 0d
     14743    jmp short 09cfah                          ; eb 2d
     14744    mov bx, 00da4h                            ; bb a4 0d
    1475014745    mov cx, ds                                ; 8c d9
    1475114746    mov ax, strict word 00004h                ; b8 04 00
    14752     call 01999h                               ; e8 c6 7c
     14747    call 01999h                               ; e8 c1 7c
    1475314748    mov ax, word [bp+014h]                    ; 8b 46 14
    1475414749    push ax                                   ; 50
     
    1475714752    push 00d5ch                               ; 68 5c 0d
    1475814753    push strict byte 00004h                   ; 6a 04
    14759     call 019dah                               ; e8 f7 7c
     14754    call 019dah                               ; e8 f2 7c
    1476014755    add sp, strict byte 00008h                ; 83 c4 08
    1476114756    mov ax, word [bp+020h]                    ; 8b 46 20
     
    1476914764    pop bp                                    ; 5d
    1477014765    retn                                      ; c3
    14771 pci_find_classcode_:                         ; 0xf9cfc LB 0x2b
     14766pci_find_classcode_:                         ; 0xf9d01 LB 0x2b
    1477214767    push bp                                   ; 55
    1477314768    mov bp, sp                                ; 89 e5
     
    1478414779    int 01ah                                  ; cd 1a
    1478514780    cmp ah, 000h                              ; 80 fc 00
    14786     je near 09d1dh                            ; 0f 84 03 00
     14781    je near 09d22h                            ; 0f 84 03 00
    1478714782    mov bx, strict word 0ffffh                ; bb ff ff
    1478814783    mov ax, bx                                ; 89 d8
     
    1479314788    pop bp                                    ; 5d
    1479414789    retn                                      ; c3
    14795 pci_read_config_byte_:                       ; 0xf9d27 LB 0x24
     14790pci_read_config_byte_:                       ; 0xf9d2c LB 0x24
    1479614791    push bp                                   ; 55
    1479714792    mov bp, sp                                ; 89 e5
     
    1481214807    pop bp                                    ; 5d
    1481314808    retn                                      ; c3
    14814 pci_read_config_word_:                       ; 0xf9d4b LB 0x22
     14809pci_read_config_word_:                       ; 0xf9d50 LB 0x22
    1481514810    push bp                                   ; 55
    1481614811    mov bp, sp                                ; 89 e5
     
    1483114826    pop bp                                    ; 5d
    1483214827    retn                                      ; c3
    14833 pci_read_config_dword_:                      ; 0xf9d6d LB 0x27
     14828pci_read_config_dword_:                      ; 0xf9d72 LB 0x27
    1483414829    push bp                                   ; 55
    1483514830    mov bp, sp                                ; 89 e5
     
    1485214847    pop bp                                    ; 5d
    1485314848    retn                                      ; c3
    14854 vds_is_present_:                             ; 0xf9d94 LB 0x1d
     14849vds_is_present_:                             ; 0xf9d99 LB 0x1d
    1485514850    push bx                                   ; 53
    1485614851    push bp                                   ; 55
     
    1486014855    mov es, ax                                ; 8e c0
    1486114856    test byte [es:bx], 020h                   ; 26 f6 07 20
    14862     je short 09dach                           ; 74 06
     14857    je short 09db1h                           ; 74 06
    1486314858    mov ax, strict word 00001h                ; b8 01 00
    1486414859    pop bp                                    ; 5d
     
    1486914864    pop bx                                    ; 5b
    1487014865    retn                                      ; c3
    14871 vds_real_to_lin_:                            ; 0xf9db1 LB 0x1e
     14866vds_real_to_lin_:                            ; 0xf9db6 LB 0x1e
    1487214867    push bx                                   ; 53
    1487314868    push cx                                   ; 51
     
    1488014875    sal ax, 1                                 ; d1 e0
    1488114876    rcl dx, 1                                 ; d1 d2
    14882     loop 09dbfh                               ; e2 fa
     14877    loop 09dc4h                               ; e2 fa
    1488314878    xor cx, cx                                ; 31 c9
    1488414879    add ax, bx                                ; 01 d8
     
    1488814883    pop bx                                    ; 5b
    1488914884    retn                                      ; c3
    14890 vds_build_sg_list_:                          ; 0xf9dcf LB 0x79
     14885vds_build_sg_list_:                          ; 0xf9dd4 LB 0x79
    1489114886    push bp                                   ; 55
    1489214887    mov bp, sp                                ; 89 e5
     
    1490214897    mov bx, word [bp+006h]                    ; 8b 5e 06
    1490314898    mov word [es:di+002h], bx                 ; 26 89 5d 02
    14904     call 09db1h                               ; e8 c3 ff
     14899    call 09db6h                               ; e8 c3 ff
    1490514900    mov es, si                                ; 8e c6
    1490614901    mov word [es:di+004h], ax                 ; 26 89 45 04
    1490714902    mov word [es:di+006h], dx                 ; 26 89 55 06
    1490814903    mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00
    14909     call 09d94h                               ; e8 93 ff
     14904    call 09d99h                               ; e8 93 ff
    1491014905    test ax, ax                               ; 85 c0
    14911     je short 09e18h                           ; 74 13
     14906    je short 09e1dh                           ; 74 13
    1491214907    mov es, si                                ; 8e c6
    1491314908    mov ax, 08105h                            ; b8 05 81
    1491414909    mov dx, strict word 00000h                ; ba 00 00
    1491514910    int 04bh                                  ; cd 4b
    14916     jc near 09e15h                            ; 0f 82 02 00
     14911    jc near 09e1ah                            ; 0f 82 02 00
    1491714912    db  032h, 0c0h
    1491814913    ; xor al, al                                ; 32 c0
    1491914914    cbw                                       ; 98
    14920     jmp short 09e3fh                          ; eb 27
     14915    jmp short 09e44h                          ; eb 27
    1492114916    mov es, si                                ; 8e c6
    1492214917    mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00
     
    1493514930    pop bp                                    ; 5d
    1493614931    retn 00004h                               ; c2 04 00
    14937 vds_free_sg_list_:                           ; 0xf9e48 LB 0x38
     14932vds_free_sg_list_:                           ; 0xf9e4d LB 0x33
    1493814933    push bp                                   ; 55
    1493914934    mov bp, sp                                ; 89 e5
     
    1494114936    push di                                   ; 57
    1494214937    mov bx, ax                                ; 89 c3
    14943     call 09d94h                               ; e8 42 ff
     14938    call 09d99h                               ; e8 42 ff
    1494414939    test ax, ax                               ; 85 c0
    14945     je short 09e69h                           ; 74 13
     14940    je short 09e6eh                           ; 74 13
    1494614941    mov di, bx                                ; 89 df
    1494714942    mov es, dx                                ; 8e c2
     
    1494914944    mov dx, strict word 00000h                ; ba 00 00
    1495014945    int 04bh                                  ; cd 4b
    14951     jc near 09e68h                            ; 0f 82 02 00
     14946    jc near 09e6dh                            ; 0f 82 02 00
    1495214947    db  032h, 0c0h
    1495314948    ; xor al, al                                ; 32 c0
     
    1496014955    pop bp                                    ; 5d
    1496114956    retn                                      ; c3
    14962     times 0x8 db 0
     14957    times 0x3 db 0
    1496314958__U4M:                                       ; 0xf9e80 LB 0x40
    1496414959    pushfw                                    ; 9c
     
    1591215907    call 01d17h                               ; e8 d4 39
    1591315908    call 021a4h                               ; e8 5e 3e
    15914     call 097deh                               ; e8 95 b4
    15915     call 086c2h                               ; e8 76 a3
     15909    call 097e3h                               ; e8 9a b4
     15910    call 086c7h                               ; e8 7b a3
    1591615911    call 0ed2fh                               ; e8 e0 09
    1591715912    call 0e2d2h                               ; e8 80 ff
     
    1623316228    pop DS                                    ; 1f
    1623416229    cld                                       ; fc
    16235     call 06e8dh                               ; e8 ae 84
     16230    call 06e92h                               ; e8 b3 84
    1623616231    pop DS                                    ; 1f
    1623716232    pop ES                                    ; 07
     
    1655316548    pop DS                                    ; 1f
    1655416549    cld                                       ; fc
    16555     call 07808h                               ; e8 2b 88
     16550    call 0780dh                               ; e8 30 88
    1655616551    popaw                                     ; 61
    1655716552    pop ES                                    ; 07
     
    1690816903    pop DS                                    ; 1f
    1690916904    cld                                       ; fc
    16910     call 06ce2h                               ; e8 7b 74
     16905    call 06ce7h                               ; e8 80 74
    1691116906    pop DS                                    ; 1f
    1691216907    pop ES                                    ; 07
     
    1693016925    cmp ah, 0c2h                              ; 80 fc c2
    1693116926    je short 0f899h                           ; 74 0e
    16932     call 06616h                               ; e8 88 6d
     16927    call 0661bh                               ; e8 8d 6d
    1693316928    popaw                                     ; 61
    1693416929    pop ES                                    ; 07
     
    1693616931    popfw                                     ; 9d
    1693716932    jmp short 0f8a7h                          ; eb 13
    16938     call 09915h                               ; e8 7e a0
     16933    call 0991ah                               ; e8 83 a0
    1693916934    jmp short 0f88eh                          ; eb f5
    1694016935int15_handler_mouse:                         ; 0xff899 LB 0x5
    16941     call 0747dh                               ; e8 e1 7b
     16936    call 07482h                               ; e8 e6 7b
    1694216937    jmp short 0f88eh                          ; eb f0
    1694316938int15_handler32:                             ; 0xff89e LB 0x9
    1694416939    pushad                                    ; 66 60
    16945     call 0694ch                               ; e8 a9 70
     16940    call 06951h                               ; e8 ae 70
    1694616941    popad                                     ; 66 61
    1694716942    jmp short 0f88fh                          ; eb e8
     
    1697516970    pop DS                                    ; 1f
    1697616971    cld                                       ; fc
    16977     call 073b3h                               ; e8 e7 7a
     16972    call 073b8h                               ; e8 ec 7a
    1697816973    pop cx                                    ; 59
    1697916974    jcxz 0f8dbh                               ; e3 0c
     
    1700717002    pop DS                                    ; 1f
    1700817003    cld                                       ; fc
    17009     call 0706bh                               ; e8 6a 77
     17004    call 07070h                               ; e8 6f 77
    1701017005    popaw                                     ; 61
    1701117006    pop DS                                    ; 1f
     
    1708917084    cld                                       ; fc
    1709017085    pushad                                    ; 66 60
    17091     call 09b25h                               ; e8 a8 9c
     17086    call 09b2ah                               ; e8 ad 9c
    1709217087    popad                                     ; 66 61
    1709317088    pop DS                                    ; 1f
     
    1710017095    pop DS                                    ; 1f
    1710117096    cld                                       ; fc
    17102     call 07129h                               ; e8 9e 72
     17097    call 0712eh                               ; e8 a3 72
    1710317098    popaw                                     ; 61
    1710417099    pop DS                                    ; 1f
     
    1720317198cpu_reset:                                   ; 0xffff0 LB 0x10
    1720417199    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    17205     db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 021h
     17200    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0f3h
  • TabularUnified trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.md5sum

    r61733 r62120  
    1 101b1d715cbc3e8df4902cd25e551df2 *VBoxPcBios386.rom
     1a86d9bc85604d19429796c9ed3edf7e7 *VBoxPcBios386.rom
  • TabularUnified trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.asm

    r61733 r62120  
    988988    db  001h, 000h, 002h, 002h, 003h, 003h, 004h, 004h, 005h, 005h, 00eh, 006h, 00fh, 006h, 000h
    989989_pktacc:                                     ; 0xf006a LB 0xc
    990     db  000h, 000h, 000h, 000h, 000h, 000h, 0a1h, 02bh, 07dh, 081h, 018h, 091h
     990    db  000h, 000h, 000h, 000h, 000h, 000h, 0a1h, 02bh, 082h, 081h, 01dh, 091h
    991991_softrst:                                    ; 0xf0076 LB 0xc
    992992    db  000h, 000h, 000h, 000h, 000h, 000h, 02ch, 02eh, 0bdh, 03bh, 0bdh, 03bh
    993993_dskacc:                                     ; 0xf0082 LB 0x2e
    994994    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h, 02ah, 046h, 02bh, 000h, 000h, 000h, 000h
    995     db  0abh, 07fh, 094h, 080h, 0e6h, 08fh, 090h, 090h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
     995    db  0b0h, 07fh, 099h, 080h, 0ebh, 08fh, 095h, 090h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
    996996    db  032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h
    997997
     
    11141114    db   'PCI: Unsupported function AX=%04X BX=%04X called', 00ah, 000h
    11151115
    1116 section CONST2 progbits vstart=0xd8e align=1 ; size=0x400 class=DATA group=DGROUP
    1117 _bios_cvs_version_string:                    ; 0xf0d8e LB 0x18
    1118     db  'VirtualBox 5.1.0_BETA3', 000h, 000h
    1119 _bios_prefix_string:                         ; 0xf0da6 LB 0x8
     1116section CONST2 progbits vstart=0xd8e align=1 ; size=0x3fe class=DATA group=DGROUP
     1117_bios_cvs_version_string:                    ; 0xf0d8e LB 0x16
     1118    db  'VirtualBox 5.1.0_RC1', 000h, 000h
     1119_bios_prefix_string:                         ; 0xf0da4 LB 0x8
    11201120    db  'BIOS: ', 000h, 000h
    1121 _isotag:                                     ; 0xf0dae LB 0x6
     1121_isotag:                                     ; 0xf0dac LB 0x6
    11221122    db  'CD001', 000h
    1123 _eltorito:                                   ; 0xf0db4 LB 0x18
     1123_eltorito:                                   ; 0xf0db2 LB 0x18
    11241124    db  'EL TORITO SPECIFICATION', 000h
    1125 _drivetypes:                                 ; 0xf0dcc LB 0x28
     1125_drivetypes:                                 ; 0xf0dca LB 0x28
    11261126    db  046h, 06ch, 06fh, 070h, 070h, 079h, 000h, 000h, 000h, 000h, 048h, 061h, 072h, 064h, 020h, 044h
    11271127    db  069h, 073h, 06bh, 000h, 043h, 044h, 02dh, 052h, 04fh, 04dh, 000h, 000h, 000h, 000h, 04ch, 041h
    11281128    db  04eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    1129 _scan_to_scanascii:                          ; 0xf0df4 LB 0x37a
     1129_scan_to_scanascii:                          ; 0xf0df2 LB 0x37a
    11301130    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 01bh, 001h, 01bh, 001h, 01bh, 001h
    11311131    db  000h, 001h, 000h, 000h, 031h, 002h, 021h, 002h, 000h, 000h, 000h, 078h, 000h, 000h, 032h, 003h
     
    11841184    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h, 000h, 087h, 000h, 089h, 000h, 08bh, 000h, 000h
    11851185    db  000h, 086h, 000h, 088h, 000h, 08ah, 000h, 08ch, 000h, 000h
    1186 _panic_msg_keyb_buffer_full:                 ; 0xf116e LB 0x20
     1186_panic_msg_keyb_buffer_full:                 ; 0xf116c LB 0x20
    11871187    db  '%s: keyboard input buffer full', 00ah, 000h
    11881188
    1189   ; Padding 0x472 bytes at 0xf118e
    1190   times 1138 db 0
     1189  ; Padding 0x474 bytes at 0xf118c
     1190  times 1140 db 0
    11911191
    1192 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8d88 class=CODE group=AUTO
     1192section _TEXT progbits vstart=0x1600 align=1 ; size=0x8d98 class=CODE group=AUTO
    11931193rom_scan_:                                   ; 0xf1600 LB 0x52
    11941194    push bp                                   ; 55
     
    14181418    push bp                                   ; 55
    14191419    mov bp, sp                                ; 89 e5
    1420     mov bx, 00da6h                            ; bb a6 0d
     1420    mov bx, 00da4h                            ; bb a4 0d
    14211421    mov cx, ds                                ; 8c d9
    14221422    mov ax, strict word 00004h                ; b8 04 00
     
    14501450    int 010h                                  ; cd 10
    14511451    jmp short 017c3h                          ; eb 03
    1452     call 07b4fh                               ; e8 8c 63
     1452    call 07b54h                               ; e8 91 63
    14531453    mov sp, bp                                ; 89 ec
    14541454    pop bp                                    ; 5d
     
    15961596    mov bx, strict word 0000ah                ; bb 0a 00
    15971597    xor cx, cx                                ; 31 c9
    1598     call 0a020h                               ; e8 43 87
     1598    call 0a030h                               ; e8 53 87
    15991599    mov word [bp-008h], ax                    ; 89 46 f8
    16001600    mov cx, dx                                ; 89 d1
     
    18331833    mov dx, word [bp-026h]                    ; 8b 56 da
    18341834    mov si, word [bp-01eh]                    ; 8b 76 e2
    1835     call 0a050h                               ; e8 38 85
     1835    call 0a060h                               ; e8 48 85
    18361836    mov ax, dx                                ; 89 d0
    18371837    xor ah, dh                                ; 30 f4
     
    22942294    mov dx, word [es:si]                      ; 26 8b 14
    22952295    mov si, strict word 00018h                ; be 18 00
    2296     call 0a050h                               ; e8 be 80
     2296    call 0a060h                               ; e8 ce 80
    22972297    xor dh, dh                                ; 30 f6
    22982298    mov word [bp-014h], dx                    ; 89 56 ec
     
    23042304    mov dx, word [es:si]                      ; 26 8b 14
    23052305    mov si, strict word 00020h                ; be 20 00
    2306     call 0a050h                               ; e8 9e 80
     2306    call 0a060h                               ; e8 ae 80
    23072307    mov bx, dx                                ; 89 d3
    23082308    mov word [bp-010h], dx                    ; 89 56 f0
     
    23362336    mov dx, word [es:si]                      ; 26 8b 14
    23372337    mov si, strict word 00008h                ; be 08 00
    2338     call 0a050h                               ; e8 4b 80
     2338    call 0a060h                               ; e8 5b 80
    23392339    mov word [bp-010h], dx                    ; 89 56 f0
    23402340    mov bx, word [bp-016h]                    ; 8b 5e ea
     
    23452345    mov dx, word [es:si]                      ; 26 8b 14
    23462346    mov si, strict word 00018h                ; be 18 00
    2347     call 0a050h                               ; e8 2d 80
     2347    call 0a060h                               ; e8 3d 80
    23482348    mov bl, dl                                ; 88 d3
    23492349    and bl, 00fh                              ; 80 e3 0f
     
    27422742    lea ax, [bp-03eh]                         ; 8d 46 c2
    27432743    call 05b09h                               ; e8 08 37
    2744     mov bx, 00da6h                            ; bb a6 0d
     2744    mov bx, 00da4h                            ; bb a4 0d
    27452745    mov cx, ds                                ; 8c d9
    27462746    mov ax, strict word 00004h                ; b8 04 00
     
    29232923    mov dx, word [es:di+036h]                 ; 26 8b 55 36
    29242924    mov si, strict word 0000bh                ; be 0b 00
    2925     call 0a050h                               ; e8 51 7a
     2925    call 0a060h                               ; e8 61 7a
    29262926    mov word [bp-02ah], dx                    ; 89 56 d6
    29272927    mov word [bp-026h], cx                    ; 89 4e da
     
    32153215    mov dx, word [bp-022h]                    ; 8b 56 de
    32163216    mov si, strict word 00018h                ; be 18 00
    3217     call 0a050h                               ; e8 74 77
     3217    call 0a060h                               ; e8 84 77
    32183218    xor dh, dh                                ; 30 f6
    32193219    mov word [bp-014h], dx                    ; 89 56 ec
     
    32233223    mov dx, word [bp-022h]                    ; 8b 56 de
    32243224    mov si, strict word 00020h                ; be 20 00
    3225     call 0a050h                               ; e8 5d 77
     3225    call 0a060h                               ; e8 6d 77
    32263226    mov bx, dx                                ; 89 d3
    32273227    mov word [bp-024h], dx                    ; 89 56 dc
     
    32573257    mov dx, word [bp-022h]                    ; 8b 56 de
    32583258    mov si, strict word 00008h                ; be 08 00
    3259     call 0a050h                               ; e8 09 77
     3259    call 0a060h                               ; e8 19 77
    32603260    mov word [bp-00ch], ax                    ; 89 46 f4
    32613261    mov word [bp-020h], bx                    ; 89 5e e0
     
    32643264    mov word [bp-024h], dx                    ; 89 56 dc
    32653265    mov si, strict word 00010h                ; be 10 00
    3266     call 0a050h                               ; e8 f4 76
     3266    call 0a060h                               ; e8 04 77
    32673267    mov word [bp-022h], dx                    ; 89 56 de
    32683268    mov ax, dx                                ; 89 d0
     
    35313531    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    35323532    jne short 02bf6h                          ; 75 23
    3533     mov bx, 00da6h                            ; bb a6 0d
     3533    mov bx, 00da4h                            ; bb a4 0d
    35343534    mov cx, ds                                ; 8c d9
    35353535    mov ax, strict word 00004h                ; b8 04 00
     
    44144414    cmp ch, 048h                              ; 80 fd 48
    44154415    jbe short 03383h                          ; 76 31
    4416     mov bx, 00da6h                            ; bb a6 0d
     4416    mov bx, 00da4h                            ; bb a4 0d
    44174417    mov cx, ds                                ; 8c d9
    44184418    mov ax, strict word 00004h                ; b8 04 00
     
    52765276    mov word [bp+008h], ax                    ; 89 46 08
    52775277    jmp near 039f3h                           ; e9 8e fe
    5278     mov bx, 00da6h                            ; bb a6 0d
     5278    mov bx, 00da4h                            ; bb a4 0d
    52795279    mov cx, ds                                ; 8c d9
    52805280    mov ax, strict word 00004h                ; b8 04 00
     
    53785378    cmp ax, strict word 0004ah                ; 3d 4a 00
    53795379    jne short 03c57h                          ; 75 23
    5380     mov bx, 00da6h                            ; bb a6 0d
     5380    mov bx, 00da4h                            ; bb a4 0d
    53815381    mov cx, ds                                ; 8c d9
    53825382    mov ax, strict word 00004h                ; b8 04 00
     
    54865486    pop bp                                    ; 5d
    54875487    retn                                      ; c3
    5488     mov bx, 00da6h                            ; bb a6 0d
     5488    mov bx, 00da4h                            ; bb a4 0d
    54895489    mov cx, ds                                ; 8c d9
    54905490    mov ax, strict word 00004h                ; b8 04 00
     
    55745574    mov dx, ss                                ; 8c d2
    55755575    lea ax, [bp-026h]                         ; 8d 46 da
    5576     call 0a070h                               ; e8 3e 62
     5576    call 0a080h                               ; e8 4e 62
    55775577    mov word [bp-026h], strict word 00028h    ; c7 46 da 28 00
    55785578    mov ax, strict word 00011h                ; b8 11 00
     
    56375637    jnc short 03ee0h                          ; 73 10
    56385638    mov al, byte [bp+di-00825h]               ; 8a 83 db f7
    5639     cmp al, byte [di+00daeh]                  ; 3a 85 ae 0d
     5639    cmp al, byte [di+00dach]                  ; 3a 85 ac 0d
    56405640    je short 03ecah                           ; 74 f0
    56415641    mov ax, strict word 00005h                ; b8 05 00
     
    56475647    jnc short 03efah                          ; 73 10
    56485648    mov al, byte [bp+di-0081fh]               ; 8a 83 e1 f7
    5649     cmp al, byte [di+00db4h]                  ; 3a 85 b4 0d
     5649    cmp al, byte [di+00db2h]                  ; 3a 85 b2 0d
    56505650    je short 03ee4h                           ; 74 f0
    56515651    mov ax, strict word 00006h                ; b8 06 00
     
    59485948    cmp ax, dx                                ; 39 d0
    59495949    je short 04296h                           ; 74 2a
    5950     mov bx, 00da6h                            ; bb a6 0d
     5950    mov bx, 00da4h                            ; bb a4 0d
    59515951    mov cx, ds                                ; 8c d9
    59525952    mov ax, strict word 00004h                ; b8 04 00
     
    60666066    xor dl, dl                                ; 30 d2
    60676067    xor cx, cx                                ; 31 c9
    6068     call 0a000h                               ; e8 5a 5c
     6068    call 0a010h                               ; e8 6a 5c
    60696069    xor bx, bx                                ; 31 db
    60706070    add ax, si                                ; 01 f0
     
    60726072    mov bx, di                                ; 89 fb
    60736073    xor cx, cx                                ; 31 c9
    6074     call 0a000h                               ; e8 4d 5c
     6074    call 0a010h                               ; e8 5d 5c
    60756075    mov bx, ax                                ; 89 c3
    60766076    mov ax, word [bp-00ah]                    ; 8b 46 f6
     
    61076107    mov dx, ss                                ; 8c d2
    61086108    lea ax, [bp-030h]                         ; 8d 46 d0
    6109     call 0a070h                               ; e8 66 5c
     6109    call 0a080h                               ; e8 76 5c
    61106110    mov word [bp-030h], strict word 00028h    ; c7 46 d0 28 00
    61116111    mov ax, word [bp-00eh]                    ; 8b 46 f2
     
    61776177    test al, al                               ; 84 c0
    61786178    je short 044fbh                           ; 74 38
    6179     mov bx, 00da6h                            ; bb a6 0d
     6179    mov bx, 00da4h                            ; bb a4 0d
    61806180    mov cx, ds                                ; 8c d9
    61816181    mov ax, strict word 00004h                ; b8 04 00
     
    62796279    mov word [bp+016h], bx                    ; 89 5e 16
    62806280    jmp near 044ffh                           ; e9 33 ff
    6281     mov bx, 00da6h                            ; bb a6 0d
     6281    mov bx, 00da4h                            ; bb a4 0d
    62826282    mov cx, ds                                ; 8c d9
    62836283    mov ax, strict word 00004h                ; b8 04 00
     
    64036403    mov word [bp+016h], strict word 00007h    ; c7 46 16 07 00
    64046404    jmp near 04b9ah                           ; e9 49 04
    6405     mov bx, 00da6h                            ; bb a6 0d
     6405    mov bx, 00da4h                            ; bb a4 0d
    64066406    mov cx, ds                                ; 8c d9
    64076407    mov ax, strict word 00004h                ; b8 04 00
     
    64616461    mov dx, ss                                ; 8c d2
    64626462    lea ax, [bp-02eh]                         ; 8d 46 d2
    6463     call 0a070h                               ; e8 7e 58
     6463    call 0a080h                               ; e8 8e 58
    64646464    mov word [bp-02eh], strict word 00028h    ; c7 46 d2 28 00
    64656465    mov ax, word [bp-014h]                    ; 8b 46 ec
     
    65186518    cmp byte [bp-016h], 000h                  ; 80 7e ea 00
    65196519    je short 048deh                           ; 74 57
    6520     mov bx, 00da6h                            ; bb a6 0d
     6520    mov bx, 00da4h                            ; bb a4 0d
    65216521    mov cx, ds                                ; 8c d9
    65226522    mov ax, strict word 00004h                ; b8 04 00
     
    68286828    je short 04c38h                           ; 74 27
    68296829    mov dx, strict word 00001h                ; ba 01 00
    6830     mov bx, 00da6h                            ; bb a6 0d
     6830    mov bx, 00da4h                            ; bb a4 0d
    68316831    mov cx, ds                                ; 8c d9
    68326832    mov ax, strict word 00004h                ; b8 04 00
     
    68356835    mov dx, strict word 0000ah                ; ba 0a 00
    68366836    imul dx                                   ; f7 ea
    6837     add ax, 00dcch                            ; 05 cc 0d
     6837    add ax, 00dcah                            ; 05 ca 0d
    68386838    push ax                                   ; 50
    68396839    mov ax, 00494h                            ; b8 94 04
     
    68586858    test al, al                               ; 84 c0
    68596859    je short 04c70h                           ; 74 1f
    6860     mov bx, 00da6h                            ; bb a6 0d
     6860    mov bx, 00da4h                            ; bb a4 0d
    68616861    mov cx, ds                                ; 8c d9
    68626862    mov ax, strict word 00004h                ; b8 04 00
    68636863    call 01933h                               ; e8 d7 cc
    6864     mov cx, 00de0h                            ; b9 e0 0d
     6864    mov cx, 00ddeh                            ; b9 de 0d
    68656865    push cx                                   ; 51
    68666866    mov cx, 004a8h                            ; b9 a8 04
     
    68736873    test dl, dl                               ; 84 d2
    68746874    je short 04c84h                           ; 74 10
    6875     mov bx, 00da6h                            ; bb a6 0d
     6875    mov bx, 00da4h                            ; bb a4 0d
    68766876    mov cx, ds                                ; 8c d9
    68776877    mov ax, strict word 00004h                ; b8 04 00
    68786878    call 01933h                               ; e8 b4 cc
    6879     mov cx, 00deah                            ; b9 ea 0d
     6879    mov cx, 00de8h                            ; b9 e8 0d
    68806880    jmp short 04c5fh                          ; eb db
    68816881    test bl, 080h                             ; f6 c3 80
    68826882    je short 04c9ah                           ; 74 11
    6883     mov bx, 00da6h                            ; bb a6 0d
     6883    mov bx, 00da4h                            ; bb a4 0d
    68846884    mov cx, ds                                ; 8c d9
    68856885    mov ax, strict word 00004h                ; b8 04 00
    68866886    call 01933h                               ; e8 9f cc
    68876887    push si                                   ; 56
    6888     mov cx, 00dd6h                            ; b9 d6 0d
     6888    mov cx, 00dd4h                            ; b9 d4 0d
    68896889    jmp short 04ca9h                          ; eb 0f
    6890     mov bx, 00da6h                            ; bb a6 0d
     6890    mov bx, 00da4h                            ; bb a4 0d
    68916891    mov cx, ds                                ; 8c d9
    68926892    mov ax, strict word 00004h                ; b8 04 00
    68936893    call 01933h                               ; e8 8e cc
    68946894    push si                                   ; 56
    6895     mov cx, 00dcch                            ; b9 cc 0d
     6895    mov cx, 00dcah                            ; b9 ca 0d
    68966896    push cx                                   ; 51
    68976897    mov cx, 004bdh                            ; b9 bd 04
     
    69246924    push dx                                   ; 52
    69256925    mov dx, ax                                ; 89 c2
    6926     mov bx, 00da6h                            ; bb a6 0d
     6926    mov bx, 00da4h                            ; bb a4 0d
    69276927    mov cx, ds                                ; 8c d9
    69286928    mov ax, strict word 00004h                ; b8 04 00
     
    69936993    mov CL, strict byte 004h                  ; b1 04
    69946994    sar ax, CL                                ; d3 f8
    6995     call 07d8fh                               ; e8 07 30
     6995    call 07d94h                               ; e8 0c 30
    69966996    cmp byte [bp+004h], 002h                  ; 80 7e 04 02
    69976997    jne short 04d93h                          ; 75 05
     
    70147014    mov byte [bp-008h], al                    ; 88 46 f8
    70157015    mov byte [bp-00ah], al                    ; 88 46 f6
    7016     mov bx, 00da6h                            ; bb a6 0d
     7016    mov bx, 00da4h                            ; bb a4 0d
    70177017    mov cx, ds                                ; 8c d9
    70187018    mov ax, strict word 00004h                ; b8 04 00
     
    75167516    out DX, AL                                ; ee
    75177517    xor ax, ax                                ; 31 c0
    7518     call 066ffh                               ; e8 ef 14
     7518    call 06704h                               ; e8 f4 14
    75197519    mov sp, bp                                ; 89 ec
    75207520    pop bp                                    ; 5d
     
    76167616    test al, al                               ; 84 c0
    76177617    jne short 052dfh                          ; 75 1c
    7618     mov bx, 00da6h                            ; bb a6 0d
     7618    mov bx, 00da4h                            ; bb a4 0d
    76197619    mov cx, ds                                ; 8c d9
    76207620    mov ax, strict word 00004h                ; b8 04 00
     
    79687968    cmp byte [bp-004h], 058h                  ; 80 7e fc 58
    79697969    jbe short 05675h                          ; 76 22
    7970     mov bx, 00da6h                            ; bb a6 0d
     7970    mov bx, 00da4h                            ; bb a4 0d
    79717971    mov cx, ds                                ; 8c d9
    79727972    mov ax, strict word 00004h                ; b8 04 00
     
    79907990    imul bx                                   ; f7 eb
    79917991    mov bx, ax                                ; 89 c3
    7992     mov al, byte [bx+00dfah]                  ; 8a 87 fa 0d
     7992    mov al, byte [bx+00df8h]                  ; 8a 87 f8 0d
    79937993    mov byte [bp-012h], al                    ; 88 46 ee
    7994     mov al, byte [bx+00dfbh]                  ; 8a 87 fb 0d
     7994    mov al, byte [bx+00df9h]                  ; 8a 87 f9 0d
    79957995    jmp near 05748h                           ; e9 b2 00
    79967996    test AL, strict byte 004h                 ; a8 04
     
    80018001    imul dx                                   ; f7 ea
    80028002    mov bx, ax                                ; 89 c3
    8003     mov al, byte [bx+00df8h]                  ; 8a 87 f8 0d
     8003    mov al, byte [bx+00df6h]                  ; 8a 87 f6 0d
    80048004    mov byte [bp-012h], al                    ; 88 46 ee
    8005     mov al, byte [bx+00df9h]                  ; 8a 87 f9 0d
     8005    mov al, byte [bx+00df7h]                  ; 8a 87 f7 0d
    80068006    jmp near 05748h                           ; e9 94 00
    80078007    mov al, byte [bp-010h]                    ; 8a 46 f0
     
    80278027    imul dx                                   ; f7 ea
    80288028    mov bx, ax                                ; 89 c3
    8029     mov al, byte [bx+00dfch]                  ; 8a 87 fc 0d
     8029    mov al, byte [bx+00dfah]                  ; 8a 87 fa 0d
    80308030    xor ah, ah                                ; 30 e4
    80318031    mov dx, ax                                ; 89 c2
     
    80338033    test ax, dx                               ; 85 d0
    80348034    je short 05705h                           ; 74 0d
     8035    mov al, byte [bx+00df2h]                  ; 8a 87 f2 0d
     8036    mov byte [bp-012h], al                    ; 88 46 ee
     8037    mov al, byte [bx+00df3h]                  ; 8a 87 f3 0d
     8038    jmp short 05710h                          ; eb 0b
    80358039    mov al, byte [bx+00df4h]                  ; 8a 87 f4 0d
    80368040    mov byte [bp-012h], al                    ; 88 46 ee
    80378041    mov al, byte [bx+00df5h]                  ; 8a 87 f5 0d
    8038     jmp short 05710h                          ; eb 0b
    8039     mov al, byte [bx+00df6h]                  ; 8a 87 f6 0d
    8040     mov byte [bp-012h], al                    ; 88 46 ee
    8041     mov al, byte [bx+00df7h]                  ; 8a 87 f7 0d
    80428042    mov byte [bp-004h], al                    ; 88 46 fc
    80438043    jmp short 0574bh                          ; eb 36
     
    80478047    imul bx                                   ; f7 eb
    80488048    mov bx, ax                                ; 89 c3
    8049     mov al, byte [bx+00dfch]                  ; 8a 87 fc 0d
     8049    mov al, byte [bx+00dfah]                  ; 8a 87 fa 0d
    80508050    xor ah, ah                                ; 30 e4
    80518051    mov dx, ax                                ; 89 c2
     
    80538053    test ax, dx                               ; 85 d0
    80548054    je short 0573dh                           ; 74 0d
    8055     mov al, byte [bx+00df6h]                  ; 8a 87 f6 0d
    8056     mov byte [bp-012h], al                    ; 88 46 ee
    8057     mov al, byte [bx+00df7h]                  ; 8a 87 f7 0d
    8058     jmp short 05748h                          ; eb 0b
    80598055    mov al, byte [bx+00df4h]                  ; 8a 87 f4 0d
    80608056    mov byte [bp-012h], al                    ; 88 46 ee
    80618057    mov al, byte [bx+00df5h]                  ; 8a 87 f5 0d
     8058    jmp short 05748h                          ; eb 0b
     8059    mov al, byte [bx+00df2h]                  ; 8a 87 f2 0d
     8060    mov byte [bp-012h], al                    ; 88 46 ee
     8061    mov al, byte [bx+00df3h]                  ; 8a 87 f3 0d
    80628062    mov byte [bp-004h], al                    ; 88 46 fc
    80638063    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
     
    80658065    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
    80668066    jne short 05770h                          ; 75 19
    8067     mov bx, 00da6h                            ; bb a6 0d
     8067    mov bx, 00da4h                            ; bb a4 0d
    80688068    mov cx, ds                                ; 8c d9
    80698069    mov ax, strict word 00004h                ; b8 04 00
     
    82698269    mov word [bp+012h], ax                    ; 89 46 12
    82708270    jmp near 05963h                           ; e9 4a 00
    8271     mov bx, 00da6h                            ; bb a6 0d
     8271    mov bx, 00da4h                            ; bb a4 0d
    82728272    mov cx, ds                                ; 8c d9
    82738273    mov ax, strict word 00004h                ; b8 04 00
     
    82838283    call 01976h                               ; e8 3f c0
    82848284    add sp, strict byte 00006h                ; 83 c4 06
    8285     mov bx, 00da6h                            ; bb a6 0d
     8285    mov bx, 00da4h                            ; bb a4 0d
    82868286    mov cx, ds                                ; 8c d9
    82878287    mov ax, strict word 00004h                ; b8 04 00
     
    84958495    mov dx, word [bp+00ch]                    ; 8b 56 0c
    84968496    mov si, strict word 00020h                ; be 20 00
    8497     call 0a050h                               ; e8 18 45
     8497    call 0a060h                               ; e8 28 45
    84988498    test ax, ax                               ; 85 c0
    84998499    jne short 05b48h                          ; 75 0c
     
    85338533    mov bx, strict word 0003fh                ; bb 3f 00
    85348534    xor cx, cx                                ; 31 c9
    8535     call 0a000h                               ; e8 6f 44
     8535    call 0a010h                               ; e8 7f 44
    85368536    mov bx, ax                                ; 89 c3
    85378537    mov cx, dx                                ; 89 d1
    85388538    mov ax, word [bp-004h]                    ; 8b 46 fc
    85398539    mov dx, si                                ; 89 f2
    8540     call 0a020h                               ; e8 83 44
     8540    call 0a030h                               ; e8 93 44
    85418541    mov word [es:di+002h], ax                 ; 26 89 45 02
    85428542    cmp ax, 00400h                            ; 3d 00 04
     
    86778677    test ax, ax                               ; 85 c0
    86788678    jne short 05d14h                          ; 75 29
    8679     mov bx, 00da6h                            ; bb a6 0d
     8679    mov bx, 00da4h                            ; bb a4 0d
    86808680    mov cx, ds                                ; 8c d9
    86818681    mov ax, strict word 00004h                ; b8 04 00
     
    87118711    cmp di, dx                                ; 39 d7
    87128712    jbe short 05d73h                          ; 76 31
    8713     mov bx, 00da6h                            ; bb a6 0d
     8713    mov bx, 00da4h                            ; bb a4 0d
    87148714    mov cx, ds                                ; 8c d9
    87158715    mov ax, strict word 00004h                ; b8 04 00
     
    87558755    mov bx, cx                                ; 89 cb
    87568756    xor cx, cx                                ; 31 c9
    8757     call 0a000h                               ; e8 4e 42
     8757    call 0a010h                               ; e8 5e 42
    87588758    xor bx, bx                                ; 31 db
    87598759    add ax, word [bp-00ch]                    ; 03 46 f4
     
    87618761    mov bx, word [bp-010h]                    ; 8b 5e f0
    87628762    xor cx, cx                                ; 31 c9
    8763     call 0a000h                               ; e8 3f 42
     8763    call 0a010h                               ; e8 4f 42
    87648764    xor bx, bx                                ; 31 db
    87658765    add ax, di                                ; 01 f8
     
    88198819    test dl, dl                               ; 84 d2
    88208820    je short 05ebch                           ; 74 4a
    8821     mov bx, 00da6h                            ; bb a6 0d
     8821    mov bx, 00da4h                            ; bb a4 0d
    88228822    mov cx, ds                                ; 8c d9
    88238823    mov ax, strict word 00004h                ; b8 04 00
     
    88408840    or ah, 00ch                               ; 80 cc 0c
    88418841    jmp near 06002h                           ; e9 5f 01
    8842     mov bx, 00da6h                            ; bb a6 0d
     8842    mov bx, 00da4h                            ; bb a4 0d
    88438843    mov cx, ds                                ; 8c d9
    88448844    mov ax, strict word 00004h                ; b8 04 00
     
    89358935    mov bx, word [bp-00ch]                    ; 8b 5e f4
    89368936    xor cx, cx                                ; 31 c9
    8937     call 0a000h                               ; e8 68 40
     8937    call 0a010h                               ; e8 78 40
    89388938    mov bx, di                                ; 89 fb
    89398939    xor cx, cx                                ; 31 c9
    8940     call 0a000h                               ; e8 61 40
     8940    call 0a010h                               ; e8 71 40
    89418941    mov word [bp-008h], ax                    ; 89 46 f8
    89428942    mov word [bp-006h], dx                    ; 89 56 fa
     
    89488948    mov word [bp+016h], ax                    ; 89 46 16
    89498949    jmp near 05ec0h                           ; e9 07 ff
    8950     mov bx, 00da6h                            ; bb a6 0d
     8950    mov bx, 00da4h                            ; bb a4 0d
    89518951    mov cx, ds                                ; 8c d9
    89528952    mov ax, strict word 00004h                ; b8 04 00
     
    89648964    add sp, strict byte 00008h                ; 83 c4 08
    89658965    jmp near 05ebch                           ; e9 dd fe
    8966     mov bx, 00da6h                            ; bb a6 0d
     8966    mov bx, 00da4h                            ; bb a4 0d
    89678967    mov cx, ds                                ; 8c d9
    89688968    mov ax, strict word 00004h                ; b8 04 00
     
    90789078    mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
    90799079    jmp near 0651dh                           ; e9 31 04
    9080     mov bx, 00da6h                            ; bb a6 0d
     9080    mov bx, 00da4h                            ; bb a4 0d
    90819081    mov cx, ds                                ; 8c d9
    90829082    mov ax, strict word 00004h                ; b8 04 00
     
    91049104    xor bx, bx                                ; 31 db
    91059105    mov si, strict word 00020h                ; be 20 00
    9106     call 0a060h                               ; e8 26 3f
     9106    call 0a070h                               ; e8 36 3f
    91079107    mov word [bp-00eh], ax                    ; 89 46 f2
    91089108    mov word [bp-010h], bx                    ; 89 5e f0
     
    91349134    cmp si, word [es:bx+036h]                 ; 26 3b 77 36
    91359135    jc short 061b2h                           ; 72 26
    9136     mov bx, 00da6h                            ; bb a6 0d
     9136    mov bx, 00da4h                            ; bb a4 0d
    91379137    mov cx, ds                                ; 8c d9
    91389138    mov ax, strict word 00004h                ; b8 04 00
     
    91969196    test dl, dl                               ; 84 d2
    91979197    je short 062a0h                           ; 74 54
    9198     mov bx, 00da6h                            ; bb a6 0d
     9198    mov bx, 00da4h                            ; bb a4 0d
    91999199    mov cx, ds                                ; 8c d9
    92009200    mov ax, strict word 00004h                ; b8 04 00
     
    92699269    mov dx, si                                ; 89 f2
    92709270    mov si, strict word 00020h                ; be 20 00
    9271     call 0a050h                               ; e8 1f 3d
     9271    call 0a060h                               ; e8 2f 3d
    92729272    mov bx, di                                ; 89 fb
    92739273    mov word [es:bx+014h], dx                 ; 26 89 57 14
     
    94569456    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    94579457    jmp short 0652ch                          ; eb c7
    9458 _int14_function:                             ; 0xf6565 LB 0x157
     9458_int14_function:                             ; 0xf6565 LB 0x15c
    94599459    push bp                                   ; 55
    94609460    mov bp, sp                                ; 89 e5
     
    94769476    test si, si                               ; 85 f6
    94779477    jnbe short 06594h                         ; 77 03
    9478     jmp near 066b2h                           ; e9 1e 01
     9478    jmp near 066b7h                           ; e9 23 01
    94799479    mov al, byte [bp+013h]                    ; 8a 46 13
    94809480    cmp AL, strict byte 001h                  ; 3c 01
    94819481    jc short 065a8h                           ; 72 0d
    9482     jbe short 06603h                          ; 76 66
     9482    jbe short 06608h                          ; 76 6b
    94839483    cmp AL, strict byte 003h                  ; 3c 03
    9484     je short 065fbh                           ; 74 5a
     9484    je short 06600h                           ; 74 5f
    94859485    cmp AL, strict byte 002h                  ; 3c 02
    9486     je short 065feh                           ; 74 59
    9487     jmp near 066ach                           ; e9 04 01
     9486    je short 06603h                           ; 74 5e
     9487    jmp near 066b1h                           ; e9 09 01
    94889488    test al, al                               ; 84 c0
    9489     jne short 06600h                          ; 75 54
     9489    jne short 06605h                          ; 75 59
    94909490    lea dx, [bx+003h]                         ; 8d 57 03
    94919491    in AL, DX                                 ; ec
     
    94949494    or AL, strict byte 080h                   ; 0c 80
    94959495    out DX, AL                                ; ee
     9496    lea si, [bx+001h]                         ; 8d 77 01
    94969497    mov al, byte [bp+012h]                    ; 8a 46 12
     9498    test AL, strict byte 0e0h                 ; a8 e0
     9499    jne short 065cbh                          ; 75 0c
     9500    mov AL, strict byte 017h                  ; b0 17
     9501    mov dx, bx                                ; 89 da
     9502    out DX, AL                                ; ee
     9503    mov AL, strict byte 004h                  ; b0 04
     9504    mov dx, si                                ; 89 f2
     9505    out DX, AL                                ; ee
     9506    jmp short 065e2h                          ; eb 17
    94979507    and AL, strict byte 0e0h                  ; 24 e0
    94989508    xor ah, ah                                ; 30 e4
     
    95059515    out DX, AL                                ; ee
    95069516    mov al, ah                                ; 88 e0
    9507     lea dx, [bx+001h]                         ; 8d 57 01
     9517    mov dx, si                                ; 89 f2
    95089518    out DX, AL                                ; ee
    95099519    mov al, byte [bp+012h]                    ; 8a 46 12
     
    95219531    ; sub ah, ah                                ; 2a e4
    95229532    mov byte [bp+012h], al                    ; 88 46 12
    9523     jmp near 0668dh                           ; e9 9f 00
    9524     mov AL, strict byte 017h                  ; b0 17
    9525     mov dx, bx                                ; 89 da
    9526     out DX, AL                                ; ee
    9527     lea dx, [bx+001h]                         ; 8d 57 01
    9528     mov AL, strict byte 004h                  ; b0 04
    9529     out DX, AL                                ; ee
    9530     jmp short 065d0h                          ; eb d5
    9531     jmp near 0669bh                           ; e9 9d 00
    9532     jmp short 06651h                          ; eb 51
    9533     jmp near 066ach                           ; e9 a9 00
     9533    jmp near 06692h                           ; e9 92 00
     9534    jmp near 066a0h                           ; e9 9d 00
     9535    jmp short 06656h                          ; eb 51
     9536    jmp near 066b1h                           ; e9 a9 00
    95349537    mov dx, strict word 0006ch                ; ba 6c 00
    95359538    mov ax, strict word 00040h                ; b8 40 00
    9536     call 0166eh                               ; e8 62 b0
     9539    call 0166eh                               ; e8 5d b0
    95379540    mov si, ax                                ; 89 c6
    95389541    lea dx, [bx+005h]                         ; 8d 57 05
     
    95429545    and ax, strict word 00060h                ; 25 60 00
    95439546    cmp ax, strict word 00060h                ; 3d 60 00
    9544     je short 06633h                           ; 74 17
     9547    je short 06638h                           ; 74 17
    95459548    test cl, cl                               ; 84 c9
    9546     je short 06633h                           ; 74 13
     9549    je short 06638h                           ; 74 13
    95479550    mov dx, strict word 0006ch                ; ba 6c 00
    95489551    mov ax, strict word 00040h                ; b8 40 00
    9549     call 0166eh                               ; e8 45 b0
     9552    call 0166eh                               ; e8 40 b0
    95509553    cmp ax, si                                ; 39 f0
    9551     je short 0660eh                           ; 74 e1
     9554    je short 06613h                           ; 74 e1
    95529555    mov si, ax                                ; 89 c6
    95539556    db  0feh, 0c9h
    95549557    ; dec cl                                    ; fe c9
    9555     jmp short 0660eh                          ; eb db
     9558    jmp short 06613h                          ; eb db
    95569559    test cl, cl                               ; 84 c9
    9557     je short 0663dh                           ; 74 06
     9560    je short 06642h                           ; 74 06
    95589561    mov al, byte [bp+012h]                    ; 8a 46 12
    95599562    mov dx, bx                                ; 89 da
     
    95659568    mov byte [bp+013h], al                    ; 88 46 13
    95669569    test cl, cl                               ; 84 c9
    9567     jne short 0668dh                          ; 75 43
     9570    jne short 06692h                          ; 75 43
    95689571    or AL, strict byte 080h                   ; 0c 80
    95699572    mov byte [bp+013h], al                    ; 88 46 13
    9570     jmp short 0668dh                          ; eb 3c
     9573    jmp short 06692h                          ; eb 3c
    95719574    mov dx, strict word 0006ch                ; ba 6c 00
    95729575    mov ax, strict word 00040h                ; b8 40 00
    9573     call 0166eh                               ; e8 14 b0
     9576    call 0166eh                               ; e8 0f b0
    95749577    mov si, ax                                ; 89 c6
    95759578    lea dx, [bx+005h]                         ; 8d 57 05
     
    95789581    ; sub ah, ah                                ; 2a e4
    95799582    test AL, strict byte 001h                 ; a8 01
    9580     jne short 0667dh                          ; 75 17
     9583    jne short 06682h                          ; 75 17
    95819584    test cl, cl                               ; 84 c9
    9582     je short 0667dh                           ; 74 13
     9585    je short 06682h                           ; 74 13
    95839586    mov dx, strict word 0006ch                ; ba 6c 00
    95849587    mov ax, strict word 00040h                ; b8 40 00
    9585     call 0166eh                               ; e8 fb af
     9588    call 0166eh                               ; e8 f6 af
    95869589    cmp ax, si                                ; 39 f0
    9587     je short 0665ch                           ; 74 e5
     9590    je short 06661h                           ; 74 e5
    95889591    mov si, ax                                ; 89 c6
    95899592    db  0feh, 0c9h
    95909593    ; dec cl                                    ; fe c9
    9591     jmp short 0665ch                          ; eb df
     9594    jmp short 06661h                          ; eb df
    95929595    test cl, cl                               ; 84 c9
    9593     je short 06693h                           ; 74 12
     9596    je short 06698h                           ; 74 12
    95949597    mov byte [bp+013h], 000h                  ; c6 46 13 00
    95959598    mov dx, bx                                ; 89 da
     
    95999602    mov byte [bp+012h], al                    ; 88 46 12
    96009603    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    9601     jmp short 066b6h                          ; eb 23
     9604    jmp short 066bbh                          ; eb 23
    96029605    lea dx, [bx+005h]                         ; 8d 57 05
    96039606    in AL, DX                                 ; ec
    96049607    db  02ah, 0e4h
    96059608    ; sub ah, ah                                ; 2a e4
    9606     jmp short 0664ch                          ; eb b1
     9609    jmp short 06651h                          ; eb b1
    96079610    lea dx, [si+005h]                         ; 8d 54 05
    96089611    in AL, DX                                 ; ec
     
    96149617    db  02ah, 0e4h
    96159618    ; sub ah, ah                                ; 2a e4
    9616     jmp short 0668ah                          ; eb de
     9619    jmp short 0668fh                          ; eb de
    96179620    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    9618     jmp short 066b6h                          ; eb 04
     9621    jmp short 066bbh                          ; eb 04
    96199622    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    96209623    lea sp, [bp-002h]                         ; 8d 66 fe
     
    96229625    pop bp                                    ; 5d
    96239626    retn                                      ; c3
    9624 timer_wait_:                                 ; 0xf66bc LB 0x43
     9627timer_wait_:                                 ; 0xf66c1 LB 0x43
    96259628    push bp                                   ; 55
    96269629    mov bp, sp                                ; 89 e5
     
    96309633    mov bx, strict word 0000fh                ; bb 0f 00
    96319634    xor cx, cx                                ; 31 c9
    9632     call 0a020h                               ; e8 56 39
     9635    call 0a030h                               ; e8 61 39
    96339636    mov cx, ax                                ; 89 c1
    96349637    mov bx, dx                                ; 89 d3
     
    96429645    adc bx, strict byte 0ffffh                ; 83 d3 ff
    96439646    cmp bx, strict byte 0ffffh                ; 83 fb ff
    9644     jne short 066e9h                          ; 75 05
     9647    jne short 066eeh                          ; 75 05
    96459648    cmp cx, strict byte 0ffffh                ; 83 f9 ff
    9646     je short 066f8h                           ; 74 0f
     9649    je short 066fdh                           ; 74 0f
    96479650    mov dx, strict word 00061h                ; ba 61 00
    96489651    in AL, DX                                 ; ec
     
    96519654    and AL, strict byte 010h                  ; 24 10
    96529655    cmp al, byte [bp-006h]                    ; 3a 46 fa
    9653     jne short 066e9h                          ; 75 f3
    9654     jmp short 066d9h                          ; eb e1
     9656    jne short 066eeh                          ; 75 f3
     9657    jmp short 066deh                          ; eb e1
    96559658    lea sp, [bp-004h]                         ; 8d 66 fc
    96569659    pop cx                                    ; 59
     
    96589661    pop bp                                    ; 5d
    96599662    retn                                      ; c3
    9660 set_enable_a20_:                             ; 0xf66ff LB 0x30
     9663set_enable_a20_:                             ; 0xf6704 LB 0x30
    96619664    push bp                                   ; 55
    96629665    mov bp, sp                                ; 89 e5
     
    96719674    mov cl, al                                ; 88 c1
    96729675    test bx, bx                               ; 85 db
    9673     je short 06718h                           ; 74 05
     9676    je short 0671dh                           ; 74 05
    96749677    or AL, strict byte 002h                   ; 0c 02
    96759678    out DX, AL                                ; ee
    9676     jmp short 0671bh                          ; eb 03
     9679    jmp short 06720h                          ; eb 03
    96779680    and AL, strict byte 0fdh                  ; 24 fd
    96789681    out DX, AL                                ; ee
    96799682    test cl, 002h                             ; f6 c1 02
    9680     je short 06725h                           ; 74 05
     9683    je short 0672ah                           ; 74 05
    96819684    mov ax, strict word 00001h                ; b8 01 00
    9682     jmp short 06727h                          ; eb 02
     9685    jmp short 0672ch                          ; eb 02
    96839686    xor ax, ax                                ; 31 c0
    96849687    lea sp, [bp-006h]                         ; 8d 66 fa
     
    96889691    pop bp                                    ; 5d
    96899692    retn                                      ; c3
    9690 set_e820_range_:                             ; 0xf672f LB 0x88
     9693set_e820_range_:                             ; 0xf6734 LB 0x88
    96919694    push si                                   ; 56
    96929695    push bp                                   ; 55
     
    97189721    retn 0000ah                               ; c2 0a 00
    97199722    db  0ech, 0e9h, 0d8h, 0c1h, 0c0h, 0bfh, 091h, 090h, 089h, 088h, 083h, 052h, 04fh, 041h, 024h, 000h
    9720     db  0c4h, 06ah, 0f3h, 067h, 007h, 068h, 0a3h, 068h, 0a9h, 068h, 0aeh, 068h, 0b3h, 068h, 05bh, 069h
    9721     db  07fh, 069h, 09ch, 068h, 09ch, 068h, 049h, 06ah, 074h, 06ah, 087h, 06ah, 096h, 06ah, 0a3h, 068h
    9722     db  09fh, 06ah
    9723 _int15_function:                             ; 0xf67b7 LB 0x343
     9723    db  0c9h, 06ah, 0f8h, 067h, 00ch, 068h, 0a8h, 068h, 0aeh, 068h, 0b3h, 068h, 0b8h, 068h, 060h, 069h
     9724    db  084h, 069h, 0a1h, 068h, 0a1h, 068h, 04eh, 06ah, 079h, 06ah, 08ch, 06ah, 09bh, 06ah, 0a8h, 068h
     9725    db  0a4h, 06ah
     9726_int15_function:                             ; 0xf67bc LB 0x343
    97249727    push bp                                   ; 55
    97259728    mov bp, sp                                ; 89 e5
     
    97309733    mov dx, ax                                ; 89 c2
    97319734    cmp ax, 000ech                            ; 3d ec 00
    9732     jnbe short 067fdh                         ; 77 35
     9735    jnbe short 06802h                         ; 77 35
    97339736    push CS                                   ; 0e
    97349737    pop ES                                    ; 07
    97359738    mov cx, strict word 00011h                ; b9 11 00
    9736     mov di, 06785h                            ; bf 85 67
     9739    mov di, 0678ah                            ; bf 8a 67
    97379740    repne scasb                               ; f2 ae
    97389741    sal cx, 1                                 ; d1 e1
    97399742    mov di, cx                                ; 89 cf
    9740     mov si, word [cs:di+06795h]               ; 2e 8b b5 95 67
     9743    mov si, word [cs:di+0679ah]               ; 2e 8b b5 9a 67
    97419744    mov ax, word [bp+012h]                    ; 8b 46 12
    97429745    xor ah, ah                                ; 30 e4
     
    97519754    xor ah, ah                                ; 30 e4
    97529755    cmp ax, 000c0h                            ; 3d c0 00
    9753     je short 06800h                           ; 74 03
    9754     jmp near 06ac4h                           ; e9 c4 02
     9756    je short 06805h                           ; 74 03
     9757    jmp near 06ac9h                           ; e9 c4 02
    97559758    or byte [bp+018h], 001h                   ; 80 4e 18 01
    9756     jmp near 06a6bh                           ; e9 64 02
     9759    jmp near 06a70h                           ; e9 64 02
    97579760    mov dx, ax                                ; 89 c2
    97589761    cmp ax, strict word 00001h                ; 3d 01 00
    9759     jc short 0681ch                           ; 72 0e
    9760     jbe short 06830h                          ; 76 20
     9762    jc short 06821h                           ; 72 0e
     9763    jbe short 06835h                          ; 76 20
    97619764    cmp ax, strict word 00003h                ; 3d 03 00
    9762     je short 06861h                           ; 74 4c
     9765    je short 06866h                           ; 74 4c
    97639766    cmp ax, strict word 00002h                ; 3d 02 00
    9764     je short 06840h                           ; 74 26
    9765     jmp short 0686eh                          ; eb 52
     9767    je short 06845h                           ; 74 26
     9768    jmp short 06873h                          ; eb 52
    97669769    test ax, ax                               ; 85 c0
    9767     jne short 0686eh                          ; 75 4e
     9770    jne short 06873h                          ; 75 4e
    97689771    xor ax, ax                                ; 31 c0
    9769     call 066ffh                               ; e8 da fe
     9772    call 06704h                               ; e8 da fe
    97709773    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    97719774    mov byte [bp+013h], 000h                  ; c6 46 13 00
    9772     jmp near 0689ch                           ; e9 6c 00
     9775    jmp near 068a1h                           ; e9 6c 00
    97739776    mov ax, strict word 00001h                ; b8 01 00
    9774     call 066ffh                               ; e8 c9 fe
     9777    call 06704h                               ; e8 c9 fe
    97759778    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    97769779    mov byte [bp+013h], dh                    ; 88 76 13
    9777     jmp near 0689ch                           ; e9 5c 00
     9780    jmp near 068a1h                           ; e9 5c 00
    97789781    mov dx, 00092h                            ; ba 92 00
    97799782    in AL, DX                                 ; ec
     
    97899792    xor al, dl                                ; 30 d0
    97909793    mov byte [bp+013h], al                    ; 88 46 13
    9791     jmp near 0689ch                           ; e9 3b 00
     9794    jmp near 068a1h                           ; e9 3b 00
    97929795    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    97939796    mov byte [bp+013h], ah                    ; 88 66 13
    97949797    mov word [bp+00ch], ax                    ; 89 46 0c
    9795     jmp near 0689ch                           ; e9 2e 00
    9796     mov bx, 00da6h                            ; bb a6 0d
     9798    jmp near 068a1h                           ; e9 2e 00
     9799    mov bx, 00da4h                            ; bb a4 0d
    97979800    mov cx, ds                                ; 8c d9
    97989801    mov ax, strict word 00004h                ; b8 04 00
    9799     call 01933h                               ; e8 ba b0
     9802    call 01933h                               ; e8 b5 b0
    98009803    mov ax, word [bp+012h]                    ; 8b 46 12
    98019804    xor ah, ah                                ; 30 e4
     
    98059808    mov ax, strict word 00004h                ; b8 04 00
    98069809    push ax                                   ; 50
    9807     call 01976h                               ; e8 ec b0
     9810    call 01976h                               ; e8 e7 b0
    98089811    add sp, strict byte 00006h                ; 83 c4 06
    98099812    or byte [bp+018h], 001h                   ; 80 4e 18 01
     
    98189821    retn                                      ; c3
    98199822    mov word [bp+018h], dx                    ; 89 56 18
    9820     jmp near 06955h                           ; e9 ac 00
     9823    jmp near 0695ah                           ; e9 ac 00
    98219824    mov word [bp+018h], dx                    ; 89 56 18
    9822     jmp short 0689ch                          ; eb ee
     9825    jmp short 068a1h                          ; eb ee
    98239826    mov word [bp+018h], cx                    ; 89 4e 18
    9824     jmp short 06899h                          ; eb e6
     9827    jmp short 0689eh                          ; eb e6
    98259828    test byte [bp+012h], 0ffh                 ; f6 46 12 ff
    9826     jne short 06928h                          ; 75 6f
     9829    jne short 0692dh                          ; 75 6f
    98279830    mov dx, 000a0h                            ; ba a0 00
    98289831    mov ax, strict word 00040h                ; b8 40 00
    9829     call 01652h                               ; e8 90 ad
     9832    call 01652h                               ; e8 8b ad
    98309833    test AL, strict byte 001h                 ; a8 01
    9831     jne short 06925h                          ; 75 5f
     9834    jne short 0692ah                          ; 75 5f
    98329835    mov bx, strict word 00001h                ; bb 01 00
    98339836    mov dx, 000a0h                            ; ba a0 00
    98349837    mov ax, strict word 00040h                ; b8 40 00
    9835     call 01660h                               ; e8 8e ad
     9838    call 01660h                               ; e8 89 ad
    98369839    mov bx, word [bp+014h]                    ; 8b 5e 14
    98379840    mov dx, 00098h                            ; ba 98 00
    98389841    mov ax, strict word 00040h                ; b8 40 00
    9839     call 0167ch                               ; e8 9e ad
     9842    call 0167ch                               ; e8 99 ad
    98409843    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    98419844    mov dx, 0009ah                            ; ba 9a 00
    98429845    mov ax, strict word 00040h                ; b8 40 00
    9843     call 0167ch                               ; e8 92 ad
     9846    call 0167ch                               ; e8 8d ad
    98449847    mov bx, word [bp+00eh]                    ; 8b 5e 0e
    98459848    mov dx, 0009ch                            ; ba 9c 00
    98469849    mov ax, strict word 00040h                ; b8 40 00
    9847     call 0167ch                               ; e8 86 ad
     9850    call 0167ch                               ; e8 81 ad
    98489851    mov bx, word [bp+010h]                    ; 8b 5e 10
    98499852    mov dx, 0009eh                            ; ba 9e 00
    98509853    mov ax, strict word 00040h                ; b8 40 00
    9851     call 0167ch                               ; e8 7a ad
     9854    call 0167ch                               ; e8 75 ad
    98529855    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    98539856    mov dx, 000a1h                            ; ba a1 00
     
    98589861    out DX, AL                                ; ee
    98599862    mov ax, strict word 0000bh                ; b8 0b 00
    9860     call 016aeh                               ; e8 99 ad
     9863    call 016aeh                               ; e8 94 ad
    98619864    mov dl, al                                ; 88 c2
    98629865    or dl, 040h                               ; 80 ca 40
    98639866    xor dh, dh                                ; 30 f6
    98649867    mov ax, strict word 0000bh                ; b8 0b 00
    9865     call 016c9h                               ; e8 a7 ad
    9866     jmp near 0689ch                           ; e9 77 ff
    9867     jmp near 06a62h                           ; e9 3a 01
     9868    call 016c9h                               ; e8 a2 ad
     9869    jmp near 068a1h                           ; e9 77 ff
     9870    jmp near 06a67h                           ; e9 3a 01
    98689871    cmp ax, strict word 00001h                ; 3d 01 00
    9869     jne short 06949h                          ; 75 1c
     9872    jne short 0694eh                          ; 75 1c
    98709873    xor bx, bx                                ; 31 db
    98719874    mov dx, 000a0h                            ; ba a0 00
    98729875    mov ax, strict word 00040h                ; b8 40 00
    9873     call 01660h                               ; e8 28 ad
     9876    call 01660h                               ; e8 23 ad
    98749877    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    98759878    mov ax, strict word 0000bh                ; b8 0b 00
    9876     call 016aeh                               ; e8 6c ad
     9879    call 016aeh                               ; e8 67 ad
    98779880    mov dl, al                                ; 88 c2
    98789881    and dl, 0bfh                              ; 80 e2 bf
    9879     jmp short 0691ah                          ; eb d1
     9882    jmp short 0691fh                          ; eb d1
    98809883    mov word [bp+018h], dx                    ; 89 56 18
    98819884    mov ax, bx                                ; 89 d8
     
    98859888    or bx, ax                                 ; 09 c3
    98869889    mov word [bp+012h], bx                    ; 89 5e 12
    9887     jmp near 0689ch                           ; e9 41 ff
     9890    jmp near 068a1h                           ; e9 41 ff
    98889891    mov ax, strict word 00031h                ; b8 31 00
    9889     call 016aeh                               ; e8 4d ad
     9892    call 016aeh                               ; e8 48 ad
    98909893    mov dh, al                                ; 88 c6
    98919894    mov ax, strict word 00030h                ; b8 30 00
    9892     call 016aeh                               ; e8 45 ad
     9895    call 016aeh                               ; e8 40 ad
    98939896    mov dl, al                                ; 88 c2
    98949897    mov word [bp+012h], dx                    ; 89 56 12
    98959898    cmp dx, strict byte 0ffc0h                ; 83 fa c0
    9896     jbe short 06978h                          ; 76 05
     9899    jbe short 0697dh                          ; 76 05
    98979900    mov word [bp+012h], strict word 0ffc0h    ; c7 46 12 c0 ff
    98989901    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    9899     jmp near 0689ch                           ; e9 1d ff
     9902    jmp near 068a1h                           ; e9 1d ff
    99009903    cli                                       ; fa
    99019904    mov ax, strict word 00001h                ; b8 01 00
    9902     call 066ffh                               ; e8 79 fd
     9905    call 06704h                               ; e8 79 fd
    99039906    mov dx, word [bp+006h]                    ; 8b 56 06
    99049907    add dx, strict byte 00038h                ; 83 c2 38
    99059908    mov ax, word [bp+014h]                    ; 8b 46 14
    99069909    mov bx, strict word 0ffffh                ; bb ff ff
    9907     call 0167ch                               ; e8 e7 ac
     9910    call 0167ch                               ; e8 e2 ac
    99089911    mov dx, word [bp+006h]                    ; 8b 56 06
    99099912    add dx, strict byte 0003ah                ; 83 c2 3a
    99109913    mov ax, word [bp+014h]                    ; 8b 46 14
    99119914    xor bx, bx                                ; 31 db
    9912     call 0167ch                               ; e8 d9 ac
     9915    call 0167ch                               ; e8 d4 ac
    99139916    mov dx, word [bp+006h]                    ; 8b 56 06
    99149917    add dx, strict byte 0003ch                ; 83 c2 3c
    99159918    mov ax, word [bp+014h]                    ; 8b 46 14
    99169919    mov bx, strict word 0000fh                ; bb 0f 00
    9917     call 01660h                               ; e8 ae ac
     9920    call 01660h                               ; e8 a9 ac
    99189921    mov dx, word [bp+006h]                    ; 8b 56 06
    99199922    add dx, strict byte 0003dh                ; 83 c2 3d
    99209923    mov ax, word [bp+014h]                    ; 8b 46 14
    99219924    mov bx, 0009bh                            ; bb 9b 00
    9922     call 01660h                               ; e8 9f ac
     9925    call 01660h                               ; e8 9a ac
    99239926    mov dx, word [bp+006h]                    ; 8b 56 06
    99249927    add dx, strict byte 0003eh                ; 83 c2 3e
    99259928    mov ax, word [bp+014h]                    ; 8b 46 14
    99269929    xor bx, bx                                ; 31 db
    9927     call 0167ch                               ; e8 ad ac
     9930    call 0167ch                               ; e8 a8 ac
    99289931    mov AL, strict byte 011h                  ; b0 11
    99299932    mov dx, strict word 00020h                ; ba 20 00
     
    99549957    out DX, AL                                ; ee
    99559958    mov si, word [bp+006h]                    ; 8b 76 06
    9956     call 06a0dh                               ; e8 00 00
     9959    call 06a12h                               ; e8 00 00
    99579960    pop di                                    ; 5f
    99589961    add di, strict byte 00018h                ; 83 c7 18
     
    99829985    push cx                                   ; 51
    99839986    retf                                      ; cb
    9984     jmp near 0689ch                           ; e9 53 fe
    9985     mov bx, 00da6h                            ; bb a6 0d
     9987    jmp near 068a1h                           ; e9 53 fe
     9988    mov bx, 00da4h                            ; bb a4 0d
    99869989    mov cx, ds                                ; 8c d9
    99879990    mov ax, strict word 00004h                ; b8 04 00
    9988     call 01933h                               ; e8 df ae
     9991    call 01933h                               ; e8 da ae
    99899992    mov ax, 0086eh                            ; b8 6e 08
    99909993    push ax                                   ; 50
    99919994    mov ax, strict word 00004h                ; b8 04 00
    99929995    push ax                                   ; 50
    9993     call 01976h                               ; e8 17 af
     9996    call 01976h                               ; e8 12 af
    99949997    add sp, strict byte 00004h                ; 83 c4 04
    99959998    or byte [bp+018h], 001h                   ; 80 4e 18 01
     
    999810001    or ah, 086h                               ; 80 cc 86
    999910002    mov word [bp+012h], ax                    ; 89 46 12
    10000     jmp near 0689ch                           ; e9 28 fe
     10003    jmp near 068a1h                           ; e9 28 fe
    1000110004    mov word [bp+018h], cx                    ; 89 4e 18
    1000210005    mov word [bp+012h], ax                    ; 89 46 12
    1000310006    mov word [bp+00ch], 0e6f5h                ; c7 46 0c f5 e6
    1000410007    mov word [bp+014h], 0f000h                ; c7 46 14 00 f0
    10005     jmp near 0689ch                           ; e9 15 fe
     10008    jmp near 068a1h                           ; e9 15 fe
    1000610009    mov dx, strict word 0000eh                ; ba 0e 00
    1000710010    mov ax, strict word 00040h                ; b8 40 00
    10008     call 0166eh                               ; e8 de ab
     10011    call 0166eh                               ; e8 d9 ab
    1000910012    mov word [bp+014h], ax                    ; 89 46 14
    10010     jmp near 06978h                           ; e9 e2 fe
     10013    jmp near 0697dh                           ; e9 e2 fe
    1001110014    mov ax, 0089dh                            ; b8 9d 08
    1001210015    push ax                                   ; 50
    1001310016    mov ax, strict word 00008h                ; b8 08 00
    10014     jmp short 06a5bh                          ; eb bc
     10017    jmp short 06a60h                          ; eb bc
    1001510018    test byte [bp+012h], 0ffh                 ; f6 46 12 ff
    10016     jne short 06ac4h                          ; 75 1f
     10019    jne short 06ac9h                          ; 75 1f
    1001710020    mov word [bp+012h], ax                    ; 89 46 12
    1001810021    mov ax, word [bp+00ch]                    ; 8b 46 0c
    1001910022    xor ah, ah                                ; 30 e4
    1002010023    cmp ax, strict word 00001h                ; 3d 01 00
    10021     jc short 06abdh                           ; 72 0b
     10024    jc short 06ac2h                           ; 72 0b
    1002210025    cmp ax, strict word 00003h                ; 3d 03 00
    10023     jnbe short 06abdh                         ; 77 06
     10026    jnbe short 06ac2h                         ; 77 06
    1002410027    mov word [bp+018h], cx                    ; 89 4e 18
    10025     jmp near 0689ch                           ; e9 df fd
     10028    jmp near 068a1h                           ; e9 df fd
    1002610029    or byte [bp+018h], 001h                   ; 80 4e 18 01
    10027     jmp near 0689ch                           ; e9 d8 fd
    10028     mov bx, 00da6h                            ; bb a6 0d
     10030    jmp near 068a1h                           ; e9 d8 fd
     10031    mov bx, 00da4h                            ; bb a4 0d
    1002910032    mov cx, ds                                ; 8c d9
    1003010033    mov ax, strict word 00004h                ; b8 04 00
    10031     call 01933h                               ; e8 64 ae
     10034    call 01933h                               ; e8 5f ae
    1003210035    push word [bp+00ch]                       ; ff 76 0c
    1003310036    push word [bp+012h]                       ; ff 76 12
     
    1003610039    mov ax, strict word 00004h                ; b8 04 00
    1003710040    push ax                                   ; 50
    10038     call 01976h                               ; e8 96 ae
     10041    call 01976h                               ; e8 91 ae
    1003910042    add sp, strict byte 00008h                ; 83 c4 08
    10040     jmp near 06a62h                           ; e9 7c ff
    10041     arpl [si-073h], bp                        ; 63 6c 8d
     10043    jmp near 06a67h                           ; e9 7c ff
     10044    push 0926ch                               ; 68 6c 92
    1004210045    insb                                      ; 6c
    10043     in ax, 06ch                               ; e5 6c
    10044     or ch, byte [di+02ah]                     ; 0a 6d 2a
     10046    jmp far 02f6dh:00f6ch                     ; ea 6c 0f 6d 2f
    1004510047    insw                                      ; 6d
    10046     dec cx                                    ; 49
     10048    dec si                                    ; 4e
    1004710049    insw                                      ; 6d
    10048     outsw                                     ; 6f
    10049     insw                                      ; 6d
    10050     xchg bp, ax                               ; 95
    10051     insw                                      ; 6d
    10052     shr byte [di+006h], CL                    ; d2 6d 06
     10050    je short 06b66h                           ; 74 6d
     10051    call far 00b6dh:0d76dh                    ; 9a 6d d7 6d 0b
    1005310052    outsb                                     ; 6e
    10054 _int15_function32:                           ; 0xf6afa LB 0x39e
     10053_int15_function32:                           ; 0xf6aff LB 0x39e
    1005510054    push bp                                   ; 55
    1005610055    mov bp, sp                                ; 89 e5
     
    1006410063    xor dh, dh                                ; 30 f6
    1006510064    cmp ax, 000e8h                            ; 3d e8 00
    10066     je short 06b60h                           ; 74 4a
     10065    je short 06b65h                           ; 74 4a
    1006710066    cmp ax, 000d0h                            ; 3d d0 00
    10068     je short 06b2dh                           ; 74 12
     10067    je short 06b32h                           ; 74 12
    1006910068    cmp ax, 00086h                            ; 3d 86 00
    10070     jne short 06b5eh                          ; 75 3e
     10069    jne short 06b63h                          ; 75 3e
    1007110070    sti                                       ; fb
    1007210071    mov dx, word [bp+01ch]                    ; 8b 56 1c
    1007310072    mov ax, word [bp+018h]                    ; 8b 46 18
    10074     call 066bch                               ; e8 92 fb
    10075     jmp near 06cdfh                           ; e9 b2 01
     10073    call 066c1h                               ; e8 92 fb
     10074    jmp near 06ce4h                           ; e9 b2 01
    1007610075    cmp dx, strict byte 0004fh                ; 83 fa 4f
    10077     jne short 06b5eh                          ; 75 2c
     10076    jne short 06b63h                          ; 75 2c
    1007810077    cmp word [bp+016h], 05052h                ; 81 7e 16 52 50
    10079     jne short 06b94h                          ; 75 5b
     10078    jne short 06b99h                          ; 75 5b
    1008010079    cmp word [bp+014h], 04f43h                ; 81 7e 14 43 4f
    10081     jne short 06b94h                          ; 75 54
     10080    jne short 06b99h                          ; 75 54
    1008210081    cmp word [bp+01eh], 04d4fh                ; 81 7e 1e 4f 4d
    10083     jne short 06b94h                          ; 75 4d
     10082    jne short 06b99h                          ; 75 4d
    1008410083    cmp word [bp+01ch], 04445h                ; 81 7e 1c 45 44
    10085     jne short 06b94h                          ; 75 46
     10084    jne short 06b99h                          ; 75 46
    1008610085    mov ax, word [bp+00ah]                    ; 8b 46 0a
    1008710086    or ax, word [bp+008h]                     ; 0b 46 08
    10088     jne short 06b94h                          ; 75 3e
     10087    jne short 06b99h                          ; 75 3e
    1008910088    mov ax, word [bp+006h]                    ; 8b 46 06
    1009010089    or ax, word [bp+004h]                     ; 0b 46 04
    10091     je short 06b62h                           ; 74 04
    10092     jmp short 06b94h                          ; eb 34
    10093     jmp short 06b8ah                          ; eb 28
     10090    je short 06b67h                           ; 74 04
     10091    jmp short 06b99h                          ; eb 34
     10092    jmp short 06b8fh                          ; eb 28
    1009410093    mov word [bp+028h], bx                    ; 89 5e 28
    1009510094    mov ax, word [bp+014h]                    ; 8b 46 14
     
    1010310102    mov word [bp+020h], 03332h                ; c7 46 20 32 33
    1010410103    mov word [bp+022h], 04941h                ; c7 46 22 41 49
    10105     jmp near 06cdfh                           ; e9 55 01
     10104    jmp near 06ce4h                           ; e9 55 01
    1010610105    cmp dx, strict byte 00020h                ; 83 fa 20
    10107     je short 06b9ah                           ; 74 0b
     10106    je short 06b9fh                           ; 74 0b
    1010810107    cmp dx, strict byte 00001h                ; 83 fa 01
    10109     je short 06b97h                           ; 74 03
    10110     jmp near 06cb2h                           ; e9 1b 01
    10111     jmp near 06e58h                           ; e9 be 02
     10108    je short 06b9ch                           ; 74 03
     10109    jmp near 06cb7h                           ; e9 1b 01
     10110    jmp near 06e5dh                           ; e9 be 02
    1011210111    cmp word [bp+01ah], 0534dh                ; 81 7e 1a 4d 53
    10113     jne short 06b94h                          ; 75 f3
     10112    jne short 06b99h                          ; 75 f3
    1011410113    cmp word [bp+018h], 04150h                ; 81 7e 18 50 41
    10115     jne short 06b94h                          ; 75 ec
     10114    jne short 06b99h                          ; 75 ec
    1011610115    mov ax, strict word 00035h                ; b8 35 00
    10117     call 016aeh                               ; e8 00 ab
     10116    call 016aeh                               ; e8 fb aa
    1011810117    mov bl, al                                ; 88 c3
    1011910118    xor bh, bh                                ; 30 ff
     
    1012210121    sal bx, 1                                 ; d1 e3
    1012310122    rcl dx, 1                                 ; d1 d2
    10124     loop 06bb7h                               ; e2 fa
     10123    loop 06bbch                               ; e2 fa
    1012510124    mov ax, strict word 00034h                ; b8 34 00
    10126     call 016aeh                               ; e8 eb aa
     10125    call 016aeh                               ; e8 e6 aa
    1012710126    xor ah, ah                                ; 30 e4
    1012810127    mov dx, bx                                ; 89 da
     
    1013210131    adc dx, 00100h                            ; 81 d2 00 01
    1013310132    cmp dx, 00100h                            ; 81 fa 00 01
    10134     jc short 06bddh                           ; 72 06
    10135     jne short 06c0bh                          ; 75 32
     10133    jc short 06be2h                           ; 72 06
     10134    jne short 06c10h                          ; 75 32
    1013610135    test bx, bx                               ; 85 db
    10137     jnbe short 06c0bh                         ; 77 2e
     10136    jnbe short 06c10h                         ; 77 2e
    1013810137    mov ax, strict word 00031h                ; b8 31 00
    10139     call 016aeh                               ; e8 cb aa
     10138    call 016aeh                               ; e8 c6 aa
    1014010139    mov bl, al                                ; 88 c3
    1014110140    xor bh, bh                                ; 30 ff
     
    1014410143    sal bx, 1                                 ; d1 e3
    1014510144    rcl dx, 1                                 ; d1 d2
    10146     loop 06bech                               ; e2 fa
     10145    loop 06bf1h                               ; e2 fa
    1014710146    mov ax, strict word 00030h                ; b8 30 00
    10148     call 016aeh                               ; e8 b6 aa
     10147    call 016aeh                               ; e8 b1 aa
    1014910148    xor ah, ah                                ; 30 e4
    1015010149    or bx, ax                                 ; 09 c3
     
    1015210151    sal bx, 1                                 ; d1 e3
    1015310152    rcl dx, 1                                 ; d1 d2
    10154     loop 06bffh                               ; e2 fa
     10153    loop 06c04h                               ; e2 fa
    1015510154    add bx, strict byte 00000h                ; 83 c3 00
    1015610155    adc dx, strict byte 00010h                ; 83 d2 10
    1015710156    mov ax, strict word 00062h                ; b8 62 00
    10158     call 016aeh                               ; e8 9d aa
     10157    call 016aeh                               ; e8 98 aa
    1015910158    xor ah, ah                                ; 30 e4
    1016010159    mov word [bp-00ah], ax                    ; 89 46 f6
     
    1016410163    sal word [bp-00ah], 1                     ; d1 66 f6
    1016510164    rcl word [bp-008h], 1                     ; d1 56 f8
    10166     loop 06c1eh                               ; e2 f8
     10165    loop 06c23h                               ; e2 f8
    1016710166    mov ax, strict word 00061h                ; b8 61 00
    10168     call 016aeh                               ; e8 82 aa
     10167    call 016aeh                               ; e8 7d aa
    1016910168    xor ah, ah                                ; 30 e4
    1017010169    or word [bp-00ah], ax                     ; 09 46 f6
     
    1017310172    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
    1017410173    mov ax, strict word 00063h                ; b8 63 00
    10175     call 016aeh                               ; e8 6c aa
     10174    call 016aeh                               ; e8 67 aa
    1017610175    mov byte [bp-004h], al                    ; 88 46 fc
    1017710176    mov byte [bp-006h], al                    ; 88 46 fa
    1017810177    mov ax, word [bp+014h]                    ; 8b 46 14
    1017910178    cmp ax, strict word 00009h                ; 3d 09 00
    10180     jnbe short 06cb2h                         ; 77 62
     10179    jnbe short 06cb7h                         ; 77 62
    1018110180    mov si, ax                                ; 89 c6
    1018210181    sal si, 1                                 ; d1 e6
     
    1018510184    mov cx, dx                                ; 89 d1
    1018610185    adc cx, strict byte 0ffffh                ; 83 d1 ff
    10187     jmp word [cs:si+06ae6h]                   ; 2e ff a4 e6 6a
     10186    jmp word [cs:si+06aebh]                   ; 2e ff a4 eb 6a
    1018810187    mov ax, strict word 00001h                ; b8 01 00
    1018910188    push ax                                   ; 50
     
    1019910198    xor bx, bx                                ; 31 db
    1020010199    xor cx, cx                                ; 31 c9
    10201     call 0672fh                               ; e8 af fa
     10200    call 06734h                               ; e8 af fa
    1020210201    mov word [bp+014h], strict word 00001h    ; c7 46 14 01 00
    1020310202    mov word [bp+016h], strict word 00000h    ; c7 46 16 00 00
    10204     jmp near 06e3dh                           ; e9 b0 01
     10203    jmp near 06e42h                           ; e9 b0 01
    1020510204    mov ax, strict word 00002h                ; b8 02 00
    1020610205    push ax                                   ; 50
     
    1021610215    mov bx, 0fc00h                            ; bb 00 fc
    1021710216    mov cx, strict word 00009h                ; b9 09 00
    10218     call 0672fh                               ; e8 84 fa
     10217    call 06734h                               ; e8 84 fa
    1021910218    mov word [bp+014h], strict word 00002h    ; c7 46 14 02 00
    10220     jmp short 06c85h                          ; eb d3
    10221     mov bx, 00da6h                            ; bb a6 0d
     10219    jmp short 06c8ah                          ; eb d3
     10220    mov bx, 00da4h                            ; bb a4 0d
    1022210221    mov cx, ds                                ; 8c d9
    1022310222    mov ax, strict word 00004h                ; b8 04 00
    10224     call 01933h                               ; e8 76 ac
     10223    call 01933h                               ; e8 71 ac
    1022510224    push word [bp+014h]                       ; ff 76 14
    1022610225    push word [bp+020h]                       ; ff 76 20
     
    1022910228    mov ax, strict word 00004h                ; b8 04 00
    1023010229    push ax                                   ; 50
    10231     call 01976h                               ; e8 a8 ac
     10230    call 01976h                               ; e8 a3 ac
    1023210231    add sp, strict byte 00008h                ; 83 c4 08
    1023310232    or byte [bp+028h], 001h                   ; 80 4e 28 01
     
    1025310252    xor bx, bx                                ; 31 db
    1025410253    mov cx, strict word 0000fh                ; b9 0f 00
    10255     call 0672fh                               ; e8 2d fa
     10254    call 06734h                               ; e8 2d fa
    1025610255    mov word [bp+014h], strict word 00003h    ; c7 46 14 03 00
    10257     jmp near 06c85h                           ; e9 7b ff
     10256    jmp near 06c8ah                           ; e9 7b ff
    1025810257    mov dx, strict word 00001h                ; ba 01 00
    1025910258    push dx                                   ; 52
     
    1026710266    xor bx, bx                                ; 31 db
    1026810267    mov cx, strict word 00010h                ; b9 10 00
    10269     call 0672fh                               ; e8 0d fa
     10268    call 06734h                               ; e8 0d fa
    1027010269    mov word [bp+014h], strict word 00004h    ; c7 46 14 04 00
    10271     jmp near 06c85h                           ; e9 5b ff
     10270    jmp near 06c8ah                           ; e9 5b ff
    1027210271    mov si, strict word 00003h                ; be 03 00
    1027310272    push si                                   ; 56
     
    1028110280    mov bx, ax                                ; 89 c3
    1028210281    mov ax, si                                ; 89 f0
    10283     call 0672fh                               ; e8 ee f9
     10282    call 06734h                               ; e8 ee f9
    1028410283    mov word [bp+014h], strict word 00005h    ; c7 46 14 05 00
    10285     jmp near 06c85h                           ; e9 3c ff
     10284    jmp near 06c8ah                           ; e9 3c ff
    1028610285    mov ax, strict word 00002h                ; b8 02 00
    1028710286    push ax                                   ; 50
     
    1029710296    xor bx, bx                                ; 31 db
    1029810297    mov cx, 0fec0h                            ; b9 c0 fe
    10299     call 0672fh                               ; e8 c8 f9
     10298    call 06734h                               ; e8 c8 f9
    1030010299    mov word [bp+014h], strict word 00006h    ; c7 46 14 06 00
    10301     jmp near 06c85h                           ; e9 16 ff
     10300    jmp near 06c8ah                           ; e9 16 ff
    1030210301    mov ax, strict word 00002h                ; b8 02 00
    1030310302    push ax                                   ; 50
     
    1031310312    xor bx, bx                                ; 31 db
    1031410313    mov cx, 0fee0h                            ; b9 e0 fe
    10315     call 0672fh                               ; e8 a2 f9
     10314    call 06734h                               ; e8 a2 f9
    1031610315    mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
    10317     jmp near 06c85h                           ; e9 f0 fe
     10316    jmp near 06c8ah                           ; e9 f0 fe
    1031810317    mov ax, strict word 00002h                ; b8 02 00
    1031910318    push ax                                   ; 50
     
    1032710326    xor bx, bx                                ; 31 db
    1032810327    mov cx, strict word 0fffch                ; b9 fc ff
    10329     call 0672fh                               ; e8 82 f9
     10328    call 06734h                               ; e8 82 f9
    1033010329    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    10331     jne short 06dbah                          ; 75 07
     10330    jne short 06dbfh                          ; 75 07
    1033210331    mov ax, word [bp-008h]                    ; 8b 46 f8
    1033310332    test ax, ax                               ; 85 c0
    10334     je short 06dcah                           ; 74 10
     10333    je short 06dcfh                           ; 74 10
    1033510334    mov word [bp+014h], strict word 00009h    ; c7 46 14 09 00
    10336     jmp near 06c85h                           ; e9 c3 fe
     10335    jmp near 06c8ah                           ; e9 c3 fe
    1033710336    mov word [bp+014h], strict word 00008h    ; c7 46 14 08 00
    10338     jmp near 06c85h                           ; e9 bb fe
     10337    jmp near 06c8ah                           ; e9 bb fe
    1033910338    mov word [bp+014h], ax                    ; 89 46 14
    1034010339    mov word [bp+016h], ax                    ; 89 46 16
    10341     jmp short 06e3dh                          ; eb 6b
     10340    jmp short 06e42h                          ; eb 6b
    1034210341    mov ax, strict word 00002h                ; b8 02 00
    1034310342    push ax                                   ; 50
     
    1035110350    xor bx, bx                                ; 31 db
    1035210351    xor cx, cx                                ; 31 c9
    10353     call 0672fh                               ; e8 46 f9
     10352    call 06734h                               ; e8 46 f9
    1035410353    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    10355     jne short 06df6h                          ; 75 07
     10354    jne short 06dfbh                          ; 75 07
    1035610355    mov ax, word [bp-008h]                    ; 8b 46 f8
    1035710356    test ax, ax                               ; 85 c0
    10358     je short 06dfeh                           ; 74 08
     10357    je short 06e03h                           ; 74 08
    1035910358    mov word [bp+014h], strict word 00009h    ; c7 46 14 09 00
    10360     jmp near 06c85h                           ; e9 87 fe
     10359    jmp near 06c8ah                           ; e9 87 fe
    1036110360    mov word [bp+014h], ax                    ; 89 46 14
    1036210361    mov word [bp+016h], ax                    ; 89 46 16
    10363     jmp short 06e3dh                          ; eb 37
     10362    jmp short 06e42h                          ; eb 37
    1036410363    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    10365     jne short 06e12h                          ; 75 06
     10364    jne short 06e17h                          ; 75 06
    1036610365    cmp word [bp-008h], strict byte 00000h    ; 83 7e f8 00
    10367     je short 06e3dh                           ; 74 2b
     10366    je short 06e42h                           ; 74 2b
    1036810367    mov ax, strict word 00001h                ; b8 01 00
    1036910368    push ax                                   ; 50
     
    1038110380    xor bx, bx                                ; 31 db
    1038210381    xor cx, cx                                ; 31 c9
    10383     call 0672fh                               ; e8 fa f8
     10382    call 06734h                               ; e8 fa f8
    1038410383    xor ax, ax                                ; 31 c0
    1038510384    mov word [bp+014h], ax                    ; 89 46 14
     
    1039010389    mov word [bp+01eh], strict word 00000h    ; c7 46 1e 00 00
    1039110390    and byte [bp+028h], 0feh                  ; 80 66 28 fe
    10392     jmp near 06cdfh                           ; e9 87 fe
     10391    jmp near 06ce4h                           ; e9 87 fe
    1039310392    mov word [bp+028h], bx                    ; 89 5e 28
    1039410393    mov ax, strict word 00031h                ; b8 31 00
    10395     call 016aeh                               ; e8 4d a8
     10394    call 016aeh                               ; e8 48 a8
    1039610395    mov dh, al                                ; 88 c6
    1039710396    mov ax, strict word 00030h                ; b8 30 00
    10398     call 016aeh                               ; e8 45 a8
     10397    call 016aeh                               ; e8 40 a8
    1039910398    mov dl, al                                ; 88 c2
    1040010399    mov word [bp+01ch], dx                    ; 89 56 1c
    1040110400    cmp dx, 03c00h                            ; 81 fa 00 3c
    10402     jbe short 06e79h                          ; 76 05
     10401    jbe short 06e7eh                          ; 76 05
    1040310402    mov word [bp+01ch], 03c00h                ; c7 46 1c 00 3c
    1040410403    mov ax, strict word 00035h                ; b8 35 00
    10405     call 016aeh                               ; e8 2f a8
     10404    call 016aeh                               ; e8 2a a8
    1040610405    mov dh, al                                ; 88 c6
    1040710406    mov ax, strict word 00034h                ; b8 34 00
    10408     call 016aeh                               ; e8 27 a8
     10407    call 016aeh                               ; e8 22 a8
    1040910408    mov dl, al                                ; 88 c2
    1041010409    mov word [bp+018h], dx                    ; 89 56 18
     
    1041210411    mov word [bp+020h], ax                    ; 89 46 20
    1041310412    mov word [bp+014h], dx                    ; 89 56 14
    10414     jmp near 06cdfh                           ; e9 47 fe
    10415 _inv_op_handler:                             ; 0xf6e98 LB 0x18f
     10413    jmp near 06ce4h                           ; e9 47 fe
     10414_inv_op_handler:                             ; 0xf6e9d LB 0x18f
    1041610415    push bp                                   ; 55
    1041710416    mov bp, sp                                ; 89 e5
     
    1042210421    les bx, [bp+018h]                         ; c4 5e 18
    1042310422    cmp byte [es:bx], 0f0h                    ; 26 80 3f f0
    10424     jne short 06eaeh                          ; 75 06
     10423    jne short 06eb3h                          ; 75 06
    1042510424    inc word [bp+018h]                        ; ff 46 18
    10426     jmp near 07020h                           ; e9 72 01
     10425    jmp near 07025h                           ; e9 72 01
    1042710426    cmp word [es:bx], 0050fh                  ; 26 81 3f 0f 05
    10428     je short 06eb8h                           ; 74 03
    10429     jmp near 0701ch                           ; e9 64 01
     10427    je short 06ebdh                           ; 74 03
     10428    jmp near 07021h                           ; e9 64 01
    1043010429    mov si, 00800h                            ; be 00 08
    1043110430    xor ax, ax                                ; 31 c0
     
    1045610455    sal ax, 1                                 ; d1 e0
    1045710456    rcl dx, 1                                 ; d1 d2
    10458     loop 06f09h                               ; e2 fa
     10457    loop 06f0eh                               ; e2 fa
    1045910458    cmp bx, dx                                ; 39 d3
    10460     jne short 06f17h                          ; 75 04
     10459    jne short 06f1ch                          ; 75 04
    1046110460    cmp di, ax                                ; 39 c7
    10462     je short 06f1ch                           ; 74 05
     10461    je short 06f21h                           ; 74 05
    1046310462    mov word [bp-006h], strict word 00001h    ; c7 46 fa 01 00
    1046410463    mov es, [bp-008h]                         ; 8e 46 f8
     
    1047110470    sal ax, 1                                 ; d1 e0
    1047210471    rcl dx, 1                                 ; d1 d2
    10473     loop 06f32h                               ; e2 fa
     10472    loop 06f37h                               ; e2 fa
    1047410473    cmp bx, dx                                ; 39 d3
    10475     jne short 06f40h                          ; 75 04
     10474    jne short 06f45h                          ; 75 04
    1047610475    cmp di, ax                                ; 39 c7
    10477     je short 06f44h                           ; 74 04
     10476    je short 06f49h                           ; 74 04
    1047810477    or byte [bp-006h], 002h                   ; 80 4e fa 02
    1047910478    xor ax, ax                                ; 31 c0
     
    1052510524    mov ax, strict word 00008h                ; b8 08 00
    1052610525    test cx, strict word 00001h               ; f7 c1 01 00
    10527     je near 06fd9h                            ; 0f 84 02 00
     10526    je near 06fdeh                            ; 0f 84 02 00
    1052810527    mov es, ax                                ; 8e c0
    1052910528    test cx, strict word 00002h               ; f7 c1 02 00
    10530     je near 07001h                            ; 0f 84 20 00
     10529    je near 07006h                            ; 0f 84 20 00
    1053110530    mov bx, word [word ss:00000h]             ; 36 8b 1e 00 00
    1053210531    mov word [word ss:00008h], bx             ; 36 89 1e 08 00
     
    1054510544    mov ss, [word ss:00020h]                  ; 36 8e 16 20 00
    1054610545    iret                                      ; cf
    10547     jmp short 07020h                          ; eb 04
     10546    jmp short 07025h                          ; eb 04
    1054810547    sti                                       ; fb
    1054910548    hlt                                       ; f4
    10550     jmp short 0701dh                          ; eb fd
     10549    jmp short 07022h                          ; eb fd
    1055110550    lea sp, [bp-004h]                         ; 8d 66 fc
    1055210551    pop di                                    ; 5f
     
    1055410553    pop bp                                    ; 5d
    1055510554    retn                                      ; c3
    10556 init_rtc_:                                   ; 0xf7027 LB 0x28
     10555init_rtc_:                                   ; 0xf702c LB 0x28
    1055710556    push bp                                   ; 55
    1055810557    mov bp, sp                                ; 89 e5
     
    1056010559    mov dx, strict word 00026h                ; ba 26 00
    1056110560    mov ax, strict word 0000ah                ; b8 0a 00
    10562     call 016c9h                               ; e8 95 a6
     10561    call 016c9h                               ; e8 90 a6
    1056310562    mov dx, strict word 00002h                ; ba 02 00
    1056410563    mov ax, strict word 0000bh                ; b8 0b 00
    10565     call 016c9h                               ; e8 8c a6
     10564    call 016c9h                               ; e8 87 a6
    1056610565    mov ax, strict word 0000ch                ; b8 0c 00
    10567     call 016aeh                               ; e8 6b a6
     10566    call 016aeh                               ; e8 66 a6
    1056810567    mov ax, strict word 0000dh                ; b8 0d 00
    10569     call 016aeh                               ; e8 65 a6
     10568    call 016aeh                               ; e8 60 a6
    1057010569    lea sp, [bp-002h]                         ; 8d 66 fe
    1057110570    pop dx                                    ; 5a
    1057210571    pop bp                                    ; 5d
    1057310572    retn                                      ; c3
    10574 rtc_updating_:                               ; 0xf704f LB 0x21
     10573rtc_updating_:                               ; 0xf7054 LB 0x21
    1057510574    push bp                                   ; 55
    1057610575    mov bp, sp                                ; 89 e5
     
    1057810577    mov dx, 061a8h                            ; ba a8 61
    1057910578    dec dx                                    ; 4a
    10580     je short 07067h                           ; 74 0e
     10579    je short 0706ch                           ; 74 0e
    1058110580    mov ax, strict word 0000ah                ; b8 0a 00
    10582     call 016aeh                               ; e8 4f a6
     10581    call 016aeh                               ; e8 4a a6
    1058310582    test AL, strict byte 080h                 ; a8 80
    10584     jne short 07056h                          ; 75 f3
     10583    jne short 0705bh                          ; 75 f3
    1058510584    xor ax, ax                                ; 31 c0
    10586     jmp short 0706ah                          ; eb 03
     10585    jmp short 0706fh                          ; eb 03
    1058710586    mov ax, strict word 00001h                ; b8 01 00
    1058810587    lea sp, [bp-002h]                         ; 8d 66 fe
     
    1059010589    pop bp                                    ; 5d
    1059110590    retn                                      ; c3
    10592 _int70_function:                             ; 0xf7070 LB 0xbf
     10591_int70_function:                             ; 0xf7075 LB 0xbf
    1059310592    push bp                                   ; 55
    1059410593    mov bp, sp                                ; 89 e5
     
    1059610595    push ax                                   ; 50
    1059710596    mov ax, strict word 0000bh                ; b8 0b 00
    10598     call 016aeh                               ; e8 33 a6
     10597    call 016aeh                               ; e8 2e a6
    1059910598    mov bl, al                                ; 88 c3
    1060010599    mov byte [bp-004h], al                    ; 88 46 fc
    1060110600    mov ax, strict word 0000ch                ; b8 0c 00
    10602     call 016aeh                               ; e8 28 a6
     10601    call 016aeh                               ; e8 23 a6
    1060310602    mov dl, al                                ; 88 c2
    1060410603    test bl, 060h                             ; f6 c3 60
    10605     jne short 07090h                          ; 75 03
    10606     jmp near 07116h                           ; e9 86 00
     10604    jne short 07095h                          ; 75 03
     10605    jmp near 0711bh                           ; e9 86 00
    1060710606    test AL, strict byte 020h                 ; a8 20
    10608     je short 07098h                           ; 74 04
     10607    je short 0709dh                           ; 74 04
    1060910608    sti                                       ; fb
    1061010609    int 04ah                                  ; cd 4a
    1061110610    cli                                       ; fa
    1061210611    test dl, 040h                             ; f6 c2 40
    10613     je short 07100h                           ; 74 63
     10612    je short 07105h                           ; 74 63
    1061410613    mov dx, 000a0h                            ; ba a0 00
    1061510614    mov ax, strict word 00040h                ; b8 40 00
    10616     call 01652h                               ; e8 ac a5
     10615    call 01652h                               ; e8 a7 a5
    1061710616    test al, al                               ; 84 c0
    10618     je short 07116h                           ; 74 6c
     10617    je short 0711bh                           ; 74 6c
    1061910618    mov dx, 0009ch                            ; ba 9c 00
    1062010619    mov ax, strict word 00040h                ; b8 40 00
    10621     call 0168ah                               ; e8 d7 a5
     10620    call 0168ah                               ; e8 d2 a5
    1062210621    test dx, dx                               ; 85 d2
    10623     jne short 07102h                          ; 75 4b
     10622    jne short 07107h                          ; 75 4b
    1062410623    cmp ax, 003d1h                            ; 3d d1 03
    10625     jnc short 07102h                          ; 73 46
     10624    jnc short 07107h                          ; 73 46
    1062610625    mov dx, 00098h                            ; ba 98 00
    1062710626    mov ax, strict word 00040h                ; b8 40 00
    10628     call 0166eh                               ; e8 a9 a5
     10627    call 0166eh                               ; e8 a4 a5
    1062910628    mov si, ax                                ; 89 c6
    1063010629    mov dx, 0009ah                            ; ba 9a 00
    1063110630    mov ax, strict word 00040h                ; b8 40 00
    10632     call 0166eh                               ; e8 9e a5
     10631    call 0166eh                               ; e8 99 a5
    1063310632    mov cx, ax                                ; 89 c1
    1063410633    xor bx, bx                                ; 31 db
    1063510634    mov dx, 000a0h                            ; ba a0 00
    1063610635    mov ax, strict word 00040h                ; b8 40 00
    10637     call 01660h                               ; e8 83 a5
     10636    call 01660h                               ; e8 7e a5
    1063810637    mov dl, byte [bp-004h]                    ; 8a 56 fc
    1063910638    and dl, 037h                              ; 80 e2 37
    1064010639    xor dh, dh                                ; 30 f6
    1064110640    mov ax, strict word 0000bh                ; b8 0b 00
    10642     call 016c9h                               ; e8 de a5
     10641    call 016c9h                               ; e8 d9 a5
    1064310642    mov dx, cx                                ; 89 ca
    1064410643    mov ax, si                                ; 89 f0
    10645     call 01652h                               ; e8 60 a5
     10644    call 01652h                               ; e8 5b a5
    1064610645    mov bl, al                                ; 88 c3
    1064710646    or bl, 080h                               ; 80 cb 80
     
    1064910648    mov dx, cx                                ; 89 ca
    1065010649    mov ax, si                                ; 89 f0
    10651     call 01660h                               ; e8 60 a5
    10652     jmp short 07116h                          ; eb 14
     10650    call 01660h                               ; e8 5b a5
     10651    jmp short 0711bh                          ; eb 14
    1065310652    mov bx, ax                                ; 89 c3
    1065410653    add bx, 0fc2fh                            ; 81 c3 2f fc
     
    1065710656    mov dx, 0009ch                            ; ba 9c 00
    1065810657    mov ax, strict word 00040h                ; b8 40 00
    10659     call 0169ch                               ; e8 86 a5
    10660     call 0e030h                               ; e8 17 6f
     10658    call 0169ch                               ; e8 81 a5
     10659    call 0e030h                               ; e8 12 6f
    1066110660    lea sp, [bp-002h]                         ; 8d 66 fe
    1066210661    pop si                                    ; 5e
    1066310662    pop bp                                    ; 5d
    1066410663    retn                                      ; c3
    10665     inc bp                                    ; 45
    10666     jno short 0718eh                          ; 71 6c
    10667     jno short 070b5h                          ; 71 91
    10668     jno short 070f3h                          ; 71 cd
    10669     jno short 07147h                          ; 71 1f
    10670     jc short 07180h                           ; 72 56
    10671     jc short 070c9h                           ; 72 9d
    10672     jc short 07126h                           ; 72 f8
     10664    dec dx                                    ; 4a
     10665    jno short 07198h                          ; 71 71
     10666    jno short 070bfh                          ; 71 96
     10667    jno short 070fdh                          ; 71 d2
     10668    jno short 07151h                          ; 71 24
     10669    jc short 0718ah                           ; 72 5b
     10670    jc short 070d3h                           ; 72 a2
     10671    jc short 07130h                           ; 72 fd
    1067310672    db  072h
    10674 _int1a_function:                             ; 0xf712f LB 0x1d9
     10673_int1a_function:                             ; 0xf7134 LB 0x1d9
    1067510674    push bp                                   ; 55
    1067610675    mov bp, sp                                ; 89 e5
     
    1067810677    mov al, byte [bp+013h]                    ; 8a 46 13
    1067910678    cmp AL, strict byte 007h                  ; 3c 07
    10680     jnbe short 07198h                         ; 77 5e
     10679    jnbe short 0719dh                         ; 77 5e
    1068110680    mov bl, al                                ; 88 c3
    1068210681    xor bh, bh                                ; 30 ff
    1068310682    sal bx, 1                                 ; d1 e3
    10684     jmp word [cs:bx+0711fh]                   ; 2e ff a7 1f 71
     10683    jmp word [cs:bx+07124h]                   ; 2e ff a7 24 71
    1068510684    cli                                       ; fa
    1068610685    mov bx, 0046eh                            ; bb 6e 04
     
    1069710696    mov byte [es:bx], 000h                    ; 26 c6 07 00
    1069810697    sti                                       ; fb
    10699     jmp short 07198h                          ; eb 2c
     10698    jmp short 0719dh                          ; eb 2c
    1070010699    cli                                       ; fa
    1070110700    mov bx, 0046eh                            ; bb 6e 04
     
    1071110710    sti                                       ; fb
    1071210711    mov byte [bp+013h], 000h                  ; c6 46 13 00
    10713     jmp short 07198h                          ; eb 07
    10714     call 0704fh                               ; e8 bb fe
     10712    jmp short 0719dh                          ; eb 07
     10713    call 07054h                               ; e8 bb fe
    1071510714    test ax, ax                               ; 85 c0
    10716     je short 0719bh                           ; 74 03
    10717     jmp near 071c9h                           ; e9 2e 00
     10715    je short 071a0h                           ; 74 03
     10716    jmp near 071ceh                           ; e9 2e 00
    1071810717    xor ax, ax                                ; 31 c0
    10719     call 016aeh                               ; e8 0e a5
     10718    call 016aeh                               ; e8 09 a5
    1072010719    mov byte [bp+00fh], al                    ; 88 46 0f
    1072110720    mov ax, strict word 00002h                ; b8 02 00
    10722     call 016aeh                               ; e8 05 a5
     10721    call 016aeh                               ; e8 00 a5
    1072310722    mov byte [bp+010h], al                    ; 88 46 10
    1072410723    mov ax, strict word 00004h                ; b8 04 00
    10725     call 016aeh                               ; e8 fc a4
     10724    call 016aeh                               ; e8 f7 a4
    1072610725    mov dl, al                                ; 88 c2
    1072710726    mov byte [bp+011h], al                    ; 88 46 11
    1072810727    mov ax, strict word 0000bh                ; b8 0b 00
    10729     call 016aeh                               ; e8 f1 a4
     10728    call 016aeh                               ; e8 ec a4
    1073010729    and AL, strict byte 001h                  ; 24 01
    1073110730    mov byte [bp+00eh], al                    ; 88 46 0e
     
    1073510734    pop bp                                    ; 5d
    1073610735    retn                                      ; c3
    10737     call 0704fh                               ; e8 7f fe
     10736    call 07054h                               ; e8 7f fe
    1073810737    test ax, ax                               ; 85 c0
    10739     je short 071d7h                           ; 74 03
    10740     call 07027h                               ; e8 50 fe
     10738    je short 071dch                           ; 74 03
     10739    call 0702ch                               ; e8 50 fe
    1074110740    mov dl, byte [bp+00fh]                    ; 8a 56 0f
    1074210741    xor dh, dh                                ; 30 f6
    1074310742    xor ax, ax                                ; 31 c0
    10744     call 016c9h                               ; e8 e8 a4
     10743    call 016c9h                               ; e8 e3 a4
    1074510744    mov dl, byte [bp+010h]                    ; 8a 56 10
    1074610745    xor dh, dh                                ; 30 f6
    1074710746    mov ax, strict word 00002h                ; b8 02 00
    10748     call 016c9h                               ; e8 dd a4
     10747    call 016c9h                               ; e8 d8 a4
    1074910748    mov dl, byte [bp+011h]                    ; 8a 56 11
    1075010749    xor dh, dh                                ; 30 f6
    1075110750    mov ax, strict word 00004h                ; b8 04 00
    10752     call 016c9h                               ; e8 d2 a4
     10751    call 016c9h                               ; e8 cd a4
    1075310752    mov ax, strict word 0000bh                ; b8 0b 00
    10754     call 016aeh                               ; e8 b1 a4
     10753    call 016aeh                               ; e8 ac a4
    1075510754    mov bl, al                                ; 88 c3
    1075610755    and bl, 060h                              ; 80 e3 60
     
    1076210761    xor dh, dh                                ; 30 f6
    1076310762    mov ax, strict word 0000bh                ; b8 0b 00
    10764     call 016c9h                               ; e8 b3 a4
     10763    call 016c9h                               ; e8 ae a4
    1076510764    mov byte [bp+013h], 000h                  ; c6 46 13 00
    1076610765    mov byte [bp+012h], bl                    ; 88 5e 12
    10767     jmp short 071c9h                          ; eb aa
     10766    jmp short 071ceh                          ; eb aa
    1076810767    mov byte [bp+013h], 000h                  ; c6 46 13 00
    10769     call 0704fh                               ; e8 29 fe
     10768    call 07054h                               ; e8 29 fe
    1077010769    test ax, ax                               ; 85 c0
    10771     je short 0722ch                           ; 74 02
    10772     jmp short 071c9h                          ; eb 9d
     10770    je short 07231h                           ; 74 02
     10771    jmp short 071ceh                          ; eb 9d
    1077310772    mov ax, strict word 00009h                ; b8 09 00
    10774     call 016aeh                               ; e8 7c a4
     10773    call 016aeh                               ; e8 77 a4
    1077510774    mov byte [bp+010h], al                    ; 88 46 10
    1077610775    mov ax, strict word 00008h                ; b8 08 00
    10777     call 016aeh                               ; e8 73 a4
     10776    call 016aeh                               ; e8 6e a4
    1077810777    mov byte [bp+00fh], al                    ; 88 46 0f
    1077910778    mov ax, strict word 00007h                ; b8 07 00
    10780     call 016aeh                               ; e8 6a a4
     10779    call 016aeh                               ; e8 65 a4
    1078110780    mov byte [bp+00eh], al                    ; 88 46 0e
    1078210781    mov ax, strict word 00032h                ; b8 32 00
    10783     call 016aeh                               ; e8 61 a4
     10782    call 016aeh                               ; e8 5c a4
    1078410783    mov byte [bp+011h], al                    ; 88 46 11
    1078510784    mov byte [bp+012h], al                    ; 88 46 12
    10786     jmp near 071c9h                           ; e9 73 ff
    10787     call 0704fh                               ; e8 f6 fd
     10785    jmp near 071ceh                           ; e9 73 ff
     10786    call 07054h                               ; e8 f6 fd
    1078810787    test ax, ax                               ; 85 c0
    10789     je short 07263h                           ; 74 06
    10790     call 07027h                               ; e8 c7 fd
    10791     jmp near 071c9h                           ; e9 66 ff
     10788    je short 07268h                           ; 74 06
     10789    call 0702ch                               ; e8 c7 fd
     10790    jmp near 071ceh                           ; e9 66 ff
    1079210791    mov dl, byte [bp+010h]                    ; 8a 56 10
    1079310792    xor dh, dh                                ; 30 f6
    1079410793    mov ax, strict word 00009h                ; b8 09 00
    10795     call 016c9h                               ; e8 5b a4
     10794    call 016c9h                               ; e8 56 a4
    1079610795    mov dl, byte [bp+00fh]                    ; 8a 56 0f
    1079710796    xor dh, dh                                ; 30 f6
    1079810797    mov ax, strict word 00008h                ; b8 08 00
    10799     call 016c9h                               ; e8 50 a4
     10798    call 016c9h                               ; e8 4b a4
    1080010799    mov dl, byte [bp+00eh]                    ; 8a 56 0e
    1080110800    xor dh, dh                                ; 30 f6
    1080210801    mov ax, strict word 00007h                ; b8 07 00
    10803     call 016c9h                               ; e8 45 a4
     10802    call 016c9h                               ; e8 40 a4
    1080410803    mov dl, byte [bp+011h]                    ; 8a 56 11
    1080510804    xor dh, dh                                ; 30 f6
    1080610805    mov ax, strict word 00032h                ; b8 32 00
    10807     call 016c9h                               ; e8 3a a4
     10806    call 016c9h                               ; e8 35 a4
    1080810807    mov ax, strict word 0000bh                ; b8 0b 00
    10809     call 016aeh                               ; e8 19 a4
     10808    call 016aeh                               ; e8 14 a4
    1081010809    mov bl, al                                ; 88 c3
    1081110810    and bl, 07fh                              ; 80 e3 7f
    10812     jmp near 0720ch                           ; e9 6f ff
     10811    jmp near 07211h                           ; e9 6f ff
    1081310812    mov ax, strict word 0000bh                ; b8 0b 00
    10814     call 016aeh                               ; e8 0b a4
     10813    call 016aeh                               ; e8 06 a4
    1081510814    mov bl, al                                ; 88 c3
    1081610815    mov word [bp+012h], strict word 00000h    ; c7 46 12 00 00
    1081710816    test AL, strict byte 020h                 ; a8 20
    10818     je short 072b1h                           ; 74 03
    10819     jmp near 071c9h                           ; e9 18 ff
    10820     call 0704fh                               ; e8 9b fd
     10817    je short 072b6h                           ; 74 03
     10818    jmp near 071ceh                           ; e9 18 ff
     10819    call 07054h                               ; e8 9b fd
    1082110820    test ax, ax                               ; 85 c0
    10822     je short 072bbh                           ; 74 03
    10823     call 07027h                               ; e8 6c fd
     10821    je short 072c0h                           ; 74 03
     10822    call 0702ch                               ; e8 6c fd
    1082410823    mov dl, byte [bp+00fh]                    ; 8a 56 0f
    1082510824    xor dh, dh                                ; 30 f6
    1082610825    mov ax, strict word 00001h                ; b8 01 00
    10827     call 016c9h                               ; e8 03 a4
     10826    call 016c9h                               ; e8 fe a3
    1082810827    mov dl, byte [bp+010h]                    ; 8a 56 10
    1082910828    xor dh, dh                                ; 30 f6
    1083010829    mov ax, strict word 00003h                ; b8 03 00
    10831     call 016c9h                               ; e8 f8 a3
     10830    call 016c9h                               ; e8 f3 a3
    1083210831    mov dl, byte [bp+011h]                    ; 8a 56 11
    1083310832    xor dh, dh                                ; 30 f6
    1083410833    mov ax, strict word 00005h                ; b8 05 00
    10835     call 016c9h                               ; e8 ed a3
     10834    call 016c9h                               ; e8 e8 a3
    1083610835    mov dx, 000a1h                            ; ba a1 00
    1083710836    in AL, DX                                 ; ec
     
    1084510844    xor dh, dh                                ; 30 f6
    1084610845    mov ax, strict word 0000bh                ; b8 0b 00
    10847     call 016c9h                               ; e8 d4 a3
    10848     jmp near 071c9h                           ; e9 d1 fe
     10846    call 016c9h                               ; e8 cf a3
     10847    jmp near 071ceh                           ; e9 d1 fe
    1084910848    mov ax, strict word 0000bh                ; b8 0b 00
    10850     call 016aeh                               ; e8 b0 a3
     10849    call 016aeh                               ; e8 ab a3
    1085110850    mov bl, al                                ; 88 c3
    1085210851    mov dl, al                                ; 88 c2
    1085310852    and dl, 057h                              ; 80 e2 57
    10854     jmp near 0720eh                           ; e9 06 ff
    10855 send_to_mouse_ctrl_:                         ; 0xf7308 LB 0x38
     10853    jmp near 07213h                           ; e9 06 ff
     10854send_to_mouse_ctrl_:                         ; 0xf730d LB 0x38
    1085610855    push bp                                   ; 55
    1085710856    mov bp, sp                                ; 89 e5
     
    1086410863    ; sub ah, ah                                ; 2a e4
    1086510864    test AL, strict byte 002h                 ; a8 02
    10866     je short 0732bh                           ; 74 12
     10865    je short 07330h                           ; 74 12
    1086710866    mov ax, 008eeh                            ; b8 ee 08
    1086810867    push ax                                   ; 50
    10869     mov ax, 0116eh                            ; b8 6e 11
     10868    mov ax, 0116ch                            ; b8 6c 11
    1087010869    push ax                                   ; 50
    1087110870    mov ax, strict word 00007h                ; b8 07 00
    1087210871    push ax                                   ; 50
    10873     call 01976h                               ; e8 4e a6
     10872    call 01976h                               ; e8 49 a6
    1087410873    add sp, strict byte 00006h                ; 83 c4 06
    1087510874    mov AL, strict byte 0d4h                  ; b0 d4
     
    1088510884    pop bp                                    ; 5d
    1088610885    retn                                      ; c3
    10887 get_mouse_data_:                             ; 0xf7340 LB 0x5d
     10886get_mouse_data_:                             ; 0xf7345 LB 0x5d
    1088810887    push bp                                   ; 55
    1088910888    mov bp, sp                                ; 89 e5
     
    1090010899    and ax, strict word 00021h                ; 25 21 00
    1090110900    cmp ax, strict word 00021h                ; 3d 21 00
    10902     je short 07383h                           ; 74 28
     10901    je short 07388h                           ; 74 28
    1090310902    test cx, cx                               ; 85 c9
    10904     je short 07383h                           ; 74 24
     10903    je short 07388h                           ; 74 24
    1090510904    mov dx, strict word 00061h                ; ba 61 00
    1090610905    in AL, DX                                 ; ec
     
    1091910918    xor ah, ah                                ; 30 e4
    1092010919    cmp dx, ax                                ; 39 c2
    10921     je short 0736ah                           ; 74 ea
     10920    je short 0736fh                           ; 74 ea
    1092210921    dec cx                                    ; 49
    10923     jmp short 0734dh                          ; eb ca
     10922    jmp short 07352h                          ; eb ca
    1092410923    test cx, cx                               ; 85 c9
    10925     jne short 0738bh                          ; 75 04
     10924    jne short 07390h                          ; 75 04
    1092610925    mov AL, strict byte 001h                  ; b0 01
    10927     jmp short 07396h                          ; eb 0b
     10926    jmp short 0739bh                          ; eb 0b
    1092810927    mov dx, strict word 00060h                ; ba 60 00
    1092910928    in AL, DX                                 ; ec
     
    1093710936    pop bp                                    ; 5d
    1093810937    retn                                      ; c3
    10939 set_kbd_command_byte_:                       ; 0xf739d LB 0x36
     10938set_kbd_command_byte_:                       ; 0xf73a2 LB 0x36
    1094010939    push bp                                   ; 55
    1094110940    mov bp, sp                                ; 89 e5
     
    1094810947    ; sub ah, ah                                ; 2a e4
    1094910948    test AL, strict byte 002h                 ; a8 02
    10950     je short 073c0h                           ; 74 12
     10949    je short 073c5h                           ; 74 12
    1095110950    mov ax, 008f8h                            ; b8 f8 08
    1095210951    push ax                                   ; 50
    10953     mov ax, 0116eh                            ; b8 6e 11
     10952    mov ax, 0116ch                            ; b8 6c 11
    1095410953    push ax                                   ; 50
    1095510954    mov ax, strict word 00007h                ; b8 07 00
    1095610955    push ax                                   ; 50
    10957     call 01976h                               ; e8 b9 a5
     10956    call 01976h                               ; e8 b4 a5
    1095810957    add sp, strict byte 00006h                ; 83 c4 06
    1095910958    mov AL, strict byte 060h                  ; b0 60
     
    1096810967    pop bp                                    ; 5d
    1096910968    retn                                      ; c3
    10970 _int74_function:                             ; 0xf73d3 LB 0xd2
     10969_int74_function:                             ; 0xf73d8 LB 0xd2
    1097110970    push bp                                   ; 55
    1097210971    mov bp, sp                                ; 89 e5
     
    1097410973    mov dx, strict word 0000eh                ; ba 0e 00
    1097510974    mov ax, strict word 00040h                ; b8 40 00
    10976     call 0166eh                               ; e8 8c a2
     10975    call 0166eh                               ; e8 87 a2
    1097710976    mov cx, ax                                ; 89 c1
    1097810977    mov word [bp+004h], strict word 00000h    ; c7 46 04 00 00
     
    1098310982    and AL, strict byte 021h                  ; 24 21
    1098410983    cmp AL, strict byte 021h                  ; 3c 21
    10985     jne short 07417h                          ; 75 22
     10984    jne short 0741ch                          ; 75 22
    1098610985    mov dx, strict word 00060h                ; ba 60 00
    1098710986    in AL, DX                                 ; ec
     
    1099110990    mov dx, strict word 00026h                ; ba 26 00
    1099210991    mov ax, cx                                ; 89 c8
    10993     call 01652h                               ; e8 4d a2
     10992    call 01652h                               ; e8 48 a2
    1099410993    mov byte [bp-002h], al                    ; 88 46 fe
    1099510994    mov dx, strict word 00027h                ; ba 27 00
    1099610995    mov ax, cx                                ; 89 c8
    10997     call 01652h                               ; e8 42 a2
     10996    call 01652h                               ; e8 3d a2
    1099810997    mov byte [bp-006h], al                    ; 88 46 fa
    1099910998    test AL, strict byte 080h                 ; a8 80
    11000     jne short 0741ah                          ; 75 03
    11001     jmp near 07491h                           ; e9 77 00
     10999    jne short 0741fh                          ; 75 03
     11000    jmp near 07496h                           ; e9 77 00
    1100211001    mov al, byte [bp-006h]                    ; 8a 46 fa
    1100311002    and AL, strict byte 007h                  ; 24 07
     
    1101311012    add dx, strict byte 00028h                ; 83 c2 28
    1101411013    mov ax, cx                                ; 89 c8
    11015     call 01660h                               ; e8 23 a2
     11014    call 01660h                               ; e8 1e a2
    1101611015    mov al, byte [bp-008h]                    ; 8a 46 f8
    1101711016    cmp al, byte [bp-004h]                    ; 3a 46 fc
    11018     jc short 07481h                           ; 72 3c
     11017    jc short 07486h                           ; 72 3c
    1101911018    mov dx, strict word 00028h                ; ba 28 00
    1102011019    mov ax, cx                                ; 89 c8
    11021     call 01652h                               ; e8 05 a2
     11020    call 01652h                               ; e8 00 a2
    1102211021    xor ah, ah                                ; 30 e4
    1102311022    mov word [bp+00ch], ax                    ; 89 46 0c
    1102411023    mov dx, strict word 00029h                ; ba 29 00
    1102511024    mov ax, cx                                ; 89 c8
    11026     call 01652h                               ; e8 f8 a1
     11025    call 01652h                               ; e8 f3 a1
    1102711026    xor ah, ah                                ; 30 e4
    1102811027    mov word [bp+00ah], ax                    ; 89 46 0a
    1102911028    mov dx, strict word 0002ah                ; ba 2a 00
    1103011029    mov ax, cx                                ; 89 c8
    11031     call 01652h                               ; e8 eb a1
     11030    call 01652h                               ; e8 e6 a1
    1103211031    xor ah, ah                                ; 30 e4
    1103311032    mov word [bp+008h], ax                    ; 89 46 08
     
    1103611035    mov byte [bp-002h], ah                    ; 88 66 fe
    1103711036    test byte [bp-006h], 080h                 ; f6 46 fa 80
    11038     je short 07484h                           ; 74 0a
     11037    je short 07489h                           ; 74 0a
    1103911038    mov word [bp+004h], strict word 00001h    ; c7 46 04 01 00
    11040     jmp short 07484h                          ; eb 03
     11039    jmp short 07489h                          ; eb 03
    1104111040    inc byte [bp-002h]                        ; fe 46 fe
    1104211041    mov bl, byte [bp-002h]                    ; 8a 5e fe
     
    1104411043    mov dx, strict word 00026h                ; ba 26 00
    1104511044    mov ax, cx                                ; 89 c8
    11046     call 01660h                               ; e8 cf a1
     11045    call 01660h                               ; e8 ca a1
    1104711046    mov sp, bp                                ; 89 ec
    1104811047    pop bp                                    ; 5d
    1104911048    retn                                      ; c3
    11050     out 074h, ax                              ; e7 74
    11051     arpl [di-01dh], si                        ; 63 75 e3
    11052     jne short 07514h                          ; 75 78
    11053     jbe short 07488h                          ; 76 ea
    11054     jbe short 074ceh                          ; 76 2e
    11055     jne short 074b4h                          ; 75 12
    11056     jnbe short 07483h                         ; 77 df
     11049    in AL, DX                                 ; ec
     11050    je short 07505h                           ; 74 68
     11051    jne short 07487h                          ; 75 e8
     11052    jne short 0751eh                          ; 75 7d
     11053    jbe short 07492h                          ; 76 ef
     11054    jbe short 074d8h                          ; 76 33
     11055    jne short 074beh                          ; 75 17
     11056    jnbe short 0748dh                         ; 77 e4
    1105711057    db  077h
    11058 _int15_function_mouse:                       ; 0xf74a5 LB 0x3a0
     11058_int15_function_mouse:                       ; 0xf74aa LB 0x3a0
    1105911059    push bp                                   ; 55
    1106011060    mov bp, sp                                ; 89 e5
     
    1106311063    mov dx, strict word 0000eh                ; ba 0e 00
    1106411064    mov ax, strict word 00040h                ; b8 40 00
    11065     call 0166eh                               ; e8 b9 a1
     11065    call 0166eh                               ; e8 b4 a1
    1106611066    mov cx, ax                                ; 89 c1
    1106711067    cmp byte [bp+012h], 007h                  ; 80 7e 12 07
    11068     jbe short 074c8h                          ; 76 0b
     11068    jbe short 074cdh                          ; 76 0b
    1106911069    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1107011070    mov byte [bp+013h], 001h                  ; c6 46 13 01
    11071     jmp near 0783fh                           ; e9 77 03
     11071    jmp near 07844h                           ; e9 77 03
    1107211072    mov ax, strict word 00065h                ; b8 65 00
    11073     call 0739dh                               ; e8 cf fe
     11073    call 073a2h                               ; e8 cf fe
    1107411074    and word [bp+018h], strict byte 0fffeh    ; 83 66 18 fe
    1107511075    mov byte [bp+013h], 000h                  ; c6 46 13 00
    1107611076    mov bl, byte [bp+012h]                    ; 8a 5e 12
    1107711077    cmp bl, 007h                              ; 80 fb 07
    11078     jnbe short 0753ch                         ; 77 5e
     11078    jnbe short 07541h                         ; 77 5e
    1107911079    xor bh, bh                                ; 30 ff
    1108011080    sal bx, 1                                 ; d1 e3
    11081     jmp word [cs:bx+07495h]                   ; 2e ff a7 95 74
     11081    jmp word [cs:bx+0749ah]                   ; 2e ff a7 9a 74
    1108211082    cmp byte [bp+00dh], 001h                  ; 80 7e 0d 01
    11083     jnbe short 0753fh                         ; 77 52
     11083    jnbe short 07544h                         ; 77 52
    1108411084    mov dx, strict word 00027h                ; ba 27 00
    1108511085    mov ax, cx                                ; 89 c8
    11086     call 01652h                               ; e8 5d a1
     11086    call 01652h                               ; e8 58 a1
    1108711087    test AL, strict byte 080h                 ; a8 80
    11088     jne short 07504h                          ; 75 0b
     11088    jne short 07509h                          ; 75 0b
    1108911089    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1109011090    mov byte [bp+013h], 005h                  ; c6 46 13 05
    11091     jmp near 07839h                           ; e9 35 03
     11091    jmp near 0783eh                           ; e9 35 03
    1109211092    cmp byte [bp+00dh], 000h                  ; 80 7e 0d 00
    11093     jne short 0750eh                          ; 75 04
     11093    jne short 07513h                          ; 75 04
    1109411094    mov AL, strict byte 0f5h                  ; b0 f5
    11095     jmp short 07510h                          ; eb 02
     11095    jmp short 07515h                          ; eb 02
    1109611096    mov AL, strict byte 0f4h                  ; b0 f4
    1109711097    xor ah, ah                                ; 30 e4
    11098     call 07308h                               ; e8 f3 fd
     11098    call 0730dh                               ; e8 f3 fd
    1109911099    test al, al                               ; 84 c0
    11100     jne short 07542h                          ; 75 29
     11100    jne short 07547h                          ; 75 29
    1110111101    mov dx, ss                                ; 8c d2
    1110211102    lea ax, [bp-006h]                         ; 8d 46 fa
    11103     call 07340h                               ; e8 1f fe
     11103    call 07345h                               ; e8 1f fe
    1110411104    test al, al                               ; 84 c0
    11105     je short 0752bh                           ; 74 06
     11105    je short 07530h                           ; 74 06
    1110611106    cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
    11107     jne short 07542h                          ; 75 17
    11108     jmp near 07839h                           ; e9 0b 03
     11107    jne short 07547h                          ; 75 17
     11108    jmp near 0783eh                           ; e9 0b 03
    1110911109    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1111011110    cmp AL, strict byte 001h                  ; 3c 01
    11111     jc short 07539h                           ; 72 04
     11111    jc short 0753eh                           ; 72 04
    1111211112    cmp AL, strict byte 008h                  ; 3c 08
    11113     jbe short 07545h                          ; 76 0c
    11114     jmp near 076e0h                           ; e9 a4 01
    11115     jmp near 07823h                           ; e9 e4 02
    11116     jmp near 07831h                           ; e9 ef 02
    11117     jmp near 077b7h                           ; e9 72 02
     11113    jbe short 0754ah                          ; 76 0c
     11114    jmp near 076e5h                           ; e9 a4 01
     11115    jmp near 07828h                           ; e9 e4 02
     11116    jmp near 07836h                           ; e9 ef 02
     11117    jmp near 077bch                           ; e9 72 02
    1111811118    mov dx, strict word 00027h                ; ba 27 00
    1111911119    mov ax, cx                                ; 89 c8
    11120     call 01652h                               ; e8 05 a1
     11120    call 01652h                               ; e8 00 a1
    1112111121    mov ah, byte [bp+00dh]                    ; 8a 66 0d
    1112211122    db  0feh, 0cch
     
    1112811128    mov dx, strict word 00027h                ; ba 27 00
    1112911129    mov ax, cx                                ; 89 c8
    11130     call 01660h                               ; e8 fd a0
     11130    call 01660h                               ; e8 f8 a0
    1113111131    mov dx, strict word 00026h                ; ba 26 00
    1113211132    mov ax, cx                                ; 89 c8
    11133     call 01652h                               ; e8 e7 a0
     11133    call 01652h                               ; e8 e2 a0
    1113411134    mov bl, al                                ; 88 c3
    1113511135    and bl, 0f8h                              ; 80 e3 f8
     
    1113711137    mov dx, strict word 00026h                ; ba 26 00
    1113811138    mov ax, cx                                ; 89 c8
    11139     call 01660h                               ; e8 e6 a0
     11139    call 01660h                               ; e8 e1 a0
    1114011140    mov ax, 000ffh                            ; b8 ff 00
    11141     call 07308h                               ; e8 88 fd
     11141    call 0730dh                               ; e8 88 fd
    1114211142    test al, al                               ; 84 c0
    11143     jne short 07542h                          ; 75 be
     11143    jne short 07547h                          ; 75 be
    1114411144    mov dx, ss                                ; 8c d2
    1114511145    lea ax, [bp-008h]                         ; 8d 46 f8
    11146     call 07340h                               ; e8 b4 fd
     11146    call 07345h                               ; e8 b4 fd
    1114711147    mov cl, al                                ; 88 c1
    1114811148    cmp byte [bp-008h], 0feh                  ; 80 7e f8 fe
    11149     jne short 0759eh                          ; 75 0a
     11149    jne short 075a3h                          ; 75 0a
    1115011150    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1115111151    mov byte [bp+013h], 004h                  ; c6 46 13 04
    11152     jmp short 0752bh                          ; eb 8d
     11152    jmp short 07530h                          ; eb 8d
    1115311153    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    11154     je short 075b8h                           ; 74 14
     11154    je short 075bdh                           ; 74 14
    1115511155    mov al, byte [bp-008h]                    ; 8a 46 f8
    1115611156    xor ah, ah                                ; 30 e4
     
    1116011160    mov ax, strict word 00007h                ; b8 07 00
    1116111161    push ax                                   ; 50
    11162     call 01976h                               ; e8 c1 a3
     11162    call 01976h                               ; e8 bc a3
    1116311163    add sp, strict byte 00006h                ; 83 c4 06
    1116411164    test cl, cl                               ; 84 c9
    11165     jne short 07542h                          ; 75 86
     11165    jne short 07547h                          ; 75 86
    1116611166    mov dx, ss                                ; 8c d2
    1116711167    lea ax, [bp-006h]                         ; 8d 46 fa
    11168     call 07340h                               ; e8 7c fd
     11168    call 07345h                               ; e8 7c fd
    1116911169    test al, al                               ; 84 c0
    11170     jne short 0761eh                          ; 75 56
     11170    jne short 07623h                          ; 75 56
    1117111171    mov dx, ss                                ; 8c d2
    1117211172    lea ax, [bp-004h]                         ; 8d 46 fc
    11173     call 07340h                               ; e8 70 fd
     11173    call 07345h                               ; e8 70 fd
    1117411174    test al, al                               ; 84 c0
    11175     jne short 0761eh                          ; 75 4a
     11175    jne short 07623h                          ; 75 4a
    1117611176    mov al, byte [bp-006h]                    ; 8a 46 fa
    1117711177    mov byte [bp+00ch], al                    ; 88 46 0c
    1117811178    mov al, byte [bp-004h]                    ; 8a 46 fc
    1117911179    mov byte [bp+00dh], al                    ; 88 46 0d
    11180     jmp near 07839h                           ; e9 56 02
     11180    jmp near 0783eh                           ; e9 56 02
    1118111181    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1118211182    cmp AL, strict byte 003h                  ; 3c 03
    11183     jc short 075fah                           ; 72 10
    11184     jbe short 07618h                          ; 76 2c
     11183    jc short 075ffh                           ; 72 10
     11184    jbe short 0761dh                          ; 76 2c
    1118511185    cmp AL, strict byte 006h                  ; 3c 06
    11186     je short 0762dh                           ; 74 3d
     11186    je short 07632h                           ; 74 3d
    1118711187    cmp AL, strict byte 005h                  ; 3c 05
    11188     je short 07627h                           ; 74 33
     11188    je short 0762ch                           ; 74 33
    1118911189    cmp AL, strict byte 004h                  ; 3c 04
    11190     je short 07621h                           ; 74 29
    11191     jmp short 07633h                          ; eb 39
     11190    je short 07626h                           ; 74 29
     11191    jmp short 07638h                          ; eb 39
    1119211192    cmp AL, strict byte 002h                  ; 3c 02
    11193     je short 07612h                           ; 74 14
     11193    je short 07617h                           ; 74 14
    1119411194    cmp AL, strict byte 001h                  ; 3c 01
    11195     je short 0760ch                           ; 74 0a
     11195    je short 07611h                           ; 74 0a
    1119611196    test al, al                               ; 84 c0
    11197     jne short 07633h                          ; 75 2d
     11197    jne short 07638h                          ; 75 2d
    1119811198    mov byte [bp-006h], 00ah                  ; c6 46 fa 0a
    11199     jmp short 07637h                          ; eb 2b
     11199    jmp short 0763ch                          ; eb 2b
    1120011200    mov byte [bp-006h], 014h                  ; c6 46 fa 14
    11201     jmp short 07637h                          ; eb 25
     11201    jmp short 0763ch                          ; eb 25
    1120211202    mov byte [bp-006h], 028h                  ; c6 46 fa 28
    11203     jmp short 07637h                          ; eb 1f
     11203    jmp short 0763ch                          ; eb 1f
    1120411204    mov byte [bp-006h], 03ch                  ; c6 46 fa 3c
    11205     jmp short 07637h                          ; eb 19
    11206     jmp near 077b7h                           ; e9 96 01
     11205    jmp short 0763ch                          ; eb 19
     11206    jmp near 077bch                           ; e9 96 01
    1120711207    mov byte [bp-006h], 050h                  ; c6 46 fa 50
    11208     jmp short 07637h                          ; eb 10
     11208    jmp short 0763ch                          ; eb 10
    1120911209    mov byte [bp-006h], 064h                  ; c6 46 fa 64
    11210     jmp short 07637h                          ; eb 0a
     11210    jmp short 0763ch                          ; eb 0a
    1121111211    mov byte [bp-006h], 0c8h                  ; c6 46 fa c8
    11212     jmp short 07637h                          ; eb 04
     11212    jmp short 0763ch                          ; eb 04
    1121311213    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    1121411214    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    11215     jbe short 0766dh                          ; 76 30
     11215    jbe short 07672h                          ; 76 30
    1121611216    mov ax, 000f3h                            ; b8 f3 00
    11217     call 07308h                               ; e8 c5 fc
     11217    call 0730dh                               ; e8 c5 fc
    1121811218    test al, al                               ; 84 c0
    11219     jne short 07662h                          ; 75 1b
     11219    jne short 07667h                          ; 75 1b
    1122011220    mov dx, ss                                ; 8c d2
    1122111221    lea ax, [bp-004h]                         ; 8d 46 fc
    11222     call 07340h                               ; e8 f1 fc
     11222    call 07345h                               ; e8 f1 fc
    1122311223    mov al, byte [bp-006h]                    ; 8a 46 fa
    1122411224    xor ah, ah                                ; 30 e4
    11225     call 07308h                               ; e8 b1 fc
     11225    call 0730dh                               ; e8 b1 fc
    1122611226    mov dx, ss                                ; 8c d2
    1122711227    lea ax, [bp-004h]                         ; 8d 46 fc
    11228     call 07340h                               ; e8 e1 fc
    11229     jmp near 07839h                           ; e9 d7 01
     11228    call 07345h                               ; e8 e1 fc
     11229    jmp near 0783eh                           ; e9 d7 01
    1123011230    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1123111231    mov byte [bp+013h], 003h                  ; c6 46 13 03
    11232     jmp near 07839h                           ; e9 cc 01
     11232    jmp near 0783eh                           ; e9 cc 01
    1123311233    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1123411234    mov byte [bp+013h], 002h                  ; c6 46 13 02
    11235     jmp near 07839h                           ; e9 c1 01
     11235    jmp near 0783eh                           ; e9 c1 01
    1123611236    cmp byte [bp+00dh], 004h                  ; 80 7e 0d 04
    11237     jnc short 076e0h                          ; 73 62
     11237    jnc short 076e5h                          ; 73 62
    1123811238    mov ax, 000e8h                            ; b8 e8 00
    11239     call 07308h                               ; e8 84 fc
     11239    call 0730dh                               ; e8 84 fc
    1124011240    test al, al                               ; 84 c0
    11241     jne short 076d6h                          ; 75 4e
     11241    jne short 076dbh                          ; 75 4e
    1124211242    mov dx, ss                                ; 8c d2
    1124311243    lea ax, [bp-006h]                         ; 8d 46 fa
    11244     call 07340h                               ; e8 b0 fc
     11244    call 07345h                               ; e8 b0 fc
    1124511245    cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
    11246     je short 076aah                           ; 74 14
     11246    je short 076afh                           ; 74 14
    1124711247    mov al, byte [bp-006h]                    ; 8a 46 fa
    1124811248    xor ah, ah                                ; 30 e4
     
    1125211252    mov ax, strict word 00007h                ; b8 07 00
    1125311253    push ax                                   ; 50
    11254     call 01976h                               ; e8 cf a2
     11254    call 01976h                               ; e8 ca a2
    1125511255    add sp, strict byte 00006h                ; 83 c4 06
    1125611256    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1125711257    xor ah, ah                                ; 30 e4
    11258     call 07308h                               ; e8 56 fc
     11258    call 0730dh                               ; e8 56 fc
    1125911259    mov dx, ss                                ; 8c d2
    1126011260    lea ax, [bp-006h]                         ; 8d 46 fa
    11261     call 07340h                               ; e8 86 fc
     11261    call 07345h                               ; e8 86 fc
    1126211262    cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
    11263     je short 0770fh                           ; 74 4f
     11263    je short 07714h                           ; 74 4f
    1126411264    mov al, byte [bp-006h]                    ; 8a 46 fa
    1126511265    xor ah, ah                                ; 30 e4
     
    1126911269    mov ax, strict word 00007h                ; b8 07 00
    1127011270    push ax                                   ; 50
    11271     call 01976h                               ; e8 a5 a2
     11271    call 01976h                               ; e8 a0 a2
    1127211272    add sp, strict byte 00006h                ; 83 c4 06
    11273     jmp short 0770fh                          ; eb 39
     11273    jmp short 07714h                          ; eb 39
    1127411274    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1127511275    mov byte [bp+013h], 003h                  ; c6 46 13 03
    11276     jmp short 0770fh                          ; eb 2f
     11276    jmp short 07714h                          ; eb 2f
    1127711277    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1127811278    mov byte [bp+013h], 002h                  ; c6 46 13 02
    11279     jmp short 0770fh                          ; eb 25
     11279    jmp short 07714h                          ; eb 25
    1128011280    mov ax, 000f2h                            ; b8 f2 00
    11281     call 07308h                               ; e8 18 fc
     11281    call 0730dh                               ; e8 18 fc
    1128211282    test al, al                               ; 84 c0
    11283     jne short 07707h                          ; 75 13
     11283    jne short 0770ch                          ; 75 13
    1128411284    mov dx, ss                                ; 8c d2
    1128511285    lea ax, [bp-006h]                         ; 8d 46 fa
    11286     call 07340h                               ; e8 44 fc
     11286    call 07345h                               ; e8 44 fc
    1128711287    mov dx, ss                                ; 8c d2
    1128811288    lea ax, [bp-004h]                         ; 8d 46 fc
    11289     call 07340h                               ; e8 3c fc
    11290     jmp near 075dah                           ; e9 d3 fe
     11289    call 07345h                               ; e8 3c fc
     11290    jmp near 075dfh                           ; e9 d3 fe
    1129111291    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1129211292    mov byte [bp+013h], 003h                  ; c6 46 13 03
    11293     jmp near 07839h                           ; e9 27 01
     11293    jmp near 0783eh                           ; e9 27 01
    1129411294    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1129511295    test al, al                               ; 84 c0
    11296     jbe short 07722h                          ; 76 09
     11296    jbe short 07727h                          ; 76 09
    1129711297    cmp AL, strict byte 002h                  ; 3c 02
    11298     jbe short 07720h                          ; 76 03
    11299     jmp near 077c1h                           ; e9 a1 00
    11300     jmp short 0778ch                          ; eb 6a
     11298    jbe short 07725h                          ; 76 03
     11299    jmp near 077c6h                           ; e9 a1 00
     11300    jmp short 07791h                          ; eb 6a
    1130111301    mov ax, 000e9h                            ; b8 e9 00
    11302     call 07308h                               ; e8 e0 fb
     11302    call 0730dh                               ; e8 e0 fb
    1130311303    test al, al                               ; 84 c0
    11304     jne short 07795h                          ; 75 69
     11304    jne short 0779ah                          ; 75 69
    1130511305    mov dx, ss                                ; 8c d2
    1130611306    lea ax, [bp-006h]                         ; 8d 46 fa
    11307     call 07340h                               ; e8 0c fc
     11307    call 07345h                               ; e8 0c fc
    1130811308    mov cl, al                                ; 88 c1
    1130911309    cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
    11310     je short 07750h                           ; 74 14
     11310    je short 07755h                           ; 74 14
    1131111311    mov al, byte [bp-006h]                    ; 8a 46 fa
    1131211312    xor ah, ah                                ; 30 e4
     
    1131611316    mov ax, strict word 00007h                ; b8 07 00
    1131711317    push ax                                   ; 50
    11318     call 01976h                               ; e8 29 a2
     11318    call 01976h                               ; e8 24 a2
    1131911319    add sp, strict byte 00006h                ; 83 c4 06
    1132011320    test cl, cl                               ; 84 c9
    11321     jne short 077b7h                          ; 75 63
     11321    jne short 077bch                          ; 75 63
    1132211322    mov dx, ss                                ; 8c d2
    1132311323    lea ax, [bp-006h]                         ; 8d 46 fa
    11324     call 07340h                               ; e8 e4 fb
     11324    call 07345h                               ; e8 e4 fb
    1132511325    test al, al                               ; 84 c0
    11326     jne short 077b7h                          ; 75 57
     11326    jne short 077bch                          ; 75 57
    1132711327    mov dx, ss                                ; 8c d2
    1132811328    lea ax, [bp-004h]                         ; 8d 46 fc
    11329     call 07340h                               ; e8 d8 fb
     11329    call 07345h                               ; e8 d8 fb
    1133011330    test al, al                               ; 84 c0
    11331     jne short 077b7h                          ; 75 4b
     11331    jne short 077bch                          ; 75 4b
    1133211332    mov dx, ss                                ; 8c d2
    1133311333    lea ax, [bp-008h]                         ; 8d 46 f8
    11334     call 07340h                               ; e8 cc fb
     11334    call 07345h                               ; e8 cc fb
    1133511335    test al, al                               ; 84 c0
    11336     jne short 077b7h                          ; 75 3f
     11336    jne short 077bch                          ; 75 3f
    1133711337    mov al, byte [bp-006h]                    ; 8a 46 fa
    1133811338    mov byte [bp+00ch], al                    ; 88 46 0c
     
    1134111341    mov al, byte [bp-008h]                    ; 8a 46 f8
    1134211342    mov byte [bp+00eh], al                    ; 88 46 0e
    11343     jmp short 0770fh                          ; eb 83
     11343    jmp short 07714h                          ; eb 83
    1134411344    cmp AL, strict byte 001h                  ; 3c 01
    11345     jne short 07797h                          ; 75 07
     11345    jne short 0779ch                          ; 75 07
    1134611346    mov ax, 000e6h                            ; b8 e6 00
    11347     jmp short 0779ah                          ; eb 05
    11348     jmp short 077b7h                          ; eb 20
     11347    jmp short 0779fh                          ; eb 05
     11348    jmp short 077bch                          ; eb 20
    1134911349    mov ax, 000e7h                            ; b8 e7 00
    11350     call 07308h                               ; e8 6b fb
     11350    call 0730dh                               ; e8 6b fb
    1135111351    mov cl, al                                ; 88 c1
    1135211352    test cl, cl                               ; 84 c9
    11353     jne short 077b3h                          ; 75 10
     11353    jne short 077b8h                          ; 75 10
    1135411354    mov dx, ss                                ; 8c d2
    1135511355    lea ax, [bp-006h]                         ; 8d 46 fa
    11356     call 07340h                               ; e8 95 fb
     11356    call 07345h                               ; e8 95 fb
    1135711357    cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
    11358     je short 077b3h                           ; 74 02
     11358    je short 077b8h                           ; 74 02
    1135911359    mov CL, strict byte 001h                  ; b1 01
    1136011360    test cl, cl                               ; 84 c9
    11361     je short 07821h                           ; 74 6a
     11361    je short 07826h                           ; 74 6a
    1136211362    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1136311363    mov byte [bp+013h], 003h                  ; c6 46 13 03
    11364     jmp short 07821h                          ; eb 60
     11364    jmp short 07826h                          ; eb 60
    1136511365    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1136611366    xor ah, ah                                ; 30 e4
     
    1137011370    mov ax, strict word 00007h                ; b8 07 00
    1137111371    push ax                                   ; 50
    11372     call 01976h                               ; e8 a4 a1
     11372    call 01976h                               ; e8 9f a1
    1137311373    add sp, strict byte 00006h                ; 83 c4 06
    1137411374    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1137511375    mov byte [bp+013h], 001h                  ; c6 46 13 01
    11376     jmp short 07839h                          ; eb 5a
     11376    jmp short 0783eh                          ; eb 5a
    1137711377    mov si, word [bp+00ch]                    ; 8b 76 0c
    1137811378    mov bx, si                                ; 89 f3
    1137911379    mov dx, strict word 00022h                ; ba 22 00
    1138011380    mov ax, cx                                ; 89 c8
    11381     call 0167ch                               ; e8 90 9e
     11381    call 0167ch                               ; e8 8b 9e
    1138211382    mov bx, word [bp+014h]                    ; 8b 5e 14
    1138311383    mov dx, strict word 00024h                ; ba 24 00
    1138411384    mov ax, cx                                ; 89 c8
    11385     call 0167ch                               ; e8 85 9e
     11385    call 0167ch                               ; e8 80 9e
    1138611386    mov dx, strict word 00027h                ; ba 27 00
    1138711387    mov ax, cx                                ; 89 c8
    11388     call 01652h                               ; e8 53 9e
     11388    call 01652h                               ; e8 4e 9e
    1138911389    mov ah, al                                ; 88 c4
    1139011390    test si, si                               ; 85 f6
    11391     jne short 07813h                          ; 75 0e
     11391    jne short 07818h                          ; 75 0e
    1139211392    cmp word [bp+014h], strict byte 00000h    ; 83 7e 14 00
    11393     jne short 07813h                          ; 75 08
     11393    jne short 07818h                          ; 75 08
    1139411394    test AL, strict byte 080h                 ; a8 80
    11395     je short 07815h                           ; 74 06
     11395    je short 0781ah                           ; 74 06
    1139611396    and AL, strict byte 07fh                  ; 24 7f
    11397     jmp short 07815h                          ; eb 02
     11397    jmp short 0781ah                          ; eb 02
    1139811398    or AL, strict byte 080h                   ; 0c 80
    1139911399    mov bl, al                                ; 88 c3
     
    1140111401    mov dx, strict word 00027h                ; ba 27 00
    1140211402    mov ax, cx                                ; 89 c8
    11403     call 01660h                               ; e8 3f 9e
    11404     jmp short 07839h                          ; eb 16
     11403    call 01660h                               ; e8 3a 9e
     11404    jmp short 0783eh                          ; eb 16
    1140511405    mov ax, 00974h                            ; b8 74 09
    1140611406    push ax                                   ; 50
    1140711407    mov ax, strict word 00007h                ; b8 07 00
    1140811408    push ax                                   ; 50
    11409     call 01976h                               ; e8 48 a1
     11409    call 01976h                               ; e8 43 a1
    1141011410    add sp, strict byte 00004h                ; 83 c4 04
    1141111411    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1141211412    mov byte [bp+013h], 001h                  ; c6 46 13 01
    1141311413    mov ax, strict word 00047h                ; b8 47 00
    11414     call 0739dh                               ; e8 5e fb
     11414    call 073a2h                               ; e8 5e fb
    1141511415    lea sp, [bp-002h]                         ; 8d 66 fe
    1141611416    pop si                                    ; 5e
    1141711417    pop bp                                    ; 5d
    1141811418    retn                                      ; c3
    11419 _int17_function:                             ; 0xf7845 LB 0xac
     11419_int17_function:                             ; 0xf784a LB 0xac
    1142011420    push bp                                   ; 55
    1142111421    mov bp, sp                                ; 89 e5
     
    1142711427    add dx, strict byte 00008h                ; 83 c2 08
    1142811428    mov ax, strict word 00040h                ; b8 40 00
    11429     call 0166eh                               ; e8 15 9e
     11429    call 0166eh                               ; e8 10 9e
    1143011430    mov bx, ax                                ; 89 c3
    1143111431    mov si, ax                                ; 89 c6
    1143211432    cmp byte [bp+013h], 003h                  ; 80 7e 13 03
    11433     jnc short 0786fh                          ; 73 0c
     11433    jnc short 07874h                          ; 73 0c
    1143411434    mov ax, word [bp+00eh]                    ; 8b 46 0e
    1143511435    cmp ax, strict word 00003h                ; 3d 03 00
    11436     jnc short 0786fh                          ; 73 04
     11436    jnc short 07874h                          ; 73 04
    1143711437    test bx, bx                               ; 85 db
    11438     jnbe short 07872h                         ; 77 03
    11439     jmp near 078e7h                           ; e9 75 00
     11438    jnbe short 07877h                         ; 77 03
     11439    jmp near 078ech                           ; e9 75 00
    1144011440    mov dx, ax                                ; 89 c2
    1144111441    add dx, strict byte 00078h                ; 83 c2 78
    1144211442    mov ax, strict word 00040h                ; b8 40 00
    11443     call 01652h                               ; e8 d5 9d
     11443    call 01652h                               ; e8 d0 9d
    1144411444    mov ch, al                                ; 88 c5
    1144511445    xor cl, cl                                ; 30 c9
    1144611446    cmp byte [bp+013h], 000h                  ; 80 7e 13 00
    11447     jne short 078b3h                          ; 75 2c
     11447    jne short 078b8h                          ; 75 2c
    1144811448    mov al, byte [bp+012h]                    ; 8a 46 12
    1144911449    mov dx, bx                                ; 89 da
     
    1146511465    ; sub ah, ah                                ; 2a e4
    1146611466    test AL, strict byte 040h                 ; a8 40
    11467     je short 078b3h                           ; 74 07
     11467    je short 078b8h                           ; 74 07
    1146811468    test cx, cx                               ; 85 c9
    11469     je short 078b3h                           ; 74 03
     11469    je short 078b8h                           ; 74 03
    1147011470    dec cx                                    ; 49
    11471     jmp short 078a2h                          ; eb ef
     11471    jmp short 078a7h                          ; eb ef
    1147211472    cmp byte [bp+013h], 001h                  ; 80 7e 13 01
    11473     jne short 078ceh                          ; 75 15
     11473    jne short 078d3h                          ; 75 15
    1147411474    lea dx, [si+002h]                         ; 8d 54 02
    1147511475    in AL, DX                                 ; ec
     
    1149011490    mov byte [bp+013h], al                    ; 88 46 13
    1149111491    test cx, cx                               ; 85 c9
    11492     jne short 078e1h                          ; 75 04
     11492    jne short 078e6h                          ; 75 04
    1149311493    or byte [bp+013h], 001h                   ; 80 4e 13 01
    1149411494    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    11495     jmp short 078ebh                          ; eb 04
     11495    jmp short 078f0h                          ; eb 04
    1149611496    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    1149711497    lea sp, [bp-002h]                         ; 8d 66 fe
     
    1149911499    pop bp                                    ; 5d
    1150011500    retn                                      ; c3
    11501 wait_:                                       ; 0xf78f1 LB 0xb2
     11501wait_:                                       ; 0xf78f6 LB 0xb2
    1150211502    push bp                                   ; 55
    1150311503    mov bp, sp                                ; 89 e5
     
    1151711517    mov dx, 0046ch                            ; ba 6c 04
    1151811518    xor ax, ax                                ; 31 c0
    11519     call 0168ah                               ; e8 76 9d
     11519    call 0168ah                               ; e8 71 9d
    1152011520    mov word [bp-00eh], ax                    ; 89 46 f2
    1152111521    mov bx, dx                                ; 89 d3
     
    1152311523    mov dx, 0046ch                            ; ba 6c 04
    1152411524    xor ax, ax                                ; 31 c0
    11525     call 0168ah                               ; e8 68 9d
     11525    call 0168ah                               ; e8 63 9d
    1152611526    mov word [bp-012h], ax                    ; 89 46 ee
    1152711527    mov di, dx                                ; 89 d7
    1152811528    cmp dx, bx                                ; 39 da
    11529     jnbe short 07932h                         ; 77 07
    11530     jne short 07939h                          ; 75 0c
     11529    jnbe short 07937h                         ; 77 07
     11530    jne short 0793eh                          ; 75 0c
    1153111531    cmp ax, word [bp-00eh]                    ; 3b 46 f2
    11532     jbe short 07939h                          ; 76 07
     11532    jbe short 0793eh                          ; 76 07
    1153311533    sub ax, word [bp-00eh]                    ; 2b 46 f2
    1153411534    sbb dx, bx                                ; 19 da
    11535     jmp short 07944h                          ; eb 0b
     11535    jmp short 07949h                          ; eb 0b
    1153611536    cmp dx, bx                                ; 39 da
    11537     jc short 07944h                           ; 72 07
    11538     jne short 07948h                          ; 75 09
     11537    jc short 07949h                           ; 72 07
     11538    jne short 0794dh                          ; 75 09
    1153911539    cmp ax, word [bp-00eh]                    ; 3b 46 f2
    11540     jnc short 07948h                          ; 73 04
     11540    jnc short 0794dh                          ; 73 04
    1154111541    sub si, ax                                ; 29 c6
    1154211542    sbb cx, dx                                ; 19 d1
     
    1154611546    mov ax, 00100h                            ; b8 00 01
    1154711547    int 016h                                  ; cd 16
    11548     je short 0795ch                           ; 74 05
     11548    je short 07961h                           ; 74 05
    1154911549    mov AL, strict byte 001h                  ; b0 01
    11550     jmp near 0795eh                           ; e9 02 00
     11550    jmp near 07963h                           ; e9 02 00
    1155111551    db  032h, 0c0h
    1155211552    ; xor al, al                                ; 32 c0
    1155311553    test al, al                               ; 84 c0
    11554     je short 07988h                           ; 74 26
     11554    je short 0798dh                           ; 74 26
    1155511555    db  033h, 0c0h
    1155611556    ; xor ax, ax                                ; 33 c0
     
    1156511565    mov ax, strict word 00004h                ; b8 04 00
    1156611566    push ax                                   ; 50
    11567     call 01976h                               ; e8 fb 9f
     11567    call 01976h                               ; e8 f6 9f
    1156811568    add sp, strict byte 00006h                ; 83 c4 06
    1156911569    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    11570     je short 07988h                           ; 74 04
     11570    je short 0798dh                           ; 74 04
    1157111571    mov al, dl                                ; 88 d0
    11572     jmp short 0799ah                          ; eb 12
     11572    jmp short 0799fh                          ; eb 12
    1157311573    test cx, cx                               ; 85 c9
    11574     jnle short 07919h                         ; 7f 8d
    11575     jne short 07992h                          ; 75 04
     11574    jnle short 0791eh                         ; 7f 8d
     11575    jne short 07997h                          ; 75 04
    1157611576    test si, si                               ; 85 f6
    11577     jnbe short 07919h                         ; 77 87
     11577    jnbe short 0791eh                         ; 77 87
    1157811578    mov ax, word [bp-010h]                    ; 8b 46 f0
    1157911579    push ax                                   ; 50
     
    1158711587    pop bp                                    ; 5d
    1158811588    retn                                      ; c3
    11589 read_logo_byte_:                             ; 0xf79a3 LB 0x16
     11589read_logo_byte_:                             ; 0xf79a8 LB 0x16
    1159011590    push bp                                   ; 55
    1159111591    mov bp, sp                                ; 89 e5
     
    1160211602    pop bp                                    ; 5d
    1160311603    retn                                      ; c3
    11604 read_logo_word_:                             ; 0xf79b9 LB 0x14
     11604read_logo_word_:                             ; 0xf79be LB 0x14
    1160511605    push bp                                   ; 55
    1160611606    mov bp, sp                                ; 89 e5
     
    1161511615    pop bp                                    ; 5d
    1161611616    retn                                      ; c3
    11617 print_detected_harddisks_:                   ; 0xf79cd LB 0x15a
     11617print_detected_harddisks_:                   ; 0xf79d2 LB 0x15a
    1161811618    push bp                                   ; 55
    1161911619    mov bp, sp                                ; 89 e5
     
    1162511625    mov dx, strict word 0000eh                ; ba 0e 00
    1162611626    mov ax, strict word 00040h                ; b8 40 00
    11627     call 0166eh                               ; e8 8e 9c
     11627    call 0166eh                               ; e8 89 9c
    1162811628    mov si, ax                                ; 89 c6
    1162911629    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
     
    1163111631    mov byte [bp-00ch], ch                    ; 88 6e f4
    1163211632    mov dx, 00304h                            ; ba 04 03
    11633     call 01652h                               ; e8 61 9c
     11633    call 01652h                               ; e8 5c 9c
    1163411634    mov byte [bp-00ah], al                    ; 88 46 f6
    1163511635    xor cl, cl                                ; 30 c9
    1163611636    cmp cl, byte [bp-00ah]                    ; 3a 4e f6
    11637     jnc short 07a59h                          ; 73 5e
     11637    jnc short 07a5eh                          ; 73 5e
    1163811638    mov al, cl                                ; 88 c8
    1163911639    xor ah, ah                                ; 30 e4
     
    1164111641    add dx, 00305h                            ; 81 c2 05 03
    1164211642    mov ax, si                                ; 89 f0
    11643     call 01652h                               ; e8 48 9c
     11643    call 01652h                               ; e8 43 9c
    1164411644    mov bl, al                                ; 88 c3
    1164511645    cmp AL, strict byte 00ch                  ; 3c 0c
    11646     jc short 07a3bh                           ; 72 2b
     11646    jc short 07a40h                           ; 72 2b
    1164711647    test ch, ch                               ; 84 ed
    11648     jne short 07a24h                          ; 75 10
     11648    jne short 07a29h                          ; 75 10
    1164911649    mov ax, 009a7h                            ; b8 a7 09
    1165011650    push ax                                   ; 50
    1165111651    mov ax, strict word 00002h                ; b8 02 00
    1165211652    push ax                                   ; 50
    11653     call 01976h                               ; e8 57 9f
     11653    call 01976h                               ; e8 52 9f
    1165411654    add sp, strict byte 00004h                ; 83 c4 04
    1165511655    mov CH, strict byte 001h                  ; b5 01
     
    1166211662    mov ax, strict word 00002h                ; b8 02 00
    1166311663    push ax                                   ; 50
    11664     call 01976h                               ; e8 41 9f
     11664    call 01976h                               ; e8 3c 9f
    1166511665    add sp, strict byte 00006h                ; 83 c4 06
    11666     jmp near 07aedh                           ; e9 b2 00
     11666    jmp near 07af2h                           ; e9 b2 00
    1166711667    cmp AL, strict byte 008h                  ; 3c 08
    11668     jc short 07a5ch                           ; 72 1d
     11668    jc short 07a61h                           ; 72 1d
    1166911669    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11670     jne short 07a57h                          ; 75 12
     11670    jne short 07a5ch                          ; 75 12
    1167111671    mov ax, 009cfh                            ; b8 cf 09
    1167211672    push ax                                   ; 50
    1167311673    mov ax, strict word 00002h                ; b8 02 00
    1167411674    push ax                                   ; 50
    11675     call 01976h                               ; e8 26 9f
     11675    call 01976h                               ; e8 21 9f
    1167611676    add sp, strict byte 00004h                ; 83 c4 04
    1167711677    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    11678     jmp short 07a24h                          ; eb cb
    11679     jmp near 07af2h                           ; e9 96 00
     11678    jmp short 07a29h                          ; eb cb
     11679    jmp near 07af7h                           ; e9 96 00
    1168011680    cmp AL, strict byte 004h                  ; 3c 04
    11681     jnc short 07a7ah                          ; 73 1a
     11681    jnc short 07a7fh                          ; 73 1a
    1168211682    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    11683     jne short 07a7ah                          ; 75 14
     11683    jne short 07a7fh                          ; 75 14
    1168411684    mov ax, 009e4h                            ; b8 e4 09
    1168511685    push ax                                   ; 50
    1168611686    mov ax, strict word 00002h                ; b8 02 00
    1168711687    push ax                                   ; 50
    11688     call 01976h                               ; e8 05 9f
     11688    call 01976h                               ; e8 00 9f
    1168911689    add sp, strict byte 00004h                ; 83 c4 04
    1169011690    mov byte [bp-00eh], 001h                  ; c6 46 f2 01
    11691     jmp short 07a93h                          ; eb 19
     11691    jmp short 07a98h                          ; eb 19
    1169211692    cmp bl, 004h                              ; 80 fb 04
    11693     jc short 07a93h                           ; 72 14
     11693    jc short 07a98h                           ; 72 14
    1169411694    test ch, ch                               ; 84 ed
    11695     jne short 07a93h                          ; 75 10
     11695    jne short 07a98h                          ; 75 10
    1169611696    mov ax, 009f6h                            ; b8 f6 09
    1169711697    push ax                                   ; 50
    1169811698    mov ax, strict word 00002h                ; b8 02 00
    1169911699    push ax                                   ; 50
    11700     call 01976h                               ; e8 e8 9e
     11700    call 01976h                               ; e8 e3 9e
    1170111701    add sp, strict byte 00004h                ; 83 c4 04
    1170211702    mov CH, strict byte 001h                  ; b5 01
     
    1170911709    mov ax, strict word 00002h                ; b8 02 00
    1171011710    push ax                                   ; 50
    11711     call 01976h                               ; e8 d2 9e
     11711    call 01976h                               ; e8 cd 9e
    1171211712    add sp, strict byte 00006h                ; 83 c4 06
    1171311713    cmp bl, 004h                              ; 80 fb 04
    11714     jc short 07aafh                           ; 72 03
     11714    jc short 07ab4h                           ; 72 03
    1171511715    sub bl, 004h                              ; 80 eb 04
    1171611716    mov al, bl                                ; 88 d8
     
    1172111721    sar ax, 1                                 ; d1 f8
    1172211722    test ax, ax                               ; 85 c0
    11723     je short 07ac1h                           ; 74 05
     11723    je short 07ac6h                           ; 74 05
    1172411724    mov ax, 00a14h                            ; b8 14 0a
    11725     jmp short 07ac4h                          ; eb 03
     11725    jmp short 07ac9h                          ; eb 03
    1172611726    mov ax, 00a1fh                            ; b8 1f 0a
    1172711727    push ax                                   ; 50
    1172811728    mov ax, strict word 00002h                ; b8 02 00
    1172911729    push ax                                   ; 50
    11730     call 01976h                               ; e8 aa 9e
     11730    call 01976h                               ; e8 a5 9e
    1173111731    add sp, strict byte 00004h                ; 83 c4 04
    1173211732    mov al, bl                                ; 88 d8
     
    1173611736    idiv bx                                   ; f7 fb
    1173711737    test dx, dx                               ; 85 d2
    11738     je short 07ae2h                           ; 74 05
     11738    je short 07ae7h                           ; 74 05
    1173911739    mov ax, 00a28h                            ; b8 28 0a
    11740     jmp short 07ae5h                          ; eb 03
     11740    jmp short 07aeah                          ; eb 03
    1174111741    mov ax, 00a2eh                            ; b8 2e 0a
    1174211742    push ax                                   ; 50
    1174311743    push bx                                   ; 53
    11744     call 01976h                               ; e8 8c 9e
     11744    call 01976h                               ; e8 87 9e
    1174511745    add sp, strict byte 00004h                ; 83 c4 04
    1174611746    db  0feh, 0c1h
    1174711747    ; inc cl                                    ; fe c1
    11748     jmp near 079f6h                           ; e9 04 ff
     11748    jmp near 079fbh                           ; e9 04 ff
    1174911749    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    11750     jne short 07b10h                          ; 75 18
     11750    jne short 07b15h                          ; 75 18
    1175111751    test ch, ch                               ; 84 ed
    11752     jne short 07b10h                          ; 75 14
     11752    jne short 07b15h                          ; 75 14
    1175311753    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11754     jne short 07b10h                          ; 75 0e
     11754    jne short 07b15h                          ; 75 0e
    1175511755    mov ax, 00a35h                            ; b8 35 0a
    1175611756    push ax                                   ; 50
    1175711757    mov ax, strict word 00002h                ; b8 02 00
    1175811758    push ax                                   ; 50
    11759     call 01976h                               ; e8 69 9e
     11759    call 01976h                               ; e8 64 9e
    1176011760    add sp, strict byte 00004h                ; 83 c4 04
    1176111761    mov ax, 00a49h                            ; b8 49 0a
     
    1176311763    mov ax, strict word 00002h                ; b8 02 00
    1176411764    push ax                                   ; 50
    11765     call 01976h                               ; e8 5b 9e
     11765    call 01976h                               ; e8 56 9e
    1176611766    add sp, strict byte 00004h                ; 83 c4 04
    1176711767    lea sp, [bp-008h]                         ; 8d 66 f8
     
    1177211772    pop bp                                    ; 5d
    1177311773    retn                                      ; c3
    11774 get_boot_drive_:                             ; 0xf7b27 LB 0x28
     11774get_boot_drive_:                             ; 0xf7b2c LB 0x28
    1177511775    push bp                                   ; 55
    1177611776    mov bp, sp                                ; 89 e5
     
    1178011780    mov dx, strict word 0000eh                ; ba 0e 00
    1178111781    mov ax, strict word 00040h                ; b8 40 00
    11782     call 0166eh                               ; e8 37 9b
     11782    call 0166eh                               ; e8 32 9b
    1178311783    mov dx, 00304h                            ; ba 04 03
    11784     call 01652h                               ; e8 15 9b
     11784    call 01652h                               ; e8 10 9b
    1178511785    sub bl, 002h                              ; 80 eb 02
    1178611786    cmp bl, al                                ; 38 c3
    11787     jc short 07b46h                           ; 72 02
     11787    jc short 07b4bh                           ; 72 02
    1178811788    mov BL, strict byte 0ffh                  ; b3 ff
    1178911789    mov al, bl                                ; 88 d8
     
    1179311793    pop bp                                    ; 5d
    1179411794    retn                                      ; c3
    11795 show_logo_:                                  ; 0xf7b4f LB 0x240
     11795show_logo_:                                  ; 0xf7b54 LB 0x240
    1179611796    push bp                                   ; 55
    1179711797    mov bp, sp                                ; 89 e5
     
    1180411804    mov dx, strict word 0000eh                ; ba 0e 00
    1180511805    mov ax, strict word 00040h                ; b8 40 00
    11806     call 0166eh                               ; e8 0b 9b
     11806    call 0166eh                               ; e8 06 9b
    1180711807    mov si, ax                                ; 89 c6
    1180811808    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
     
    1181611816    mov al, cl                                ; 88 c8
    1181711817    xor ah, ah                                ; 30 e4
    11818     call 079b9h                               ; e8 3b fe
     11818    call 079beh                               ; e8 3b fe
    1181911819    cmp ax, 066bbh                            ; 3d bb 66
    11820     jne short 07b95h                          ; 75 12
     11820    jne short 07b9ah                          ; 75 12
    1182111821    push SS                                   ; 16
    1182211822    pop ES                                    ; 07
     
    1182611826    mov word [es:di], bx                      ; 26 89 1d
    1182711827    cmp ax, strict word 0004fh                ; 3d 4f 00
    11828     je short 07b98h                           ; 74 03
    11829     jmp near 07c5eh                           ; e9 c6 00
     11828    je short 07b9dh                           ; 74 03
     11829    jmp near 07c63h                           ; e9 c6 00
    1183011830    mov al, cl                                ; 88 c8
    1183111831    add AL, strict byte 004h                  ; 04 04
    1183211832    xor ah, ah                                ; 30 e4
    11833     call 079a3h                               ; e8 02 fe
     11833    call 079a8h                               ; e8 02 fe
    1183411834    mov bl, al                                ; 88 c3
    1183511835    mov byte [bp-014h], al                    ; 88 46 ec
     
    1183711837    add AL, strict byte 005h                  ; 04 05
    1183811838    xor ah, ah                                ; 30 e4
    11839     call 079a3h                               ; e8 f4 fd
     11839    call 079a8h                               ; e8 f4 fd
    1184011840    mov bh, al                                ; 88 c7
    1184111841    mov byte [bp-012h], al                    ; 88 46 ee
     
    1184311843    add AL, strict byte 002h                  ; 04 02
    1184411844    xor ah, ah                                ; 30 e4
    11845     call 079b9h                               ; e8 fc fd
     11845    call 079beh                               ; e8 fc fd
    1184611846    mov dx, ax                                ; 89 c2
    1184711847    mov word [bp-016h], ax                    ; 89 46 ea
     
    1184911849    add AL, strict byte 006h                  ; 04 06
    1185011850    xor ah, ah                                ; 30 e4
    11851     call 079a3h                               ; e8 d8 fd
     11851    call 079a8h                               ; e8 d8 fd
    1185211852    mov byte [bp-010h], al                    ; 88 46 f0
    1185311853    test bl, bl                               ; 84 db
    11854     jne short 07bdah                          ; 75 08
     11854    jne short 07bdfh                          ; 75 08
    1185511855    test bh, bh                               ; 84 ff
    11856     jne short 07bdah                          ; 75 04
     11856    jne short 07bdfh                          ; 75 04
    1185711857    test dx, dx                               ; 85 d2
    11858     je short 07b95h                           ; 74 bb
     11858    je short 07b9ah                           ; 74 bb
    1185911859    mov bx, 00142h                            ; bb 42 01
    1186011860    mov ax, 04f02h                            ; b8 02 4f
    1186111861    int 010h                                  ; cd 10
    1186211862    cmp byte [bp-014h], 000h                  ; 80 7e ec 00
    11863     je short 07c0dh                           ; 74 25
     11863    je short 07c12h                           ; 74 25
    1186411864    xor cx, cx                                ; 31 c9
    11865     jmp short 07bf2h                          ; eb 06
     11865    jmp short 07bf7h                          ; eb 06
    1186611866    inc cx                                    ; 41
    1186711867    cmp cx, strict byte 00010h                ; 83 f9 10
    11868     jnbe short 07c14h                         ; 77 22
     11868    jnbe short 07c19h                         ; 77 22
    1186911869    mov ax, cx                                ; 89 c8
    1187011870    or ah, 002h                               ; 80 cc 02
     
    1187311873    xor dx, dx                                ; 31 d2
    1187411874    mov ax, strict word 00001h                ; b8 01 00
    11875     call 078f1h                               ; e8 ee fc
     11875    call 078f6h                               ; e8 ee fc
    1187611876    cmp AL, strict byte 086h                  ; 3c 86
    11877     jne short 07bech                          ; 75 e5
     11877    jne short 07bf1h                          ; 75 e5
    1187811878    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    11879     jmp short 07c14h                          ; eb 07
     11879    jmp short 07c19h                          ; eb 07
    1188011880    mov ax, 00210h                            ; b8 10 02
    1188111881    mov dx, 003b8h                            ; ba b8 03
    1188211882    out DX, ax                                ; ef
    1188311883    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11884     jne short 07c2fh                          ; 75 15
     11884    jne short 07c34h                          ; 75 15
    1188511885    mov CL, strict byte 004h                  ; b1 04
    1188611886    mov ax, word [bp-016h]                    ; 8b 46 ea
    1188711887    shr ax, CL                                ; d3 e8
    1188811888    mov dx, strict word 00001h                ; ba 01 00
    11889     call 078f1h                               ; e8 ca fc
     11889    call 078f6h                               ; e8 ca fc
    1189011890    cmp AL, strict byte 086h                  ; 3c 86
    11891     jne short 07c2fh                          ; 75 04
     11891    jne short 07c34h                          ; 75 04
    1189211892    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    1189311893    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
    11894     je short 07c5eh                           ; 74 29
     11894    je short 07c63h                           ; 74 29
    1189511895    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11896     jne short 07c5eh                          ; 75 23
     11896    jne short 07c63h                          ; 75 23
    1189711897    mov cx, strict word 00010h                ; b9 10 00
    11898     jmp short 07c45h                          ; eb 05
     11898    jmp short 07c4ah                          ; eb 05
    1189911899    dec cx                                    ; 49
    1190011900    test cx, cx                               ; 85 c9
    11901     jbe short 07c5eh                          ; 76 19
     11901    jbe short 07c63h                          ; 76 19
    1190211902    mov ax, cx                                ; 89 c8
    1190311903    or ah, 002h                               ; 80 cc 02
     
    1190611906    xor dx, dx                                ; 31 d2
    1190711907    mov ax, strict word 00001h                ; b8 01 00
    11908     call 078f1h                               ; e8 9b fc
     11908    call 078f6h                               ; e8 9b fc
    1190911909    cmp AL, strict byte 086h                  ; 3c 86
    11910     jne short 07c40h                          ; 75 e6
     11910    jne short 07c45h                          ; 75 e6
    1191111911    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    1191211912    xor bx, bx                                ; 31 db
    1191311913    mov dx, 0037dh                            ; ba 7d 03
    1191411914    mov ax, si                                ; 89 f0
    11915     call 01660h                               ; e8 f8 99
     11915    call 01660h                               ; e8 f3 99
    1191611916    mov AL, strict byte 003h                  ; b0 03
    1191711917    mov AH, strict byte 000h                  ; b4 00
    1191811918    int 010h                                  ; cd 10
    1191911919    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    11920     je short 07c88h                           ; 74 14
     11920    je short 07c8dh                           ; 74 14
    1192111921    cmp byte [bp-014h], 000h                  ; 80 7e ec 00
    11922     jne short 07cb6h                          ; 75 3c
     11922    jne short 07cbbh                          ; 75 3c
    1192311923    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
    11924     jne short 07cb6h                          ; 75 36
     11924    jne short 07cbbh                          ; 75 36
    1192511925    cmp word [bp-016h], strict byte 00000h    ; 83 7e ea 00
    11926     je short 07c8bh                           ; 74 05
    11927     jmp short 07cb6h                          ; eb 2e
    11928     jmp near 07d72h                           ; e9 e7 00
     11926    je short 07c90h                           ; 74 05
     11927    jmp short 07cbbh                          ; eb 2e
     11928    jmp near 07d77h                           ; e9 e7 00
    1192911929    cmp byte [bp-010h], 002h                  ; 80 7e f0 02
    11930     jne short 07c9fh                          ; 75 0e
     11930    jne short 07ca4h                          ; 75 0e
    1193111931    mov ax, 00a4bh                            ; b8 4b 0a
    1193211932    push ax                                   ; 50
    1193311933    mov ax, strict word 00002h                ; b8 02 00
    1193411934    push ax                                   ; 50
    11935     call 01976h                               ; e8 da 9c
     11935    call 01976h                               ; e8 d5 9c
    1193611936    add sp, strict byte 00004h                ; 83 c4 04
    1193711937    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11938     jne short 07cb6h                          ; 75 11
     11938    jne short 07cbbh                          ; 75 11
    1193911939    mov dx, strict word 00001h                ; ba 01 00
    1194011940    mov ax, 000c0h                            ; b8 c0 00
    11941     call 078f1h                               ; e8 43 fc
     11941    call 078f6h                               ; e8 43 fc
    1194211942    cmp AL, strict byte 086h                  ; 3c 86
    11943     jne short 07cb6h                          ; 75 04
     11943    jne short 07cbbh                          ; 75 04
    1194411944    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    1194511945    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11946     je short 07c88h                           ; 74 cc
     11946    je short 07c8dh                           ; 74 cc
    1194711947    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
    1194811948    mov ax, 00100h                            ; b8 00 01
     
    1196511965    mov ax, strict word 00002h                ; b8 02 00
    1196611966    push ax                                   ; 50
    11967     call 01976h                               ; e8 8e 9c
     11967    call 01976h                               ; e8 89 9c
    1196811968    add sp, strict byte 00004h                ; 83 c4 04
    11969     call 079cdh                               ; e8 df fc
     11969    call 079d2h                               ; e8 df fc
    1197011970    mov ax, 00ab1h                            ; b8 b1 0a
    1197111971    push ax                                   ; 50
    1197211972    mov ax, strict word 00002h                ; b8 02 00
    1197311973    push ax                                   ; 50
    11974     call 01976h                               ; e8 7d 9c
     11974    call 01976h                               ; e8 78 9c
    1197511975    add sp, strict byte 00004h                ; 83 c4 04
    1197611976    mov dx, strict word 00001h                ; ba 01 00
    1197711977    mov ax, strict word 00040h                ; b8 40 00
    11978     call 078f1h                               ; e8 ec fb
     11978    call 078f6h                               ; e8 ec fb
    1197911979    mov cl, al                                ; 88 c1
    1198011980    test al, al                               ; 84 c0
    11981     je short 07cfch                           ; 74 f1
     11981    je short 07d01h                           ; 74 f1
    1198211982    cmp AL, strict byte 030h                  ; 3c 30
    11983     je short 07d5fh                           ; 74 50
     11983    je short 07d64h                           ; 74 50
    1198411984    cmp cl, 002h                              ; 80 f9 02
    11985     jc short 07d38h                           ; 72 24
     11985    jc short 07d3dh                           ; 72 24
    1198611986    cmp cl, 009h                              ; 80 f9 09
    11987     jnbe short 07d38h                         ; 77 1f
     11987    jnbe short 07d3dh                         ; 77 1f
    1198811988    mov al, cl                                ; 88 c8
    1198911989    xor ah, ah                                ; 30 e4
    11990     call 07b27h                               ; e8 07 fe
     11990    call 07b2ch                               ; e8 07 fe
    1199111991    cmp AL, strict byte 0ffh                  ; 3c ff
    11992     jne short 07d26h                          ; 75 02
    11993     jmp short 07cfch                          ; eb d6
     11992    jne short 07d2bh                          ; 75 02
     11993    jmp short 07d01h                          ; eb d6
    1199411994    mov bl, al                                ; 88 c3
    1199511995    xor bh, bh                                ; 30 ff
    1199611996    mov dx, 0037ch                            ; ba 7c 03
    1199711997    mov ax, si                                ; 89 f0
    11998     call 01660h                               ; e8 2e 99
     11998    call 01660h                               ; e8 29 99
    1199911999    mov byte [bp-00eh], 002h                  ; c6 46 f2 02
    12000     jmp short 07d5fh                          ; eb 27
     12000    jmp short 07d64h                          ; eb 27
    1200112001    cmp cl, 02eh                              ; 80 f9 2e
    12002     je short 07d4dh                           ; 74 10
     12002    je short 07d52h                           ; 74 10
    1200312003    cmp cl, 026h                              ; 80 f9 26
    12004     je short 07d53h                           ; 74 11
     12004    je short 07d58h                           ; 74 11
    1200512005    cmp cl, 021h                              ; 80 f9 21
    12006     jne short 07d59h                          ; 75 12
     12006    jne short 07d5eh                          ; 75 12
    1200712007    mov byte [bp-00eh], 001h                  ; c6 46 f2 01
    12008     jmp short 07d5fh                          ; eb 12
     12008    jmp short 07d64h                          ; eb 12
    1200912009    mov byte [bp-00eh], 003h                  ; c6 46 f2 03
    12010     jmp short 07d5fh                          ; eb 0c
     12010    jmp short 07d64h                          ; eb 0c
    1201112011    mov byte [bp-00eh], 004h                  ; c6 46 f2 04
    12012     jmp short 07d5fh                          ; eb 06
     12012    jmp short 07d64h                          ; eb 06
    1201312013    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    12014     je short 07cfch                           ; 74 9d
     12014    je short 07d01h                           ; 74 9d
    1201512015    mov bl, byte [bp-00eh]                    ; 8a 5e f2
    1201612016    xor bh, bh                                ; 30 ff
    1201712017    mov dx, 0037dh                            ; ba 7d 03
    1201812018    mov ax, si                                ; 89 f0
    12019     call 01660h                               ; e8 f4 98
     12019    call 01660h                               ; e8 ef 98
    1202012020    mov AL, strict byte 003h                  ; b0 03
    1202112021    mov AH, strict byte 000h                  ; b4 00
     
    1203012030    push DS                                   ; 1e
    1203112031    mov ds, ax                                ; 8e d8
    12032     call 0ede3h                               ; e8 60 70
     12032    call 0ede3h                               ; e8 5b 70
    1203312033    pop DS                                    ; 1f
    1203412034    pop bp                                    ; 5d
     
    1204112041    pop bp                                    ; 5d
    1204212042    retn                                      ; c3
    12043 delay_boot_:                                 ; 0xf7d8f LB 0x72
     12043delay_boot_:                                 ; 0xf7d94 LB 0x72
    1204412044    push bp                                   ; 55
    1204512045    mov bp, sp                                ; 89 e5
     
    1205112051    mov bx, ax                                ; 89 c3
    1205212052    test ax, ax                               ; 85 c0
    12053     je short 07df7h                           ; 74 5a
     12053    je short 07dfch                           ; 74 5a
    1205412054    mov AL, strict byte 034h                  ; b0 34
    1205512055    out strict byte 043h, AL                  ; e6 43
     
    1206312063    mov ax, strict word 00002h                ; b8 02 00
    1206412064    push ax                                   ; 50
    12065     call 01976h                               ; e8 c1 9b
     12065    call 01976h                               ; e8 bc 9b
    1206612066    add sp, strict byte 00006h                ; 83 c4 06
    1206712067    test bx, bx                               ; 85 db
    12068     jbe short 07dd6h                          ; 76 1a
     12068    jbe short 07ddbh                          ; 76 1a
    1206912069    push bx                                   ; 53
    1207012070    mov ax, 00b19h                            ; b8 19 0b
     
    1207212072    mov ax, strict word 00002h                ; b8 02 00
    1207312073    push ax                                   ; 50
    12074     call 01976h                               ; e8 ae 9b
     12074    call 01976h                               ; e8 a9 9b
    1207512075    add sp, strict byte 00006h                ; 83 c4 06
    1207612076    xor dx, dx                                ; 31 d2
    1207712077    mov ax, strict word 00040h                ; b8 40 00
    12078     call 078f1h                               ; e8 1e fb
     12078    call 078f6h                               ; e8 1e fb
    1207912079    dec bx                                    ; 4b
    12080     jmp short 07db8h                          ; eb e2
     12080    jmp short 07dbdh                          ; eb e2
    1208112081    mov bx, 00a49h                            ; bb 49 0a
    1208212082    push bx                                   ; 53
    1208312083    mov bx, strict word 00002h                ; bb 02 00
    1208412084    push bx                                   ; 53
    12085     call 01976h                               ; e8 95 9b
     12085    call 01976h                               ; e8 90 9b
    1208612086    add sp, strict byte 00004h                ; 83 c4 04
    1208712087    mov AL, strict byte 034h                  ; b0 34
     
    1209412094    push DS                                   ; 1e
    1209512095    mov ds, ax                                ; 8e d8
    12096     call 0ede3h                               ; e8 ee 6f
     12096    call 0ede3h                               ; e8 e9 6f
    1209712097    pop DS                                    ; 1f
    1209812098    pop bp                                    ; 5d
     
    1210512105    pop bp                                    ; 5d
    1210612106    retn                                      ; c3
    12107 scsi_cmd_data_in_:                           ; 0xf7e01 LB 0xd5
     12107scsi_cmd_data_in_:                           ; 0xf7e06 LB 0xd5
    1210812108    push bp                                   ; 55
    1210912109    mov bp, sp                                ; 89 e5
     
    1212112121    ; sub ah, ah                                ; 2a e4
    1212212122    test AL, strict byte 001h                 ; a8 01
    12123     jne short 07e17h                          ; 75 f7
     12123    jne short 07e1ch                          ; 75 f7
    1212412124    mov al, byte [bp+004h]                    ; 8a 46 04
    1212512125    cmp AL, strict byte 010h                  ; 3c 10
    12126     jne short 07e2bh                          ; 75 04
     12126    jne short 07e30h                          ; 75 04
    1212712127    xor ax, ax                                ; 31 c0
    12128     jmp short 07e2dh                          ; eb 02
     12128    jmp short 07e32h                          ; eb 02
    1212912129    xor ah, ah                                ; 30 e4
    1213012130    mov di, ax                                ; 89 c7
     
    1213412134    shr dx, 1                                 ; d1 ea
    1213512135    rcr ax, 1                                 ; d1 d8
    12136     loop 07e37h                               ; e2 fa
     12136    loop 07e3ch                               ; e2 fa
    1213712137    mov cx, ax                                ; 89 c1
    1213812138    and cx, 000f0h                            ; 81 e1 f0 00
     
    1215212152    shr dx, 1                                 ; d1 ea
    1215312153    rcr ax, 1                                 ; d1 d8
    12154     loop 07e5ch                               ; e2 fa
     12154    loop 07e61h                               ; e2 fa
    1215512155    mov dx, si                                ; 89 f2
    1215612156    out DX, AL                                ; ee
     
    1215912159    xor ah, ah                                ; 30 e4
    1216012160    cmp cx, ax                                ; 39 c1
    12161     jnc short 07e7eh                          ; 73 0e
     12161    jnc short 07e83h                          ; 73 0e
    1216212162    les di, [bp-00ah]                         ; c4 7e f6
    1216312163    add di, cx                                ; 01 cf
     
    1216612166    out DX, AL                                ; ee
    1216712167    inc cx                                    ; 41
    12168     jmp short 07e67h                          ; eb e9
     12168    jmp short 07e6ch                          ; eb e9
    1216912169    mov dx, si                                ; 89 f2
    1217012170    in AL, DX                                 ; ec
     
    1217212172    ; sub ah, ah                                ; 2a e4
    1217312173    test AL, strict byte 001h                 ; a8 01
    12174     jne short 07e7eh                          ; 75 f7
     12174    jne short 07e83h                          ; 75 f7
    1217512175    test AL, strict byte 002h                 ; a8 02
    12176     je short 07e99h                           ; 74 0e
     12176    je short 07e9eh                           ; 74 0e
    1217712177    lea dx, [si+003h]                         ; 8d 54 03
    1217812178    xor al, al                                ; 30 c0
     
    1218212182    ; sub ah, ah                                ; 2a e4
    1218312183    mov di, strict word 00004h                ; bf 04 00
    12184     jmp short 07ecbh                          ; eb 32
     12184    jmp short 07ed0h                          ; eb 32
    1218512185    lea dx, [si+001h]                         ; 8d 54 01
    1218612186    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    12187     jne short 07ea8h                          ; 75 06
     12187    jne short 07eadh                          ; 75 06
    1218812188    cmp bx, 08000h                            ; 81 fb 00 80
    12189     jbe short 07ec2h                          ; 76 1a
     12189    jbe short 07ec7h                          ; 76 1a
    1219012190    mov cx, 08000h                            ; b9 00 80
    1219112191    les di, [bp+006h]                         ; c4 7e 06
     
    1219612196    add ax, 00800h                            ; 05 00 08
    1219712197    mov word [bp+008h], ax                    ; 89 46 08
    12198     jmp short 07e99h                          ; eb d7
     12198    jmp short 07e9eh                          ; eb d7
    1219912199    mov cx, bx                                ; 89 d9
    1220012200    les di, [bp+006h]                         ; c4 7e 06
     
    1220712207    pop bp                                    ; 5d
    1220812208    retn 0000ah                               ; c2 0a 00
    12209 scsi_cmd_data_out_:                          ; 0xf7ed6 LB 0xd5
     12209scsi_cmd_data_out_:                          ; 0xf7edb LB 0xd5
    1221012210    push bp                                   ; 55
    1221112211    mov bp, sp                                ; 89 e5
     
    1222312223    ; sub ah, ah                                ; 2a e4
    1222412224    test AL, strict byte 001h                 ; a8 01
    12225     jne short 07eech                          ; 75 f7
     12225    jne short 07ef1h                          ; 75 f7
    1222612226    mov al, byte [bp+004h]                    ; 8a 46 04
    1222712227    cmp AL, strict byte 010h                  ; 3c 10
    12228     jne short 07f00h                          ; 75 04
     12228    jne short 07f05h                          ; 75 04
    1222912229    xor ax, ax                                ; 31 c0
    12230     jmp short 07f02h                          ; eb 02
     12230    jmp short 07f07h                          ; eb 02
    1223112231    xor ah, ah                                ; 30 e4
    1223212232    mov si, ax                                ; 89 c6
     
    1223612236    shr dx, 1                                 ; d1 ea
    1223712237    rcr ax, 1                                 ; d1 d8
    12238     loop 07f0ch                               ; e2 fa
     12238    loop 07f11h                               ; e2 fa
    1223912239    mov cx, ax                                ; 89 c1
    1224012240    and cx, 000f0h                            ; 81 e1 f0 00
     
    1225412254    shr dx, 1                                 ; d1 ea
    1225512255    rcr ax, 1                                 ; d1 d8
    12256     loop 07f31h                               ; e2 fa
     12256    loop 07f36h                               ; e2 fa
    1225712257    mov dx, di                                ; 89 fa
    1225812258    out DX, AL                                ; ee
     
    1226112261    xor ah, ah                                ; 30 e4
    1226212262    cmp cx, ax                                ; 39 c1
    12263     jnc short 07f53h                          ; 73 0e
     12263    jnc short 07f58h                          ; 73 0e
    1226412264    les si, [bp-00ah]                         ; c4 76 f6
    1226512265    add si, cx                                ; 01 ce
     
    1226812268    out DX, AL                                ; ee
    1226912269    inc cx                                    ; 41
    12270     jmp short 07f3ch                          ; eb e9
     12270    jmp short 07f41h                          ; eb e9
    1227112271    lea dx, [di+001h]                         ; 8d 55 01
    1227212272    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    12273     jne short 07f62h                          ; 75 06
     12273    jne short 07f67h                          ; 75 06
    1227412274    cmp bx, 08000h                            ; 81 fb 00 80
    12275     jbe short 07f7dh                          ; 76 1b
     12275    jbe short 07f82h                          ; 76 1b
    1227612276    mov cx, 08000h                            ; b9 00 80
    1227712277    les si, [bp+006h]                         ; c4 76 06
     
    1228312283    add ax, 00800h                            ; 05 00 08
    1228412284    mov word [bp+008h], ax                    ; 89 46 08
    12285     jmp short 07f53h                          ; eb d6
     12285    jmp short 07f58h                          ; eb d6
    1228612286    mov cx, bx                                ; 89 d9
    1228712287    les si, [bp+006h]                         ; c4 76 06
     
    1229312293    ; sub ah, ah                                ; 2a e4
    1229412294    test AL, strict byte 001h                 ; a8 01
    12295     jne short 07f85h                          ; 75 f7
     12295    jne short 07f8ah                          ; 75 f7
    1229612296    test AL, strict byte 002h                 ; a8 02
    12297     je short 07fa0h                           ; 74 0e
     12297    je short 07fa5h                           ; 74 0e
    1229812298    lea dx, [di+003h]                         ; 8d 55 03
    1229912299    xor al, al                                ; 30 c0
     
    1230312303    ; sub ah, ah                                ; 2a e4
    1230412304    mov ax, strict word 00004h                ; b8 04 00
    12305     jmp short 07fa2h                          ; eb 02
     12305    jmp short 07fa7h                          ; eb 02
    1230612306    xor ax, ax                                ; 31 c0
    1230712307    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1231012310    pop bp                                    ; 5d
    1231112311    retn 0000ah                               ; c2 0a 00
    12312 @scsi_read_sectors:                          ; 0xf7fab LB 0xe9
     12312@scsi_read_sectors:                          ; 0xf7fb0 LB 0xe9
    1231312313    push bp                                   ; 55
    1231412314    mov bp, sp                                ; 89 e5
     
    1232212322    mov byte [bp-006h], al                    ; 88 46 fa
    1232312323    cmp AL, strict byte 004h                  ; 3c 04
    12324     jbe short 07fdbh                          ; 76 15
     12324    jbe short 07fe0h                          ; 76 15
    1232512325    xor ah, ah                                ; 30 e4
    1232612326    push ax                                   ; 50
     
    1233112331    mov ax, strict word 00007h                ; b8 07 00
    1233212332    push ax                                   ; 50
    12333     call 01976h                               ; e8 9e 99
     12333    call 01976h                               ; e8 99 99
    1233412334    add sp, strict byte 00008h                ; 83 c4 08
    1233512335    mov es, [bp+006h]                         ; 8e 46 06
     
    1237212372    sal word [bp-00ah], 1                     ; d1 66 f6
    1237312373    rcl word [bp-008h], 1                     ; d1 56 f8
    12374     loop 08046h                               ; e2 f8
     12374    loop 0804bh                               ; e2 f8
    1237512375    push word [bp-008h]                       ; ff 76 f8
    1237612376    push word [bp-00ah]                       ; ff 76 f6
     
    1238312383    mov cx, ss                                ; 8c d1
    1238412384    lea bx, [bp-01ah]                         ; 8d 5e e6
    12385     call 07e01h                               ; e8 95 fd
     12385    call 07e06h                               ; e8 95 fd
    1238612386    mov ah, al                                ; 88 c4
    1238712387    test al, al                               ; 84 c0
    12388     jne short 08087h                          ; 75 15
     12388    jne short 0808ch                          ; 75 15
    1238912389    mov es, [bp+006h]                         ; 8e 46 06
    1239012390    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1240012400    pop bp                                    ; 5d
    1240112401    retn 00004h                               ; c2 04 00
    12402 @scsi_write_sectors:                         ; 0xf8094 LB 0xe9
     12402@scsi_write_sectors:                         ; 0xf8099 LB 0xe9
    1240312403    push bp                                   ; 55
    1240412404    mov bp, sp                                ; 89 e5
     
    1241212412    mov byte [bp-006h], al                    ; 88 46 fa
    1241312413    cmp AL, strict byte 004h                  ; 3c 04
    12414     jbe short 080c4h                          ; 76 15
     12414    jbe short 080c9h                          ; 76 15
    1241512415    xor ah, ah                                ; 30 e4
    1241612416    push ax                                   ; 50
     
    1242112421    mov ax, strict word 00007h                ; b8 07 00
    1242212422    push ax                                   ; 50
    12423     call 01976h                               ; e8 b5 98
     12423    call 01976h                               ; e8 b0 98
    1242412424    add sp, strict byte 00008h                ; 83 c4 08
    1242512425    mov es, [bp+006h]                         ; 8e 46 06
     
    1246212462    sal word [bp-00ah], 1                     ; d1 66 f6
    1246312463    rcl word [bp-008h], 1                     ; d1 56 f8
    12464     loop 0812fh                               ; e2 f8
     12464    loop 08134h                               ; e2 f8
    1246512465    push word [bp-008h]                       ; ff 76 f8
    1246612466    push word [bp-00ah]                       ; ff 76 f6
     
    1247312473    mov cx, ss                                ; 8c d1
    1247412474    lea bx, [bp-01ah]                         ; 8d 5e e6
    12475     call 07ed6h                               ; e8 81 fd
     12475    call 07edbh                               ; e8 81 fd
    1247612476    mov ah, al                                ; 88 c4
    1247712477    test al, al                               ; 84 c0
    12478     jne short 08170h                          ; 75 15
     12478    jne short 08175h                          ; 75 15
    1247912479    mov es, [bp+006h]                         ; 8e 46 06
    1248012480    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1249012490    pop bp                                    ; 5d
    1249112491    retn 00004h                               ; c2 04 00
    12492 scsi_cmd_packet_:                            ; 0xf817d LB 0x170
     12492scsi_cmd_packet_:                            ; 0xf8182 LB 0x170
    1249312493    push bp                                   ; 55
    1249412494    mov bp, sp                                ; 89 e5
     
    1250212502    mov dx, strict word 0000eh                ; ba 0e 00
    1250312503    mov ax, strict word 00040h                ; b8 40 00
    12504     call 0166eh                               ; e8 d5 94
     12504    call 0166eh                               ; e8 d0 94
    1250512505    mov si, 00122h                            ; be 22 01
    1250612506    mov word [bp-00ch], ax                    ; 89 46 f4
    1250712507    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    12508     jne short 081c8h                          ; 75 23
    12509     mov bx, 00da6h                            ; bb a6 0d
     12508    jne short 081cdh                          ; 75 23
     12509    mov bx, 00da4h                            ; bb a4 0d
    1251012510    mov cx, ds                                ; 8c d9
    1251112511    mov ax, strict word 00004h                ; b8 04 00
    12512     call 01933h                               ; e8 83 97
     12512    call 01933h                               ; e8 7e 97
    1251312513    mov ax, 00b62h                            ; b8 62 0b
    1251412514    push ax                                   ; 50
     
    1251712517    mov ax, strict word 00004h                ; b8 04 00
    1251812518    push ax                                   ; 50
    12519     call 01976h                               ; e8 b7 97
     12519    call 01976h                               ; e8 b2 97
    1252012520    add sp, strict byte 00006h                ; 83 c4 06
    1252112521    mov dx, strict word 00001h                ; ba 01 00
    12522     jmp near 082e2h                           ; e9 1a 01
     12522    jmp near 082e7h                           ; e9 1a 01
    1252312523    sub di, strict byte 00008h                ; 83 ef 08
    1252412524    sal di, 1                                 ; d1 e7
     
    1253512535    ; sub ah, ah                                ; 2a e4
    1253612536    test AL, strict byte 001h                 ; a8 01
    12537     jne short 081e5h                          ; 75 f7
     12537    jne short 081eah                          ; 75 f7
    1253812538    xor dx, bx                                ; 31 da
    1253912539    mov ax, word [bp+006h]                    ; 8b 46 06
     
    1255112551    shr dx, 1                                 ; d1 ea
    1255212552    rcr ax, 1                                 ; d1 d8
    12553     loop 08210h                               ; e2 fa
     12553    loop 08215h                               ; e2 fa
    1255412554    and ax, 000f0h                            ; 25 f0 00
    1255512555    mov cl, byte [bp-006h]                    ; 8a 4e fa
     
    1257012570    shr dx, 1                                 ; d1 ea
    1257112571    rcr ax, 1                                 ; d1 d8
    12572     loop 08238h                               ; e2 fa
     12572    loop 0823dh                               ; e2 fa
    1257312573    mov dx, bx                                ; 89 da
    1257412574    out DX, AL                                ; ee
     
    1257712577    xor ah, ah                                ; 30 e4
    1257812578    cmp cx, ax                                ; 39 c1
    12579     jnc short 0825dh                          ; 73 11
     12579    jnc short 08262h                          ; 73 11
    1258012580    mov es, [bp-00ah]                         ; 8e 46 f6
    1258112581    mov di, word [bp-00eh]                    ; 8b 7e f2
     
    1258512585    out DX, AL                                ; ee
    1258612586    inc cx                                    ; 41
    12587     jmp short 08243h                          ; eb e6
     12587    jmp short 08248h                          ; eb e6
    1258812588    mov dx, bx                                ; 89 da
    1258912589    in AL, DX                                 ; ec
     
    1259112591    ; sub ah, ah                                ; 2a e4
    1259212592    test AL, strict byte 001h                 ; a8 01
    12593     jne short 0825dh                          ; 75 f7
     12593    jne short 08262h                          ; 75 f7
    1259412594    test AL, strict byte 002h                 ; a8 02
    12595     je short 08278h                           ; 74 0e
     12595    je short 0827dh                           ; 74 0e
    1259612596    lea dx, [bx+003h]                         ; 8d 57 03
    1259712597    xor al, al                                ; 30 c0
     
    1260112601    ; sub ah, ah                                ; 2a e4
    1260212602    mov dx, strict word 00003h                ; ba 03 00
    12603     jmp short 082e2h                          ; eb 6a
     12603    jmp short 082e7h                          ; eb 6a
    1260412604    mov ax, word [bp+004h]                    ; 8b 46 04
    1260512605    test ax, ax                               ; 85 c0
    12606     je short 08287h                           ; 74 08
     12606    je short 0828ch                           ; 74 08
    1260712607    lea dx, [bx+001h]                         ; 8d 57 01
    1260812608    mov cx, ax                                ; 89 c1
    1260912609    in AL, DX                                 ; ec
    12610     loop 08284h                               ; e2 fd
     12610    loop 08289h                               ; e2 fd
    1261112611    mov ax, word [bp+006h]                    ; 8b 46 06
    1261212612    mov es, [bp-00ch]                         ; 8e 46 f4
     
    1261612616    lea ax, [bx+001h]                         ; 8d 47 01
    1261712617    cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
    12618     jne short 082a8h                          ; 75 07
     12618    jne short 082adh                          ; 75 07
    1261912619    cmp word [bp+006h], 08000h                ; 81 7e 06 00 80
    12620     jbe short 082c5h                          ; 76 1d
     12620    jbe short 082cah                          ; 76 1d
    1262112621    mov dx, ax                                ; 89 c2
    1262212622    mov cx, 08000h                            ; b9 00 80
     
    1262812628    add ax, 00800h                            ; 05 00 08
    1262912629    mov word [bp+00eh], ax                    ; 89 46 0e
    12630     jmp short 08298h                          ; eb d3
     12630    jmp short 0829dh                          ; eb d3
    1263112631    mov dx, ax                                ; 89 c2
    1263212632    mov cx, word [bp+006h]                    ; 8b 4e 06
     
    1263512635    mov es, [bp-00ch]                         ; 8e 46 f4
    1263612636    cmp word [es:si+020h], strict byte 00000h ; 26 83 7c 20 00
    12637     je short 082e0h                           ; 74 07
     12637    je short 082e5h                           ; 74 07
    1263812638    mov cx, word [es:si+020h]                 ; 26 8b 4c 20
    1263912639    in AL, DX                                 ; ec
    12640     loop 082ddh                               ; e2 fd
     12640    loop 082e2h                               ; e2 fd
    1264112641    xor dx, dx                                ; 31 d2
    1264212642    mov ax, dx                                ; 89 d0
     
    1264612646    pop bp                                    ; 5d
    1264712647    retn 0000ch                               ; c2 0c 00
    12648 scsi_enumerate_attached_devices_:            ; 0xf82ed LB 0x4cb
     12648scsi_enumerate_attached_devices_:            ; 0xf82f2 LB 0x4cb
    1264912649    push bp                                   ; 55
    1265012650    mov bp, sp                                ; 89 e5
     
    1265812658    mov dx, strict word 0000eh                ; ba 0e 00
    1265912659    mov ax, strict word 00040h                ; b8 40 00
    12660     call 0166eh                               ; e8 6b 93
     12660    call 0166eh                               ; e8 66 93
    1266112661    mov di, 00122h                            ; bf 22 01
    1266212662    mov word [bp-016h], ax                    ; 89 46 ea
    1266312663    mov word [bp-014h], strict word 00000h    ; c7 46 ec 00 00
    12664     jmp near 0872bh                           ; e9 1a 04
     12664    jmp near 08730h                           ; e9 1a 04
    1266512665    cmp AL, strict byte 004h                  ; 3c 04
    12666     jc short 08318h                           ; 72 03
    12667     jmp near 087aeh                           ; e9 96 04
     12666    jc short 0831dh                           ; 72 03
     12667    jmp near 087b3h                           ; e9 96 04
    1266812668    mov cx, strict word 00010h                ; b9 10 00
    1266912669    xor bx, bx                                ; 31 db
    1267012670    mov dx, ss                                ; 8c d2
    1267112671    lea ax, [bp-048h]                         ; 8d 46 b8
    12672     call 0a070h                               ; e8 4b 1d
     12672    call 0a080h                               ; e8 56 1d
    1267312673    mov byte [bp-048h], 09eh                  ; c6 46 b8 9e
    1267412674    mov byte [bp-047h], 010h                  ; c6 46 b9 10
     
    1268812688    lea bx, [bp-048h]                         ; 8d 5e b8
    1268912689    mov ax, word [bp-0024ah]                  ; 8b 86 b6 fd
    12690     call 07e01h                               ; e8 ae fa
     12690    call 07e06h                               ; e8 ae fa
    1269112691    test al, al                               ; 84 c0
    12692     je short 08369h                           ; 74 12
     12692    je short 0836eh                           ; 74 12
    1269312693    mov ax, 00b92h                            ; b8 92 0b
    1269412694    push ax                                   ; 50
     
    1269712697    mov ax, strict word 00007h                ; b8 07 00
    1269812698    push ax                                   ; 50
    12699     call 01976h                               ; e8 10 96
     12699    call 01976h                               ; e8 0b 96
    1270012700    add sp, strict byte 00006h                ; 83 c4 06
    1270112701    mov ax, word [bp-00242h]                  ; 8b 86 be fd
     
    1272912729    sal ax, 1                                 ; d1 e0
    1273012730    rcl dx, 1                                 ; d1 d2
    12731     loop 083b7h                               ; e2 fa
     12731    loop 083bch                               ; e2 fa
    1273212732    or bx, ax                                 ; 09 c3
    1273312733    or dx, si                                 ; 09 f2
     
    1273712737    mov word [bp-01ch], bx                    ; 89 5e e4
    1273812738    test dx, dx                               ; 85 d2
    12739     jne short 083d6h                          ; 75 06
     12739    jne short 083dbh                          ; 75 06
    1274012740    cmp bx, 00200h                            ; 81 fb 00 02
    12741     je short 083f9h                           ; 74 23
    12742     mov bx, 00da6h                            ; bb a6 0d
     12741    je short 083feh                           ; 74 23
     12742    mov bx, 00da4h                            ; bb a4 0d
    1274312743    mov cx, ds                                ; 8c d9
    1274412744    mov ax, strict word 00004h                ; b8 04 00
    12745     call 01933h                               ; e8 52 95
     12745    call 01933h                               ; e8 4d 95
    1274612746    push dx                                   ; 52
    1274712747    push word [bp-01ch]                       ; ff 76 e4
     
    1275112751    mov ax, strict word 00004h                ; b8 04 00
    1275212752    push ax                                   ; 50
    12753     call 01976h                               ; e8 83 95
     12753    call 01976h                               ; e8 7e 95
    1275412754    add sp, strict byte 0000ah                ; 83 c4 0a
    12755     jmp near 0871fh                           ; e9 26 03
     12755    jmp near 08724h                           ; e9 26 03
    1275612756    mov al, byte [bp-00ch]                    ; 8a 46 f4
    1275712757    cmp AL, strict byte 001h                  ; 3c 01
    12758     jc short 0840ch                           ; 72 0c
    12759     jbe short 08414h                          ; 76 12
     12758    jc short 08411h                           ; 72 0c
     12759    jbe short 08419h                          ; 76 12
    1276012760    cmp AL, strict byte 003h                  ; 3c 03
    12761     je short 0841ch                           ; 74 16
     12761    je short 08421h                           ; 74 16
    1276212762    cmp AL, strict byte 002h                  ; 3c 02
    12763     je short 08418h                           ; 74 0e
    12764     jmp short 08463h                          ; eb 57
     12763    je short 0841dh                           ; 74 0e
     12764    jmp short 08468h                          ; eb 57
    1276512765    test al, al                               ; 84 c0
    12766     jne short 08463h                          ; 75 53
     12766    jne short 08468h                          ; 75 53
    1276712767    mov BL, strict byte 090h                  ; b3 90
    12768     jmp short 0841eh                          ; eb 0a
     12768    jmp short 08423h                          ; eb 0a
    1276912769    mov BL, strict byte 098h                  ; b3 98
    12770     jmp short 0841eh                          ; eb 06
     12770    jmp short 08423h                          ; eb 06
    1277112771    mov BL, strict byte 0a0h                  ; b3 a0
    12772     jmp short 0841eh                          ; eb 02
     12772    jmp short 08423h                          ; eb 02
    1277312773    mov BL, strict byte 0a8h                  ; b3 a8
    1277412774    mov cl, bl                                ; 88 d9
     
    1277612776    xor ch, ch                                ; 30 ed
    1277712777    mov ax, cx                                ; 89 c8
    12778     call 016aeh                               ; e8 84 92
     12778    call 016aeh                               ; e8 7f 92
    1277912779    test al, al                               ; 84 c0
    12780     je short 08463h                           ; 74 35
     12780    je short 08468h                           ; 74 35
    1278112781    mov al, bl                                ; 88 d8
    1278212782    db  0feh, 0c0h
    1278312783    ; inc al                                    ; fe c0
    1278412784    xor ah, ah                                ; 30 e4
    12785     call 016aeh                               ; e8 77 92
     12785    call 016aeh                               ; e8 72 92
    1278612786    mov dh, al                                ; 88 c6
    1278712787    mov al, bl                                ; 88 d8
    1278812788    xor ah, ah                                ; 30 e4
    12789     call 016aeh                               ; e8 6e 92
     12789    call 016aeh                               ; e8 69 92
    1279012790    mov ah, dh                                ; 88 f4
    1279112791    cwd                                       ; 99
     
    1279512795    add AL, strict byte 002h                  ; 04 02
    1279612796    xor ah, ah                                ; 30 e4
    12797     call 016aeh                               ; e8 5d 92
     12797    call 016aeh                               ; e8 58 92
    1279812798    xor ah, ah                                ; 30 e4
    1279912799    mov word [bp-028h], ax                    ; 89 46 d8
    1280012800    mov ax, cx                                ; 89 c8
    12801     call 016aeh                               ; e8 53 92
     12801    call 016aeh                               ; e8 4e 92
    1280212802    xor ah, ah                                ; 30 e4
    1280312803    mov word [bp-01ah], ax                    ; 89 46 e6
    12804     jmp near 08550h                           ; e9 ed 00
     12804    jmp near 08555h                           ; e9 ed 00
    1280512805    mov ax, word [bp-020h]                    ; 8b 46 e0
    1280612806    mov bx, word [bp-022h]                    ; 8b 5e de
     
    1280812808    mov dx, word [bp-024h]                    ; 8b 56 dc
    1280912809    mov si, strict word 0000ch                ; be 0c 00
    12810     call 0a050h                               ; e8 db 1b
     12810    call 0a060h                               ; e8 e6 1b
    1281112811    mov word [bp-02ah], ax                    ; 89 46 d6
    1281212812    mov word [bp-02ch], bx                    ; 89 5e d4
     
    1281512815    mov ax, word [bp-020h]                    ; 8b 46 e0
    1281612816    test ax, ax                               ; 85 c0
    12817     jnbe short 0849dh                         ; 77 15
    12818     je short 0848dh                           ; 74 03
    12819     jmp near 08510h                           ; e9 83 00
     12817    jnbe short 084a2h                         ; 77 15
     12818    je short 08492h                           ; 74 03
     12819    jmp near 08515h                           ; e9 83 00
    1282012820    cmp word [bp-022h], strict byte 00000h    ; 83 7e de 00
    12821     jnbe short 0849dh                         ; 77 0a
    12822     jne short 0848ah                          ; 75 f5
     12821    jnbe short 084a2h                         ; 77 0a
     12822    jne short 0848fh                          ; 75 f5
    1282312823    cmp word [bp-012h], strict byte 00040h    ; 83 7e ee 40
    12824     jnbe short 0849dh                         ; 77 02
    12825     jne short 08510h                          ; 75 73
     12824    jnbe short 084a2h                         ; 77 02
     12825    jne short 08515h                          ; 75 73
    1282612826    mov word [bp-028h], 000ffh                ; c7 46 d8 ff 00
    1282712827    mov word [bp-01ah], strict word 0003fh    ; c7 46 e6 3f 00
     
    1283012830    mov dx, word [bp-024h]                    ; 8b 56 dc
    1283112831    mov si, strict word 00006h                ; be 06 00
    12832     call 0a050h                               ; e8 9a 1b
     12832    call 0a060h                               ; e8 a5 1b
    1283312833    mov si, word [bp-018h]                    ; 8b 76 e8
    1283412834    add si, dx                                ; 01 d6
     
    1284812848    mov dx, si                                ; 89 f2
    1284912849    mov si, strict word 00008h                ; be 08 00
    12850     call 0a050h                               ; e8 6a 1b
     12850    call 0a060h                               ; e8 75 1b
    1285112851    mov word [bp-02eh], bx                    ; 89 5e d2
    1285212852    mov word [bp-030h], cx                    ; 89 4e d0
     
    1285712857    mov dx, word [bp-01eh]                    ; 8b 56 e2
    1285812858    mov si, strict word 00010h                ; be 10 00
    12859     call 0a050h                               ; e8 4f 1b
     12859    call 0a060h                               ; e8 5a 1b
    1286012860    mov si, word [bp-032h]                    ; 8b 76 ce
    1286112861    add si, dx                                ; 01 d6
     
    1286312863    mov ax, word [bp-02eh]                    ; 8b 46 d2
    1286412864    adc ax, bx                                ; 11 d8
    12865     jmp short 0854dh                          ; eb 3d
     12865    jmp short 08552h                          ; eb 3d
    1286612866    test ax, ax                               ; 85 c0
    12867     jnbe short 08526h                         ; 77 12
    12868     jne short 08532h                          ; 75 1c
     12867    jnbe short 0852bh                         ; 77 12
     12868    jne short 08537h                          ; 75 1c
    1286912869    cmp word [bp-022h], strict byte 00000h    ; 83 7e de 00
    12870     jnbe short 08526h                         ; 77 0a
    12871     jne short 08532h                          ; 75 14
     12870    jnbe short 0852bh                         ; 77 0a
     12871    jne short 08537h                          ; 75 14
    1287212872    cmp word [bp-012h], strict byte 00020h    ; 83 7e ee 20
    12873     jnbe short 08526h                         ; 77 02
    12874     jne short 08532h                          ; 75 0c
     12873    jnbe short 0852bh                         ; 77 02
     12874    jne short 08537h                          ; 75 0c
    1287512875    mov word [bp-028h], 00080h                ; c7 46 d8 80 00
    1287612876    mov word [bp-01ah], strict word 00020h    ; c7 46 e6 20 00
    12877     jmp short 0854bh                          ; eb 19
     12877    jmp short 08550h                          ; eb 19
    1287812878    mov word [bp-028h], strict word 00040h    ; c7 46 d8 40 00
    1287912879    mov word [bp-01ah], strict word 00020h    ; c7 46 e6 20 00
     
    1288212882    mov dx, word [bp-024h]                    ; 8b 56 dc
    1288312883    mov si, strict word 0000bh                ; be 0b 00
    12884     call 0a050h                               ; e8 05 1b
     12884    call 0a060h                               ; e8 10 1b
    1288512885    mov si, dx                                ; 89 d6
    1288612886    mov word [bp-026h], cx                    ; 89 4e da
     
    1291912919    mov word [es:bx+034h], ax                 ; 26 89 47 34
    1292012920    cmp word [bp-026h], strict byte 00000h    ; 83 7e da 00
    12921     jne short 085c7h                          ; 75 06
     12921    jne short 085cch                          ; 75 06
    1292212922    cmp si, 00400h                            ; 81 fe 00 04
    12923     jbe short 085d5h                          ; 76 0e
     12923    jbe short 085dah                          ; 76 0e
    1292412924    mov word [es:bx+02ch], 00400h             ; 26 c7 47 2c 00 04
    1292512925    mov word [es:bx+032h], 00400h             ; 26 c7 47 32 00 04
    12926     jmp short 085ddh                          ; eb 08
     12926    jmp short 085e2h                          ; eb 08
    1292712927    mov word [es:bx+02ch], si                 ; 26 89 77 2c
    1292812928    mov word [es:bx+032h], si                 ; 26 89 77 32
    12929     mov bx, 00da6h                            ; bb a6 0d
     12929    mov bx, 00da4h                            ; bb a4 0d
    1293012930    mov cx, ds                                ; 8c d9
    1293112931    mov ax, strict word 00004h                ; b8 04 00
    12932     call 01933h                               ; e8 4b 93
     12932    call 01933h                               ; e8 46 93
    1293312933    push word [bp-020h]                       ; ff 76 e0
    1293412934    push word [bp-022h]                       ; ff 76 de
     
    1294712947    mov ax, strict word 00004h                ; b8 04 00
    1294812948    push ax                                   ; 50
    12949     call 01976h                               ; e8 64 93
     12949    call 01976h                               ; e8 5f 93
    1295012950    add sp, strict byte 00018h                ; 83 c4 18
    1295112951    mov al, byte [bp-00eh]                    ; 8a 46 f2
     
    1297612976    mov dx, strict word 00075h                ; ba 75 00
    1297712977    mov ax, strict word 00040h                ; b8 40 00
    12978     call 01652h                               ; e8 ea 8f
     12978    call 01652h                               ; e8 e5 8f
    1297912979    mov bl, al                                ; 88 c3
    1298012980    db  0feh, 0c3h
     
    1298312983    mov dx, strict word 00075h                ; ba 75 00
    1298412984    mov ax, strict word 00040h                ; b8 40 00
    12985     call 01660h                               ; e8 e9 8f
     12985    call 01660h                               ; e8 e4 8f
    1298612986    inc byte [bp-00ch]                        ; fe 46 f4
    12987     jmp near 08714h                           ; e9 97 00
    12988     mov bx, 00da6h                            ; bb a6 0d
     12987    jmp near 08719h                           ; e9 97 00
     12988    mov bx, 00da4h                            ; bb a4 0d
    1298912989    mov cx, ds                                ; 8c d9
    1299012990    mov ax, strict word 00004h                ; b8 04 00
    12991     call 01933h                               ; e8 ab 92
     12991    call 01933h                               ; e8 a6 92
    1299212992    push word [bp-014h]                       ; ff 76 ec
    1299312993    mov al, byte [bp-00ch]                    ; 8a 46 f4
     
    1299812998    mov ax, strict word 00004h                ; b8 04 00
    1299912999    push ax                                   ; 50
    13000     call 01976h                               ; e8 da 92
     13000    call 01976h                               ; e8 d5 92
    1300113001    add sp, strict byte 00008h                ; 83 c4 08
    1300213002    mov al, byte [bp-00ch]                    ; 8a 46 f4
     
    1300413004    mov byte [bp-00eh], al                    ; 88 46 f2
    1300513005    test byte [bp-00247h], 080h               ; f6 86 b9 fd 80
    13006     je short 086b3h                           ; 74 05
     13006    je short 086b8h                           ; 74 05
    1300713007    mov cx, strict word 00001h                ; b9 01 00
    13008     jmp short 086b5h                          ; eb 02
     13008    jmp short 086bah                          ; eb 02
    1300913009    xor cx, cx                                ; 31 c9
    1301013010    mov al, byte [bp-00ch]                    ; 8a 46 f4
     
    1304413044    inc word [bp-014h]                        ; ff 46 ec
    1304513045    cmp word [bp-014h], strict byte 00010h    ; 83 7e ec 10
    13046     jl short 0872bh                           ; 7c 03
    13047     jmp near 087aeh                           ; e9 83 00
     13046    jl short 08730h                           ; 7c 03
     13047    jmp near 087b3h                           ; e9 83 00
    1304813048    mov byte [bp-048h], 012h                  ; c6 46 b8 12
    1304913049    xor al, al                                ; 30 c0
     
    1306713067    lea bx, [bp-048h]                         ; 8d 5e b8
    1306813068    mov ax, word [bp-0024ah]                  ; 8b 86 b6 fd
    13069     call 07e01h                               ; e8 9e f6
     13069    call 07e06h                               ; e8 9e f6
    1307013070    test al, al                               ; 84 c0
    13071     je short 08779h                           ; 74 12
     13071    je short 0877eh                           ; 74 12
    1307213072    mov ax, 00b92h                            ; b8 92 0b
    1307313073    push ax                                   ; 50
     
    1307613076    mov ax, strict word 00007h                ; b8 07 00
    1307713077    push ax                                   ; 50
    13078     call 01976h                               ; e8 00 92
     13078    call 01976h                               ; e8 fb 91
    1307913079    add sp, strict byte 00006h                ; 83 c4 06
    1308013080    mov es, [bp-016h]                         ; 8e 46 ea
     
    1308213082    mov byte [bp-00ch], al                    ; 88 46 f4
    1308313083    test byte [bp-00248h], 0e0h               ; f6 86 b8 fd e0
    13084     jne short 08795h                          ; 75 0a
     13084    jne short 0879ah                          ; 75 0a
    1308513085    test byte [bp-00248h], 01fh               ; f6 86 b8 fd 1f
    13086     jne short 08795h                          ; 75 03
    13087     jmp near 08311h                           ; e9 7c fb
     13086    jne short 0879ah                          ; 75 03
     13087    jmp near 08316h                           ; e9 7c fb
    1308813088    test byte [bp-00248h], 0e0h               ; f6 86 b8 fd e0
    13089     je short 0879fh                           ; 74 03
    13090     jmp near 08714h                           ; e9 75 ff
     13089    je short 087a4h                           ; 74 03
     13090    jmp near 08719h                           ; e9 75 ff
    1309113091    mov al, byte [bp-00248h]                  ; 8a 86 b8 fd
    1309213092    and AL, strict byte 01fh                  ; 24 1f
    1309313093    cmp AL, strict byte 005h                  ; 3c 05
    13094     jne short 087ach                          ; 75 03
    13095     jmp near 0867dh                           ; e9 d1 fe
    13096     jmp short 0879ch                          ; eb ee
     13094    jne short 087b1h                          ; 75 03
     13095    jmp near 08682h                           ; e9 d1 fe
     13096    jmp short 087a1h                          ; eb ee
    1309713097    lea sp, [bp-00ah]                         ; 8d 66 f6
    1309813098    pop di                                    ; 5f
     
    1310313103    pop bp                                    ; 5d
    1310413104    retn                                      ; c3
    13105 _scsi_init:                                  ; 0xf87b8 LB 0x66
     13105_scsi_init:                                  ; 0xf87bd LB 0x66
    1310613106    push bp                                   ; 55
    1310713107    mov bp, sp                                ; 89 e5
    1310813108    mov dx, strict word 0000eh                ; ba 0e 00
    1310913109    mov ax, strict word 00040h                ; b8 40 00
    13110     call 0166eh                               ; e8 aa 8e
     13110    call 0166eh                               ; e8 a5 8e
    1311113111    mov bx, 00122h                            ; bb 22 01
    1311213112    mov es, ax                                ; 8e c0
     
    1311913119    ; sub ah, ah                                ; 2a e4
    1312013120    cmp AL, strict byte 055h                  ; 3c 55
    13121     jne short 087e8h                          ; 75 0c
     13121    jne short 087edh                          ; 75 0c
    1312213122    xor al, al                                ; 30 c0
    1312313123    mov dx, 00433h                            ; ba 33 04
    1312413124    out DX, AL                                ; ee
    1312513125    mov ax, 00430h                            ; b8 30 04
    13126     call 082edh                               ; e8 05 fb
     13126    call 082f2h                               ; e8 05 fb
    1312713127    mov AL, strict byte 055h                  ; b0 55
    1312813128    mov dx, 00436h                            ; ba 36 04
     
    1313213132    ; sub ah, ah                                ; 2a e4
    1313313133    cmp AL, strict byte 055h                  ; 3c 55
    13134     jne short 08801h                          ; 75 0c
     13134    jne short 08806h                          ; 75 0c
    1313513135    xor al, al                                ; 30 c0
    1313613136    mov dx, 00437h                            ; ba 37 04
    1313713137    out DX, AL                                ; ee
    1313813138    mov ax, 00434h                            ; b8 34 04
    13139     call 082edh                               ; e8 ec fa
     13139    call 082f2h                               ; e8 ec fa
    1314013140    mov AL, strict byte 055h                  ; b0 55
    1314113141    mov dx, 0043ah                            ; ba 3a 04
     
    1314513145    ; sub ah, ah                                ; 2a e4
    1314613146    cmp AL, strict byte 055h                  ; 3c 55
    13147     jne short 0881ah                          ; 75 0c
     13147    jne short 0881fh                          ; 75 0c
    1314813148    xor al, al                                ; 30 c0
    1314913149    mov dx, 0043bh                            ; ba 3b 04
    1315013150    out DX, AL                                ; ee
    1315113151    mov ax, 00438h                            ; b8 38 04
    13152     call 082edh                               ; e8 d3 fa
     13152    call 082f2h                               ; e8 d3 fa
    1315313153    mov sp, bp                                ; 89 ec
    1315413154    pop bp                                    ; 5d
    1315513155    retn                                      ; c3
    13156 ahci_ctrl_extract_bits_:                     ; 0xf881e LB 0x1c
     13156ahci_ctrl_extract_bits_:                     ; 0xf8823 LB 0x1c
    1315713157    push si                                   ; 56
    1315813158    push bp                                   ; 55
     
    1316313163    mov cl, byte [bp+006h]                    ; 8a 4e 06
    1316413164    xor ch, ch                                ; 30 ed
    13165     jcxz 08835h                               ; e3 06
     13165    jcxz 0883ah                               ; e3 06
    1316613166    shr dx, 1                                 ; d1 ea
    1316713167    rcr ax, 1                                 ; d1 d8
    13168     loop 0882fh                               ; e2 fa
     13168    loop 08834h                               ; e2 fa
    1316913169    pop bp                                    ; 5d
    1317013170    pop si                                    ; 5e
    1317113171    retn 00002h                               ; c2 02 00
    13172 ahci_addr_to_phys_:                          ; 0xf883a LB 0x1e
     13172ahci_addr_to_phys_:                          ; 0xf883f LB 0x1e
    1317313173    push bx                                   ; 53
    1317413174    push cx                                   ; 51
     
    1318113181    sal ax, 1                                 ; d1 e0
    1318213182    rcl dx, 1                                 ; d1 d2
    13183     loop 08848h                               ; e2 fa
     13183    loop 0884dh                               ; e2 fa
    1318413184    xor cx, cx                                ; 31 c9
    1318513185    add ax, bx                                ; 01 d8
     
    1318913189    pop bx                                    ; 5b
    1319013190    retn                                      ; c3
    13191 ahci_port_cmd_sync_:                         ; 0xf8858 LB 0x159
     13191ahci_port_cmd_sync_:                         ; 0xf885d LB 0x159
    1319213192    push bp                                   ; 55
    1319313193    mov bp, sp                                ; 89 e5
     
    1320413204    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
    1320513205    cmp AL, strict byte 0ffh                  ; 3c ff
    13206     jne short 0887bh                          ; 75 03
    13207     jmp near 089a9h                           ; e9 2e 01
     13206    jne short 08880h                          ; 75 03
     13207    jmp near 089aeh                           ; e9 2e 01
    1320813208    mov al, byte [es:si+00263h]               ; 26 8a 84 63 02
    1320913209    xor ah, ah                                ; 30 e4
     
    1321813218    lea ax, [si+00080h]                       ; 8d 84 80 00
    1321913219    mov dx, cx                                ; 89 ca
    13220     call 0883ah                               ; e8 92 ff
     13220    call 0883fh                               ; e8 92 ff
    1322113221    mov es, cx                                ; 8e c1
    1322213222    mov word [es:si+008h], ax                 ; 26 89 44 08
     
    1328613286    xchg dx, ax                               ; 92
    1328713287    test dh, 040h                             ; f6 c6 40
    13288     jne short 0893bh                          ; 75 04
     13288    jne short 08940h                          ; 75 04
    1328913289    test AL, strict byte 001h                 ; a8 01
    13290     je short 0893fh                           ; 74 04
     13290    je short 08944h                           ; 74 04
    1329113291    mov AL, strict byte 001h                  ; b0 01
    13292     jmp short 08941h                          ; eb 02
     13292    jmp short 08946h                          ; eb 02
    1329313293    xor al, al                                ; 30 c0
    1329413294    test al, al                               ; 84 c0
    13295     je short 0890dh                           ; 74 c8
     13295    je short 08912h                           ; 74 c8
    1329613296    mov al, byte [bp-008h]                    ; 8a 46 f8
    1329713297    xor ah, ah                                ; 30 e4
     
    1335013350    pop bp                                    ; 5d
    1335113351    retn                                      ; c3
    13352 ahci_cmd_data_:                              ; 0xf89b1 LB 0x262
     13352ahci_cmd_data_:                              ; 0xf89b6 LB 0x262
    1335313353    push bp                                   ; 55
    1335413354    mov bp, sp                                ; 89 e5
     
    1337513375    mov ax, 00080h                            ; b8 80 00
    1337613376    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13377     call 0a070h                               ; e8 81 16
     13377    call 0a080h                               ; e8 8c 16
    1337813378    mov es, [bp-00ah]                         ; 8e 46 f6
    1337913379    mov word [es:di+00080h], 08027h           ; 26 c7 85 80 00 27 80
     
    1339313393    mov dx, word [es:si]                      ; 26 8b 14
    1339413394    mov si, strict word 00008h                ; be 08 00
    13395     call 0a050h                               ; e8 1d 16
     13395    call 0a060h                               ; e8 28 16
    1339613396    mov es, [bp-00ah]                         ; 8e 46 f6
    1339713397    mov byte [es:di+00085h], dl               ; 26 88 95 85 00
     
    1340413404    mov dx, word [es:si]                      ; 26 8b 14
    1340513405    mov si, strict word 00010h                ; be 10 00
    13406     call 0a050h                               ; e8 f7 15
     13406    call 0a060h                               ; e8 02 16
    1340713407    mov es, [bp-00ah]                         ; 8e 46 f6
    1340813408    mov byte [es:di+00086h], dl               ; 26 88 95 86 00
     
    1341613416    mov dx, word [es:si]                      ; 26 8b 14
    1341713417    mov si, strict word 00018h                ; be 18 00
    13418     call 0a050h                               ; e8 cb 15
     13418    call 0a060h                               ; e8 d6 15
    1341913419    mov es, [bp-00ah]                         ; 8e 46 f6
    1342013420    mov byte [es:di+00088h], dl               ; 26 88 95 88 00
     
    1342713427    mov dx, word [es:si]                      ; 26 8b 14
    1342813428    mov si, strict word 00020h                ; be 20 00
    13429     call 0a050h                               ; e8 a5 15
     13429    call 0a060h                               ; e8 b0 15
    1343013430    mov es, [bp-00ah]                         ; 8e 46 f6
    1343113431    mov byte [es:di+00089h], dl               ; 26 88 95 89 00
     
    1343813438    mov dx, word [es:si]                      ; 26 8b 14
    1343913439    mov si, strict word 00028h                ; be 28 00
    13440     call 0a050h                               ; e8 7f 15
     13440    call 0a060h                               ; e8 8a 15
    1344113441    mov es, [bp-00ah]                         ; 8e 46 f6
    1344213442    mov byte [es:di+0008ah], dl               ; 26 88 95 8a 00
     
    1345113451    mov bx, word [bp-012h]                    ; 8b 5e ee
    1345213452    xor cx, cx                                ; 31 c9
    13453     call 0a000h                               ; e8 fd 14
     13453    call 0a010h                               ; e8 08 15
    1345413454    push dx                                   ; 52
    1345513455    push ax                                   ; 50
     
    1346113461    mov ax, 0026ah                            ; b8 6a 02
    1346213462    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13463     call 09f5ah                               ; e8 3b 14
     13463    call 09f5fh                               ; e8 3b 14
    1346413464    mov es, [bp-00ah]                         ; 8e 46 f6
    1346513465    mov dx, word [es:di+0027eh]               ; 26 8b 95 7e 02
     
    1348513485    mov ax, word [es:bx+020h]                 ; 26 8b 47 20
    1348613486    test ax, ax                               ; 85 c0
    13487     je short 08bafh                           ; 74 39
     13487    je short 08bb4h                           ; 74 39
    1348813488    dec ax                                    ; 48
    1348913489    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1350313503    mov al, byte [bp-008h]                    ; 8a 46 f8
    1350413504    cmp AL, strict byte 035h                  ; 3c 35
    13505     jne short 08bbch                          ; 75 06
     13505    jne short 08bc1h                          ; 75 06
    1350613506    mov byte [bp-008h], 040h                  ; c6 46 f8 40
    13507     jmp short 08bd3h                          ; eb 17
     13507    jmp short 08bd8h                          ; eb 17
    1350813508    cmp AL, strict byte 0a0h                  ; 3c a0
    13509     jne short 08bcfh                          ; 75 0f
     13509    jne short 08bd4h                          ; 75 0f
    1351013510    or byte [bp-008h], 020h                   ; 80 4e f8 20
    1351113511    les bx, [bp-00eh]                         ; c4 5e f2
    1351213512    or byte [es:bx+00083h], 001h              ; 26 80 8f 83 00 01
    13513     jmp short 08bd3h                          ; eb 04
     13513    jmp short 08bd8h                          ; eb 04
    1351413514    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1351513515    or byte [bp-008h], 005h                   ; 80 4e f8 05
     
    1351813518    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1351913519    mov dx, word [bp-00ch]                    ; 8b 56 f4
    13520     call 08858h                               ; e8 73 fc
     13520    call 0885dh                               ; e8 73 fc
    1352113521    mov cx, word [bp-00ch]                    ; 8b 4e f4
    1352213522    mov bx, word [bp-00eh]                    ; 8b 5e f2
     
    1352513525    add ax, 0026ah                            ; 05 6a 02
    1352613526    mov dx, cx                                ; 89 ca
    13527     call 09fd1h                               ; e8 d7 13
     13527    call 09fd6h                               ; e8 d7 13
    1352813528    mov es, cx                                ; 8e c1
    1352913529    mov al, byte [es:bx+003h]                 ; 26 8a 47 03
    1353013530    test al, al                               ; 84 c0
    13531     je short 08c09h                           ; 74 05
     13531    je short 08c0eh                           ; 74 05
    1353213532    mov ax, strict word 00004h                ; b8 04 00
    13533     jmp short 08c0bh                          ; eb 02
     13533    jmp short 08c10h                          ; eb 02
    1353413534    xor ah, ah                                ; 30 e4
    1353513535    lea sp, [bp-006h]                         ; 8d 66 fa
     
    1353913539    pop bp                                    ; 5d
    1354013540    retn                                      ; c3
    13541 ahci_port_deinit_current_:                   ; 0xf8c13 LB 0x183
     13541ahci_port_deinit_current_:                   ; 0xf8c18 LB 0x183
    1354213542    push bp                                   ; 55
    1354313543    mov bp, sp                                ; 89 e5
     
    1355413554    mov byte [bp-00ah], al                    ; 88 46 f6
    1355513555    cmp AL, strict byte 0ffh                  ; 3c ff
    13556     je short 08c96h                           ; 74 61
     13556    je short 08c9bh                           ; 74 61
    1355713557    xor ah, ah                                ; 30 e4
    1355813558    mov CL, strict byte 007h                  ; b1 07
     
    1360013600    xchg dx, ax                               ; 92
    1360113601    test ax, 0c011h                           ; a9 11 c0
    13602     je short 08c99h                           ; 74 07
     13602    je short 08c9eh                           ; 74 07
    1360313603    mov AL, strict byte 001h                  ; b0 01
    13604     jmp short 08c9bh                          ; eb 05
    13605     jmp near 08d8dh                           ; e9 f4 00
     13604    jmp short 08ca0h                          ; eb 05
     13605    jmp near 08d92h                           ; e9 f4 00
    1360613606    xor al, al                                ; 30 c0
    1360713607    cmp AL, strict byte 001h                  ; 3c 01
    13608     je short 08c68h                           ; 74 c9
     13608    je short 08c6dh                           ; 74 c9
    1360913609    mov cx, strict word 00020h                ; b9 20 00
    1361013610    xor bx, bx                                ; 31 db
    1361113611    mov ax, di                                ; 89 f8
    1361213612    mov dx, word [bp-00eh]                    ; 8b 56 f2
    13613     call 0a070h                               ; e8 c4 13
     13613    call 0a080h                               ; e8 cf 13
    1361413614    lea ax, [di+00080h]                       ; 8d 85 80 00
    1361513615    mov cx, strict word 00040h                ; b9 40 00
    1361613616    xor bx, bx                                ; 31 db
    1361713617    mov dx, word [bp-00eh]                    ; 8b 56 f2
    13618     call 0a070h                               ; e8 b5 13
     13618    call 0a080h                               ; e8 c0 13
    1361913619    lea ax, [di+00200h]                       ; 8d 85 00 02
    1362013620    mov cx, strict word 00060h                ; b9 60 00
    1362113621    xor bx, bx                                ; 31 db
    1362213622    mov dx, word [bp-00eh]                    ; 8b 56 f2
    13623     call 0a070h                               ; e8 a6 13
     13623    call 0a080h                               ; e8 b1 13
    1362413624    mov al, byte [bp-00ah]                    ; 8a 46 f6
    1362513625    xor ah, ah                                ; 30 e4
     
    1372713727    pop bp                                    ; 5d
    1372813728    retn                                      ; c3
    13729 ahci_port_init_:                             ; 0xf8d96 LB 0x250
     13729ahci_port_init_:                             ; 0xf8d9b LB 0x250
    1373013730    push bp                                   ; 55
    1373113731    mov bp, sp                                ; 89 e5
     
    1373713737    mov word [bp-00ah], dx                    ; 89 56 f6
    1373813738    mov byte [bp-008h], bl                    ; 88 5e f8
    13739     call 08c13h                               ; e8 69 fe
     13739    call 08c18h                               ; e8 69 fe
    1374013740    mov al, bl                                ; 88 d8
    1374113741    xor ah, ah                                ; 30 e4
     
    1378813788    xchg dx, ax                               ; 92
    1378913789    test ax, 0c011h                           ; a9 11 c0
    13790     je short 08e1dh                           ; 74 04
     13790    je short 08e22h                           ; 74 04
    1379113791    mov AL, strict byte 001h                  ; b0 01
    13792     jmp short 08e1fh                          ; eb 02
     13792    jmp short 08e24h                          ; eb 02
    1379313793    xor al, al                                ; 30 c0
    1379413794    cmp AL, strict byte 001h                  ; 3c 01
    13795     je short 08de7h                           ; 74 c4
     13795    je short 08dech                           ; 74 c4
    1379613796    mov cx, strict word 00020h                ; b9 20 00
    1379713797    xor bx, bx                                ; 31 db
    1379813798    mov ax, si                                ; 89 f0
    1379913799    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13800     call 0a070h                               ; e8 40 12
     13800    call 0a080h                               ; e8 4b 12
    1380113801    lea ax, [si+00080h]                       ; 8d 84 80 00
    1380213802    mov cx, strict word 00040h                ; b9 40 00
    1380313803    xor bx, bx                                ; 31 db
    1380413804    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13805     call 0a070h                               ; e8 31 12
     13805    call 0a080h                               ; e8 3c 12
    1380613806    lea di, [si+00200h]                       ; 8d bc 00 02
    1380713807    mov cx, strict word 00060h                ; b9 60 00
     
    1380913809    mov ax, di                                ; 89 f8
    1381013810    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13811     call 0a070h                               ; e8 20 12
     13811    call 0a080h                               ; e8 2b 12
    1381213812    mov bl, byte [bp-008h]                    ; 8a 5e f8
    1381313813    xor bh, bh                                ; 30 ff
     
    1382813828    mov ax, di                                ; 89 f8
    1382913829    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13830     call 0883ah                               ; e8 bb f9
     13830    call 0883fh                               ; e8 bb f9
    1383113831    mov es, [bp-00ah]                         ; 8e 46 f6
    1383213832    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
     
    1387313873    mov ax, si                                ; 89 f0
    1387413874    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13875     call 0883ah                               ; e8 4f f9
     13875    call 0883fh                               ; e8 4f f9
    1387613876    mov es, [bp-00ah]                         ; 8e 46 f6
    1387713877    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
     
    1397813978    pop bp                                    ; 5d
    1397913979    retn                                      ; c3
    13980 @ahci_read_sectors:                          ; 0xf8fe6 LB 0xaa
     13980@ahci_read_sectors:                          ; 0xf8feb LB 0xaa
    1398113981    push bp                                   ; 55
    1398213982    mov bp, sp                                ; 89 e5
     
    1398913989    sub di, strict byte 0000ch                ; 83 ef 0c
    1399013990    cmp di, strict byte 00004h                ; 83 ff 04
    13991     jbe short 09011h                          ; 76 13
     13991    jbe short 09016h                          ; 76 13
    1399213992    push di                                   ; 57
    1399313993    mov ax, 00c62h                            ; b8 62 0c
     
    1399713997    mov ax, strict word 00007h                ; b8 07 00
    1399813998    push ax                                   ; 50
    13999     call 01976h                               ; e8 68 89
     13999    call 01976h                               ; e8 63 89
    1400014000    add sp, strict byte 00008h                ; 83 c4 08
    1400114001    xor bx, bx                                ; 31 db
     
    1401114011    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
    1401214012    xor ax, ax                                ; 31 c0
    14013     call 08d96h                               ; e8 5a fd
     14013    call 08d9bh                               ; e8 5a fd
    1401414014    mov bx, strict word 00025h                ; bb 25 00
    1401514015    mov ax, si                                ; 89 f0
    1401614016    mov dx, word [bp+006h]                    ; 8b 56 06
    14017     call 089b1h                               ; e8 6a f9
     14017    call 089b6h                               ; e8 6a f9
    1401814018    mov bx, ax                                ; 89 c3
    1401914019    mov es, [bp+006h]                         ; 8e 46 06
     
    1404514045    pop bp                                    ; 5d
    1404614046    retn 00004h                               ; c2 04 00
    14047 @ahci_write_sectors:                         ; 0xf9090 LB 0x88
     14047@ahci_write_sectors:                         ; 0xf9095 LB 0x88
    1404814048    push bp                                   ; 55
    1404914049    mov bp, sp                                ; 89 e5
     
    1405714057    sub bx, strict byte 0000ch                ; 83 eb 0c
    1405814058    cmp bx, strict byte 00004h                ; 83 fb 04
    14059     jbe short 090beh                          ; 76 13
     14059    jbe short 090c3h                          ; 76 13
    1406014060    push bx                                   ; 53
    1406114061    mov ax, 00c93h                            ; b8 93 0c
     
    1406514065    mov ax, strict word 00007h                ; b8 07 00
    1406614066    push ax                                   ; 50
    14067     call 01976h                               ; e8 bb 88
     14067    call 01976h                               ; e8 b6 88
    1406814068    add sp, strict byte 00008h                ; 83 c4 08
    1406914069    xor di, di                                ; 31 ff
     
    1407914079    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
    1408014080    xor ax, ax                                ; 31 c0
    14081     call 08d96h                               ; e8 af fc
     14081    call 08d9bh                               ; e8 af fc
    1408214082    mov bx, strict word 00035h                ; bb 35 00
    1408314083    mov ax, si                                ; 89 f0
    1408414084    mov dx, cx                                ; 89 ca
    14085     call 089b1h                               ; e8 c0 f8
     14085    call 089b6h                               ; e8 c0 f8
    1408614086    mov dx, ax                                ; 89 c2
    1408714087    mov es, cx                                ; 8e c1
     
    1409814098    pop bp                                    ; 5d
    1409914099    retn 00004h                               ; c2 04 00
    14100 ahci_cmd_packet_:                            ; 0xf9118 LB 0x18c
     14100ahci_cmd_packet_:                            ; 0xf911d LB 0x18c
    1410114101    push bp                                   ; 55
    1410214102    mov bp, sp                                ; 89 e5
     
    1411014110    mov dx, strict word 0000eh                ; ba 0e 00
    1411114111    mov ax, strict word 00040h                ; b8 40 00
    14112     call 0166eh                               ; e8 3b 85
     14112    call 0166eh                               ; e8 36 85
    1411314113    mov si, 00122h                            ; be 22 01
    1411414114    mov word [bp-008h], ax                    ; 89 46 f8
    1411514115    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    14116     jne short 09162h                          ; 75 23
    14117     mov bx, 00da6h                            ; bb a6 0d
     14116    jne short 09167h                          ; 75 23
     14117    mov bx, 00da4h                            ; bb a4 0d
    1411814118    mov cx, ds                                ; 8c d9
    1411914119    mov ax, strict word 00004h                ; b8 04 00
    14120     call 01933h                               ; e8 e9 87
     14120    call 01933h                               ; e8 e4 87
    1412114121    mov ax, 00ca6h                            ; b8 a6 0c
    1412214122    push ax                                   ; 50
     
    1412514125    mov ax, strict word 00004h                ; b8 04 00
    1412614126    push ax                                   ; 50
    14127     call 01976h                               ; e8 1d 88
     14127    call 01976h                               ; e8 18 88
    1412814128    add sp, strict byte 00006h                ; 83 c4 06
    1412914129    mov ax, strict word 00001h                ; b8 01 00
    14130     jmp near 0929bh                           ; e9 39 01
     14130    jmp near 092a0h                           ; e9 39 01
    1413114131    test byte [bp+004h], 001h                 ; f6 46 04 01
    14132     jne short 0915ch                          ; 75 f4
     14132    jne short 09161h                          ; 75 f4
    1413314133    mov bx, word [bp+006h]                    ; 8b 5e 06
    1413414134    mov di, word [bp+008h]                    ; 8b 7e 08
     
    1413614136    sal bx, 1                                 ; d1 e3
    1413714137    rcl di, 1                                 ; d1 d7
    14138     loop 09171h                               ; e2 fa
     14138    loop 09176h                               ; e2 fa
    1413914139    mov es, [bp-008h]                         ; 8e 46 f8
    1414014140    mov word [es:si], bx                      ; 26 89 1c
     
    1415014150    mov dx, word [bp+008h]                    ; 8b 56 08
    1415114151    xor cx, cx                                ; 31 c9
    14152     call 0a020h                               ; e8 76 0e
     14152    call 0a030h                               ; e8 81 0e
    1415314153    mov word [es:si+00eh], ax                 ; 26 89 44 0e
    1415414154    xor di, di                                ; 31 ff
     
    1416814168    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
    1416914169    xor ax, ax                                ; 31 c0
    14170     call 08d96h                               ; e8 af fb
     14170    call 08d9bh                               ; e8 af fb
    1417114171    mov al, byte [bp-006h]                    ; 8a 46 fa
    1417214172    xor ah, ah                                ; 30 e4
     
    1417614176    mov ax, 000c0h                            ; b8 c0 00
    1417714177    mov dx, word [bp-00ah]                    ; 8b 56 f6
    14178     call 0a080h                               ; e8 84 0e
     14178    call 0a090h                               ; e8 8f 0e
    1417914179    mov es, [bp-008h]                         ; 8e 46 f8
    1418014180    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1418314183    mov ax, word [es:si+01eh]                 ; 26 8b 44 1e
    1418414184    test ax, ax                               ; 85 c0
    14185     je short 0923ah                           ; 74 27
     14185    je short 0923fh                           ; 74 27
    1418614186    dec ax                                    ; 48
    1418714187    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1419614196    mov ax, si                                ; 89 f0
    1419714197    mov dx, word [bp-008h]                    ; 8b 56 f8
    14198     call 089b1h                               ; e8 6c f7
     14198    call 089b6h                               ; e8 6c f7
    1419914199    les bx, [bp-00eh]                         ; c4 5e f2
    1420014200    mov dx, word [es:bx+004h]                 ; 26 8b 57 04
     
    1422314223    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
    1422414224    or ax, word [es:bx+004h]                  ; 26 0b 47 04
    14225     jne short 09299h                          ; 75 05
     14225    jne short 0929eh                          ; 75 05
    1422614226    mov ax, strict word 00004h                ; b8 04 00
    14227     jmp short 0929bh                          ; eb 02
     14227    jmp short 092a0h                          ; eb 02
    1422814228    xor ax, ax                                ; 31 c0
    1422914229    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1423214232    pop bp                                    ; 5d
    1423314233    retn 0000ch                               ; c2 0c 00
    14234 ahci_port_detect_device_:                    ; 0xf92a4 LB 0x4fe
     14234ahci_port_detect_device_:                    ; 0xf92a9 LB 0x4fe
    1423514235    push bp                                   ; 55
    1423614236    mov bp, sp                                ; 89 e5
     
    1424814248    mov bx, word [bp-020h]                    ; 8b 5e e0
    1424914249    mov ax, si                                ; 89 f0
    14250     call 08d96h                               ; e8 ce fa
     14250    call 08d9bh                               ; e8 ce fa
    1425114251    mov dx, strict word 0000eh                ; ba 0e 00
    1425214252    mov ax, strict word 00040h                ; b8 40 00
    14253     call 0166eh                               ; e8 9d 83
     14253    call 0166eh                               ; e8 98 83
    1425414254    mov word [bp-01ah], 00122h                ; c7 46 e6 22 01
    1425514255    mov word [bp-00eh], ax                    ; 89 46 f2
     
    1432314323    mov bx, strict word 0000fh                ; bb 0f 00
    1432414324    xor cx, cx                                ; 31 c9
    14325     call 0881eh                               ; e8 9f f4
     14325    call 08823h                               ; e8 9f f4
    1432614326    test ax, ax                               ; 85 c0
    14327     jne short 09386h                          ; 75 03
    14328     jmp near 0979ah                           ; e9 14 04
     14327    jne short 0938bh                          ; 75 03
     14328    jmp near 0979fh                           ; e9 14 04
    1432914329    mov al, byte [bp-008h]                    ; 8a 46 f8
    1433014330    xor ah, ah                                ; 30 e4
     
    1435814358    xor cx, cx                                ; 31 c9
    1435914359    mov ax, di                                ; 89 f8
    14360     call 0881eh                               ; e8 4d f4
     14360    call 08823h                               ; e8 4d f4
    1436114361    cmp ax, strict word 00001h                ; 3d 01 00
    14362     je short 09386h                           ; 74 b0
     14362    je short 0938bh                           ; 74 b0
    1436314363    xor ax, ax                                ; 31 c0
    1436414364    push ax                                   ; 50
     
    1436714367    mov ax, di                                ; 89 f8
    1436814368    mov dx, word [bp-01ch]                    ; 8b 56 e4
    14369     call 0881eh                               ; e8 38 f4
     14369    call 08823h                               ; e8 38 f4
    1437014370    cmp ax, strict word 00003h                ; 3d 03 00
    14371     jne short 09383h                          ; 75 98
     14371    jne short 09388h                          ; 75 98
    1437214372    mov ax, word [bp-016h]                    ; 8b 46 ea
    1437314373    add ax, 00130h                            ; 05 30 01
     
    1439714397    mov byte [bp-00ch], al                    ; 88 46 f4
    1439814398    cmp AL, strict byte 004h                  ; 3c 04
    14399     jc short 09435h                           ; 72 03
    14400     jmp near 0979ah                           ; e9 65 03
     14399    jc short 0943ah                           ; 72 03
     14400    jmp near 0979fh                           ; e9 65 03
    1440114401    mov ax, word [bp-016h]                    ; 8b 46 ea
    1440214402    add ax, 00118h                            ; 05 18 01
     
    1445014450    add cl, 00ch                              ; 80 c1 0c
    1445114451    test dx, dx                               ; 85 d2
    14452     jne short 09500h                          ; 75 55
     14452    jne short 09505h                          ; 75 55
    1445314453    cmp bx, 00101h                            ; 81 fb 01 01
    14454     jne short 09500h                          ; 75 4f
     14454    jne short 09505h                          ; 75 4f
    1445514455    mov es, [bp-00eh]                         ; 8e 46 f2
    1445614456    mov bx, word [bp-01ah]                    ; 8b 5e e6
     
    1446714467    mov ax, word [bp-01ah]                    ; 8b 46 e6
    1446814468    mov dx, es                                ; 8c c2
    14469     call 089b1h                               ; e8 c0 f4
     14469    call 089b6h                               ; e8 c0 f4
    1447014470    mov byte [bp-00ah], cl                    ; 88 4e f6
    1447114471    test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
    14472     je short 09503h                           ; 74 08
     14472    je short 09508h                           ; 74 08
    1447314473    mov ax, strict word 00001h                ; b8 01 00
    14474     jmp short 09505h                          ; eb 05
    14475     jmp near 096d5h                           ; e9 d2 01
     14474    jmp short 0950ah                          ; eb 05
     14475    jmp near 096dah                           ; e9 d2 01
    1447614476    xor ax, ax                                ; 31 c0
    1447714477    mov cl, al                                ; 88 c1
     
    1448914489    mov word [bp-012h], ax                    ; 89 46 ee
    1449014490    cmp di, 00fffh                            ; 81 ff ff 0f
    14491     jne short 09554h                          ; 75 1f
     14491    jne short 09559h                          ; 75 1f
    1449214492    cmp word [bp-014h], strict byte 0ffffh    ; 83 7e ec ff
    14493     jne short 09554h                          ; 75 19
     14493    jne short 09559h                          ; 75 19
    1449414494    mov ax, word [bp-0015ch]                  ; 8b 86 a4 fe
    1449514495    mov word [bp-012h], ax                    ; 89 46 ee
     
    1453114531    mov al, byte [bp-00ch]                    ; 8a 46 f4
    1453214532    cmp AL, strict byte 001h                  ; 3c 01
    14533     jc short 095d1h                           ; 72 0c
    14534     jbe short 095d9h                          ; 76 12
     14533    jc short 095d6h                           ; 72 0c
     14534    jbe short 095deh                          ; 76 12
    1453514535    cmp AL, strict byte 003h                  ; 3c 03
    14536     je short 095e1h                           ; 74 16
     14536    je short 095e6h                           ; 74 16
    1453714537    cmp AL, strict byte 002h                  ; 3c 02
    14538     je short 095ddh                           ; 74 0e
    14539     jmp short 09624h                          ; eb 53
     14538    je short 095e2h                           ; 74 0e
     14539    jmp short 09629h                          ; eb 53
    1454014540    test al, al                               ; 84 c0
    14541     jne short 09624h                          ; 75 4f
     14541    jne short 09629h                          ; 75 4f
    1454214542    mov DL, strict byte 040h                  ; b2 40
    14543     jmp short 095e3h                          ; eb 0a
     14543    jmp short 095e8h                          ; eb 0a
    1454414544    mov DL, strict byte 048h                  ; b2 48
    14545     jmp short 095e3h                          ; eb 06
     14545    jmp short 095e8h                          ; eb 06
    1454614546    mov DL, strict byte 050h                  ; b2 50
    14547     jmp short 095e3h                          ; eb 02
     14547    jmp short 095e8h                          ; eb 02
    1454814548    mov DL, strict byte 058h                  ; b2 58
    1454914549    mov bl, dl                                ; 88 d3
     
    1455114551    xor bh, bh                                ; 30 ff
    1455214552    mov ax, bx                                ; 89 d8
    14553     call 016aeh                               ; e8 bf 80
     14553    call 016aeh                               ; e8 ba 80
    1455414554    test al, al                               ; 84 c0
    14555     je short 09624h                           ; 74 31
     14555    je short 09629h                           ; 74 31
    1455614556    mov al, dl                                ; 88 d0
    1455714557    db  0feh, 0c0h
    1455814558    ; inc al                                    ; fe c0
    1455914559    xor ah, ah                                ; 30 e4
    14560     call 016aeh                               ; e8 b2 80
     14560    call 016aeh                               ; e8 ad 80
    1456114561    mov ch, al                                ; 88 c5
    1456214562    mov al, dl                                ; 88 d0
    1456314563    xor ah, ah                                ; 30 e4
    14564     call 016aeh                               ; e8 a9 80
     14564    call 016aeh                               ; e8 a4 80
    1456514565    mov ah, ch                                ; 88 ec
    1456614566    mov word [bp-028h], ax                    ; 89 46 d8
     
    1456814568    add AL, strict byte 002h                  ; 04 02
    1456914569    xor ah, ah                                ; 30 e4
    14570     call 016aeh                               ; e8 9b 80
     14570    call 016aeh                               ; e8 96 80
    1457114571    xor ah, ah                                ; 30 e4
    1457214572    mov word [bp-02ah], ax                    ; 89 46 d6
    1457314573    mov ax, bx                                ; 89 d8
    14574     call 016aeh                               ; e8 91 80
     14574    call 016aeh                               ; e8 8c 80
    1457514575    xor ah, ah                                ; 30 e4
    1457614576    mov word [bp-026h], ax                    ; 89 46 da
    14577     jmp short 09636h                          ; eb 12
     14577    jmp short 0963bh                          ; eb 12
    1457814578    push word [bp-012h]                       ; ff 76 ee
    1457914579    push word [bp-01eh]                       ; ff 76 e2
     
    1458214582    mov dx, ss                                ; 8c d2
    1458314583    lea ax, [bp-02ah]                         ; 8d 46 d6
    14584     call 05b09h                               ; e8 d3 c4
    14585     mov bx, 00da6h                            ; bb a6 0d
     14584    call 05b09h                               ; e8 ce c4
     14585    mov bx, 00da4h                            ; bb a4 0d
    1458614586    mov cx, ds                                ; 8c d9
    1458714587    mov ax, strict word 00004h                ; b8 04 00
    14588     call 01933h                               ; e8 f2 82
     14588    call 01933h                               ; e8 ed 82
    1458914589    push word [bp-012h]                       ; ff 76 ee
    1459014590    push word [bp-01eh]                       ; ff 76 e2
     
    1460914609    mov ax, strict word 00004h                ; b8 04 00
    1461014610    push ax                                   ; 50
    14611     call 01976h                               ; e8 01 83
     14611    call 01976h                               ; e8 fc 82
    1461214612    add sp, strict byte 0001ch                ; 83 c4 1c
    1461314613    mov al, byte [bp-00ah]                    ; 8a 46 f6
     
    1464114641    mov dx, strict word 00075h                ; ba 75 00
    1464214642    mov ax, strict word 00040h                ; b8 40 00
    14643     call 01652h                               ; e8 8f 7f
     14643    call 01652h                               ; e8 8a 7f
    1464414644    mov bl, al                                ; 88 c3
    1464514645    db  0feh, 0c3h
     
    1464814648    mov dx, strict word 00075h                ; ba 75 00
    1464914649    mov ax, strict word 00040h                ; b8 40 00
    14650     call 01660h                               ; e8 8e 7f
    14651     jmp near 09789h                           ; e9 b4 00
     14650    call 01660h                               ; e8 89 7f
     14651    jmp near 0978eh                           ; e9 b4 00
    1465214652    cmp dx, 0eb14h                            ; 81 fa 14 eb
    14653     jne short 09730h                          ; 75 55
     14653    jne short 09735h                          ; 75 55
    1465414654    cmp bx, 00101h                            ; 81 fb 01 01
    14655     jne short 09730h                          ; 75 4f
     14655    jne short 09735h                          ; 75 4f
    1465614656    mov es, [bp-00eh]                         ; 8e 46 f2
    1465714657    mov bx, word [bp-01ah]                    ; 8b 5e e6
     
    1466814668    mov ax, word [bp-01ah]                    ; 8b 46 e6
    1466914669    mov dx, es                                ; 8c c2
    14670     call 089b1h                               ; e8 90 f2
     14670    call 089b6h                               ; e8 90 f2
    1467114671    mov byte [bp-00ah], cl                    ; 88 4e f6
    1467214672    test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
    14673     je short 09732h                           ; 74 07
     14673    je short 09737h                           ; 74 07
    1467414674    mov cx, strict word 00001h                ; b9 01 00
    14675     jmp short 09734h                          ; eb 04
    14676     jmp short 09789h                          ; eb 57
     14675    jmp short 09739h                          ; eb 04
     14676    jmp short 0978eh                          ; eb 57
    1467714677    xor cx, cx                                ; 31 c9
    1467814678    mov bl, byte [bp-00ch]                    ; 8a 5e f4
     
    1471414714    pop bp                                    ; 5d
    1471514715    retn                                      ; c3
    14716 ahci_mem_alloc_:                             ; 0xf97a2 LB 0x43
     14716ahci_mem_alloc_:                             ; 0xf97a7 LB 0x43
    1471714717    push bp                                   ; 55
    1471814718    mov bp, sp                                ; 89 e5
     
    1472414724    mov dx, 00413h                            ; ba 13 04
    1472514725    xor ax, ax                                ; 31 c0
    14726     call 0166eh                               ; e8 bc 7e
     14726    call 0166eh                               ; e8 b7 7e
    1472714727    test ax, ax                               ; 85 c0
    14728     je short 097dbh                           ; 74 25
     14728    je short 097e0h                           ; 74 25
    1472914729    dec ax                                    ; 48
    1473014730    mov bx, ax                                ; 89 c3
     
    1473314733    sal ax, 1                                 ; d1 e0
    1473414734    rcl dx, 1                                 ; d1 d2
    14735     loop 097beh                               ; e2 fa
     14735    loop 097c3h                               ; e2 fa
    1473614736    mov si, ax                                ; 89 c6
    1473714737    mov di, dx                                ; 89 d7
     
    1473914739    shr di, 1                                 ; d1 ef
    1474014740    rcr si, 1                                 ; d1 de
    14741     loop 097cbh                               ; e2 fa
     14741    loop 097d0h                               ; e2 fa
    1474214742    mov dx, 00413h                            ; ba 13 04
    1474314743    xor ax, ax                                ; 31 c0
    14744     call 0167ch                               ; e8 a3 7e
     14744    call 0167ch                               ; e8 9e 7e
    1474514745    mov ax, si                                ; 89 f0
    1474614746    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1475214752    pop bp                                    ; 5d
    1475314753    retn                                      ; c3
    14754 ahci_hba_init_:                              ; 0xf97e5 LB 0x16e
     14754ahci_hba_init_:                              ; 0xf97ea LB 0x16e
    1475514755    push bp                                   ; 55
    1475614756    mov bp, sp                                ; 89 e5
     
    1476414764    mov dx, strict word 0000eh                ; ba 0e 00
    1476514765    mov ax, strict word 00040h                ; b8 40 00
    14766     call 0166eh                               ; e8 73 7e
     14766    call 0166eh                               ; e8 6e 7e
    1476714767    mov bx, 00122h                            ; bb 22 01
    1476814768    mov di, ax                                ; 89 c7
     
    1478114781    shr eax, 010h                             ; 66 c1 e8 10
    1478214782    xchg dx, ax                               ; 92
    14783     call 097a2h                               ; e8 83 ff
     14783    call 097a7h                               ; e8 83 ff
    1478414784    mov word [bp-010h], ax                    ; 89 46 f0
    1478514785    test ax, ax                               ; 85 c0
    14786     jne short 09829h                          ; 75 03
    14787     jmp near 09932h                           ; e9 09 01
     14786    jne short 0982eh                          ; 75 03
     14787    jmp near 09937h                           ; e9 09 01
    1478814788    mov ax, word [bp-010h]                    ; 8b 46 f0
    1478914789    mov es, di                                ; 8e c7
     
    1483514835    xchg dx, ax                               ; 92
    1483614836    test AL, strict byte 001h                 ; a8 01
    14837     jne short 09883h                          ; 75 de
     14837    jne short 09888h                          ; 75 de
    1483814838    xor ax, ax                                ; 31 c0
    1483914839    xor cx, cx                                ; 31 c9
     
    1485414854    mov bx, strict word 0001fh                ; bb 1f 00
    1485514855    xor cx, cx                                ; 31 c9
    14856     call 0881eh                               ; e8 54 ef
     14856    call 08823h                               ; e8 54 ef
    1485714857    db  0feh, 0c0h
    1485814858    ; inc al                                    ; fe c0
    1485914859    mov byte [bp-00eh], al                    ; 88 46 f2
    1486014860    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    14861     jmp short 098f6h                          ; eb 21
     14861    jmp short 098fbh                          ; eb 21
    1486214862    xor al, al                                ; 30 c0
    1486314863    test al, al                               ; 84 c0
    14864     je short 098edh                           ; 74 12
     14864    je short 098f2h                           ; 74 12
    1486514865    mov bl, byte [bp-00ch]                    ; 8a 5e f4
    1486614866    xor bh, bh                                ; 30 ff
    1486714867    xor ax, ax                                ; 31 c0
    1486814868    mov dx, word [bp-010h]                    ; 8b 56 f0
    14869     call 092a4h                               ; e8 bc f9
     14869    call 092a9h                               ; e8 bc f9
    1487014870    dec byte [bp-00eh]                        ; fe 4e f2
    14871     je short 09930h                           ; 74 43
     14871    je short 09935h                           ; 74 43
    1487214872    inc byte [bp-00ch]                        ; fe 46 f4
    1487314873    cmp byte [bp-00ch], 020h                  ; 80 7e f4 20
    14874     jnc short 09930h                          ; 73 3a
     14874    jnc short 09935h                          ; 73 3a
    1487514875    mov cl, byte [bp-00ch]                    ; 8a 4e f4
    1487614876    xor ch, ch                                ; 30 ed
    1487714877    mov bx, strict word 00001h                ; bb 01 00
    1487814878    xor di, di                                ; 31 ff
    14879     jcxz 09908h                               ; e3 06
     14879    jcxz 0990dh                               ; e3 06
    1488014880    sal bx, 1                                 ; d1 e3
    1488114881    rcl di, 1                                 ; d1 d7
    14882     loop 09902h                               ; e2 fa
     14882    loop 09907h                               ; e2 fa
    1488314883    mov ax, strict word 0000ch                ; b8 0c 00
    1488414884    xor cx, cx                                ; 31 c9
     
    1489614896    xchg dx, ax                               ; 92
    1489714897    test dx, di                               ; 85 fa
    14898     jne short 0992ch                          ; 75 04
     14898    jne short 09931h                          ; 75 04
    1489914899    test ax, bx                               ; 85 d8
    14900     je short 098d5h                           ; 74 a9
     14900    je short 098dah                           ; 74 a9
    1490114901    mov AL, strict byte 001h                  ; b0 01
    14902     jmp short 098d7h                          ; eb a7
     14902    jmp short 098dch                          ; eb a7
    1490314903    xor ax, ax                                ; 31 c0
    1490414904    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1491014910    pop bp                                    ; 5d
    1491114911    retn                                      ; c3
    14912     db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 038h, 09ah, 016h, 09ah, 01ch, 09ah, 022h, 09ah, 028h
    14913     db  09ah, 02eh, 09ah, 034h, 09ah, 038h, 09ah
    14914 _ahci_init:                                  ; 0xf9953 LB 0x11a
     14912    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 03dh, 09ah, 01bh, 09ah, 021h, 09ah, 027h, 09ah, 02dh
     14913    db  09ah, 033h, 09ah, 039h, 09ah, 03dh, 09ah
     14914_ahci_init:                                  ; 0xf9958 LB 0x11a
    1491514915    push bp                                   ; 55
    1491614916    mov bp, sp                                ; 89 e5
     
    1491914919    mov ax, 00601h                            ; b8 01 06
    1492014920    mov dx, strict word 00001h                ; ba 01 00
    14921     call 09e8ch                               ; e8 29 05
     14921    call 09e91h                               ; e8 29 05
    1492214922    mov dx, ax                                ; 89 c2
    1492314923    cmp ax, strict word 0ffffh                ; 3d ff ff
    14924     je short 099b3h                           ; 74 49
     14924    je short 099b8h                           ; 74 49
    1492514925    mov al, ah                                ; 88 e0
    1492614926    mov byte [bp-006h], ah                    ; 88 66 fa
     
    1492914929    xor ah, ah                                ; 30 e4
    1493014930    mov bx, strict word 00034h                ; bb 34 00
    14931     call 09e94h                               ; e8 18 05
     14931    call 09e99h                               ; e8 18 05
    1493214932    mov cl, al                                ; 88 c1
    1493314933    test cl, cl                               ; 84 c9
    14934     je short 099b6h                           ; 74 34
     14934    je short 099bbh                           ; 74 34
    1493514935    mov bl, cl                                ; 88 cb
    1493614936    xor bh, bh                                ; 30 ff
     
    1494314943    mov dx, word [bp-00ch]                    ; 8b 56 f4
    1494414944    mov ax, word [bp-010h]                    ; 8b 46 f0
    14945     call 09e94h                               ; e8 f3 04
     14945    call 09e99h                               ; e8 f3 04
    1494614946    cmp AL, strict byte 012h                  ; 3c 12
    14947     je short 099b6h                           ; 74 11
     14947    je short 099bbh                           ; 74 11
    1494814948    mov bl, cl                                ; 88 cb
    1494914949    db  0feh, 0c3h
     
    1495214952    mov dx, word [bp-00ch]                    ; 8b 56 f4
    1495314953    mov ax, word [bp-010h]                    ; 8b 46 f0
    14954     jmp short 09979h                          ; eb c6
    14955     jmp near 09a67h                           ; e9 b1 00
     14954    jmp short 0997eh                          ; eb c6
     14955    jmp near 09a6ch                           ; e9 b1 00
    1495614956    test cl, cl                               ; 84 c9
    14957     je short 099b3h                           ; 74 f9
     14957    je short 099b8h                           ; 74 f9
    1495814958    add cl, 002h                              ; 80 c1 02
    1495914959    mov bl, cl                                ; 88 cb
     
    1496714967    mov dx, word [bp-00eh]                    ; 8b 56 f2
    1496814968    mov ax, word [bp-00ah]                    ; 8b 46 f6
    14969     call 09e94h                               ; e8 b8 04
     14969    call 09e99h                               ; e8 b8 04
    1497014970    cmp AL, strict byte 010h                  ; 3c 10
    14971     jne short 099b3h                          ; 75 d3
     14971    jne short 099b8h                          ; 75 d3
    1497214972    mov byte [bp-004h], 000h                  ; c6 46 fc 00
    1497314973    mov bl, cl                                ; 88 cb
     
    1497614976    mov dx, word [bp-00eh]                    ; 8b 56 f2
    1497714977    mov ax, word [bp-00ah]                    ; 8b 46 f6
    14978     call 09ebbh                               ; e8 c7 04
     14978    call 09ec0h                               ; e8 c7 04
    1497914979    mov dx, ax                                ; 89 c2
    1498014980    and ax, strict word 0000fh                ; 25 0f 00
    1498114981    sub ax, strict word 00004h                ; 2d 04 00
    1498214982    cmp ax, strict word 0000bh                ; 3d 0b 00
    14983     jnbe short 09a38h                         ; 77 37
     14983    jnbe short 09a3dh                         ; 77 37
    1498414984    push CS                                   ; 0e
    1498514985    pop ES                                    ; 07
    1498614986    mov cx, strict word 00008h                ; b9 08 00
    14987     mov di, 0993ch                            ; bf 3c 99
     14987    mov di, 09941h                            ; bf 41 99
    1498814988    repne scasb                               ; f2 ae
    1498914989    sal cx, 1                                 ; d1 e1
    1499014990    mov di, cx                                ; 89 cf
    14991     mov ax, word [cs:di-066bdh]               ; 2e 8b 85 43 99
     14991    mov ax, word [cs:di-066b8h]               ; 2e 8b 85 48 99
    1499214992    jmp ax                                    ; ff e0
    1499314993    mov byte [bp-004h], 010h                  ; c6 46 fc 10
    14994     jmp short 09a38h                          ; eb 1c
     14994    jmp short 09a3dh                          ; eb 1c
    1499514995    mov byte [bp-004h], 014h                  ; c6 46 fc 14
    14996     jmp short 09a38h                          ; eb 16
     14996    jmp short 09a3dh                          ; eb 16
    1499714997    mov byte [bp-004h], 018h                  ; c6 46 fc 18
    14998     jmp short 09a38h                          ; eb 10
     14998    jmp short 09a3dh                          ; eb 10
    1499914999    mov byte [bp-004h], 01ch                  ; c6 46 fc 1c
    15000     jmp short 09a38h                          ; eb 0a
     15000    jmp short 09a3dh                          ; eb 0a
    1500115001    mov byte [bp-004h], 020h                  ; c6 46 fc 20
    15002     jmp short 09a38h                          ; eb 04
     15002    jmp short 09a3dh                          ; eb 04
    1500315003    mov byte [bp-004h], 024h                  ; c6 46 fc 24
    1500415004    mov CL, strict byte 004h                  ; b1 04
     
    1501015010    mov al, byte [bp-004h]                    ; 8a 46 fc
    1501115011    test al, al                               ; 84 c0
    15012     je short 09a67h                           ; 74 1c
     15012    je short 09a6ch                           ; 74 1c
    1501315013    mov bl, al                                ; 88 c3
    1501415014    xor bh, bh                                ; 30 ff
     
    1501715017    mov al, byte [bp-006h]                    ; 8a 46 fa
    1501815018    xor ah, ah                                ; 30 e4
    15019     call 09ee0h                               ; e8 84 04
     15019    call 09ee5h                               ; e8 84 04
    1502015020    test AL, strict byte 001h                 ; a8 01
    15021     je short 09a67h                           ; 74 07
     15021    je short 09a6ch                           ; 74 07
    1502215022    and AL, strict byte 0f0h                  ; 24 f0
    1502315023    add ax, cx                                ; 01 c8
    15024     call 097e5h                               ; e8 7e fd
     15024    call 097eah                               ; e8 7e fd
    1502515025    lea sp, [bp-002h]                         ; 8d 66 fe
    1502615026    pop di                                    ; 5f
    1502715027    pop bp                                    ; 5d
    1502815028    retn                                      ; c3
    15029 apm_out_str_:                                ; 0xf9a6d LB 0x39
     15029apm_out_str_:                                ; 0xf9a72 LB 0x39
    1503015030    push bp                                   ; 55
    1503115031    mov bp, sp                                ; 89 e5
     
    1503315033    mov bx, ax                                ; 89 c3
    1503415034    cmp byte [bx], 000h                       ; 80 3f 00
    15035     je short 09a82h                           ; 74 0a
     15035    je short 09a87h                           ; 74 0a
    1503615036    mov al, byte [bx]                         ; 8a 07
    1503715037    out DX, AL                                ; ee
     
    1504015040    db  00ah, 0c0h
    1504115041    ; or al, al                                 ; 0a c0
    15042     jne short 09a7ah                          ; 75 f8
     15042    jne short 09a7fh                          ; 75 f8
    1504315043    lea sp, [bp-002h]                         ; 8d 66 fe
    1504415044    pop bx                                    ; 5b
    1504515045    pop bp                                    ; 5d
    1504615046    retn                                      ; c3
    15047     db  0c7h, 09ah, 052h, 09bh, 0d9h, 09ah
    15048     ; mov word [bp+si-064aeh], 09ad9h           ; c7 9a 52 9b d9 9a
    15049     hlt                                       ; f4
    15050     call far 09b1fh:09b52h                    ; 9a 52 9b 1f 9b
    15051     push dx                                   ; 52
     15047    int3                                      ; cc
     15048    call far 09adeh:09b57h                    ; 9a 57 9b de 9a
     15049    stc                                       ; f9
     15050    call far 09b24h:09b57h                    ; 9a 57 9b 24 9b
     15051    push di                                   ; 57
    1505215052    wait                                      ; 9b
    15053     pop ax                                    ; 58
     15053    pop bp                                    ; 5d
    1505415054    wait                                      ; 9b
    15055     and AL, strict byte 09bh                  ; 24 9b
    15056     and AL, strict byte 09bh                  ; 24 9b
    15057     and AL, strict byte 09bh                  ; 24 9b
    15058     xchg di, ax                               ; 97
     15055    sub word [bp+di-064d7h], bx               ; 29 9b 29 9b
     15056    sub word [bp+di-06464h], bx               ; 29 9b 9c 9b
     15057    sub word [bp+di-064d7h], bx               ; 29 9b 29 9b
     15058    xchg bp, ax                               ; 95
    1505915059    wait                                      ; 9b
    15060     and AL, strict byte 09bh                  ; 24 9b
    15061     and AL, strict byte 09bh                  ; 24 9b
    15062     nop                                       ; 90
    15063     wait                                      ; 9b
    15064 _apm_function:                               ; 0xf9aa6 LB 0xf6
     15060_apm_function:                               ; 0xf9aab LB 0xf6
    1506515061    push bp                                   ; 55
    1506615062    mov bp, sp                                ; 89 e5
     
    1507015066    xor ah, ah                                ; 30 e4
    1507115067    cmp ax, strict word 0000eh                ; 3d 0e 00
    15072     jnbe short 09b24h                         ; 77 6c
     15068    jnbe short 09b29h                         ; 77 6c
    1507315069    mov bx, ax                                ; 89 c3
    1507415070    sal bx, 1                                 ; d1 e3
    1507515071    mov dx, word [bp+018h]                    ; 8b 56 18
    1507615072    or dl, 001h                               ; 80 ca 01
    15077     jmp word [cs:bx-06578h]                   ; 2e ff a7 88 9a
     15073    jmp word [cs:bx-06573h]                   ; 2e ff a7 8d 9a
    1507815074    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    1507915075    mov word [bp+00ch], 0504dh                ; c7 46 0c 4d 50
    1508015076    mov word [bp+010h], strict word 00003h    ; c7 46 10 03 00
    15081     jmp near 09b52h                           ; e9 79 00
     15077    jmp near 09b57h                           ; e9 79 00
    1508215078    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    15083     mov word [bp+00ch], 0a0f4h                ; c7 46 0c f4 a0
     15079    mov word [bp+00ch], 0a104h                ; c7 46 0c 04 a1
    1508415080    mov word [bp+010h], 0f000h                ; c7 46 10 00 f0
    1508515081    mov ax, strict word 0fff0h                ; b8 f0 ff
    1508615082    mov word [bp+006h], ax                    ; 89 46 06
    1508715083    mov word [bp+004h], ax                    ; 89 46 04
    15088     jmp near 09b52h                           ; e9 5e 00
     15084    jmp near 09b57h                           ; e9 5e 00
    1508915085    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    1509015086    mov word [bp+00ch], 0da40h                ; c7 46 0c 40 da
     
    1509915095    mov si, ax                                ; 89 c6
    1510015096    sal esi, 010h                             ; 66 c1 e6 10
    15101     jmp near 09b52h                           ; e9 33 00
     15097    jmp near 09b57h                           ; e9 33 00
    1510215098    sti                                       ; fb
    1510315099    hlt                                       ; f4
    15104     jmp near 09b52h                           ; e9 2e 00
    15105     mov bx, 00da6h                            ; bb a6 0d
     15100    jmp near 09b57h                           ; e9 2e 00
     15101    mov bx, 00da4h                            ; bb a4 0d
    1510615102    mov cx, ds                                ; 8c d9
    1510715103    mov ax, strict word 00004h                ; b8 04 00
    15108     call 01933h                               ; e8 04 7e
     15104    call 01933h                               ; e8 ff 7d
    1510915105    push word [bp+00ch]                       ; ff 76 0c
    1511015106    push word [bp+012h]                       ; ff 76 12
     
    1511315109    mov ax, strict word 00004h                ; b8 04 00
    1511415110    push ax                                   ; 50
    15115     call 01976h                               ; e8 36 7e
     15111    call 01976h                               ; e8 31 7e
    1511615112    add sp, strict byte 00008h                ; 83 c4 08
    1511715113    mov ax, word [bp+012h]                    ; 8b 46 12
     
    1512515121    retn                                      ; c3
    1512615122    cmp word [bp+010h], strict byte 00003h    ; 83 7e 10 03
    15127     je short 09b7dh                           ; 74 1f
     15123    je short 09b82h                           ; 74 1f
    1512815124    cmp word [bp+010h], strict byte 00002h    ; 83 7e 10 02
    15129     je short 09b75h                           ; 74 11
     15125    je short 09b7ah                           ; 74 11
    1513015126    cmp word [bp+010h], strict byte 00001h    ; 83 7e 10 01
    15131     jne short 09b85h                          ; 75 1b
     15127    jne short 09b8ah                          ; 75 1b
    1513215128    mov dx, 08900h                            ; ba 00 89
    1513315129    mov ax, 00d10h                            ; b8 10 0d
    15134     call 09a6dh                               ; e8 fa fe
    15135     jmp short 09b52h                          ; eb dd
     15130    call 09a72h                               ; e8 fa fe
     15131    jmp short 09b57h                          ; eb dd
    1513615132    mov dx, 08900h                            ; ba 00 89
    1513715133    mov ax, 00d18h                            ; b8 18 0d
    15138     jmp short 09b70h                          ; eb f3
     15134    jmp short 09b75h                          ; eb f3
    1513915135    mov dx, 08900h                            ; ba 00 89
    1514015136    mov ax, 00d20h                            ; b8 20 0d
    15141     jmp short 09b70h                          ; eb eb
     15137    jmp short 09b75h                          ; eb eb
    1514215138    or ah, 00ah                               ; 80 cc 0a
    1514315139    mov word [bp+012h], ax                    ; 89 46 12
    1514415140    mov word [bp+018h], dx                    ; 89 56 18
    15145     jmp short 09b52h                          ; eb c2
     15141    jmp short 09b57h                          ; eb c2
    1514615142    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    15147     jmp short 09b52h                          ; eb bb
     15143    jmp short 09b57h                          ; eb bb
    1514815144    or ah, 080h                               ; 80 cc 80
    15149     jmp short 09b88h                          ; eb ec
    15150 pci16_select_reg_:                           ; 0xf9b9c LB 0x24
     15145    jmp short 09b8dh                          ; eb ec
     15146pci16_select_reg_:                           ; 0xf9ba1 LB 0x24
    1515115147    push bp                                   ; 55
    1515215148    mov bp, sp                                ; 89 e5
     
    1516515161    pop bp                                    ; 5d
    1516615162    retn                                      ; c3
    15167 pci16_find_device_:                          ; 0xf9bc0 LB 0xf7
     15163pci16_find_device_:                          ; 0xf9bc5 LB 0xf7
    1516815164    push bp                                   ; 55
    1516915165    mov bp, sp                                ; 89 e5
     
    1517915175    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    1518015176    test bl, 007h                             ; f6 c3 07
    15181     jne short 09c08h                          ; 75 2d
     15177    jne short 09c0dh                          ; 75 2d
    1518215178    mov dx, strict word 0000eh                ; ba 0e 00
    1518315179    mov ax, bx                                ; 89 d8
    15184     call 09b9ch                               ; e8 b9 ff
     15180    call 09ba1h                               ; e8 b9 ff
    1518515181    mov dx, 00cfeh                            ; ba fe 0c
    1518615182    in AL, DX                                 ; ec
     
    1518915185    mov byte [bp-008h], al                    ; 88 46 f8
    1519015186    cmp AL, strict byte 0ffh                  ; 3c ff
    15191     jne short 09bf6h                          ; 75 06
     15187    jne short 09bfbh                          ; 75 06
    1519215188    add bx, strict byte 00008h                ; 83 c3 08
    15193     jmp near 09c88h                           ; e9 92 00
     15189    jmp near 09c8dh                           ; e9 92 00
    1519415190    test byte [bp-008h], 080h                 ; f6 46 f8 80
    15195     je short 09c03h                           ; 74 07
     15191    je short 09c08h                           ; 74 07
    1519615192    mov word [bp-00eh], strict word 00001h    ; c7 46 f2 01 00
    15197     jmp short 09c08h                          ; eb 05
     15193    jmp short 09c0dh                          ; eb 05
    1519815194    mov word [bp-00eh], strict word 00008h    ; c7 46 f2 08 00
    1519915195    mov al, byte [bp-008h]                    ; 8a 46 f8
    1520015196    and AL, strict byte 007h                  ; 24 07
    1520115197    cmp AL, strict byte 001h                  ; 3c 01
    15202     jne short 09c2fh                          ; 75 1e
     15198    jne short 09c34h                          ; 75 1e
    1520315199    mov al, bh                                ; 88 f8
    1520415200    xor ah, ah                                ; 30 e4
    1520515201    test ax, ax                               ; 85 c0
    15206     jne short 09c2fh                          ; 75 16
     15202    jne short 09c34h                          ; 75 16
    1520715203    mov dx, strict word 0001ah                ; ba 1a 00
    1520815204    mov ax, bx                                ; 89 d8
    15209     call 09b9ch                               ; e8 7b ff
     15205    call 09ba1h                               ; e8 7b ff
    1521015206    mov dx, 00cfeh                            ; ba fe 0c
    1521115207    in AL, DX                                 ; ec
     
    1521315209    ; sub ah, ah                                ; 2a e4
    1521415210    cmp al, byte [bp-006h]                    ; 3a 46 fa
    15215     jbe short 09c2fh                          ; 76 03
     15211    jbe short 09c34h                          ; 76 03
    1521615212    mov byte [bp-006h], al                    ; 88 46 fa
    1521715213    test di, di                               ; 85 ff
    15218     je short 09c38h                           ; 74 05
     15214    je short 09c3dh                           ; 74 05
    1521915215    mov dx, strict word 00008h                ; ba 08 00
    15220     jmp short 09c3ah                          ; eb 02
     15216    jmp short 09c3fh                          ; eb 02
    1522115217    xor dx, dx                                ; 31 d2
    1522215218    mov ax, bx                                ; 89 d8
    15223     call 09b9ch                               ; e8 5d ff
     15219    call 09ba1h                               ; e8 5d ff
    1522415220    mov dx, 00cfch                            ; ba fc 0c
    1522515221    in eax, DX                                ; 66 ed
     
    1523215228    mov word [bp-00ch], strict word 00000h    ; c7 46 f4 00 00
    1523315229    test di, di                               ; 85 ff
    15234     je short 09c69h                           ; 74 0f
     15230    je short 09c6eh                           ; 74 0f
    1523515231    mov cx, strict word 00008h                ; b9 08 00
    1523615232    shr dx, 1                                 ; d1 ea
    1523715233    rcr ax, 1                                 ; d1 d8
    15238     loop 09c5dh                               ; e2 fa
     15234    loop 09c62h                               ; e2 fa
    1523915235    mov word [bp-00ah], ax                    ; 89 46 f6
    1524015236    mov word [bp-010h], dx                    ; 89 56 f0
    1524115237    mov ax, word [bp-010h]                    ; 8b 46 f0
    1524215238    cmp ax, word [bp-014h]                    ; 3b 46 ec
    15243     jne short 09c79h                          ; 75 08
     15239    jne short 09c7eh                          ; 75 08
    1524415240    mov ax, word [bp-00ah]                    ; 8b 46 f6
    1524515241    cmp ax, word [bp-012h]                    ; 3b 46 ee
    15246     je short 09c7fh                           ; 74 06
     15242    je short 09c84h                           ; 74 06
    1524715243    cmp word [bp-00ch], strict byte 00000h    ; 83 7e f4 00
    15248     je short 09c85h                           ; 74 06
     15244    je short 09c8ah                           ; 74 06
    1524915245    dec si                                    ; 4e
    1525015246    cmp si, strict byte 0ffffh                ; 83 fe ff
    15251     je short 09c98h                           ; 74 13
     15247    je short 09c9dh                           ; 74 13
    1525215248    add bx, word [bp-00eh]                    ; 03 5e f2
    1525315249    mov al, bh                                ; 88 f8
     
    1525615252    xor dh, dh                                ; 30 f6
    1525715253    cmp ax, dx                                ; 39 d0
    15258     jnbe short 09c98h                         ; 77 03
    15259     jmp near 09bd6h                           ; e9 3e ff
     15254    jnbe short 09c9dh                         ; 77 03
     15255    jmp near 09bdbh                           ; e9 3e ff
    1526015256    cmp si, strict byte 0ffffh                ; 83 fe ff
    15261     jne short 09ca1h                          ; 75 04
     15257    jne short 09ca6h                          ; 75 04
    1526215258    mov ax, bx                                ; 89 d8
    15263     jmp short 09ca4h                          ; eb 03
     15259    jmp short 09ca9h                          ; eb 03
    1526415260    mov ax, strict word 0ffffh                ; b8 ff ff
    1526515261    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1526815264    pop bp                                    ; 5d
    1526915265    retn                                      ; c3
    15270     cbw                                       ; 98
    1527115266    popfw                                     ; 9d
    15272     mov CL, strict byte 09dh                  ; b1 9d
    15273     retn                                      ; c3
    1527415267    popfw                                     ; 9d
    15275     xlatb                                     ; d7
     15268    mov DH, strict byte 09dh                  ; b6 9d
     15269    enter 0dc9dh, 09dh                        ; c8 9d dc 9d
     15270    out DX, AL                                ; ee
    1527615271    popfw                                     ; 9d
    15277     jmp near 09953h                           ; e9 9d fc
    15278     popfw                                     ; 9d
    15279 _pci16_function:                             ; 0xf9cb7 LB 0x1d5
     15272    db  001h
     15273    sahf                                      ; 9e
     15274_pci16_function:                             ; 0xf9cbc LB 0x1d5
    1528015275    push bp                                   ; 55
    1528115276    mov bp, sp                                ; 89 e5
     
    1529115286    xor ah, ah                                ; 30 e4
    1529215287    cmp bx, strict byte 00003h                ; 83 fb 03
    15293     jc short 09ce9h                           ; 72 13
    15294     jbe short 09d3ch                          ; 76 64
     15288    jc short 09ceeh                           ; 72 13
     15289    jbe short 09d41h                          ; 76 64
    1529515290    cmp bx, strict byte 0000eh                ; 83 fb 0e
    15296     je short 09d44h                           ; 74 67
     15291    je short 09d49h                           ; 74 67
    1529715292    cmp bx, strict byte 00008h                ; 83 fb 08
    15298     jc short 09cf3h                           ; 72 11
     15293    jc short 09cf8h                           ; 72 11
    1529915294    cmp bx, strict byte 0000dh                ; 83 fb 0d
    15300     jbe short 09d47h                          ; 76 60
    15301     jmp short 09cf3h                          ; eb 0a
     15295    jbe short 09d4ch                          ; 76 60
     15296    jmp short 09cf8h                          ; eb 0a
    1530215297    cmp bx, strict byte 00002h                ; 83 fb 02
    15303     je short 09d12h                           ; 74 24
     15298    je short 09d17h                           ; 74 24
    1530415299    cmp bx, strict byte 00001h                ; 83 fb 01
    15305     je short 09cf6h                           ; 74 03
    15306     jmp near 09e55h                           ; e9 5f 01
     15300    je short 09cfbh                           ; 74 03
     15301    jmp near 09e5ah                           ; e9 5f 01
    1530715302    mov word [bp+020h], strict word 00001h    ; c7 46 20 01 00
    1530815303    mov word [bp+014h], 00210h                ; c7 46 14 10 02
     
    1531015305    mov word [bp+018h], 04350h                ; c7 46 18 50 43
    1531115306    mov word [bp+01ah], 02049h                ; c7 46 1a 49 20
    15312     jmp near 09e85h                           ; e9 73 01
     15307    jmp near 09e8ah                           ; e9 73 01
    1531315308    cmp word [bp+018h], strict byte 0ffffh    ; 83 7e 18 ff
    15314     jne short 09d1eh                          ; 75 06
     15309    jne short 09d23h                          ; 75 06
    1531515310    or ah, 083h                               ; 80 cc 83
    15316     jmp near 09e7eh                           ; e9 60 01
     15311    jmp near 09e83h                           ; e9 60 01
    1531715312    mov bx, word [bp+008h]                    ; 8b 5e 08
    1531815313    mov dx, word [bp+01ch]                    ; 8b 56 1c
    1531915314    mov ax, word [bp+018h]                    ; 8b 46 18
    1532015315    xor cx, cx                                ; 31 c9
    15321     call 09bc0h                               ; e8 94 fe
     15316    call 09bc5h                               ; e8 94 fe
    1532215317    cmp ax, strict word 0ffffh                ; 3d ff ff
    15323     jne short 09d3eh                          ; 75 0d
     15318    jne short 09d43h                          ; 75 0d
    1532415319    mov ax, word [bp+020h]                    ; 8b 46 20
    1532515320    xor ah, ah                                ; 30 e4
    1532615321    or ah, 086h                               ; 80 cc 86
    15327     jmp near 09e7eh                           ; e9 42 01
    15328     jmp short 09d49h                          ; eb 0b
     15322    jmp near 09e83h                           ; e9 42 01
     15323    jmp short 09d4eh                          ; eb 0b
    1532915324    mov word [bp+014h], ax                    ; 89 46 14
    15330     jmp near 09e85h                           ; e9 41 01
    15331     jmp near 09e10h                           ; e9 c9 00
    15332     jmp short 09d6eh                          ; eb 25
     15325    jmp near 09e8ah                           ; e9 41 01
     15326    jmp near 09e15h                           ; e9 c9 00
     15327    jmp short 09d73h                          ; eb 25
    1533315328    mov bx, word [bp+008h]                    ; 8b 5e 08
    1533415329    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1533515330    mov dx, word [bp+01eh]                    ; 8b 56 1e
    1533615331    mov cx, strict word 00001h                ; b9 01 00
    15337     call 09bc0h                               ; e8 68 fe
     15332    call 09bc5h                               ; e8 68 fe
    1533815333    cmp ax, strict word 0ffffh                ; 3d ff ff
    15339     jne short 09d68h                          ; 75 0b
     15334    jne short 09d6dh                          ; 75 0b
    1534015335    mov ax, word [bp+020h]                    ; 8b 46 20
    1534115336    xor ah, ah                                ; 30 e4
    1534215337    or ah, 086h                               ; 80 cc 86
    15343     jmp near 09e7eh                           ; e9 16 01
     15338    jmp near 09e83h                           ; e9 16 01
    1534415339    mov word [bp+014h], ax                    ; 89 46 14
    15345     jmp near 09e85h                           ; e9 17 01
     15340    jmp near 09e8ah                           ; e9 17 01
    1534615341    cmp word [bp+004h], 00100h                ; 81 7e 04 00 01
    15347     jc short 09d7bh                           ; 72 06
     15342    jc short 09d80h                           ; 72 06
    1534815343    or ah, 087h                               ; 80 cc 87
    15349     jmp near 09e7eh                           ; e9 03 01
     15344    jmp near 09e83h                           ; e9 03 01
    1535015345    mov dx, word [bp+004h]                    ; 8b 56 04
    1535115346    mov ax, word [bp+014h]                    ; 8b 46 14
    15352     call 09b9ch                               ; e8 18 fe
     15347    call 09ba1h                               ; e8 18 fe
    1535315348    mov bx, word [bp+020h]                    ; 8b 5e 20
    1535415349    xor bh, bh                                ; 30 ff
    1535515350    sub bx, strict byte 00008h                ; 83 eb 08
    1535615351    cmp bx, strict byte 00005h                ; 83 fb 05
    15357     jnbe short 09df9h                         ; 77 68
     15352    jnbe short 09dfeh                         ; 77 68
    1535815353    sal bx, 1                                 ; d1 e3
    15359     jmp word [cs:bx-06355h]                   ; 2e ff a7 ab 9c
     15354    jmp word [cs:bx-06350h]                   ; 2e ff a7 b0 9c
    1536015355    mov bx, word [bp+01ch]                    ; 8b 5e 1c
    1536115356    xor bl, bl                                ; 30 db
     
    1536815363    or bx, ax                                 ; 09 c3
    1536915364    mov word [bp+01ch], bx                    ; 89 5e 1c
    15370     jmp short 09df9h                          ; eb 48
     15365    jmp short 09dfeh                          ; eb 48
    1537115366    mov dx, word [bp+004h]                    ; 8b 56 04
    1537215367    xor dh, dh                                ; 30 f6
     
    1537515370    in ax, DX                                 ; ed
    1537615371    mov word [bp+01ch], ax                    ; 89 46 1c
    15377     jmp short 09df9h                          ; eb 36
     15372    jmp short 09dfeh                          ; eb 36
    1537815373    mov dx, 00cfch                            ; ba fc 0c
    1537915374    in eax, DX                                ; 66 ed
     
    1538415379    mov word [bp+01ch], ax                    ; 89 46 1c
    1538515380    mov word [bp+01eh], dx                    ; 89 56 1e
    15386     jmp short 09df9h                          ; eb 22
     15381    jmp short 09dfeh                          ; eb 22
    1538715382    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1538815383    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1539115386    add dx, 00cfch                            ; 81 c2 fc 0c
    1539215387    out DX, AL                                ; ee
    15393     jmp short 09df9h                          ; eb 10
     15388    jmp short 09dfeh                          ; eb 10
    1539415389    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1539515390    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1539815393    add dx, 00cfch                            ; 81 c2 fc 0c
    1539915394    out DX, ax                                ; ef
    15400     jmp near 09e85h                           ; e9 89 00
     15395    jmp near 09e8ah                           ; e9 89 00
    1540115396    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1540215397    mov cx, word [bp+01eh]                    ; 8b 4e 1e
     
    1540715402    ; mov ax, cx                                ; 8b c1
    1540815403    out DX, eax                               ; 66 ef
    15409     jmp short 09e85h                          ; eb 75
     15404    jmp short 09e8ah                          ; eb 75
    1541015405    mov bx, word [bp+004h]                    ; 8b 5e 04
    1541115406    mov es, [bp+026h]                         ; 8e 46 26
     
    1541415409    mov cx, word [0f4a0h]                     ; 8b 0e a0 f4
    1541515410    cmp cx, word [es:bx]                      ; 26 3b 0f
    15416     jbe short 09e36h                          ; 76 11
     15411    jbe short 09e3bh                          ; 76 11
    1541715412    mov ax, word [bp+020h]                    ; 8b 46 20
    1541815413    xor ah, ah                                ; 30 e4
     
    1542015415    mov word [bp+020h], ax                    ; 89 46 20
    1542115416    or word [bp+02ch], strict byte 00001h     ; 83 4e 2c 01
    15422     jmp short 09e4ah                          ; eb 14
     15417    jmp short 09e4fh                          ; eb 14
    1542315418    les di, [es:bx+002h]                      ; 26 c4 7f 02
    1542415419    mov si, 0f2c0h                            ; be c0 f2
     
    1543215427    les bx, [bp-008h]                         ; c4 5e f8
    1543315428    mov word [es:bx], ax                      ; 26 89 07
    15434     jmp short 09e85h                          ; eb 30
    15435     mov bx, 00da6h                            ; bb a6 0d
     15429    jmp short 09e8ah                          ; eb 30
     15430    mov bx, 00da4h                            ; bb a4 0d
    1543615431    mov cx, ds                                ; 8c d9
    1543715432    mov ax, strict word 00004h                ; b8 04 00
    15438     call 01933h                               ; e8 d3 7a
     15433    call 01933h                               ; e8 ce 7a
    1543915434    mov ax, word [bp+014h]                    ; 8b 46 14
    1544015435    push ax                                   ; 50
     
    1544515440    mov ax, strict word 00004h                ; b8 04 00
    1544615441    push ax                                   ; 50
    15447     call 01976h                               ; e8 03 7b
     15442    call 01976h                               ; e8 fe 7a
    1544815443    add sp, strict byte 00008h                ; 83 c4 08
    1544915444    mov ax, word [bp+020h]                    ; 8b 46 20
     
    1545715452    pop bp                                    ; 5d
    1545815453    retn                                      ; c3
    15459 pci_find_classcode_:                         ; 0xf9e8c LB 0x8
     15454pci_find_classcode_:                         ; 0xf9e91 LB 0x8
    1546015455    push bp                                   ; 55
    1546115456    mov bp, sp                                ; 89 e5
     
    1546315458    pop bp                                    ; 5d
    1546415459    retn                                      ; c3
    15465 pci_read_config_byte_:                       ; 0xf9e94 LB 0x27
     15460pci_read_config_byte_:                       ; 0xf9e99 LB 0x27
    1546615461    push bp                                   ; 55
    1546715462    mov bp, sp                                ; 89 e5
     
    1548615481    pop bp                                    ; 5d
    1548715482    retn                                      ; c3
    15488 pci_read_config_word_:                       ; 0xf9ebb LB 0x25
     15483pci_read_config_word_:                       ; 0xf9ec0 LB 0x25
    1548915484    push bp                                   ; 55
    1549015485    mov bp, sp                                ; 89 e5
     
    1550815503    pop bp                                    ; 5d
    1550915504    retn                                      ; c3
    15510 pci_read_config_dword_:                      ; 0xf9ee0 LB 0x3f
     15505pci_read_config_dword_:                      ; 0xf9ee5 LB 0x3f
    1551115506    push bp                                   ; 55
    1551215507    mov bp, sp                                ; 89 e5
     
    1552315518    int 01ah                                  ; cd 1a
    1552415519    test cx, cx                               ; 85 c9
    15525     jne short 09f10h                          ; 75 14
     15520    jne short 09f15h                          ; 75 14
    1552615521    mov al, byte [bp-006h]                    ; 8a 46 fa
    1552715522    xor ah, ah                                ; 30 e4
     
    1553315528    int 01ah                                  ; cd 1a
    1553415529    test cx, cx                               ; 85 c9
    15535     je short 09f15h                           ; 74 05
     15530    je short 09f1ah                           ; 74 05
    1553615531    mov ax, strict word 00001h                ; b8 01 00
    15537     jmp short 09f17h                          ; eb 02
     15532    jmp short 09f1ch                          ; eb 02
    1553815533    xor ax, ax                                ; 31 c0
    1553915534    cwd                                       ; 99
     
    1554315538    pop bp                                    ; 5d
    1554415539    retn                                      ; c3
    15545 vds_is_present_:                             ; 0xf9f1f LB 0x1d
     15540vds_is_present_:                             ; 0xf9f24 LB 0x1d
    1554615541    push bx                                   ; 53
    1554715542    push bp                                   ; 55
     
    1555115546    mov es, ax                                ; 8e c0
    1555215547    test byte [es:bx], 020h                   ; 26 f6 07 20
    15553     je short 09f37h                           ; 74 06
     15548    je short 09f3ch                           ; 74 06
    1555415549    mov ax, strict word 00001h                ; b8 01 00
    1555515550    pop bp                                    ; 5d
     
    1556015555    pop bx                                    ; 5b
    1556115556    retn                                      ; c3
    15562 vds_real_to_lin_:                            ; 0xf9f3c LB 0x1e
     15557vds_real_to_lin_:                            ; 0xf9f41 LB 0x1e
    1556315558    push bx                                   ; 53
    1556415559    push cx                                   ; 51
     
    1557115566    sal ax, 1                                 ; d1 e0
    1557215567    rcl dx, 1                                 ; d1 d2
    15573     loop 09f4ah                               ; e2 fa
     15568    loop 09f4fh                               ; e2 fa
    1557415569    xor cx, cx                                ; 31 c9
    1557515570    add ax, bx                                ; 01 d8
     
    1557915574    pop bx                                    ; 5b
    1558015575    retn                                      ; c3
    15581 vds_build_sg_list_:                          ; 0xf9f5a LB 0x77
     15576vds_build_sg_list_:                          ; 0xf9f5f LB 0x77
    1558215577    push bp                                   ; 55
    1558315578    mov bp, sp                                ; 89 e5
     
    1559315588    mov bx, word [bp+006h]                    ; 8b 5e 06
    1559415589    mov word [es:di+002h], bx                 ; 26 89 5d 02
    15595     call 09f3ch                               ; e8 c3 ff
     15590    call 09f41h                               ; e8 c3 ff
    1559615591    mov es, si                                ; 8e c6
    1559715592    mov word [es:di+004h], ax                 ; 26 89 45 04
    1559815593    mov word [es:di+006h], dx                 ; 26 89 55 06
    1559915594    mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00
    15600     call 09f1fh                               ; e8 93 ff
     15595    call 09f24h                               ; e8 93 ff
    1560115596    test ax, ax                               ; 85 c0
    15602     je short 09fa1h                           ; 74 11
     15597    je short 09fa6h                           ; 74 11
    1560315598    mov es, si                                ; 8e c6
    1560415599    mov ax, 08105h                            ; b8 05 81
    1560515600    mov dx, strict word 00000h                ; ba 00 00
    1560615601    int 04bh                                  ; cd 4b
    15607     jc short 09f9eh                           ; 72 02
     15602    jc short 09fa3h                           ; 72 02
    1560815603    db  032h, 0c0h
    1560915604    ; xor al, al                                ; 32 c0
    1561015605    cbw                                       ; 98
    15611     jmp short 09fc8h                          ; eb 27
     15606    jmp short 09fcdh                          ; eb 27
    1561215607    mov es, si                                ; 8e c6
    1561315608    mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00
     
    1562615621    pop bp                                    ; 5d
    1562715622    retn 00004h                               ; c2 04 00
    15628 vds_free_sg_list_:                           ; 0xf9fd1 LB 0x2f
     15623vds_free_sg_list_:                           ; 0xf9fd6 LB 0x3a
    1562915624    push bp                                   ; 55
    1563015625    mov bp, sp                                ; 89 e5
     
    1563215627    push di                                   ; 57
    1563315628    mov bx, ax                                ; 89 c3
    15634     call 09f1fh                               ; e8 44 ff
     15629    call 09f24h                               ; e8 44 ff
    1563515630    test ax, ax                               ; 85 c0
    15636     je short 09ff0h                           ; 74 11
     15631    je short 09ff5h                           ; 74 11
    1563715632    mov di, bx                                ; 89 df
    1563815633    mov es, dx                                ; 8e c2
     
    1564015635    mov dx, strict word 00000h                ; ba 00 00
    1564115636    int 04bh                                  ; cd 4b
    15642     jc short 09fefh                           ; 72 02
     15637    jc short 09ff4h                           ; 72 02
    1564315638    db  032h, 0c0h
    1564415639    ; xor al, al                                ; 32 c0
     
    1565115646    pop bp                                    ; 5d
    1565215647    retn                                      ; c3
    15653     times 0x1 db 0
    15654 __U4M:                                       ; 0xfa000 LB 0x20
     15648    times 0xc db 0
     15649__U4M:                                       ; 0xfa010 LB 0x20
    1565515650    pushfw                                    ; 9c
    1565615651    push si                                   ; 56
     
    1567915674    retn                                      ; c3
    1568015675    times 0x4 db 0
    15681 __U4D:                                       ; 0xfa020 LB 0x30
     15676__U4D:                                       ; 0xfa030 LB 0x30
    1568215677    pushfw                                    ; 9c
    1568315678    push DS                                   ; 1e
     
    1569415689    push dx                                   ; 52
    1569515690    push ax                                   ; 50
    15696     call 0a105h                               ; e8 d0 00
     15691    call 0a115h                               ; e8 d0 00
    1569715692    mov cx, word [bp-002h]                    ; 8b 4e fe
    1569815693    mov bx, word [bp-004h]                    ; 8b 5e fc
     
    1570515700    retn                                      ; c3
    1570615701    times 0xe db 0
    15707 __U8RS:                                      ; 0xfa050 LB 0x10
     15702__U8RS:                                      ; 0xfa060 LB 0x10
    1570815703    test si, si                               ; 85 f6
    15709     je short 0a05fh                           ; 74 0b
     15704    je short 0a06fh                           ; 74 0b
    1571015705    shr ax, 1                                 ; d1 e8
    1571115706    rcr bx, 1                                 ; d1 db
     
    1571315708    rcr dx, 1                                 ; d1 da
    1571415709    dec si                                    ; 4e
    15715     jne short 0a054h                          ; 75 f5
     15710    jne short 0a064h                          ; 75 f5
    1571615711    retn                                      ; c3
    15717 __U8LS:                                      ; 0xfa060 LB 0x10
     15712__U8LS:                                      ; 0xfa070 LB 0x10
    1571815713    test si, si                               ; 85 f6
    15719     je short 0a06fh                           ; 74 0b
     15714    je short 0a07fh                           ; 74 0b
    1572015715    sal dx, 1                                 ; d1 e2
    1572115716    rcl cx, 1                                 ; d1 d1
     
    1572315718    rcl ax, 1                                 ; d1 d0
    1572415719    dec si                                    ; 4e
    15725     jne short 0a064h                          ; 75 f5
     15720    jne short 0a074h                          ; 75 f5
    1572615721    retn                                      ; c3
    15727 _fmemset_:                                   ; 0xfa070 LB 0x10
     15722_fmemset_:                                   ; 0xfa080 LB 0x10
    1572815723    push di                                   ; 57
    1572915724    mov es, dx                                ; 8e c2
     
    1573615731    retn                                      ; c3
    1573715732    times 0x3 db 0
    15738 _fmemcpy_:                                   ; 0xfa080 LB 0x3a
     15733_fmemcpy_:                                   ; 0xfa090 LB 0x3a
    1573915734    push bp                                   ; 55
    1574015735    db  08bh, 0ech
     
    1575815753    pop bp                                    ; 5d
    1575915754    retn                                      ; c3
    15760     add byte [bx+si], al                      ; 00 00
    15761     add byte [bx+si], al                      ; 00 00
    15762     add byte [bx+si], al                      ; 00 00
    15763     sal byte [bx+si-05f2eh], 1                ; d0 a0 d2 a0
    15764     db  0d6h
    15765     mov AL, byte [0a0d6h]                     ; a0 d6 a0
    15766     db  0d6h
    15767     mov AL, byte [0a0d8h]                     ; a0 d8 a0
    15768     fsub dword [bx+si-05f26h]                 ; d8 a0 da a0
    15769     fisub word [bx+si-05f22h]                 ; de a0 de a0
    15770     loopne 0a056h                             ; e0 a0
    15771     in ax, 0a0h                               ; e5 a0
    15772     out 0a0h, ax                              ; e7 a0
    15773 apm_worker:                                  ; 0xfa0ba LB 0x3a
     15755    db  000h, 000h, 000h, 000h, 000h, 000h, 0e0h, 0a0h, 0e2h, 0a0h, 0e6h, 0a0h, 0e6h, 0a0h, 0e6h, 0a0h
     15756    db  0e8h, 0a0h, 0e8h, 0a0h, 0eah, 0a0h, 0eeh, 0a0h, 0eeh, 0a0h, 0f0h, 0a0h, 0f5h, 0a0h, 0f7h, 0a0h
     15757apm_worker:                                  ; 0xfa0ca LB 0x3a
    1577415758    sti                                       ; fb
    1577515759    push ax                                   ; 50
     
    1578315767    pop ax                                    ; 58
    1578415768    mov AH, strict byte 053h                  ; b4 53
    15785     jnc short 0a0f0h                          ; 73 25
    15786     jmp word [cs:bp-05f60h]                   ; 2e ff a6 a0 a0
    15787     jmp short 0a0eeh                          ; eb 1c
     15769    jnc short 0a100h                          ; 73 25
     15770    jmp word [cs:bp-05f50h]                   ; 2e ff a6 b0 a0
     15771    jmp short 0a0feh                          ; eb 1c
    1578815772    sti                                       ; fb
    1578915773    hlt                                       ; f4
    15790     jmp short 0a0eeh                          ; eb 18
    15791     jmp short 0a0eeh                          ; eb 16
    15792     jmp short 0a0f0h                          ; eb 16
     15774    jmp short 0a0feh                          ; eb 18
     15775    jmp short 0a0feh                          ; eb 16
     15776    jmp short 0a100h                          ; eb 16
    1579315777    mov AH, strict byte 080h                  ; b4 80
    15794     jmp short 0a0f2h                          ; eb 14
    15795     jmp short 0a0f0h                          ; eb 10
     15778    jmp short 0a102h                          ; eb 14
     15779    jmp short 0a100h                          ; eb 10
    1579615780    mov ax, 00102h                            ; b8 02 01
    15797     jmp short 0a0eeh                          ; eb 09
    15798     jmp short 0a0eeh                          ; eb 07
     15781    jmp short 0a0feh                          ; eb 09
     15782    jmp short 0a0feh                          ; eb 07
    1579915783    mov BL, strict byte 000h                  ; b3 00
    1580015784    mov cx, strict word 00000h                ; b9 00 00
    15801     jmp short 0a0eeh                          ; eb 00
     15785    jmp short 0a0feh                          ; eb 00
    1580215786    clc                                       ; f8
    1580315787    retn                                      ; c3
     
    1580515789    stc                                       ; f9
    1580615790    retn                                      ; c3
    15807 apm_pm16_entry:                              ; 0xfa0f4 LB 0x11
     15791apm_pm16_entry:                              ; 0xfa104 LB 0x11
    1580815792    mov AH, strict byte 002h                  ; b4 02
    1580915793    push DS                                   ; 1e
     
    1581315797    add bp, strict byte 00008h                ; 83 c5 08
    1581415798    mov ds, bp                                ; 8e dd
    15815     call 0a0bah                               ; e8 b8 ff
     15799    call 0a0cah                               ; e8 b8 ff
    1581615800    pop bp                                    ; 5d
    1581715801    pop DS                                    ; 1f
    1581815802    retf                                      ; cb
    15819 _DoUInt32Div:                                ; 0xfa105 LB 0x26b
     15803_DoUInt32Div:                                ; 0xfa115 LB 0x26b
    1582015804    push bp                                   ; 55
    1582115805    mov bp, sp                                ; 89 e5
     
    1583515819    mov [bp-006h], ds                         ; 8c 5e fa
    1583615820    cmp word [bx+002h], strict byte 00000h    ; 83 7f 02 00
    15837     jne short 0a155h                          ; 75 22
     15821    jne short 0a165h                          ; 75 22
    1583815822    mov ax, word [bx]                         ; 8b 07
    1583915823    test ax, ax                               ; 85 c0
    15840     je short 0a152h                           ; 74 19
     15824    je short 0a162h                           ; 74 19
    1584115825    cmp ax, strict word 00001h                ; 3d 01 00
    15842     jne short 0a155h                          ; 75 17
     15826    jne short 0a165h                          ; 75 17
    1584315827    xor ax, ax                                ; 31 c0
    1584415828    mov word [bp+00ah], ax                    ; 89 46 0a
     
    1584815832    mov ax, word [bp-01ah]                    ; 8b 46 e6
    1584915833    mov word [bp+006h], ax                    ; 89 46 06
    15850     jmp near 0a35dh                           ; e9 08 02
     15834    jmp near 0a36dh                           ; e9 08 02
    1585115835    lds bx, [bp-00ch]                         ; c5 5e f4
    1585215836    mov ax, word [bx+002h]                    ; 8b 47 02
    1585315837    mov ds, [bp-006h]                         ; 8e 5e fa
    1585415838    cmp ax, word [si+002h]                    ; 3b 44 02
    15855     je short 0a17bh                           ; 74 18
     15839    je short 0a18bh                           ; 74 18
    1585615840    mov ds, [bp-00ah]                         ; 8e 5e f6
    1585715841    mov ax, word [bx+002h]                    ; 8b 47 02
    1585815842    mov ds, [bp-006h]                         ; 8e 5e fa
    1585915843    cmp ax, word [si+002h]                    ; 3b 44 02
    15860     jbe short 0a176h                          ; 76 05
     15844    jbe short 0a186h                          ; 76 05
    1586115845    mov ax, strict word 00001h                ; b8 01 00
    15862     jmp short 0a19ch                          ; eb 26
     15846    jmp short 0a1ach                          ; eb 26
    1586315847    mov ax, strict word 0ffffh                ; b8 ff ff
    15864     jmp short 0a19ch                          ; eb 21
     15848    jmp short 0a1ach                          ; eb 21
    1586515849    mov ds, [bp-00ah]                         ; 8e 5e f6
    1586615850    mov ax, word [bx]                         ; 8b 07
    1586715851    mov ds, [bp-006h]                         ; 8e 5e fa
    1586815852    cmp ax, word [si]                         ; 3b 04
    15869     je short 0a19ah                           ; 74 13
     15853    je short 0a1aah                           ; 74 13
    1587015854    mov ds, [bp-00ah]                         ; 8e 5e f6
    1587115855    mov ax, word [bx]                         ; 8b 07
    1587215856    mov ds, [bp-006h]                         ; 8e 5e fa
    1587315857    cmp ax, word [si]                         ; 3b 04
    15874     jbe short 0a195h                          ; 76 02
    15875     jmp short 0a171h                          ; eb dc
     15858    jbe short 0a1a5h                          ; 76 02
     15859    jmp short 0a181h                          ; eb dc
    1587615860    mov ax, strict word 0ffffh                ; b8 ff ff
    15877     jmp short 0a19ch                          ; eb 02
     15861    jmp short 0a1ach                          ; eb 02
    1587815862    xor ax, ax                                ; 31 c0
    1587915863    test ax, ax                               ; 85 c0
    15880     jnl short 0a1beh                          ; 7d 1e
     15864    jnl short 0a1ceh                          ; 7d 1e
    1588115865    lds bx, [bp-00ch]                         ; c5 5e f4
    1588215866    mov ax, word [bx]                         ; 8b 07
     
    1588815872    mov word [bx+002h], strict word 00000h    ; c7 47 02 00 00
    1588915873    mov word [bx], strict word 00000h         ; c7 07 00 00
    15890     jmp short 0a152h                          ; eb 94
    15891     jne short 0a1d5h                          ; 75 15
     15874    jmp short 0a162h                          ; eb 94
     15875    jne short 0a1e5h                          ; 75 15
    1589215876    mov ds, [bp-008h]                         ; 8e 5e f8
    1589315877    mov word [di+002h], ax                    ; 89 45 02
     
    1589615880    mov word [bx], strict word 00001h         ; c7 07 01 00
    1589715881    mov word [bx+002h], ax                    ; 89 47 02
    15898     jmp near 0a35dh                           ; e9 88 01
     15882    jmp near 0a36dh                           ; e9 88 01
    1589915883    lds bx, [bp-00ch]                         ; c5 5e f4
    1590015884    mov ax, word [bx+002h]                    ; 8b 47 02
    1590115885    test ax, ax                               ; 85 c0
    15902     je short 0a1f0h                           ; 74 11
     15886    je short 0a200h                           ; 74 11
    1590315887    push ax                                   ; 50
    1590415888    mov ax, 0f000h                            ; b8 00 f0
    1590515889    mov ds, ax                                ; 8e d8
    15906     call 0a370h                               ; e8 88 01
     15890    call 0a380h                               ; e8 88 01
    1590715891    add sp, strict byte 00002h                ; 83 c4 02
    1590815892    add ax, strict word 00010h                ; 05 10 00
    15909     jmp short 0a1fdh                          ; eb 0d
     15893    jmp short 0a20dh                          ; eb 0d
    1591015894    push word [bx]                            ; ff 37
    1591115895    mov ax, 0f000h                            ; b8 00 f0
    1591215896    mov ds, ax                                ; 8e d8
    15913     call 0a370h                               ; e8 76 01
     15897    call 0a380h                               ; e8 76 01
    1591415898    add sp, strict byte 00002h                ; 83 c4 02
    1591515899    mov word [bp-014h], ax                    ; 89 46 ec
     
    1591715901    mov ax, word [si+002h]                    ; 8b 44 02
    1591815902    test ax, ax                               ; 85 c0
    15919     je short 0a21bh                           ; 74 11
     15903    je short 0a22bh                           ; 74 11
    1592015904    push ax                                   ; 50
    1592115905    mov ax, 0f000h                            ; b8 00 f0
    1592215906    mov ds, ax                                ; 8e d8
    15923     call 0a370h                               ; e8 5d 01
     15907    call 0a380h                               ; e8 5d 01
    1592415908    add sp, strict byte 00002h                ; 83 c4 02
    1592515909    add ax, strict word 00010h                ; 05 10 00
    15926     jmp short 0a228h                          ; eb 0d
     15910    jmp short 0a238h                          ; eb 0d
    1592715911    push word [si]                            ; ff 34
    1592815912    mov ax, 0f000h                            ; b8 00 f0
    1592915913    mov ds, ax                                ; 8e d8
    15930     call 0a370h                               ; e8 4b 01
     15914    call 0a380h                               ; e8 4b 01
    1593115915    add sp, strict byte 00002h                ; 83 c4 02
    1593215916    mov dx, word [bp-014h]                    ; 8b 56 ec
     
    1593915923    mov word [bp-016h], ax                    ; 89 46 ea
    1594015924    test dx, dx                               ; 85 d2
    15941     je short 0a298h                           ; 74 56
     15925    je short 0a2a8h                           ; 74 56
    1594215926    mov cx, dx                                ; 89 d1
    1594315927    xor ch, dh                                ; 30 f5
     
    1594515929    mov ax, word [si]                         ; 8b 04
    1594615930    mov dx, word [si+002h]                    ; 8b 54 02
    15947     jcxz 0a256h                               ; e3 06
     15931    jcxz 0a266h                               ; e3 06
    1594815932    sal ax, 1                                 ; d1 e0
    1594915933    rcl dx, 1                                 ; d1 d2
    15950     loop 0a250h                               ; e2 fa
     15934    loop 0a260h                               ; e2 fa
    1595115935    mov word [bp-018h], ax                    ; 89 46 e8
    1595215936    mov word [bp-016h], dx                    ; 89 56 ea
     
    1595415938    lds bx, [bp-00ch]                         ; c5 5e f4
    1595515939    cmp ax, word [bx+002h]                    ; 3b 47 02
    15956     jnbe short 0a276h                         ; 77 0f
     15940    jnbe short 0a286h                         ; 77 0f
    1595715941    mov ax, word [bp-016h]                    ; 8b 46 ea
    1595815942    cmp ax, word [bx+002h]                    ; 3b 47 02
    15959     jne short 0a27ah                          ; 75 0b
     15943    jne short 0a28ah                          ; 75 0b
    1596015944    mov ax, word [bp-018h]                    ; 8b 46 e8
    1596115945    cmp ax, word [bx]                         ; 3b 07
    15962     jbe short 0a27ah                          ; 76 04
     15946    jbe short 0a28ah                          ; 76 04
    1596315947    mov AL, strict byte 001h                  ; b0 01
    15964     jmp short 0a27ch                          ; eb 02
     15948    jmp short 0a28ch                          ; eb 02
    1596515949    xor al, al                                ; 30 c0
    1596615950    test al, al                               ; 84 c0
    15967     je short 0a2a3h                           ; 74 23
     15951    je short 0a2b3h                           ; 74 23
    1596815952    shr word [bp-016h], 1                     ; d1 6e ea
    1596915953    rcr word [bp-018h], 1                     ; d1 5e e8
    1597015954    dec word [bp-012h]                        ; ff 4e ee
    15971     jmp short 0a2a3h                          ; eb 18
     15955    jmp short 0a2b3h                          ; eb 18
    1597215956    mov cx, strict word 0001fh                ; b9 1f 00
    1597315957    sal word [bp-018h], 1                     ; d1 66 e8
    1597415958    rcl word [bp-016h], 1                     ; d1 56 ea
    15975     loop 0a28eh                               ; e2 f8
    15976     jmp short 0a286h                          ; eb ee
     15959    loop 0a29eh                               ; e2 f8
     15960    jmp short 0a296h                          ; eb ee
    1597715961    mov ax, word [si]                         ; 8b 04
    1597815962    mov word [bp-018h], ax                    ; 89 46 e8
     
    1599115975    mov ds, [bp-006h]                         ; 8e 5e fa
    1599215976    cmp ax, word [si+002h]                    ; 3b 44 02
    15993     jnbe short 0a2cfh                         ; 77 06
    15994     jne short 0a2d3h                          ; 75 08
     15977    jnbe short 0a2dfh                         ; 77 06
     15978    jne short 0a2e3h                          ; 75 08
    1599515979    cmp dx, word [si]                         ; 3b 14
    15996     jc short 0a2d3h                           ; 72 04
     15980    jc short 0a2e3h                           ; 72 04
    1599715981    mov AL, strict byte 001h                  ; b0 01
    15998     jmp short 0a2d5h                          ; eb 02
     15982    jmp short 0a2e5h                          ; eb 02
    1599915983    xor al, al                                ; 30 c0
    1600015984    test al, al                               ; 84 c0
    16001     je short 0a33ah                           ; 74 61
     15985    je short 0a34ah                           ; 74 61
    1600215986    mov ds, [bp-008h]                         ; 8e 5e f8
    1600315987    mov ax, word [di+002h]                    ; 8b 45 02
    1600415988    cmp ax, word [bp-016h]                    ; 3b 46 ea
    16005     jnbe short 0a2f0h                         ; 77 0c
     15989    jnbe short 0a300h                         ; 77 0c
    1600615990    cmp ax, word [bp-016h]                    ; 3b 46 ea
    16007     jne short 0a2f4h                          ; 75 0b
     15991    jne short 0a304h                          ; 75 0b
    1600815992    mov ax, word [di]                         ; 8b 05
    1600915993    cmp ax, word [bp-018h]                    ; 3b 46 e8
    16010     jc short 0a2f4h                           ; 72 04
     15994    jc short 0a304h                           ; 72 04
    1601115995    mov AL, strict byte 001h                  ; b0 01
    16012     jmp short 0a2f6h                          ; eb 02
     15996    jmp short 0a306h                          ; eb 02
    1601315997    xor al, al                                ; 30 c0
    1601415998    test al, al                               ; 84 c0
    16015     je short 0a320h                           ; 74 26
     15999    je short 0a330h                           ; 74 26
    1601616000    mov ax, word [bp-018h]                    ; 8b 46 e8
    1601716001    mov ds, [bp-008h]                         ; 8e 5e f8
     
    1602216006    xor dx, dx                                ; 31 d2
    1602316007    mov cx, word [bp-012h]                    ; 8b 4e ee
    16024     jcxz 0a318h                               ; e3 06
     16008    jcxz 0a328h                               ; e3 06
    1602516009    sal ax, 1                                 ; d1 e0
    1602616010    rcl dx, 1                                 ; d1 d2
    16027     loop 0a312h                               ; e2 fa
     16011    loop 0a322h                               ; e2 fa
    1602816012    lds bx, [bp-010h]                         ; c5 5e f0
    1602916013    or word [bx], ax                          ; 09 07
     
    1603416018    mov ds, [bp-006h]                         ; 8e 5e fa
    1603516019    cmp ax, word [si+002h]                    ; 3b 44 02
    16036     jc short 0a336h                           ; 72 06
    16037     jne short 0a33ch                          ; 75 0a
     16020    jc short 0a346h                           ; 72 06
     16021    jne short 0a34ch                          ; 75 0a
    1603816022    cmp dx, word [si]                         ; 3b 14
    16039     jnc short 0a33ch                          ; 73 06
     16023    jnc short 0a34ch                          ; 73 06
    1604016024    mov AL, strict byte 001h                  ; b0 01
    16041     jmp short 0a33eh                          ; eb 04
    16042     jmp short 0a35dh                          ; eb 21
     16025    jmp short 0a34eh                          ; eb 04
     16026    jmp short 0a36dh                          ; eb 21
    1604316027    xor al, al                                ; 30 c0
    1604416028    test al, al                               ; 84 c0
    16045     je short 0a351h                           ; 74 0f
    16046     jmp short 0a35dh                          ; eb 19
     16029    je short 0a361h                           ; 74 0f
     16030    jmp short 0a36dh                          ; eb 19
    1604716031    mov cx, strict word 0001fh                ; b9 1f 00
    1604816032    sal word [bp-018h], 1                     ; d1 66 e8
    1604916033    rcl word [bp-016h], 1                     ; d1 56 ea
    16050     loop 0a347h                               ; e2 f8
    16051     jmp short 0a357h                          ; eb 06
     16034    loop 0a357h                               ; e2 f8
     16035    jmp short 0a367h                          ; eb 06
    1605216036    shr word [bp-016h], 1                     ; d1 6e ea
    1605316037    rcr word [bp-018h], 1                     ; d1 5e e8
    1605416038    dec word [bp-012h]                        ; ff 4e ee
    16055     jmp near 0a2d9h                           ; e9 7c ff
     16039    jmp near 0a2e9h                           ; e9 7c ff
    1605616040    mov ax, word [bp-01ch]                    ; 8b 46 e4
    1605716041    mov dx, word [bp-01ah]                    ; 8b 56 e6
     
    1606216046    retn                                      ; c3
    1606316047    times 0x6 db 0
    16064 _ASMBitLastSetU16:                           ; 0xfa370 LB 0x18
     16048_ASMBitLastSetU16:                           ; 0xfa380 LB 0x18
    1606516049    push bp                                   ; 55
    1606616050    db  08bh, 0ech
     
    1606816052    mov cx, word [bp+004h]                    ; 8b 4e 04
    1606916053    test cx, cx                               ; 85 c9
    16070     je short 0a384h                           ; 74 0a
     16054    je short 0a394h                           ; 74 0a
    1607116055    mov ax, strict word 00010h                ; b8 10 00
    1607216056    sal cx, 1                                 ; d1 e1
    16073     jc short 0a386h                           ; 72 05
     16057    jc short 0a396h                           ; 72 05
    1607416058    dec ax                                    ; 48
    16075     jmp short 0a37dh                          ; eb f9
     16059    jmp short 0a38dh                          ; eb f9
    1607616060    db  033h, 0c0h
    1607716061    ; xor ax, ax                                ; 33 c0
     
    1607916063    retn                                      ; c3
    1608016064
    16081   ; Padding 0x3678 bytes at 0xfa388
    16082   times 13944 db 0
     16065  ; Padding 0x3668 bytes at 0xfa398
     16066  times 13928 db 0
    1608316067
    1608416068section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO
     
    1612716111    add bp, strict byte 00008h                ; 83 c5 08
    1612816112    push ebp                                  ; 66 55
    16129     mov bp, 0a0f6h                            ; bd f6 a0
     16113    mov bp, 0a106h                            ; bd 06 a1
    1613016114    add byte [bx+si], al                      ; 00 00
    1613116115    push ebp                                  ; 66 55
     
    1685716841    call 01cc5h                               ; e8 89 39
    1685816842    call 02154h                               ; e8 15 3e
    16859     call 09953h                               ; e8 11 b6
    16860     call 087b8h                               ; e8 73 a4
     16843    call 09958h                               ; e8 16 b6
     16844    call 087bdh                               ; e8 78 a4
    1686116845    call 0ed4ch                               ; e8 04 0a
    1686216846    call 0e2d2h                               ; e8 87 ff
     
    1719417178    pop DS                                    ; 1f
    1719517179    cld                                       ; fc
    17196     call 06e98h                               ; e8 a4 84
     17180    call 06e9dh                               ; e8 a9 84
    1719717181    pop DS                                    ; 1f
    1719817182    pop ES                                    ; 07
     
    1755617540    pop DS                                    ; 1f
    1755717541    cld                                       ; fc
    17558     call 07845h                               ; e8 61 88
     17542    call 0784ah                               ; e8 66 88
    1755917543    pop di                                    ; 5f
    1756017544    pop si                                    ; 5e
     
    1793817922    cmp ah, 0c2h                              ; 80 fc c2
    1793917923    je short 0f895h                           ; 74 15
    17940     call 067b7h                               ; e8 34 6f
     17924    call 067bch                               ; e8 39 6f
    1794117925    pop di                                    ; 5f
    1794217926    pop si                                    ; 5e
     
    1795117935    popfw                                     ; 9d
    1795217936    jmp short 0f8afh                          ; eb 1f
    17953     call 09aa6h                               ; e8 13 a2
     17937    call 09aabh                               ; e8 18 a2
    1795417938    jmp short 0f883h                          ; eb ee
    1795517939int15_handler_mouse:                         ; 0xff895 LB 0x5
    17956     call 074a5h                               ; e8 0d 7c
     17940    call 074aah                               ; e8 12 7c
    1795717941    jmp short 0f883h                          ; eb e9
    1795817942int15_handler32:                             ; 0xff89a LB 0x15
     
    1796517949    push si                                   ; 56
    1796617950    push di                                   ; 57
    17967     call 06afah                               ; e8 55 72
     17951    call 06affh                               ; e8 5a 72
    1796817952    pop di                                    ; 5f
    1796917953    pop si                                    ; 5e
     
    1801117995    pop DS                                    ; 1f
    1801217996    cld                                       ; fc
    18013     call 073d3h                               ; e8 f8 7a
     17997    call 073d8h                               ; e8 fd 7a
    1801417998    pop cx                                    ; 59
    1801517999    jcxz 0f8ebh                               ; e3 0d
     
    1805918043    pop DS                                    ; 1f
    1806018044    cld                                       ; fc
    18061     call 07070h                               ; e8 51 77
     18045    call 07075h                               ; e8 56 77
    1806218046    pop di                                    ; 5f
    1806318047    pop si                                    ; 5e
     
    1816218146    pop DS                                    ; 1f
    1816318147    cld                                       ; fc
    18164     call 0712fh                               ; e8 b1 72
     18148    call 07134h                               ; e8 b6 72
    1816518149    pop di                                    ; 5f
    1816618150    pop si                                    ; 5e
     
    1827418258cpu_reset:                                   ; 0xffff0 LB 0x10
    1827518259    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    18276     db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fbh, 070h
     18260    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fbh, 016h
  • TabularUnified trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.md5sum

    r61733 r62120  
    1 674671e42a2a37197d131b711785fb05 *VBoxPcBios8086.rom
     151f85b0e4449f174537d2737f0e88fa6 *VBoxPcBios8086.rom
Note: See TracChangeset for help on using the changeset viewer.

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