VirtualBox

Ignore:
Timestamp:
Aug 20, 2013 4:17:35 PM (11 years ago)
Author:
vboxsync
Message:

4.3 Beta 1

Location:
trunk/src/VBox/Devices/Graphics/BIOS
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative.asm

    r43630 r47937  
    156156
    157157section VGAROM progbits vstart=0x0 align=1 ; size=0x93e class=CODE group=AUTO
    158     db  055h, 0aah, 040h, 0e9h, 05fh, 00ah, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     158    db  055h, 0aah, 040h, 0e9h, 062h, 00ah, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    159159    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 049h, 042h
    160160    db  04dh, 000h
     
    244244    mov bx, 0c000h                            ; bb 00 c0
    245245    mov ds, bx                                ; 8e db
    246     call 02fb4h                               ; e8 c4 2e
     246    call 03040h                               ; e8 50 2f
    247247    popaw                                     ; 61
    248248    pop DS                                    ; 1f
     
    14971497  times 194 db 0
    14981498
    1499 section _TEXT progbits vstart=0xa00 align=1 ; size=0x2ebf class=CODE group=AUTO
     1499section _TEXT progbits vstart=0xa00 align=1 ; size=0x2f80 class=CODE group=AUTO
    15001500set_int_vector_:                             ; 0xc0a00 LB 0x1a
    15011501    push bx                                   ; 53
     
    15111511    pop bx                                    ; 5b
    15121512    retn                                      ; c3
    1513 init_vga_card_:                              ; 0xc0a1a LB 0x19
    1514     push dx                                   ; 52
     1513init_vga_card_:                              ; 0xc0a1a LB 0x1c
    15151514    push bp                                   ; 55
    15161515    mov bp, sp                                ; 89 e5
     1516    push dx                                   ; 52
    15171517    mov AL, strict byte 0c3h                  ; b0 c3
    15181518    mov dx, 003c2h                            ; ba c2 03
     
    15241524    mov dx, 003c5h                            ; ba c5 03
    15251525    out DX, AL                                ; ee
     1526    lea sp, [bp-002h]                         ; 8d 66 fe
     1527    pop dx                                    ; 5a
    15261528    pop bp                                    ; 5d
    1527     pop dx                                    ; 5a
    1528     retn                                      ; c3
    1529 init_bios_area_:                             ; 0xc0a33 LB 0x32
     1529    retn                                      ; c3
     1530init_bios_area_:                             ; 0xc0a36 LB 0x32
    15301531    push bx                                   ; 53
    15311532    push bp                                   ; 55
     
    15451546    pop bx                                    ; 5b
    15461547    retn                                      ; c3
    1547 _vgabios_init_func:                          ; 0xc0a65 LB 0x1e
     1548_vgabios_init_func:                          ; 0xc0a68 LB 0x20
    15481549    push bp                                   ; 55
    15491550    mov bp, sp                                ; 89 e5
    1550     call 00a1ah                               ; e8 af ff
    1551     call 00a33h                               ; e8 c5 ff
    1552     call 0340bh                               ; e8 9a 29
     1551    call 00a1ah                               ; e8 ac ff
     1552    call 00a36h                               ; e8 c5 ff
     1553    call 034afh                               ; e8 3b 2a
    15531554    mov dx, strict word 00022h                ; ba 22 00
    15541555    mov ax, strict word 00010h                ; b8 10 00
    1555     call 00a00h                               ; e8 86 ff
     1556    call 00a00h                               ; e8 83 ff
    15561557    mov ax, strict word 00003h                ; b8 03 00
    15571558    db  032h, 0e4h
    15581559    ; xor ah, ah                                ; 32 e4
    15591560    int 010h                                  ; cd 10
     1561    mov sp, bp                                ; 89 ec
    15601562    pop bp                                    ; 5d
    15611563    retf                                      ; cb
    1562 vga_get_cursor_pos_:                         ; 0xc0a83 LB 0x40
     1564vga_get_cursor_pos_:                         ; 0xc0a88 LB 0x43
     1565    push bp                                   ; 55
     1566    mov bp, sp                                ; 89 e5
    15631567    push cx                                   ; 51
    15641568    push si                                   ; 56
    1565     push bp                                   ; 55
    1566     mov bp, sp                                ; 89 e5
    15671569    mov cl, al                                ; 88 c1
    15681570    mov si, dx                                ; 89 d6
    15691571    cmp AL, strict byte 007h                  ; 3c 07
    1570     jbe short 00a9eh                          ; 76 0e
     1572    jbe short 00aa3h                          ; 76 0e
    15711573    push SS                                   ; 16
    15721574    pop ES                                    ; 07
    15731575    mov word [es:si], strict word 00000h      ; 26 c7 04 00 00
    15741576    mov word [es:bx], strict word 00000h      ; 26 c7 07 00 00
    1575     jmp short 00abfh                          ; eb 21
     1577    jmp short 00ac4h                          ; eb 21
    15761578    mov dx, strict word 00060h                ; ba 60 00
    15771579    mov ax, strict word 00040h                ; b8 40 00
    1578     call 02f07h                               ; e8 60 24
     1580    call 02f93h                               ; e8 e7 24
    15791581    push SS                                   ; 16
    15801582    pop ES                                    ; 07
     
    15841586    add dx, strict byte 00050h                ; 83 c2 50
    15851587    mov ax, strict word 00040h                ; b8 40 00
    1586     call 02f07h                               ; e8 4d 24
     1588    call 02f93h                               ; e8 d4 24
    15871589    push SS                                   ; 16
    15881590    pop ES                                    ; 07
    15891591    mov word [es:bx], ax                      ; 26 89 07
    1590     pop bp                                    ; 5d
     1592    lea sp, [bp-004h]                         ; 8d 66 fc
    15911593    pop si                                    ; 5e
    15921594    pop cx                                    ; 59
    1593     retn                                      ; c3
    1594 vga_read_char_attr_:                         ; 0xc0ac3 LB 0xa3
     1595    pop bp                                    ; 5d
     1596    retn                                      ; c3
     1597vga_read_char_attr_:                         ; 0xc0acb LB 0xa8
     1598    push bp                                   ; 55
     1599    mov bp, sp                                ; 89 e5
    15951600    push bx                                   ; 53
    15961601    push cx                                   ; 51
    15971602    push si                                   ; 56
    15981603    push di                                   ; 57
    1599     enter 00008h, 000h                        ; c8 08 00 00
     1604    sub sp, strict byte 00008h                ; 83 ec 08
    16001605    mov cl, al                                ; 88 c1
    16011606    mov si, dx                                ; 89 d6
    16021607    mov dx, strict word 00049h                ; ba 49 00
    16031608    mov ax, strict word 00040h                ; b8 40 00
    1604     call 02eebh                               ; e8 13 24
     1609    call 02f77h                               ; e8 95 24
    16051610    xor ah, ah                                ; 30 e4
    1606     call 02ec4h                               ; e8 e7 23
     1611    call 02f50h                               ; e8 69 24
    16071612    mov ch, al                                ; 88 c5
    16081613    cmp AL, strict byte 0ffh                  ; 3c ff
    1609     je short 00b50h                           ; 74 6d
     1614    je short 00b5ah                           ; 74 6d
    16101615    movzx ax, cl                              ; 0f b6 c1
    1611     lea bx, [bp-008h]                         ; 8d 5e f8
    1612     lea dx, [bp-006h]                         ; 8d 56 fa
    1613     call 00a83h                               ; e8 94 ff
    1614     mov al, byte [bp-008h]                    ; 8a 46 f8
    1615     mov byte [bp-002h], al                    ; 88 46 fe
    1616     mov ax, word [bp-008h]                    ; 8b 46 f8
     1616    lea bx, [bp-010h]                         ; 8d 5e f0
     1617    lea dx, [bp-00eh]                         ; 8d 56 f2
     1618    call 00a88h                               ; e8 8f ff
     1619    mov al, byte [bp-010h]                    ; 8a 46 f0
     1620    mov byte [bp-00ah], al                    ; 88 46 f6
     1621    mov ax, word [bp-010h]                    ; 8b 46 f0
    16171622    xor al, al                                ; 30 c0
    16181623    shr ax, 008h                              ; c1 e8 08
    1619     mov word [bp-004h], ax                    ; 89 46 fc
     1624    mov word [bp-00ch], ax                    ; 89 46 f4
    16201625    mov dx, 00084h                            ; ba 84 00
    16211626    mov ax, strict word 00040h                ; b8 40 00
    1622     call 02eebh                               ; e8 e2 23
     1627    call 02f77h                               ; e8 64 24
    16231628    movzx di, al                              ; 0f b6 f8
    16241629    inc di                                    ; 47
    16251630    mov dx, strict word 0004ah                ; ba 4a 00
    16261631    mov ax, strict word 00040h                ; b8 40 00
    1627     call 02f07h                               ; e8 f1 23
     1632    call 02f93h                               ; e8 73 24
    16281633    movzx bx, ch                              ; 0f b6 dd
    16291634    sal bx, 003h                              ; c1 e3 03
    1630     cmp byte [bx+04830h], 000h                ; 80 bf 30 48 00
    1631     jne short 00b50h                          ; 75 2d
     1635    cmp byte [bx+04835h], 000h                ; 80 bf 35 48 00
     1636    jne short 00b5ah                          ; 75 2d
    16321637    mov dx, ax                                ; 89 c2
    16331638    imul dx, di                               ; 0f af d7
     
    16371642    inc dx                                    ; 42
    16381643    imul cx, dx                               ; 0f af ca
    1639     movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
     1644    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
    16401645    imul dx, ax                               ; 0f af d0
    1641     movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
     1646    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    16421647    add ax, dx                                ; 01 d0
    16431648    add ax, ax                                ; 01 c0
    16441649    mov dx, cx                                ; 89 ca
    16451650    add dx, ax                                ; 01 c2
    1646     mov ax, word [bx+04833h]                  ; 8b 87 33 48
    1647     call 02f07h                               ; e8 ba 23
     1651    mov ax, word [bx+04838h]                  ; 8b 87 38 48
     1652    call 02f93h                               ; e8 3c 24
    16481653    mov word [ss:si], ax                      ; 36 89 04
    1649     leave                                     ; c9
     1654    lea sp, [bp-008h]                         ; 8d 66 f8
    16501655    pop di                                    ; 5f
    16511656    pop si                                    ; 5e
    16521657    pop cx                                    ; 59
    16531658    pop bx                                    ; 5b
    1654     retn                                      ; c3
    1655     or word [bp+di], 00bbdh                   ; 81 0b bd 0b
    1656     retn 0ca0bh                               ; c2 0b ca
    1657     db  00bh, 0cfh
    1658     ; or cx, di                                 ; 0b cf
    1659     db  00bh, 0d4h
    1660     ; or dx, sp                                 ; 0b d4
    1661     db  00bh, 0d9h
    1662     ; or bx, cx                                 ; 0b d9
    1663     db  00bh, 0deh
    1664     ; or bx, si                                 ; 0b de
     1659    pop bp                                    ; 5d
     1660    retn                                      ; c3
     1661    mov cs, [bp+di]                           ; 8e 0b
     1662    int 00bh                                  ; cd 0b
     1663    ror byte [bp+di], CL                      ; d2 0b
     1664    fimul dword [bp+di]                       ; da 0b
     1665    db  0dfh
     1666    db  00bh, 0e4h
     1667    ; or sp, sp                                 ; 0b e4
     1668    db  00bh, 0e9h
     1669    ; or bp, cx                                 ; 0b e9
     1670    db  00bh, 0eeh
     1671    ; or bp, si                                 ; 0b ee
    16651672    db  00bh
    1666 vga_get_font_info_:                          ; 0xc0b66 LB 0x7f
     1673vga_get_font_info_:                          ; 0xc0b73 LB 0x82
     1674    push bp                                   ; 55
     1675    mov bp, sp                                ; 89 e5
    16671676    push si                                   ; 56
    16681677    push di                                   ; 57
    1669     enter 00002h, 000h                        ; c8 02 00 00
     1678    push ax                                   ; 50
    16701679    mov si, dx                                ; 89 d6
    1671     mov word [bp-002h], bx                    ; 89 5e fe
     1680    mov word [bp-006h], bx                    ; 89 5e fa
    16721681    mov bx, cx                                ; 89 cb
    16731682    cmp ax, strict word 00007h                ; 3d 07 00
    1674     jnbe short 00bb7h                         ; 77 3f
     1683    jnbe short 00bc4h                         ; 77 3f
    16751684    mov di, ax                                ; 89 c7
    16761685    add di, ax                                ; 01 c7
    1677     jmp word [cs:di+00b56h]                   ; 2e ff a5 56 0b
     1686    jmp word [cs:di+00b63h]                   ; 2e ff a5 63 0b
    16781687    mov dx, strict word 0007ch                ; ba 7c 00
    16791688    xor ax, ax                                ; 31 c0
    1680     call 02f23h                               ; e8 9a 23
     1689    call 02fafh                               ; e8 19 24
    16811690    push SS                                   ; 16
    16821691    pop ES                                    ; 07
    1683     mov di, word [bp-002h]                    ; 8b 7e fe
     1692    mov di, word [bp-006h]                    ; 8b 7e fa
    16841693    mov word [es:di], ax                      ; 26 89 05
    16851694    mov word [es:si], dx                      ; 26 89 14
    16861695    mov dx, 00085h                            ; ba 85 00
    16871696    mov ax, strict word 00040h                ; b8 40 00
    1688     call 02eebh                               ; e8 4e 23
     1697    call 02f77h                               ; e8 cd 23
    16891698    xor ah, ah                                ; 30 e4
    16901699    push SS                                   ; 16
     
    16931702    mov dx, 00084h                            ; ba 84 00
    16941703    mov ax, strict word 00040h                ; b8 40 00
    1695     call 02eebh                               ; e8 3e 23
     1704    call 02f77h                               ; e8 bd 23
    16961705    xor ah, ah                                ; 30 e4
    16971706    push SS                                   ; 16
    16981707    pop ES                                    ; 07
    1699     mov bx, word [bp+008h]                    ; 8b 5e 08
     1708    mov bx, word [bp+004h]                    ; 8b 5e 04
    17001709    mov word [es:bx], ax                      ; 26 89 07
    1701     leave                                     ; c9
     1710    lea sp, [bp-004h]                         ; 8d 66 fc
    17021711    pop di                                    ; 5f
    17031712    pop si                                    ; 5e
     1713    pop bp                                    ; 5d
    17041714    retn 00002h                               ; c2 02 00
    17051715    mov dx, 0010ch                            ; ba 0c 01
    1706     jmp short 00b84h                          ; eb c2
    1707     mov ax, 05dafh                            ; b8 af 5d
     1716    jmp short 00b91h                          ; eb bf
     1717    mov ax, 05db4h                            ; b8 b4 5d
    17081718    mov dx, 0c000h                            ; ba 00 c0
    1709     jmp short 00b89h                          ; eb bf
    1710     mov ax, 055afh                            ; b8 af 55
    1711     jmp short 00bc5h                          ; eb f6
    1712     mov ax, 059afh                            ; b8 af 59
    1713     jmp short 00bc5h                          ; eb f1
    1714     mov ax, 07bafh                            ; b8 af 7b
    1715     jmp short 00bc5h                          ; eb ec
    1716     mov ax, 06bafh                            ; b8 af 6b
    1717     jmp short 00bc5h                          ; eb e7
    1718     mov ax, 07cdch                            ; b8 dc 7c
    1719     jmp short 00bc5h                          ; eb e2
    1720     jmp short 00bb7h                          ; eb d2
    1721 vga_read_pixel_:                             ; 0xc0be5 LB 0x134
     1719    jmp short 00b96h                          ; eb bc
     1720    mov ax, 055b4h                            ; b8 b4 55
     1721    jmp short 00bd5h                          ; eb f6
     1722    mov ax, 059b4h                            ; b8 b4 59
     1723    jmp short 00bd5h                          ; eb f1
     1724    mov ax, 07bb4h                            ; b8 b4 7b
     1725    jmp short 00bd5h                          ; eb ec
     1726    mov ax, 06bb4h                            ; b8 b4 6b
     1727    jmp short 00bd5h                          ; eb e7
     1728    mov ax, 07ce1h                            ; b8 e1 7c
     1729    jmp short 00bd5h                          ; eb e2
     1730    jmp short 00bc4h                          ; eb cf
     1731vga_read_pixel_:                             ; 0xc0bf5 LB 0x139
     1732    push bp                                   ; 55
     1733    mov bp, sp                                ; 89 e5
    17221734    push si                                   ; 56
    17231735    push di                                   ; 57
    1724     enter 00006h, 000h                        ; c8 06 00 00
     1736    sub sp, strict byte 00006h                ; 83 ec 06
    17251737    mov si, dx                                ; 89 d6
    1726     mov word [bp-006h], bx                    ; 89 5e fa
     1738    mov word [bp-00ah], bx                    ; 89 5e f6
    17271739    mov di, cx                                ; 89 cf
    17281740    mov dx, strict word 00049h                ; ba 49 00
    17291741    mov ax, strict word 00040h                ; b8 40 00
    1730     call 02eebh                               ; e8 f0 22
     1742    call 02f77h                               ; e8 6a 23
    17311743    xor ah, ah                                ; 30 e4
    1732     call 02ec4h                               ; e8 c4 22
     1744    call 02f50h                               ; e8 3e 23
    17331745    mov cl, al                                ; 88 c1
    17341746    cmp AL, strict byte 0ffh                  ; 3c ff
    1735     je near 00d15h                            ; 0f 84 0d 01
     1747    je near 00d27h                            ; 0f 84 0d 01
    17361748    movzx bx, al                              ; 0f b6 d8
    17371749    sal bx, 003h                              ; c1 e3 03
    1738     cmp byte [bx+04830h], 000h                ; 80 bf 30 48 00
    1739     je near 00d15h                            ; 0f 84 fe 00
    1740     mov bl, byte [bx+04831h]                  ; 8a 9f 31 48
     1750    cmp byte [bx+04835h], 000h                ; 80 bf 35 48 00
     1751    je near 00d27h                            ; 0f 84 fe 00
     1752    mov bl, byte [bx+04836h]                  ; 8a 9f 36 48
    17411753    cmp bl, 003h                              ; 80 fb 03
    1742     jc short 00c31h                           ; 72 11
    1743     jbe short 00c39h                          ; 76 17
     1754    jc short 00c43h                           ; 72 11
     1755    jbe short 00c4bh                          ; 76 17
    17441756    cmp bl, 005h                              ; 80 fb 05
    1745     je near 00cf2h                            ; 0f 84 c9 00
     1757    je near 00d04h                            ; 0f 84 c9 00
    17461758    cmp bl, 004h                              ; 80 fb 04
    1747     je short 00c39h                           ; 74 0b
    1748     jmp near 00d10h                           ; e9 df 00
     1759    je short 00c4bh                           ; 74 0b
     1760    jmp near 00d22h                           ; e9 df 00
    17491761    cmp bl, 002h                              ; 80 fb 02
    1750     je short 00c91h                           ; 74 5b
    1751     jmp near 00d10h                           ; e9 d7 00
     1762    je short 00ca3h                           ; 74 5b
     1763    jmp near 00d22h                           ; e9 d7 00
    17521764    mov dx, strict word 0004ah                ; ba 4a 00
    17531765    mov ax, strict word 00040h                ; b8 40 00
    1754     call 02f07h                               ; e8 c5 22
    1755     imul ax, word [bp-006h]                   ; 0f af 46 fa
     1766    call 02f93h                               ; e8 3f 23
     1767    imul ax, word [bp-00ah]                   ; 0f af 46 f6
    17561768    mov bx, si                                ; 89 f3
    17571769    shr bx, 003h                              ; c1 eb 03
     
    17611773    mov ax, 00080h                            ; b8 80 00
    17621774    sar ax, CL                                ; d3 f8
    1763     mov byte [bp-004h], al                    ; 88 46 fc
    1764     mov byte [bp-002h], ch                    ; 88 6e fe
    1765     jmp short 00c67h                          ; eb 08
    1766     cmp byte [bp-002h], 004h                  ; 80 7e fe 04
    1767     jnc near 00d12h                           ; 0f 83 ab 00
    1768     movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
     1775    mov byte [bp-008h], al                    ; 88 46 f8
     1776    mov byte [bp-006h], ch                    ; 88 6e fa
     1777    jmp short 00c79h                          ; eb 08
     1778    cmp byte [bp-006h], 004h                  ; 80 7e fa 04
     1779    jnc near 00d24h                           ; 0f 83 ab 00
     1780    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    17691781    sal ax, 008h                              ; c1 e0 08
    17701782    or AL, strict byte 004h                   ; 0c 04
     
    17731785    mov dx, bx                                ; 89 da
    17741786    mov ax, 0a000h                            ; b8 00 a0
    1775     call 02eebh                               ; e8 6f 22
    1776     and al, byte [bp-004h]                    ; 22 46 fc
     1787    call 02f77h                               ; e8 e9 22
     1788    and al, byte [bp-008h]                    ; 22 46 f8
    17771789    test al, al                               ; 84 c0
    1778     jbe short 00c8ch                          ; 76 09
    1779     mov cl, byte [bp-002h]                    ; 8a 4e fe
     1790    jbe short 00c9eh                          ; 76 09
     1791    mov cl, byte [bp-006h]                    ; 8a 4e fa
    17801792    mov AL, strict byte 001h                  ; b0 01
    17811793    sal al, CL                                ; d2 e0
    17821794    or ch, al                                 ; 08 c5
    1783     inc byte [bp-002h]                        ; fe 46 fe
    1784     jmp short 00c5fh                          ; eb ce
    1785     mov ax, word [bp-006h]                    ; 8b 46 fa
     1795    inc byte [bp-006h]                        ; fe 46 fa
     1796    jmp short 00c71h                          ; eb ce
     1797    mov ax, word [bp-00ah]                    ; 8b 46 f6
    17861798    shr ax, 1                                 ; d1 e8
    17871799    imul ax, ax, strict byte 00050h           ; 6b c0 50
     
    17891801    shr bx, 002h                              ; c1 eb 02
    17901802    add bx, ax                                ; 01 c3
    1791     test byte [bp-006h], 001h                 ; f6 46 fa 01
    1792     je short 00ca9h                           ; 74 03
     1803    test byte [bp-00ah], 001h                 ; f6 46 f6 01
     1804    je short 00cbbh                           ; 74 03
    17931805    add bh, 020h                              ; 80 c7 20
    17941806    mov dx, bx                                ; 89 da
    17951807    mov ax, 0b800h                            ; b8 00 b8
    1796     call 02eebh                               ; e8 3a 22
     1808    call 02f77h                               ; e8 b4 22
    17971809    movzx bx, cl                              ; 0f b6 d9
    17981810    sal bx, 003h                              ; c1 e3 03
    1799     cmp byte [bx+04832h], 002h                ; 80 bf 32 48 02
    1800     jne short 00cd9h                          ; 75 1b
     1811    cmp byte [bx+04837h], 002h                ; 80 bf 37 48 02
     1812    jne short 00cebh                          ; 75 1b
    18011813    mov cx, si                                ; 89 f1
    18021814    xor ch, ch                                ; 30 ed
     
    18101822    mov ch, al                                ; 88 c5
    18111823    and ch, 003h                              ; 80 e5 03
    1812     jmp short 00d12h                          ; eb 39
     1824    jmp short 00d24h                          ; eb 39
    18131825    mov cx, si                                ; 89 f1
    18141826    xor ch, ch                                ; 30 ed
     
    18211833    mov ch, al                                ; 88 c5
    18221834    and ch, 001h                              ; 80 e5 01
    1823     jmp short 00d12h                          ; eb 20
     1835    jmp short 00d24h                          ; eb 20
    18241836    mov dx, strict word 0004ah                ; ba 4a 00
    18251837    mov ax, strict word 00040h                ; b8 40 00
    1826     call 02f07h                               ; e8 0c 22
     1838    call 02f93h                               ; e8 86 22
    18271839    sal ax, 003h                              ; c1 e0 03
    1828     imul ax, word [bp-006h]                   ; 0f af 46 fa
     1840    imul ax, word [bp-00ah]                   ; 0f af 46 f6
    18291841    mov dx, si                                ; 89 f2
    18301842    add dx, ax                                ; 01 c2
    18311843    mov ax, 0a000h                            ; b8 00 a0
    1832     call 02eebh                               ; e8 df 21
     1844    call 02f77h                               ; e8 59 22
    18331845    mov ch, al                                ; 88 c5
    1834     jmp short 00d12h                          ; eb 02
     1846    jmp short 00d24h                          ; eb 02
    18351847    xor ch, ch                                ; 30 ed
    18361848    mov byte [ss:di], ch                      ; 36 88 2d
    1837     leave                                     ; c9
     1849    lea sp, [bp-004h]                         ; 8d 66 fc
    18381850    pop di                                    ; 5f
    18391851    pop si                                    ; 5e
    1840     retn                                      ; c3
    1841 biosfn_perform_gray_scale_summing_:          ; 0xc0d19 LB 0x88
     1852    pop bp                                    ; 5d
     1853    retn                                      ; c3
     1854biosfn_perform_gray_scale_summing_:          ; 0xc0d2e LB 0x8c
     1855    push bp                                   ; 55
     1856    mov bp, sp                                ; 89 e5
    18421857    push bx                                   ; 53
    18431858    push cx                                   ; 51
    18441859    push si                                   ; 56
    18451860    push di                                   ; 57
    1846     enter 00004h, 000h                        ; c8 04 00 00
     1861    push ax                                   ; 50
     1862    push ax                                   ; 50
    18471863    mov bx, ax                                ; 89 c3
    18481864    mov di, dx                                ; 89 d7
     
    18561872    xor si, si                                ; 31 f6
    18571873    cmp si, di                                ; 39 fe
    1858     jnc short 00d89h                          ; 73 52
     1874    jnc short 00d9fh                          ; 73 52
    18591875    mov al, bl                                ; 88 d8
    18601876    mov dx, 003c7h                            ; ba c7 03
     
    18681884    db  02ah, 0e4h
    18691885    ; sub ah, ah                                ; 2a e4
    1870     mov word [bp-004h], ax                    ; 89 46 fc
     1886    mov word [bp-00ch], ax                    ; 89 46 f4
    18711887    in AL, DX                                 ; ec
    18721888    db  02ah, 0e4h
     
    18741890    xor ch, ch                                ; 30 ed
    18751891    imul cx, cx, strict byte 0004dh           ; 6b c9 4d
    1876     mov word [bp-002h], cx                    ; 89 4e fe
    1877     movzx cx, byte [bp-004h]                  ; 0f b6 4e fc
     1892    mov word [bp-00ah], cx                    ; 89 4e f6
     1893    movzx cx, byte [bp-00ch]                  ; 0f b6 4e f4
    18781894    imul cx, cx, 00097h                       ; 69 c9 97 00
    1879     add cx, word [bp-002h]                    ; 03 4e fe
     1895    add cx, word [bp-00ah]                    ; 03 4e f6
    18801896    xor ah, ah                                ; 30 e4
    18811897    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     
    18841900    sar cx, 008h                              ; c1 f9 08
    18851901    cmp cx, strict byte 0003fh                ; 83 f9 3f
    1886     jbe short 00d77h                          ; 76 03
     1902    jbe short 00d8dh                          ; 76 03
    18871903    mov cx, strict word 0003fh                ; b9 3f 00
    18881904    mov al, bl                                ; 88 d8
     
    18961912    inc bx                                    ; 43
    18971913    inc si                                    ; 46
    1898     jmp short 00d33h                          ; eb aa
     1914    jmp short 00d49h                          ; eb aa
    18991915    mov dx, 003dah                            ; ba da 03
    19001916    in AL, DX                                 ; ec
     
    19081924    db  02ah, 0e4h
    19091925    ; sub ah, ah                                ; 2a e4
    1910     leave                                     ; c9
     1926    lea sp, [bp-008h]                         ; 8d 66 f8
    19111927    pop di                                    ; 5f
    19121928    pop si                                    ; 5e
    19131929    pop cx                                    ; 59
    19141930    pop bx                                    ; 5b
    1915     retn                                      ; c3
    1916 biosfn_set_cursor_shape_:                    ; 0xc0da1 LB 0xa1
     1931    pop bp                                    ; 5d
     1932    retn                                      ; c3
     1933biosfn_set_cursor_shape_:                    ; 0xc0dba LB 0xa4
     1934    push bp                                   ; 55
     1935    mov bp, sp                                ; 89 e5
    19171936    push bx                                   ; 53
    19181937    push cx                                   ; 51
    19191938    push si                                   ; 56
    19201939    push di                                   ; 57
    1921     push bp                                   ; 55
    1922     mov bp, sp                                ; 89 e5
    19231940    mov ch, al                                ; 88 c5
    19241941    mov cl, dl                                ; 88 d1
     
    19321949    mov dx, strict word 00060h                ; ba 60 00
    19331950    mov ax, strict word 00040h                ; b8 40 00
    1934     call 02f15h                               ; e8 4d 21
     1951    call 02fa1h                               ; e8 c0 21
    19351952    mov dx, 00089h                            ; ba 89 00
    19361953    mov ax, strict word 00040h                ; b8 40 00
    1937     call 02eebh                               ; e8 1a 21
     1954    call 02f77h                               ; e8 8d 21
    19381955    mov bl, al                                ; 88 c3
    19391956    mov dx, 00085h                            ; ba 85 00
    19401957    mov ax, strict word 00040h                ; b8 40 00
    1941     call 02f07h                               ; e8 2b 21
     1958    call 02f93h                               ; e8 9e 21
    19421959    mov dx, ax                                ; 89 c2
    19431960    test bl, 001h                             ; f6 c3 01
    1944     je short 00e1ah                           ; 74 37
     1961    je short 00e33h                           ; 74 37
    19451962    cmp ax, strict word 00008h                ; 3d 08 00
    1946     jbe short 00e1ah                          ; 76 32
     1963    jbe short 00e33h                          ; 76 32
    19471964    cmp cl, 008h                              ; 80 f9 08
    1948     jnc short 00e1ah                          ; 73 2d
     1965    jnc short 00e33h                          ; 73 2d
    19491966    cmp ch, 020h                              ; 80 fd 20
    1950     jnc short 00e1ah                          ; 73 28
     1967    jnc short 00e33h                          ; 73 28
    19511968    inc di                                    ; 47
    19521969    cmp si, di                                ; 39 fe
    1953     je short 00e00h                           ; 74 09
     1970    je short 00e19h                           ; 74 09
    19541971    imul ax, di                               ; 0f af c7
    19551972    shr ax, 003h                              ; c1 e8 03
    19561973    dec ax                                    ; 48
    1957     jmp short 00e0bh                          ; eb 0b
     1974    jmp short 00e24h                          ; eb 0b
    19581975    lea si, [di+001h]                         ; 8d 75 01
    19591976    imul ax, si                               ; 0f af c6
     
    19701987    mov dx, strict word 00063h                ; ba 63 00
    19711988    mov ax, strict word 00040h                ; b8 40 00
    1972     call 02f07h                               ; e8 e4 20
     1989    call 02f93h                               ; e8 57 21
    19731990    mov bx, ax                                ; 89 c3
    19741991    mov AL, strict byte 00ah                  ; b0 0a
     
    19852002    mov dx, si                                ; 89 f2
    19862003    out DX, AL                                ; ee
    1987     pop bp                                    ; 5d
     2004    lea sp, [bp-008h]                         ; 8d 66 f8
    19882005    pop di                                    ; 5f
    19892006    pop si                                    ; 5e
    19902007    pop cx                                    ; 59
    19912008    pop bx                                    ; 5b
    1992     retn                                      ; c3
    1993 biosfn_set_cursor_pos_:                      ; 0xc0e42 LB 0x9e
     2009    pop bp                                    ; 5d
     2010    retn                                      ; c3
     2011biosfn_set_cursor_pos_:                      ; 0xc0e5e LB 0xa2
     2012    push bp                                   ; 55
     2013    mov bp, sp                                ; 89 e5
    19942014    push bx                                   ; 53
    19952015    push cx                                   ; 51
    19962016    push si                                   ; 56
    1997     enter 00004h, 000h                        ; c8 04 00 00
    1998     mov byte [bp-002h], al                    ; 88 46 fe
     2017    push ax                                   ; 50
     2018    push ax                                   ; 50
     2019    mov byte [bp-008h], al                    ; 88 46 f8
    19992020    mov cx, dx                                ; 89 d1
    20002021    cmp AL, strict byte 007h                  ; 3c 07
    2001     jnbe near 00edbh                          ; 0f 87 87 00
     2022    jnbe near 00ef8h                          ; 0f 87 87 00
    20022023    movzx dx, al                              ; 0f b6 d0
    20032024    add dx, dx                                ; 01 d2
     
    20052026    mov bx, cx                                ; 89 cb
    20062027    mov ax, strict word 00040h                ; b8 40 00
    2007     call 02f15h                               ; e8 b1 20
     2028    call 02fa1h                               ; e8 20 21
    20082029    mov dx, strict word 00062h                ; ba 62 00
    20092030    mov ax, strict word 00040h                ; b8 40 00
    2010     call 02eebh                               ; e8 7e 20
    2011     cmp al, byte [bp-002h]                    ; 3a 46 fe
    2012     jne short 00edbh                          ; 75 69
     2031    call 02f77h                               ; e8 ed 20
     2032    cmp al, byte [bp-008h]                    ; 3a 46 f8
     2033    jne short 00ef8h                          ; 75 69
    20132034    mov dx, strict word 0004ah                ; ba 4a 00
    20142035    mov ax, strict word 00040h                ; b8 40 00
    2015     call 02f07h                               ; e8 8c 20
     2036    call 02f93h                               ; e8 fb 20
    20162037    mov bx, ax                                ; 89 c3
    20172038    mov dx, 00084h                            ; ba 84 00
    20182039    mov ax, strict word 00040h                ; b8 40 00
    2019     call 02eebh                               ; e8 65 20
     2040    call 02f77h                               ; e8 d4 20
    20202041    xor ah, ah                                ; 30 e4
    20212042    mov dx, ax                                ; 89 c2
     
    20242045    xor cl, cl                                ; 30 c9
    20252046    shr cx, 008h                              ; c1 e9 08
    2026     mov byte [bp-004h], cl                    ; 88 4e fc
     2047    mov byte [bp-00ah], cl                    ; 88 4e f6
    20272048    imul dx, bx                               ; 0f af d3
    20282049    or dl, 0ffh                               ; 80 ca ff
    2029     movzx cx, byte [bp-002h]                  ; 0f b6 4e fe
     2050    movzx cx, byte [bp-008h]                  ; 0f b6 4e f8
    20302051    inc dx                                    ; 42
    20312052    imul dx, cx                               ; 0f af d1
    20322053    mov si, ax                                ; 89 c6
    20332054    add si, dx                                ; 01 d6
    2034     movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
     2055    movzx dx, byte [bp-00ah]                  ; 0f b6 56 f6
    20352056    imul bx, dx                               ; 0f af da
    20362057    add si, bx                                ; 01 de
    20372058    mov dx, strict word 00063h                ; ba 63 00
    20382059    mov ax, strict word 00040h                ; b8 40 00
    2039     call 02f07h                               ; e8 4e 20
     2060    call 02f93h                               ; e8 bd 20
    20402061    mov bx, ax                                ; 89 c3
    20412062    mov AL, strict byte 00eh                  ; b0 0e
     
    20552076    mov dx, cx                                ; 89 ca
    20562077    out DX, AL                                ; ee
    2057     leave                                     ; c9
     2078    lea sp, [bp-006h]                         ; 8d 66 fa
    20582079    pop si                                    ; 5e
    20592080    pop cx                                    ; 59
    20602081    pop bx                                    ; 5b
    2061     retn                                      ; c3
    2062 biosfn_set_active_page_:                     ; 0xc0ee0 LB 0xd8
     2082    pop bp                                    ; 5d
     2083    retn                                      ; c3
     2084biosfn_set_active_page_:                     ; 0xc0f00 LB 0xdc
     2085    push bp                                   ; 55
     2086    mov bp, sp                                ; 89 e5
    20632087    push bx                                   ; 53
    20642088    push cx                                   ; 51
     
    20662090    push si                                   ; 56
    20672091    push di                                   ; 57
    2068     enter 00004h, 000h                        ; c8 04 00 00
     2092    push ax                                   ; 50
     2093    push ax                                   ; 50
    20692094    mov cl, al                                ; 88 c1
    20702095    cmp AL, strict byte 007h                  ; 3c 07
    2071     jnbe near 00fb1h                          ; 0f 87 c0 00
     2096    jnbe near 00fd2h                          ; 0f 87 c0 00
    20722097    mov dx, strict word 00049h                ; ba 49 00
    20732098    mov ax, strict word 00040h                ; b8 40 00
    2074     call 02eebh                               ; e8 f1 1f
     2099    call 02f77h                               ; e8 5c 20
    20752100    xor ah, ah                                ; 30 e4
    2076     call 02ec4h                               ; e8 c5 1f
     2101    call 02f50h                               ; e8 30 20
    20772102    mov ch, al                                ; 88 c5
    20782103    cmp AL, strict byte 0ffh                  ; 3c ff
    2079     je near 00fb1h                            ; 0f 84 aa 00
     2104    je near 00fd2h                            ; 0f 84 aa 00
    20802105    movzx ax, cl                              ; 0f b6 c1
    2081     lea bx, [bp-004h]                         ; 8d 5e fc
    2082     lea dx, [bp-002h]                         ; 8d 56 fe
    2083     call 00a83h                               ; e8 70 fb
     2106    lea bx, [bp-00eh]                         ; 8d 5e f2
     2107    lea dx, [bp-00ch]                         ; 8d 56 f4
     2108    call 00a88h                               ; e8 54 fb
    20842109    movzx bx, ch                              ; 0f b6 dd
    20852110    mov si, bx                                ; 89 de
    20862111    sal si, 003h                              ; c1 e6 03
    2087     cmp byte [si+04830h], 000h                ; 80 bc 30 48 00
    2088     jne short 00f62h                          ; 75 40
     2112    cmp byte [si+04835h], 000h                ; 80 bc 35 48 00
     2113    jne short 00f83h                          ; 75 40
    20892114    mov dx, strict word 0004ah                ; ba 4a 00
    20902115    mov ax, strict word 00040h                ; b8 40 00
    2091     call 02f07h                               ; e8 dc 1f
     2116    call 02f93h                               ; e8 47 20
    20922117    mov bx, ax                                ; 89 c3
    20932118    mov dx, 00084h                            ; ba 84 00
    20942119    mov ax, strict word 00040h                ; b8 40 00
    2095     call 02eebh                               ; e8 b5 1f
     2120    call 02f77h                               ; e8 20 20
    20962121    xor ah, ah                                ; 30 e4
    20972122    inc ax                                    ; 40
     
    21072132    mov dx, strict word 0004eh                ; ba 4e 00
    21082133    mov ax, strict word 00040h                ; b8 40 00
    2109     call 02f15h                               ; e8 bf 1f
     2134    call 02fa1h                               ; e8 2a 20
    21102135    or si, 000ffh                             ; 81 ce ff 00
    21112136    lea bx, [si+001h]                         ; 8d 5c 01
    21122137    imul bx, di                               ; 0f af df
    2113     jmp short 00f74h                          ; eb 12
    2114     movzx bx, byte [bx+048afh]                ; 0f b6 9f af 48
     2138    jmp short 00f95h                          ; eb 12
     2139    movzx bx, byte [bx+048b4h]                ; 0f b6 9f b4 48
    21152140    sal bx, 006h                              ; c1 e3 06
    21162141    movzx ax, cl                              ; 0f b6 c1
    2117     mov bx, word [bx+048c6h]                  ; 8b 9f c6 48
     2142    mov bx, word [bx+048cbh]                  ; 8b 9f cb 48
    21182143    imul bx, ax                               ; 0f af d8
    21192144    mov dx, strict word 00063h                ; ba 63 00
    21202145    mov ax, strict word 00040h                ; b8 40 00
    2121     call 02f07h                               ; e8 8a 1f
     2146    call 02f93h                               ; e8 f5 1f
    21222147    mov si, ax                                ; 89 c6
    21232148    mov AL, strict byte 00ch                  ; b0 0c
     
    21402165    mov dx, strict word 00062h                ; ba 62 00
    21412166    mov ax, strict word 00040h                ; b8 40 00
    2142     call 02ef9h                               ; e8 50 1f
    2143     mov dx, word [bp-004h]                    ; 8b 56 fc
    2144     mov ax, si                                ; 89 f0
    2145     call 00e42h                               ; e8 91 fe
    2146     leave                                     ; c9
     2167    call 02f85h                               ; e8 bb 1f
     2168    mov dx, word [bp-00eh]                    ; 8b 56 f2
     2169    mov ax, si                                ; 89 f0
     2170    call 00e5eh                               ; e8 8c fe
     2171    lea sp, [bp-00ah]                         ; 8d 66 f6
    21472172    pop di                                    ; 5f
    21482173    pop si                                    ; 5e
     
    21502175    pop cx                                    ; 59
    21512176    pop bx                                    ; 5b
    2152     retn                                      ; c3
    2153 biosfn_set_video_mode_:                      ; 0xc0fb8 LB 0x382
     2177    pop bp                                    ; 5d
     2178    retn                                      ; c3
     2179biosfn_set_video_mode_:                      ; 0xc0fdc LB 0x387
     2180    push bp                                   ; 55
     2181    mov bp, sp                                ; 89 e5
    21542182    push bx                                   ; 53
    21552183    push cx                                   ; 51
     
    21572185    push si                                   ; 56
    21582186    push di                                   ; 57
    2159     enter 00010h, 000h                        ; c8 10 00 00
    2160     mov byte [bp-004h], al                    ; 88 46 fc
     2187    sub sp, strict byte 00010h                ; 83 ec 10
     2188    mov byte [bp-00eh], al                    ; 88 46 f2
    21612189    and AL, strict byte 080h                  ; 24 80
    2162     mov byte [bp-006h], al                    ; 88 46 fa
    2163     call 007a4h                               ; e8 d8 f7
     2190    mov byte [bp-010h], al                    ; 88 46 f0
     2191    call 007a4h                               ; e8 b2 f7
    21642192    test ax, ax                               ; 85 c0
    2165     je short 00fdch                           ; 74 0c
     2193    je short 01002h                           ; 74 0c
    21662194    mov AL, strict byte 007h                  ; b0 07
    21672195    mov dx, 003c4h                            ; ba c4 03
     
    21702198    mov dx, 003c5h                            ; ba c5 03
    21712199    out DX, AL                                ; ee
    2172     and byte [bp-004h], 07fh                  ; 80 66 fc 7f
    2173     movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    2174     call 02ec4h                               ; e8 dd 1e
    2175     mov byte [bp-008h], al                    ; 88 46 f8
     2200    and byte [bp-00eh], 07fh                  ; 80 66 f2 7f
     2201    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
     2202    call 02f50h                               ; e8 43 1f
     2203    mov byte [bp-012h], al                    ; 88 46 ee
    21762204    cmp AL, strict byte 0ffh                  ; 3c ff
    2177     je near 01333h                            ; 0f 84 43 03
     2205    je near 01359h                            ; 0f 84 43 03
    21782206    movzx si, al                              ; 0f b6 f0
    2179     mov al, byte [si+048afh]                  ; 8a 84 af 48
    2180     mov byte [bp-002h], al                    ; 88 46 fe
     2207    mov al, byte [si+048b4h]                  ; 8a 84 b4 48
     2208    mov byte [bp-00ch], al                    ; 88 46 f4
    21812209    movzx bx, al                              ; 0f b6 d8
    21822210    sal bx, 006h                              ; c1 e3 06
    2183     movzx ax, byte [bx+048c3h]                ; 0f b6 87 c3 48
    2184     mov word [bp-00eh], ax                    ; 89 46 f2
    2185     movzx ax, byte [bx+048c4h]                ; 0f b6 87 c4 48
    2186     mov word [bp-00ch], ax                    ; 89 46 f4
    2187     movzx ax, byte [bx+048c5h]                ; 0f b6 87 c5 48
    2188     mov word [bp-00ah], ax                    ; 89 46 f6
     2211    movzx ax, byte [bx+048c8h]                ; 0f b6 87 c8 48
     2212    mov word [bp-018h], ax                    ; 89 46 e8
     2213    movzx ax, byte [bx+048c9h]                ; 0f b6 87 c9 48
     2214    mov word [bp-016h], ax                    ; 89 46 ea
     2215    movzx ax, byte [bx+048cah]                ; 0f b6 87 ca 48
     2216    mov word [bp-014h], ax                    ; 89 46 ec
    21892217    mov dx, 00087h                            ; ba 87 00
    21902218    mov ax, strict word 00040h                ; b8 40 00
    2191     call 02eebh                               ; e8 ca 1e
     2219    call 02f77h                               ; e8 30 1f
    21922220    mov dx, 00088h                            ; ba 88 00
    21932221    mov ax, strict word 00040h                ; b8 40 00
    2194     call 02eebh                               ; e8 c1 1e
     2222    call 02f77h                               ; e8 27 1f
    21952223    mov dx, 00089h                            ; ba 89 00
    21962224    mov ax, strict word 00040h                ; b8 40 00
    2197     call 02eebh                               ; e8 b8 1e
     2225    call 02f77h                               ; e8 1e 1f
    21982226    mov ah, al                                ; 88 c4
    21992227    test AL, strict byte 008h                 ; a8 08
    2200     jne near 010c5h                           ; 0f 85 8a 00
     2228    jne near 010ebh                           ; 0f 85 8a 00
    22012229    mov bx, si                                ; 89 f3
    22022230    sal bx, 003h                              ; c1 e3 03
    2203     mov al, byte [bx+04835h]                  ; 8a 87 35 48
     2231    mov al, byte [bx+0483ah]                  ; 8a 87 3a 48
    22042232    mov dx, 003c6h                            ; ba c6 03
    22052233    out DX, AL                                ; ee
     
    22072235    mov dx, 003c8h                            ; ba c8 03
    22082236    out DX, AL                                ; ee
    2209     mov bl, byte [bx+04836h]                  ; 8a 9f 36 48
     2237    mov bl, byte [bx+0483bh]                  ; 8a 9f 3b 48
    22102238    cmp bl, 001h                              ; 80 fb 01
    2211     jc short 01065h                           ; 72 0e
    2212     jbe short 0106eh                          ; 76 15
     2239    jc short 0108bh                           ; 72 0e
     2240    jbe short 01094h                          ; 76 15
    22132241    cmp bl, 003h                              ; 80 fb 03
    2214     je short 01078h                           ; 74 1a
     2242    je short 0109eh                           ; 74 1a
    22152243    cmp bl, 002h                              ; 80 fb 02
    2216     je short 01073h                           ; 74 10
    2217     jmp short 0107bh                          ; eb 16
     2244    je short 01099h                           ; 74 10
     2245    jmp short 010a1h                          ; eb 16
    22182246    test bl, bl                               ; 84 db
    2219     jne short 0107bh                          ; 75 12
    2220     mov di, 05043h                            ; bf 43 50
    2221     jmp short 0107bh                          ; eb 0d
    2222     mov di, 05103h                            ; bf 03 51
    2223     jmp short 0107bh                          ; eb 08
    2224     mov di, 051c3h                            ; bf c3 51
    2225     jmp short 0107bh                          ; eb 03
    2226     mov di, 05283h                            ; bf 83 52
     2247    jne short 010a1h                          ; 75 12
     2248    mov di, 05048h                            ; bf 48 50
     2249    jmp short 010a1h                          ; eb 0d
     2250    mov di, 05108h                            ; bf 08 51
     2251    jmp short 010a1h                          ; eb 08
     2252    mov di, 051c8h                            ; bf c8 51
     2253    jmp short 010a1h                          ; eb 03
     2254    mov di, 05288h                            ; bf 88 52
    22272255    xor bx, bx                                ; 31 db
    2228     jmp short 0108eh                          ; eb 0f
     2256    jmp short 010b4h                          ; eb 0f
    22292257    xor al, al                                ; 30 c0
    22302258    mov dx, 003c9h                            ; ba c9 03
     
    22342262    inc bx                                    ; 43
    22352263    cmp bx, 00100h                            ; 81 fb 00 01
    2236     jnc short 010b8h                          ; 73 2a
    2237     movzx si, byte [bp-008h]                  ; 0f b6 76 f8
     2264    jnc short 010deh                          ; 73 2a
     2265    movzx si, byte [bp-012h]                  ; 0f b6 76 ee
    22382266    sal si, 003h                              ; c1 e6 03
    2239     movzx si, byte [si+04836h]                ; 0f b6 b4 36 48
    2240     movzx dx, byte [si+048bfh]                ; 0f b6 94 bf 48
     2267    movzx si, byte [si+0483bh]                ; 0f b6 b4 3b 48
     2268    movzx dx, byte [si+048c4h]                ; 0f b6 94 c4 48
    22412269    cmp bx, dx                                ; 39 d3
    2242     jnbe short 0107fh                         ; 77 dc
     2270    jnbe short 010a5h                         ; 77 dc
    22432271    imul si, bx, strict byte 00003h           ; 6b f3 03
    22442272    add si, di                                ; 01 fe
     
    22502278    mov al, byte [si+002h]                    ; 8a 44 02
    22512279    out DX, AL                                ; ee
    2252     jmp short 01087h                          ; eb cf
     2280    jmp short 010adh                          ; eb cf
    22532281    test ah, 002h                             ; f6 c4 02
    2254     je short 010c5h                           ; 74 08
     2282    je short 010ebh                           ; 74 08
    22552283    mov dx, 00100h                            ; ba 00 01
    22562284    xor ax, ax                                ; 31 c0
    2257     call 00d19h                               ; e8 54 fc
     2285    call 00d2eh                               ; e8 43 fc
    22582286    mov dx, 003dah                            ; ba da 03
    22592287    in AL, DX                                 ; ec
     
    22612289    ; sub ah, ah                                ; 2a e4
    22622290    xor bx, bx                                ; 31 db
    2263     jmp short 010d4h                          ; eb 05
     2291    jmp short 010fah                          ; eb 05
    22642292    cmp bx, strict byte 00013h                ; 83 fb 13
    2265     jnbe short 010ebh                         ; 77 17
     2293    jnbe short 01111h                         ; 77 17
    22662294    mov al, bl                                ; 88 d8
    22672295    mov dx, 003c0h                            ; ba c0 03
    22682296    out DX, AL                                ; ee
    2269     movzx si, byte [bp-002h]                  ; 0f b6 76 fe
     2297    movzx si, byte [bp-00ch]                  ; 0f b6 76 f4
    22702298    sal si, 006h                              ; c1 e6 06
    22712299    add si, bx                                ; 01 de
    2272     mov al, byte [si+048e6h]                  ; 8a 84 e6 48
     2300    mov al, byte [si+048ebh]                  ; 8a 84 eb 48
    22732301    out DX, AL                                ; ee
    22742302    inc bx                                    ; 43
    2275     jmp short 010cfh                          ; eb e4
     2303    jmp short 010f5h                          ; eb e4
    22762304    mov AL, strict byte 014h                  ; b0 14
    22772305    mov dx, 003c0h                            ; ba c0 03
     
    22852313    out DX, AL                                ; ee
    22862314    mov bx, strict word 00001h                ; bb 01 00
    2287     jmp short 01108h                          ; eb 05
     2315    jmp short 0112eh                          ; eb 05
    22882316    cmp bx, strict byte 00004h                ; 83 fb 04
    2289     jnbe short 01122h                         ; 77 1a
     2317    jnbe short 01148h                         ; 77 1a
    22902318    mov al, bl                                ; 88 d8
    22912319    mov dx, 003c4h                            ; ba c4 03
    22922320    out DX, AL                                ; ee
    2293     movzx si, byte [bp-002h]                  ; 0f b6 76 fe
     2321    movzx si, byte [bp-00ch]                  ; 0f b6 76 f4
    22942322    sal si, 006h                              ; c1 e6 06
    22952323    add si, bx                                ; 01 de
    2296     mov al, byte [si+048c7h]                  ; 8a 84 c7 48
     2324    mov al, byte [si+048cch]                  ; 8a 84 cc 48
    22972325    mov dx, 003c5h                            ; ba c5 03
    22982326    out DX, AL                                ; ee
    22992327    inc bx                                    ; 43
    2300     jmp short 01103h                          ; eb e1
     2328    jmp short 01129h                          ; eb e1
    23012329    xor bx, bx                                ; 31 db
    2302     jmp short 0112bh                          ; eb 05
     2330    jmp short 01151h                          ; eb 05
    23032331    cmp bx, strict byte 00008h                ; 83 fb 08
    2304     jnbe short 01145h                         ; 77 1a
     2332    jnbe short 0116bh                         ; 77 1a
    23052333    mov al, bl                                ; 88 d8
    23062334    mov dx, 003ceh                            ; ba ce 03
    23072335    out DX, AL                                ; ee
    2308     movzx si, byte [bp-002h]                  ; 0f b6 76 fe
     2336    movzx si, byte [bp-00ch]                  ; 0f b6 76 f4
    23092337    sal si, 006h                              ; c1 e6 06
    23102338    add si, bx                                ; 01 de
    2311     mov al, byte [si+048fah]                  ; 8a 84 fa 48
     2339    mov al, byte [si+048ffh]                  ; 8a 84 ff 48
    23122340    mov dx, 003cfh                            ; ba cf 03
    23132341    out DX, AL                                ; ee
    23142342    inc bx                                    ; 43
    2315     jmp short 01126h                          ; eb e1
    2316     movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
     2343    jmp short 0114ch                          ; eb e1
     2344    movzx bx, byte [bp-012h]                  ; 0f b6 5e ee
    23172345    sal bx, 003h                              ; c1 e3 03
    2318     cmp byte [bx+04831h], 001h                ; 80 bf 31 48 01
    2319     jne short 01158h                          ; 75 05
     2346    cmp byte [bx+04836h], 001h                ; 80 bf 36 48 01
     2347    jne short 0117eh                          ; 75 05
    23202348    mov dx, 003b4h                            ; ba b4 03
    2321     jmp short 0115bh                          ; eb 03
     2349    jmp short 01181h                          ; eb 03
    23222350    mov dx, 003d4h                            ; ba d4 03
    23232351    mov si, dx                                ; 89 d6
     
    23252353    out DX, ax                                ; ef
    23262354    xor bx, bx                                ; 31 db
    2327     jmp short 0116ah                          ; eb 05
     2355    jmp short 01190h                          ; eb 05
    23282356    cmp bx, strict byte 00018h                ; 83 fb 18
    2329     jnbe short 01185h                         ; 77 1b
     2357    jnbe short 011abh                         ; 77 1b
    23302358    mov al, bl                                ; 88 d8
    23312359    mov dx, si                                ; 89 f2
    23322360    out DX, AL                                ; ee
    2333     movzx cx, byte [bp-002h]                  ; 0f b6 4e fe
     2361    movzx cx, byte [bp-00ch]                  ; 0f b6 4e f4
    23342362    sal cx, 006h                              ; c1 e1 06
    23352363    mov di, cx                                ; 89 cf
    23362364    add di, bx                                ; 01 df
    23372365    lea dx, [si+001h]                         ; 8d 54 01
    2338     mov al, byte [di+048cdh]                  ; 8a 85 cd 48
     2366    mov al, byte [di+048d2h]                  ; 8a 85 d2 48
    23392367    out DX, AL                                ; ee
    23402368    inc bx                                    ; 43
    2341     jmp short 01165h                          ; eb e0
     2369    jmp short 0118bh                          ; eb e0
    23422370    mov bx, cx                                ; 89 cb
    2343     mov al, byte [bx+048cch]                  ; 8a 87 cc 48
     2371    mov al, byte [bx+048d1h]                  ; 8a 87 d1 48
    23442372    mov dx, 003c2h                            ; ba c2 03
    23452373    out DX, AL                                ; ee
     
    23512379    db  02ah, 0e4h
    23522380    ; sub ah, ah                                ; 2a e4
    2353     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    2354     jne short 01200h                          ; 75 5f
    2355     movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
     2381    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
     2382    jne short 01226h                          ; 75 5f
     2383    movzx bx, byte [bp-012h]                  ; 0f b6 5e ee
    23562384    sal bx, 003h                              ; c1 e3 03
    2357     cmp byte [bx+04830h], 000h                ; 80 bf 30 48 00
    2358     jne short 011c2h                          ; 75 13
    2359     mov es, [bx+04833h]                       ; 8e 87 33 48
     2385    cmp byte [bx+04835h], 000h                ; 80 bf 35 48 00
     2386    jne short 011e8h                          ; 75 13
     2387    mov es, [bx+04838h]                       ; 8e 87 38 48
    23602388    mov cx, 04000h                            ; b9 00 40
    23612389    mov ax, 00720h                            ; b8 20 07
    23622390    xor di, di                                ; 31 ff
    23632391    cld                                       ; fc
    2364     jcxz 011c0h                               ; e3 02
     2392    jcxz 011e6h                               ; e3 02
    23652393    rep stosw                                 ; f3 ab
    2366     jmp short 01200h                          ; eb 3e
    2367     cmp byte [bp-004h], 00dh                  ; 80 7e fc 0d
    2368     jnc short 011dah                          ; 73 12
    2369     mov es, [bx+04833h]                       ; 8e 87 33 48
     2394    jmp short 01226h                          ; eb 3e
     2395    cmp byte [bp-00eh], 00dh                  ; 80 7e f2 0d
     2396    jnc short 01200h                          ; 73 12
     2397    mov es, [bx+04838h]                       ; 8e 87 38 48
    23702398    mov cx, 04000h                            ; b9 00 40
    23712399    xor ax, ax                                ; 31 c0
    23722400    xor di, di                                ; 31 ff
    23732401    cld                                       ; fc
    2374     jcxz 011d8h                               ; e3 02
     2402    jcxz 011feh                               ; e3 02
    23752403    rep stosw                                 ; f3 ab
    2376     jmp short 01200h                          ; eb 26
     2404    jmp short 01226h                          ; eb 26
    23772405    mov AL, strict byte 002h                  ; b0 02
    23782406    mov dx, 003c4h                            ; ba c4 03
     
    23822410    db  02ah, 0e4h
    23832411    ; sub ah, ah                                ; 2a e4
    2384     mov word [bp-010h], ax                    ; 89 46 f0
     2412    mov word [bp-01ah], ax                    ; 89 46 e6
    23852413    mov AL, strict byte 00fh                  ; b0 0f
    23862414    out DX, AL                                ; ee
    2387     mov es, [bx+04833h]                       ; 8e 87 33 48
     2415    mov es, [bx+04838h]                       ; 8e 87 38 48
    23882416    mov cx, 08000h                            ; b9 00 80
    23892417    xor ax, ax                                ; 31 c0
    23902418    xor di, di                                ; 31 ff
    23912419    cld                                       ; fc
    2392     jcxz 011fch                               ; e3 02
     2420    jcxz 01222h                               ; e3 02
    23932421    rep stosw                                 ; f3 ab
    2394     mov al, byte [bp-010h]                    ; 8a 46 f0
    2395     out DX, AL                                ; ee
    2396     movzx bx, byte [bp-004h]                  ; 0f b6 5e fc
     2422    mov al, byte [bp-01ah]                    ; 8a 46 e6
     2423    out DX, AL                                ; ee
     2424    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
    23972425    mov dx, strict word 00049h                ; ba 49 00
    23982426    mov ax, strict word 00040h                ; b8 40 00
    2399     call 02ef9h                               ; e8 ec 1c
    2400     mov bx, word [bp-00eh]                    ; 8b 5e f2
     2427    call 02f85h                               ; e8 52 1d
     2428    mov bx, word [bp-018h]                    ; 8b 5e e8
    24012429    mov dx, strict word 0004ah                ; ba 4a 00
    24022430    mov ax, strict word 00040h                ; b8 40 00
    2403     call 02f15h                               ; e8 fc 1c
    2404     movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
     2431    call 02fa1h                               ; e8 62 1d
     2432    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    24052433    sal bx, 006h                              ; c1 e3 06
    2406     mov bx, word [bx+048c6h]                  ; 8b 9f c6 48
     2434    mov bx, word [bx+048cbh]                  ; 8b 9f cb 48
    24072435    mov dx, strict word 0004ch                ; ba 4c 00
    24082436    mov ax, strict word 00040h                ; b8 40 00
    2409     call 02f15h                               ; e8 e8 1c
     2437    call 02fa1h                               ; e8 4e 1d
    24102438    mov bx, si                                ; 89 f3
    24112439    mov dx, strict word 00063h                ; ba 63 00
    24122440    mov ax, strict word 00040h                ; b8 40 00
    2413     call 02f15h                               ; e8 dd 1c
    2414     movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
     2441    call 02fa1h                               ; e8 43 1d
     2442    movzx bx, byte [bp-016h]                  ; 0f b6 5e ea
    24152443    mov dx, 00084h                            ; ba 84 00
    24162444    mov ax, strict word 00040h                ; b8 40 00
    2417     call 02ef9h                               ; e8 b4 1c
    2418     mov bx, word [bp-00ah]                    ; 8b 5e f6
     2445    call 02f85h                               ; e8 1a 1d
     2446    mov bx, word [bp-014h]                    ; 8b 5e ec
    24192447    mov dx, 00085h                            ; ba 85 00
    24202448    mov ax, strict word 00040h                ; b8 40 00
    2421     call 02f15h                               ; e8 c4 1c
    2422     mov al, byte [bp-006h]                    ; 8a 46 fa
     2449    call 02fa1h                               ; e8 2a 1d
     2450    mov al, byte [bp-010h]                    ; 8a 46 f0
    24232451    or AL, strict byte 060h                   ; 0c 60
    24242452    movzx bx, al                              ; 0f b6 d8
    24252453    mov dx, 00087h                            ; ba 87 00
    24262454    mov ax, strict word 00040h                ; b8 40 00
    2427     call 02ef9h                               ; e8 97 1c
     2455    call 02f85h                               ; e8 fd 1c
    24282456    mov bx, 000f9h                            ; bb f9 00
    24292457    mov dx, 00088h                            ; ba 88 00
    24302458    mov ax, strict word 00040h                ; b8 40 00
    2431     call 02ef9h                               ; e8 8b 1c
     2459    call 02f85h                               ; e8 f1 1c
    24322460    mov dx, 00089h                            ; ba 89 00
    24332461    mov ax, strict word 00040h                ; b8 40 00
    2434     call 02eebh                               ; e8 74 1c
     2462    call 02f77h                               ; e8 da 1c
    24352463    and AL, strict byte 07fh                  ; 24 7f
    24362464    movzx bx, al                              ; 0f b6 d8
    24372465    mov dx, 00089h                            ; ba 89 00
    24382466    mov ax, strict word 00040h                ; b8 40 00
    2439     call 02ef9h                               ; e8 74 1c
     2467    call 02f85h                               ; e8 da 1c
    24402468    mov bx, strict word 00008h                ; bb 08 00
    24412469    mov dx, 0008ah                            ; ba 8a 00
    24422470    mov ax, strict word 00040h                ; b8 40 00
    2443     call 02ef9h                               ; e8 68 1c
     2471    call 02f85h                               ; e8 ce 1c
    24442472    mov cx, ds                                ; 8c d9
    2445     mov bx, 05593h                            ; bb 93 55
     2473    mov bx, 05598h                            ; bb 98 55
    24462474    mov dx, 000a8h                            ; ba a8 00
    24472475    mov ax, strict word 00040h                ; b8 40 00
    2448     call 02f35h                               ; e8 96 1c
     2476    call 02fc1h                               ; e8 fc 1c
    24492477    xor bx, bx                                ; 31 db
    24502478    mov dx, strict word 00065h                ; ba 65 00
    24512479    mov ax, strict word 00040h                ; b8 40 00
    2452     call 02ef9h                               ; e8 4f 1c
     2480    call 02f85h                               ; e8 b5 1c
    24532481    xor bx, bx                                ; 31 db
    24542482    mov dx, strict word 00066h                ; ba 66 00
    24552483    mov ax, strict word 00040h                ; b8 40 00
    2456     call 02ef9h                               ; e8 44 1c
    2457     movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
     2484    call 02f85h                               ; e8 aa 1c
     2485    movzx bx, byte [bp-012h]                  ; 0f b6 5e ee
    24582486    sal bx, 003h                              ; c1 e3 03
    2459     cmp byte [bx+04830h], 000h                ; 80 bf 30 48 00
    2460     jne short 012cch                          ; 75 09
     2487    cmp byte [bx+04835h], 000h                ; 80 bf 35 48 00
     2488    jne short 012f2h                          ; 75 09
    24612489    mov dx, strict word 00007h                ; ba 07 00
    24622490    mov ax, strict word 00006h                ; b8 06 00
    2463     call 00da1h                               ; e8 d5 fa
     2491    call 00dbah                               ; e8 c8 fa
    24642492    xor bx, bx                                ; 31 db
    2465     jmp short 012d5h                          ; eb 05
     2493    jmp short 012fbh                          ; eb 05
    24662494    cmp bx, strict byte 00008h                ; 83 fb 08
    2467     jnc short 012e0h                          ; 73 0b
     2495    jnc short 01306h                          ; 73 0b
    24682496    movzx ax, bl                              ; 0f b6 c3
    24692497    xor dx, dx                                ; 31 d2
    2470     call 00e42h                               ; e8 65 fb
     2498    call 00e5eh                               ; e8 5b fb
    24712499    inc bx                                    ; 43
    2472     jmp short 012d0h                          ; eb f0
     2500    jmp short 012f6h                          ; eb f0
    24732501    xor ax, ax                                ; 31 c0
    2474     call 00ee0h                               ; e8 fb fb
    2475     movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
     2502    call 00f00h                               ; e8 f5 fb
     2503    movzx bx, byte [bp-012h]                  ; 0f b6 5e ee
    24762504    sal bx, 003h                              ; c1 e3 03
    2477     cmp byte [bx+04830h], 000h                ; 80 bf 30 48 00
    2478     jne short 01303h                          ; 75 10
     2505    cmp byte [bx+04835h], 000h                ; 80 bf 35 48 00
     2506    jne short 01329h                          ; 75 10
    24792507    xor bl, bl                                ; 30 db
    24802508    mov AL, strict byte 004h                  ; b0 04
     
    24852513    mov AH, strict byte 011h                  ; b4 11
    24862514    int 010h                                  ; cd 10
    2487     mov dx, 059afh                            ; ba af 59
     2515    mov dx, 059b4h                            ; ba b4 59
    24882516    mov ax, strict word 0001fh                ; b8 1f 00
    2489     call 00a00h                               ; e8 f4 f6
    2490     mov ax, word [bp-00ah]                    ; 8b 46 f6
     2517    call 00a00h                               ; e8 ce f6
     2518    mov ax, word [bp-014h]                    ; 8b 46 ec
    24912519    cmp ax, strict word 00010h                ; 3d 10 00
    2492     je short 0132eh                           ; 74 1a
     2520    je short 01354h                           ; 74 1a
    24932521    cmp ax, strict word 0000eh                ; 3d 0e 00
    2494     je short 01329h                           ; 74 10
     2522    je short 0134fh                           ; 74 10
    24952523    cmp ax, strict word 00008h                ; 3d 08 00
    2496     jne short 01333h                          ; 75 15
    2497     mov dx, 055afh                            ; ba af 55
     2524    jne short 01359h                          ; 75 15
     2525    mov dx, 055b4h                            ; ba b4 55
    24982526    mov ax, strict word 00043h                ; b8 43 00
    2499     call 00a00h                               ; e8 d9 f6
    2500     jmp short 01333h                          ; eb 0a
    2501     mov dx, 05dafh                            ; ba af 5d
    2502     jmp short 01321h                          ; eb f3
    2503     mov dx, 06bafh                            ; ba af 6b
    2504     jmp short 01321h                          ; eb ee
    2505     leave                                     ; c9
     2527    call 00a00h                               ; e8 b3 f6
     2528    jmp short 01359h                          ; eb 0a
     2529    mov dx, 05db4h                            ; ba b4 5d
     2530    jmp short 01347h                          ; eb f3
     2531    mov dx, 06bb4h                            ; ba b4 6b
     2532    jmp short 01347h                          ; eb ee
     2533    lea sp, [bp-00ah]                         ; 8d 66 f6
    25062534    pop di                                    ; 5f
    25072535    pop si                                    ; 5e
     
    25092537    pop cx                                    ; 59
    25102538    pop bx                                    ; 5b
    2511     retn                                      ; c3
    2512 vgamem_copy_pl4_:                            ; 0xc133a LB 0x72
     2539    pop bp                                    ; 5d
     2540    retn                                      ; c3
     2541vgamem_copy_pl4_:                            ; 0xc1363 LB 0x76
     2542    push bp                                   ; 55
     2543    mov bp, sp                                ; 89 e5
    25132544    push si                                   ; 56
    25142545    push di                                   ; 57
    2515     enter 00004h, 000h                        ; c8 04 00 00
     2546    push ax                                   ; 50
     2547    push ax                                   ; 50
    25162548    mov bh, cl                                ; 88 cf
    25172549    movzx di, dl                              ; 0f b6 fa
    2518     movzx cx, byte [bp+00ah]                  ; 0f b6 4e 0a
     2550    movzx cx, byte [bp+006h]                  ; 0f b6 4e 06
    25192551    imul di, cx                               ; 0f af f9
    2520     movzx si, byte [bp+008h]                  ; 0f b6 76 08
     2552    movzx si, byte [bp+004h]                  ; 0f b6 76 04
    25212553    imul di, si                               ; 0f af fe
    25222554    xor ah, ah                                ; 30 e4
    25232555    add di, ax                                ; 01 c7
    2524     mov word [bp-004h], di                    ; 89 7e fc
     2556    mov word [bp-008h], di                    ; 89 7e f8
    25252557    movzx di, bl                              ; 0f b6 fb
    25262558    imul cx, di                               ; 0f af cf
    25272559    imul cx, si                               ; 0f af ce
    25282560    add cx, ax                                ; 01 c1
    2529     mov word [bp-002h], cx                    ; 89 4e fe
     2561    mov word [bp-006h], cx                    ; 89 4e fa
    25302562    mov ax, 00105h                            ; b8 05 01
    25312563    mov dx, 003ceh                            ; ba ce 03
    25322564    out DX, ax                                ; ef
    25332565    xor bl, bl                                ; 30 db
    2534     cmp bl, byte [bp+00ah]                    ; 3a 5e 0a
    2535     jnc short 0139fh                          ; 73 29
     2566    cmp bl, byte [bp+006h]                    ; 3a 5e 06
     2567    jnc short 013c9h                          ; 73 29
    25362568    movzx cx, bh                              ; 0f b6 cf
    25372569    movzx si, bl                              ; 0f b6 f3
    2538     movzx ax, byte [bp+008h]                  ; 0f b6 46 08
     2570    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    25392571    imul ax, si                               ; 0f af c6
    2540     mov si, word [bp-004h]                    ; 8b 76 fc
     2572    mov si, word [bp-008h]                    ; 8b 76 f8
    25412573    add si, ax                                ; 01 c6
    2542     mov di, word [bp-002h]                    ; 8b 7e fe
     2574    mov di, word [bp-006h]                    ; 8b 7e fa
    25432575    add di, ax                                ; 01 c7
    25442576    mov dx, 0a000h                            ; ba 00 a0
    25452577    mov es, dx                                ; 8e c2
    25462578    cld                                       ; fc
    2547     jcxz 0139bh                               ; e3 06
     2579    jcxz 013c5h                               ; e3 06
    25482580    push DS                                   ; 1e
    25492581    mov ds, dx                                ; 8e da
     
    25522584    db  0feh, 0c3h
    25532585    ; inc bl                                    ; fe c3
    2554     jmp short 01371h                          ; eb d2
     2586    jmp short 0139bh                          ; eb d2
    25552587    mov ax, strict word 00005h                ; b8 05 00
    25562588    mov dx, 003ceh                            ; ba ce 03
    25572589    out DX, ax                                ; ef
    2558     leave                                     ; c9
     2590    lea sp, [bp-004h]                         ; 8d 66 fc
    25592591    pop di                                    ; 5f
    25602592    pop si                                    ; 5e
     2593    pop bp                                    ; 5d
    25612594    retn 00004h                               ; c2 04 00
    2562 vgamem_fill_pl4_:                            ; 0xc13ac LB 0x5d
     2595vgamem_fill_pl4_:                            ; 0xc13d9 LB 0x61
     2596    push bp                                   ; 55
     2597    mov bp, sp                                ; 89 e5
    25632598    push di                                   ; 57
    2564     enter 00004h, 000h                        ; c8 04 00 00
    2565     mov byte [bp-002h], bl                    ; 88 5e fe
     2599    push ax                                   ; 50
     2600    push ax                                   ; 50
     2601    mov byte [bp-004h], bl                    ; 88 5e fc
    25662602    mov bh, cl                                ; 88 cf
    25672603    movzx cx, dl                              ; 0f b6 ca
    2568     movzx dx, byte [bp+006h]                  ; 0f b6 56 06
     2604    movzx dx, byte [bp+004h]                  ; 0f b6 56 04
    25692605    imul cx, dx                               ; 0f af ca
    25702606    movzx dx, bh                              ; 0f b6 d7
     
    25722608    xor ah, ah                                ; 30 e4
    25732609    add dx, ax                                ; 01 c2
    2574     mov word [bp-004h], dx                    ; 89 56 fc
     2610    mov word [bp-006h], dx                    ; 89 56 fa
    25752611    mov ax, 00205h                            ; b8 05 02
    25762612    mov dx, 003ceh                            ; ba ce 03
    25772613    out DX, ax                                ; ef
    25782614    xor bl, bl                                ; 30 db
    2579     cmp bl, byte [bp+006h]                    ; 3a 5e 06
    2580     jnc short 013fdh                          ; 73 22
    2581     movzx cx, byte [bp-002h]                  ; 0f b6 4e fe
    2582     movzx ax, byte [bp+008h]                  ; 0f b6 46 08
     2615    cmp bl, byte [bp+004h]                    ; 3a 5e 04
     2616    jnc short 0142bh                          ; 73 22
     2617    movzx cx, byte [bp-004h]                  ; 0f b6 4e fc
     2618    movzx ax, byte [bp+006h]                  ; 0f b6 46 06
    25832619    movzx dx, bl                              ; 0f b6 d3
    25842620    movzx di, bh                              ; 0f b6 ff
    25852621    imul di, dx                               ; 0f af fa
    2586     add di, word [bp-004h]                    ; 03 7e fc
     2622    add di, word [bp-006h]                    ; 03 7e fa
    25872623    mov dx, 0a000h                            ; ba 00 a0
    25882624    mov es, dx                                ; 8e c2
    25892625    cld                                       ; fc
    2590     jcxz 013f9h                               ; e3 02
     2626    jcxz 01427h                               ; e3 02
    25912627    rep stosb                                 ; f3 aa
    25922628    db  0feh, 0c3h
    25932629    ; inc bl                                    ; fe c3
    2594     jmp short 013d6h                          ; eb d9
     2630    jmp short 01404h                          ; eb d9
    25952631    mov ax, strict word 00005h                ; b8 05 00
    25962632    mov dx, 003ceh                            ; ba ce 03
    25972633    out DX, ax                                ; ef
    2598     leave                                     ; c9
     2634    lea sp, [bp-002h]                         ; 8d 66 fe
    25992635    pop di                                    ; 5f
     2636    pop bp                                    ; 5d
    26002637    retn 00004h                               ; c2 04 00
    2601 vgamem_copy_cga_:                            ; 0xc1409 LB 0xa0
     2638vgamem_copy_cga_:                            ; 0xc143a LB 0xa4
     2639    push bp                                   ; 55
     2640    mov bp, sp                                ; 89 e5
    26022641    push si                                   ; 56
    26032642    push di                                   ; 57
    2604     enter 00004h, 000h                        ; c8 04 00 00
     2643    push ax                                   ; 50
     2644    push ax                                   ; 50
    26052645    mov bh, cl                                ; 88 cf
    26062646    movzx di, dl                              ; 0f b6 fa
    2607     movzx cx, byte [bp+00ah]                  ; 0f b6 4e 0a
     2647    movzx cx, byte [bp+006h]                  ; 0f b6 4e 06
    26082648    imul di, cx                               ; 0f af f9
    2609     movzx si, byte [bp+008h]                  ; 0f b6 76 08
     2649    movzx si, byte [bp+004h]                  ; 0f b6 76 04
    26102650    imul di, si                               ; 0f af fe
    26112651    sar di, 1                                 ; d1 ff
    26122652    xor ah, ah                                ; 30 e4
    26132653    add di, ax                                ; 01 c7
    2614     mov word [bp-002h], di                    ; 89 7e fe
     2654    mov word [bp-006h], di                    ; 89 7e fa
    26152655    movzx di, bl                              ; 0f b6 fb
    26162656    imul cx, di                               ; 0f af cf
     
    26182658    sar si, 1                                 ; d1 fe
    26192659    add si, ax                                ; 01 c6
    2620     mov word [bp-004h], si                    ; 89 76 fc
     2660    mov word [bp-008h], si                    ; 89 76 f8
    26212661    xor bl, bl                                ; 30 db
    2622     cmp bl, byte [bp+00ah]                    ; 3a 5e 0a
    2623     jnc short 014a3h                          ; 73 61
     2662    cmp bl, byte [bp+006h]                    ; 3a 5e 06
     2663    jnc short 014d5h                          ; 73 61
    26242664    test bl, 001h                             ; f6 c3 01
    2625     je short 01478h                           ; 74 31
     2665    je short 014aah                           ; 74 31
    26262666    movzx cx, bh                              ; 0f b6 cf
    26272667    movzx si, bl                              ; 0f b6 f3
    26282668    sar si, 1                                 ; d1 fe
    2629     movzx ax, byte [bp+008h]                  ; 0f b6 46 08
     2669    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    26302670    imul ax, si                               ; 0f af c6
    2631     mov si, word [bp-002h]                    ; 8b 76 fe
     2671    mov si, word [bp-006h]                    ; 8b 76 fa
    26322672    add si, 02000h                            ; 81 c6 00 20
    26332673    add si, ax                                ; 01 c6
    2634     mov di, word [bp-004h]                    ; 8b 7e fc
     2674    mov di, word [bp-008h]                    ; 8b 7e f8
    26352675    add di, 02000h                            ; 81 c7 00 20
    26362676    add di, ax                                ; 01 c7
     
    26382678    mov es, dx                                ; 8e c2
    26392679    cld                                       ; fc
    2640     jcxz 01476h                               ; e3 06
     2680    jcxz 014a8h                               ; e3 06
    26412681    push DS                                   ; 1e
    26422682    mov ds, dx                                ; 8e da
    26432683    rep movsb                                 ; f3 a4
    26442684    pop DS                                    ; 1f
    2645     jmp short 0149fh                          ; eb 27
     2685    jmp short 014d1h                          ; eb 27
    26462686    movzx cx, bh                              ; 0f b6 cf
    26472687    movzx ax, bl                              ; 0f b6 c3
    26482688    sar ax, 1                                 ; d1 f8
    2649     movzx si, byte [bp+008h]                  ; 0f b6 76 08
     2689    movzx si, byte [bp+004h]                  ; 0f b6 76 04
    26502690    imul ax, si                               ; 0f af c6
    2651     mov si, word [bp-002h]                    ; 8b 76 fe
     2691    mov si, word [bp-006h]                    ; 8b 76 fa
    26522692    add si, ax                                ; 01 c6
    2653     mov di, word [bp-004h]                    ; 8b 7e fc
     2693    mov di, word [bp-008h]                    ; 8b 7e f8
    26542694    add di, ax                                ; 01 c7
    26552695    mov dx, 0b800h                            ; ba 00 b8
    26562696    mov es, dx                                ; 8e c2
    26572697    cld                                       ; fc
    2658     jcxz 0149fh                               ; e3 06
     2698    jcxz 014d1h                               ; e3 06
    26592699    push DS                                   ; 1e
    26602700    mov ds, dx                                ; 8e da
     
    26632703    db  0feh, 0c3h
    26642704    ; inc bl                                    ; fe c3
    2665     jmp short 0143dh                          ; eb 9a
    2666     leave                                     ; c9
     2705    jmp short 0146fh                          ; eb 9a
     2706    lea sp, [bp-004h]                         ; 8d 66 fc
    26672707    pop di                                    ; 5f
    26682708    pop si                                    ; 5e
     2709    pop bp                                    ; 5d
    26692710    retn 00004h                               ; c2 04 00
    2670 vgamem_fill_cga_:                            ; 0xc14a9 LB 0x86
     2711vgamem_fill_cga_:                            ; 0xc14de LB 0x8a
     2712    push bp                                   ; 55
     2713    mov bp, sp                                ; 89 e5
    26712714    push si                                   ; 56
    26722715    push di                                   ; 57
    2673     enter 00004h, 000h                        ; c8 04 00 00
    2674     mov byte [bp-002h], bl                    ; 88 5e fe
     2716    push ax                                   ; 50
     2717    push ax                                   ; 50
     2718    mov byte [bp-006h], bl                    ; 88 5e fa
    26752719    mov bh, cl                                ; 88 cf
    26762720    movzx cx, dl                              ; 0f b6 ca
    2677     movzx dx, byte [bp+008h]                  ; 0f b6 56 08
     2721    movzx dx, byte [bp+004h]                  ; 0f b6 56 04
    26782722    imul dx, cx                               ; 0f af d1
    26792723    movzx cx, bh                              ; 0f b6 cf
     
    26832727    add si, dx                                ; 01 d6
    26842728    xor bl, bl                                ; 30 db
    2685     cmp bl, byte [bp+008h]                    ; 3a 5e 08
    2686     jnc short 01529h                          ; 73 57
     2729    cmp bl, byte [bp+004h]                    ; 3a 5e 04
     2730    jnc short 0155fh                          ; 73 57
    26872731    test bl, 001h                             ; f6 c3 01
    2688     je short 01506h                           ; 74 2f
    2689     movzx cx, byte [bp-002h]                  ; 0f b6 4e fe
    2690     movzx ax, byte [bp+00ah]                  ; 0f b6 46 0a
     2732    je short 0153ch                           ; 74 2f
     2733    movzx cx, byte [bp-006h]                  ; 0f b6 4e fa
     2734    movzx ax, byte [bp+006h]                  ; 0f b6 46 06
    26912735    movzx dx, bl                              ; 0f b6 d3
    26922736    sar dx, 1                                 ; d1 fa
    2693     mov word [bp-004h], dx                    ; 89 56 fc
     2737    mov word [bp-008h], dx                    ; 89 56 f8
    26942738    movzx dx, bh                              ; 0f b6 d7
    2695     mov di, word [bp-004h]                    ; 8b 7e fc
     2739    mov di, word [bp-008h]                    ; 8b 7e f8
    26962740    imul di, dx                               ; 0f af fa
    2697     mov word [bp-004h], di                    ; 89 7e fc
     2741    mov word [bp-008h], di                    ; 89 7e f8
    26982742    lea di, [si+02000h]                       ; 8d bc 00 20
    2699     add di, word [bp-004h]                    ; 03 7e fc
     2743    add di, word [bp-008h]                    ; 03 7e f8
    27002744    mov dx, 0b800h                            ; ba 00 b8
    27012745    mov es, dx                                ; 8e c2
    27022746    cld                                       ; fc
    2703     jcxz 01504h                               ; e3 02
     2747    jcxz 0153ah                               ; e3 02
    27042748    rep stosb                                 ; f3 aa
    2705     jmp short 01525h                          ; eb 1f
    2706     movzx cx, byte [bp-002h]                  ; 0f b6 4e fe
    2707     movzx ax, byte [bp+00ah]                  ; 0f b6 46 0a
     2749    jmp short 0155bh                          ; eb 1f
     2750    movzx cx, byte [bp-006h]                  ; 0f b6 4e fa
     2751    movzx ax, byte [bp+006h]                  ; 0f b6 46 06
    27082752    movzx di, bl                              ; 0f b6 fb
    27092753    sar di, 1                                 ; d1 ff
     
    27142758    mov es, dx                                ; 8e c2
    27152759    cld                                       ; fc
    2716     jcxz 01525h                               ; e3 02
     2760    jcxz 0155bh                               ; e3 02
    27172761    rep stosb                                 ; f3 aa
    27182762    db  0feh, 0c3h
    27192763    ; inc bl                                    ; fe c3
    2720     jmp short 014cdh                          ; eb a4
    2721     leave                                     ; c9
     2764    jmp short 01503h                          ; eb a4
     2765    lea sp, [bp-004h]                         ; 8d 66 fc
    27222766    pop di                                    ; 5f
    27232767    pop si                                    ; 5e
     2768    pop bp                                    ; 5d
    27242769    retn 00004h                               ; c2 04 00
    2725 biosfn_scroll_:                              ; 0xc152f LB 0x501
     2770biosfn_scroll_:                              ; 0xc1568 LB 0x506
     2771    push bp                                   ; 55
     2772    mov bp, sp                                ; 89 e5
    27262773    push si                                   ; 56
    27272774    push di                                   ; 57
    2728     enter 00018h, 000h                        ; c8 18 00 00
    2729     mov byte [bp-00ch], al                    ; 88 46 f4
    2730     mov byte [bp-008h], dl                    ; 88 56 f8
    2731     mov byte [bp-004h], bl                    ; 88 5e fc
    2732     mov byte [bp-002h], cl                    ; 88 4e fe
    2733     cmp bl, byte [bp+008h]                    ; 3a 5e 08
    2734     jnbe near 01a2ah                          ; 0f 87 e2 04
    2735     cmp cl, byte [bp+00ah]                    ; 3a 4e 0a
    2736     jnbe near 01a2ah                          ; 0f 87 db 04
     2775    sub sp, strict byte 00018h                ; 83 ec 18
     2776    mov byte [bp-010h], al                    ; 88 46 f0
     2777    mov byte [bp-00ch], dl                    ; 88 56 f4
     2778    mov byte [bp-008h], bl                    ; 88 5e f8
     2779    mov byte [bp-006h], cl                    ; 88 4e fa
     2780    cmp bl, byte [bp+004h]                    ; 3a 5e 04
     2781    jnbe near 01a65h                          ; 0f 87 e2 04
     2782    cmp cl, byte [bp+006h]                    ; 3a 4e 06
     2783    jnbe near 01a65h                          ; 0f 87 db 04
    27372784    mov dx, strict word 00049h                ; ba 49 00
    27382785    mov ax, strict word 00040h                ; b8 40 00
    2739     call 02eebh                               ; e8 93 19
     2786    call 02f77h                               ; e8 e4 19
    27402787    xor ah, ah                                ; 30 e4
    2741     call 02ec4h                               ; e8 67 19
    2742     mov byte [bp-00ah], al                    ; 88 46 f6
     2788    call 02f50h                               ; e8 b8 19
     2789    mov byte [bp-00eh], al                    ; 88 46 f2
    27432790    cmp AL, strict byte 0ffh                  ; 3c ff
    2744     je near 01a2ah                            ; 0f 84 c4 04
     2791    je near 01a65h                            ; 0f 84 c4 04
    27452792    mov dx, 00084h                            ; ba 84 00
    27462793    mov ax, strict word 00040h                ; b8 40 00
    2747     call 02eebh                               ; e8 7c 19
     2794    call 02f77h                               ; e8 cd 19
    27482795    movzx cx, al                              ; 0f b6 c8
    27492796    inc cx                                    ; 41
    27502797    mov dx, strict word 0004ah                ; ba 4a 00
    27512798    mov ax, strict word 00040h                ; b8 40 00
    2752     call 02f07h                               ; e8 8b 19
    2753     mov word [bp-012h], ax                    ; 89 46 ee
    2754     cmp byte [bp+00ch], 0ffh                  ; 80 7e 0c ff
    2755     jne short 01591h                          ; 75 0c
     2799    call 02f93h                               ; e8 dc 19
     2800    mov word [bp-016h], ax                    ; 89 46 ea
     2801    cmp byte [bp+008h], 0ffh                  ; 80 7e 08 ff
     2802    jne short 015cch                          ; 75 0c
    27562803    mov dx, strict word 00062h                ; ba 62 00
    27572804    mov ax, strict word 00040h                ; b8 40 00
    2758     call 02eebh                               ; e8 5d 19
    2759     mov byte [bp+00ch], al                    ; 88 46 0c
    2760     movzx ax, byte [bp+008h]                  ; 0f b6 46 08
     2805    call 02f77h                               ; e8 ae 19
     2806    mov byte [bp+008h], al                    ; 88 46 08
     2807    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    27612808    cmp ax, cx                                ; 39 c8
    2762     jc short 015a0h                           ; 72 07
     2809    jc short 015dbh                           ; 72 07
    27632810    mov al, cl                                ; 88 c8
    27642811    db  0feh, 0c8h
    27652812    ; dec al                                    ; fe c8
    2766     mov byte [bp+008h], al                    ; 88 46 08
    2767     movzx ax, byte [bp+00ah]                  ; 0f b6 46 0a
    2768     cmp ax, word [bp-012h]                    ; 3b 46 ee
    2769     jc short 015b1h                           ; 72 08
    2770     mov al, byte [bp-012h]                    ; 8a 46 ee
     2813    mov byte [bp+004h], al                    ; 88 46 04
     2814    movzx ax, byte [bp+006h]                  ; 0f b6 46 06
     2815    cmp ax, word [bp-016h]                    ; 3b 46 ea
     2816    jc short 015ech                           ; 72 08
     2817    mov al, byte [bp-016h]                    ; 8a 46 ea
    27712818    db  0feh, 0c8h
    27722819    ; dec al                                    ; fe c8
    2773     mov byte [bp+00ah], al                    ; 88 46 0a
    2774     movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     2820    mov byte [bp+006h], al                    ; 88 46 06
     2821    movzx ax, byte [bp-010h]                  ; 0f b6 46 f0
    27752822    cmp ax, cx                                ; 39 c8
    2776     jbe short 015bdh                          ; 76 04
    2777     mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    2778     mov al, byte [bp+00ah]                    ; 8a 46 0a
    2779     sub al, byte [bp-002h]                    ; 2a 46 fe
     2823    jbe short 015f8h                          ; 76 04
     2824    mov byte [bp-010h], 000h                  ; c6 46 f0 00
     2825    mov al, byte [bp+006h]                    ; 8a 46 06
     2826    sub al, byte [bp-006h]                    ; 2a 46 fa
    27802827    db  0feh, 0c0h
    27812828    ; inc al                                    ; fe c0
    2782     mov byte [bp-00eh], al                    ; 88 46 f2
    2783     movzx si, byte [bp-00ah]                  ; 0f b6 76 f6
     2829    mov byte [bp-012h], al                    ; 88 46 ee
     2830    movzx si, byte [bp-00eh]                  ; 0f b6 76 f2
    27842831    mov di, si                                ; 89 f7
    27852832    sal di, 003h                              ; c1 e7 03
    2786     mov ax, word [bp-012h]                    ; 8b 46 ee
     2833    mov ax, word [bp-016h]                    ; 8b 46 ea
    27872834    dec ax                                    ; 48
    2788     mov word [bp-014h], ax                    ; 89 46 ec
     2835    mov word [bp-018h], ax                    ; 89 46 e8
    27892836    mov ax, cx                                ; 89 c8
    27902837    dec ax                                    ; 48
    2791     mov word [bp-016h], ax                    ; 89 46 ea
    2792     mov ax, word [bp-012h]                    ; 8b 46 ee
     2838    mov word [bp-01ah], ax                    ; 89 46 e6
     2839    mov ax, word [bp-016h]                    ; 8b 46 ea
    27932840    imul ax, cx                               ; 0f af c1
    2794     cmp byte [di+04830h], 000h                ; 80 bd 30 48 00
    2795     jne near 0178ch                           ; 0f 85 9f 01
     2841    cmp byte [di+04835h], 000h                ; 80 bd 35 48 00
     2842    jne near 017c7h                           ; 0f 85 9f 01
    27962843    mov dx, ax                                ; 89 c2
    27972844    add dx, ax                                ; 01 c2
    27982845    or dl, 0ffh                               ; 80 ca ff
    2799     movzx bx, byte [bp+00ch]                  ; 0f b6 5e 0c
     2846    movzx bx, byte [bp+008h]                  ; 0f b6 5e 08
    28002847    inc dx                                    ; 42
    28012848    imul bx, dx                               ; 0f af da
    2802     cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    2803     jne short 0163ch                          ; 75 3a
    2804     cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    2805     jne short 0163ch                          ; 75 34
    2806     cmp byte [bp-002h], 000h                  ; 80 7e fe 00
    2807     jne short 0163ch                          ; 75 2e
    2808     movzx dx, byte [bp+008h]                  ; 0f b6 56 08
    2809     cmp dx, word [bp-016h]                    ; 3b 56 ea
    2810     jne short 0163ch                          ; 75 25
    2811     movzx dx, byte [bp+00ah]                  ; 0f b6 56 0a
    2812     cmp dx, word [bp-014h]                    ; 3b 56 ec
    2813     jne short 0163ch                          ; 75 1c
    2814     movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
     2849    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
     2850    jne short 01677h                          ; 75 3a
     2851    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
     2852    jne short 01677h                          ; 75 34
     2853    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
     2854    jne short 01677h                          ; 75 2e
     2855    movzx dx, byte [bp+004h]                  ; 0f b6 56 04
     2856    cmp dx, word [bp-01ah]                    ; 3b 56 e6
     2857    jne short 01677h                          ; 75 25
     2858    movzx dx, byte [bp+006h]                  ; 0f b6 56 06
     2859    cmp dx, word [bp-018h]                    ; 3b 56 e8
     2860    jne short 01677h                          ; 75 1c
     2861    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
    28152862    sal dx, 008h                              ; c1 e2 08
    28162863    add dx, strict byte 00020h                ; 83 c2 20
    2817     mov es, [di+04833h]                       ; 8e 85 33 48
     2864    mov es, [di+04838h]                       ; 8e 85 38 48
    28182865    mov cx, ax                                ; 89 c1
    28192866    mov ax, dx                                ; 89 d0
    28202867    mov di, bx                                ; 89 df
    28212868    cld                                       ; fc
    2822     jcxz 01639h                               ; e3 02
     2869    jcxz 01674h                               ; e3 02
    28232870    rep stosw                                 ; f3 ab
    2824     jmp near 01a2ah                           ; e9 ee 03
    2825     cmp byte [bp+00eh], 001h                  ; 80 7e 0e 01
    2826     jne near 016e1h                           ; 0f 85 9d 00
    2827     movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    2828     mov word [bp-010h], ax                    ; 89 46 f0
    2829     movzx dx, byte [bp+008h]                  ; 0f b6 56 08
    2830     cmp dx, word [bp-010h]                    ; 3b 56 f0
    2831     jc near 01a2ah                            ; 0f 82 d4 03
     2871    jmp near 01a65h                           ; e9 ee 03
     2872    cmp byte [bp+00ah], 001h                  ; 80 7e 0a 01
     2873    jne near 0171ch                           ; 0f 85 9d 00
     2874    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
     2875    mov word [bp-014h], ax                    ; 89 46 ec
     2876    movzx dx, byte [bp+004h]                  ; 0f b6 56 04
     2877    cmp dx, word [bp-014h]                    ; 3b 56 ec
     2878    jc near 01a65h                            ; 0f 82 d4 03
     2879    movzx ax, byte [bp-010h]                  ; 0f b6 46 f0
     2880    add ax, word [bp-014h]                    ; 03 46 ec
     2881    cmp ax, dx                                ; 39 d0
     2882    jnbe short 016a2h                         ; 77 06
     2883    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
     2884    jne short 016d5h                          ; 75 33
     2885    movzx cx, byte [bp-012h]                  ; 0f b6 4e ee
    28322886    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    2833     add ax, word [bp-010h]                    ; 03 46 f0
    2834     cmp ax, dx                                ; 39 d0
    2835     jnbe short 01667h                         ; 77 06
    2836     cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    2837     jne short 0169ah                          ; 75 33
    2838     movzx cx, byte [bp-00eh]                  ; 0f b6 4e f2
    2839     movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    28402887    sal ax, 008h                              ; c1 e0 08
    28412888    add ax, strict word 00020h                ; 05 20 00
    2842     mov si, word [bp-010h]                    ; 8b 76 f0
    2843     imul si, word [bp-012h]                   ; 0f af 76 ee
    2844     movzx dx, byte [bp-002h]                  ; 0f b6 56 fe
     2889    mov si, word [bp-014h]                    ; 8b 76 ec
     2890    imul si, word [bp-016h]                   ; 0f af 76 ea
     2891    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
    28452892    add dx, si                                ; 01 f2
    28462893    add dx, dx                                ; 01 d2
    28472894    mov di, bx                                ; 89 df
    28482895    add di, dx                                ; 01 d7
    2849     movzx si, byte [bp-00ah]                  ; 0f b6 76 f6
     2896    movzx si, byte [bp-00eh]                  ; 0f b6 76 f2
    28502897    sal si, 003h                              ; c1 e6 03
    2851     mov es, [si+04833h]                       ; 8e 84 33 48
     2898    mov es, [si+04838h]                       ; 8e 84 38 48
    28522899    cld                                       ; fc
    2853     jcxz 01698h                               ; e3 02
     2900    jcxz 016d3h                               ; e3 02
    28542901    rep stosw                                 ; f3 ab
    2855     jmp short 016dbh                          ; eb 41
    2856     movzx dx, byte [bp-00eh]                  ; 0f b6 56 f2
    2857     mov word [bp-018h], dx                    ; 89 56 e8
     2902    jmp short 01716h                          ; eb 41
     2903    movzx dx, byte [bp-012h]                  ; 0f b6 56 ee
     2904    mov word [bp-01ch], dx                    ; 89 56 e4
    28582905    mov dx, ax                                ; 89 c2
    2859     imul dx, word [bp-012h]                   ; 0f af 56 ee
    2860     movzx cx, byte [bp-002h]                  ; 0f b6 4e fe
     2906    imul dx, word [bp-016h]                   ; 0f af 56 ea
     2907    movzx cx, byte [bp-006h]                  ; 0f b6 4e fa
    28612908    add dx, cx                                ; 01 ca
    28622909    add dx, dx                                ; 01 d2
    2863     movzx si, byte [bp-00ah]                  ; 0f b6 76 f6
     2910    movzx si, byte [bp-00eh]                  ; 0f b6 76 f2
    28642911    sal si, 003h                              ; c1 e6 03
    2865     mov ax, word [si+04833h]                  ; 8b 84 33 48
    2866     mov si, word [bp-010h]                    ; 8b 76 f0
    2867     imul si, word [bp-012h]                   ; 0f af 76 ee
     2912    mov ax, word [si+04838h]                  ; 8b 84 38 48
     2913    mov si, word [bp-014h]                    ; 8b 76 ec
     2914    imul si, word [bp-016h]                   ; 0f af 76 ea
    28682915    add cx, si                                ; 01 f1
    28692916    add cx, cx                                ; 01 c9
    28702917    mov di, bx                                ; 89 df
    28712918    add di, cx                                ; 01 cf
    2872     mov cx, word [bp-018h]                    ; 8b 4e e8
     2919    mov cx, word [bp-01ch]                    ; 8b 4e e4
    28732920    mov si, dx                                ; 89 d6
    28742921    mov dx, ax                                ; 89 c2
    28752922    mov es, ax                                ; 8e c0
    28762923    cld                                       ; fc
    2877     jcxz 016dbh                               ; e3 06
     2924    jcxz 01716h                               ; e3 06
    28782925    push DS                                   ; 1e
    28792926    mov ds, dx                                ; 8e da
    28802927    rep movsw                                 ; f3 a5
    28812928    pop DS                                    ; 1f
    2882     inc word [bp-010h]                        ; ff 46 f0
    2883     jmp near 0164bh                           ; e9 6a ff
    2884     movzx ax, byte [bp+008h]                  ; 0f b6 46 08
    2885     mov word [bp-010h], ax                    ; 89 46 f0
    2886     movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    2887     cmp ax, word [bp-010h]                    ; 3b 46 f0
    2888     jnbe near 01a2ah                          ; 0f 87 37 03
    2889     movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
     2929    inc word [bp-014h]                        ; ff 46 ec
     2930    jmp near 01686h                           ; e9 6a ff
     2931    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
     2932    mov word [bp-014h], ax                    ; 89 46 ec
     2933    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
     2934    cmp ax, word [bp-014h]                    ; 3b 46 ec
     2935    jnbe near 01a65h                          ; 0f 87 37 03
     2936    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
     2937    movzx ax, byte [bp-010h]                  ; 0f b6 46 f0
     2938    add ax, dx                                ; 01 d0
     2939    cmp ax, word [bp-014h]                    ; 3b 46 ec
     2940    jnbe short 01743h                         ; 77 06
     2941    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
     2942    jne short 01776h                          ; 75 33
     2943    movzx cx, byte [bp-012h]                  ; 0f b6 4e ee
    28902944    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    2891     add ax, dx                                ; 01 d0
    2892     cmp ax, word [bp-010h]                    ; 3b 46 f0
    2893     jnbe short 01708h                         ; 77 06
    2894     cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    2895     jne short 0173bh                          ; 75 33
    2896     movzx cx, byte [bp-00eh]                  ; 0f b6 4e f2
    2897     movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    28982945    sal ax, 008h                              ; c1 e0 08
    28992946    add ax, strict word 00020h                ; 05 20 00
    2900     mov si, word [bp-010h]                    ; 8b 76 f0
    2901     imul si, word [bp-012h]                   ; 0f af 76 ee
    2902     movzx dx, byte [bp-002h]                  ; 0f b6 56 fe
     2947    mov si, word [bp-014h]                    ; 8b 76 ec
     2948    imul si, word [bp-016h]                   ; 0f af 76 ea
     2949    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
    29032950    add dx, si                                ; 01 f2
    29042951    add dx, dx                                ; 01 d2
    29052952    mov di, bx                                ; 89 df
    29062953    add di, dx                                ; 01 d7
    2907     movzx si, byte [bp-00ah]                  ; 0f b6 76 f6
     2954    movzx si, byte [bp-00eh]                  ; 0f b6 76 f2
    29082955    sal si, 003h                              ; c1 e6 03
    2909     mov es, [si+04833h]                       ; 8e 84 33 48
     2956    mov es, [si+04838h]                       ; 8e 84 38 48
    29102957    cld                                       ; fc
    2911     jcxz 01739h                               ; e3 02
     2958    jcxz 01774h                               ; e3 02
    29122959    rep stosw                                 ; f3 ab
    2913     jmp short 0177bh                          ; eb 40
    2914     movzx cx, byte [bp-00eh]                  ; 0f b6 4e f2
    2915     movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    2916     mov dx, word [bp-010h]                    ; 8b 56 f0
     2960    jmp short 017b6h                          ; eb 40
     2961    movzx cx, byte [bp-012h]                  ; 0f b6 4e ee
     2962    movzx ax, byte [bp-010h]                  ; 0f b6 46 f0
     2963    mov dx, word [bp-014h]                    ; 8b 56 ec
    29172964    sub dx, ax                                ; 29 c2
    2918     imul dx, word [bp-012h]                   ; 0f af 56 ee
    2919     movzx di, byte [bp-002h]                  ; 0f b6 7e fe
     2965    imul dx, word [bp-016h]                   ; 0f af 56 ea
     2966    movzx di, byte [bp-006h]                  ; 0f b6 7e fa
    29202967    add dx, di                                ; 01 fa
    29212968    add dx, dx                                ; 01 d2
    2922     movzx si, byte [bp-00ah]                  ; 0f b6 76 f6
     2969    movzx si, byte [bp-00eh]                  ; 0f b6 76 f2
    29232970    sal si, 003h                              ; c1 e6 03
    2924     mov ax, word [si+04833h]                  ; 8b 84 33 48
    2925     mov si, word [bp-010h]                    ; 8b 76 f0
    2926     imul si, word [bp-012h]                   ; 0f af 76 ee
     2971    mov ax, word [si+04838h]                  ; 8b 84 38 48
     2972    mov si, word [bp-014h]                    ; 8b 76 ec
     2973    imul si, word [bp-016h]                   ; 0f af 76 ea
    29272974    add di, si                                ; 01 f7
    29282975    add di, di                                ; 01 ff
     
    29322979    mov es, ax                                ; 8e c0
    29332980    cld                                       ; fc
    2934     jcxz 0177bh                               ; e3 06
     2981    jcxz 017b6h                               ; e3 06
    29352982    push DS                                   ; 1e
    29362983    mov ds, dx                                ; 8e da
    29372984    rep movsw                                 ; f3 a5
    29382985    pop DS                                    ; 1f
    2939     movzx ax, byte [bp+008h]                  ; 0f b6 46 08
    2940     cmp ax, word [bp-010h]                    ; 3b 46 f0
    2941     jc near 01a2ah                            ; 0f 82 a4 02
    2942     dec word [bp-010h]                        ; ff 4e f0
    2943     jmp near 016e8h                           ; e9 5c ff
    2944     movzx bx, byte [si+048afh]                ; 0f b6 9c af 48
     2986    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
     2987    cmp ax, word [bp-014h]                    ; 3b 46 ec
     2988    jc near 01a65h                            ; 0f 82 a4 02
     2989    dec word [bp-014h]                        ; ff 4e ec
     2990    jmp near 01723h                           ; e9 5c ff
     2991    movzx bx, byte [si+048b4h]                ; 0f b6 9c b4 48
    29452992    sal bx, 006h                              ; c1 e3 06
    2946     mov dl, byte [bx+048c5h]                  ; 8a 97 c5 48
    2947     mov byte [bp-006h], dl                    ; 88 56 fa
    2948     mov bl, byte [di+04831h]                  ; 8a 9d 31 48
     2993    mov dl, byte [bx+048cah]                  ; 8a 97 ca 48
     2994    mov byte [bp-00ah], dl                    ; 88 56 f6
     2995    mov bl, byte [di+04836h]                  ; 8a 9d 36 48
    29492996    cmp bl, 004h                              ; 80 fb 04
    2950     je short 017b3h                           ; 74 0f
     2997    je short 017eeh                           ; 74 0f
    29512998    cmp bl, 003h                              ; 80 fb 03
    2952     je short 017b3h                           ; 74 0a
     2999    je short 017eeh                           ; 74 0a
    29533000    cmp bl, 002h                              ; 80 fb 02
    2954     je near 018f2h                            ; 0f 84 42 01
    2955     jmp near 01a2ah                           ; e9 77 02
    2956     cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    2957     jne short 0180bh                          ; 75 52
    2958     cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    2959     jne short 0180bh                          ; 75 4c
    2960     cmp byte [bp-002h], 000h                  ; 80 7e fe 00
    2961     jne short 0180bh                          ; 75 46
    2962     movzx dx, byte [bp+008h]                  ; 0f b6 56 08
     3001    je near 0192dh                            ; 0f 84 42 01
     3002    jmp near 01a65h                           ; e9 77 02
     3003    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
     3004    jne short 01846h                          ; 75 52
     3005    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
     3006    jne short 01846h                          ; 75 4c
     3007    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
     3008    jne short 01846h                          ; 75 46
     3009    movzx dx, byte [bp+004h]                  ; 0f b6 56 04
    29633010    mov ax, cx                                ; 89 c8
    29643011    dec ax                                    ; 48
    29653012    cmp dx, ax                                ; 39 c2
    2966     jne short 0180bh                          ; 75 3b
    2967     movzx dx, byte [bp+00ah]                  ; 0f b6 56 0a
    2968     mov ax, word [bp-012h]                    ; 8b 46 ee
     3013    jne short 01846h                          ; 75 3b
     3014    movzx dx, byte [bp+006h]                  ; 0f b6 56 06
     3015    mov ax, word [bp-016h]                    ; 8b 46 ea
    29693016    dec ax                                    ; 48
    29703017    cmp dx, ax                                ; 39 c2
    2971     jne short 0180bh                          ; 75 2f
     3018    jne short 01846h                          ; 75 2f
    29723019    mov ax, 00205h                            ; b8 05 02
    29733020    mov dx, 003ceh                            ; ba ce 03
    29743021    out DX, ax                                ; ef
    2975     imul cx, word [bp-012h]                   ; 0f af 4e ee
    2976     movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
     3022    imul cx, word [bp-016h]                   ; 0f af 4e ea
     3023    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    29773024    imul cx, ax                               ; 0f af c8
    2978     movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    2979     movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
     3025    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     3026    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
    29803027    sal bx, 003h                              ; c1 e3 03
    2981     mov es, [bx+04833h]                       ; 8e 87 33 48
     3028    mov es, [bx+04838h]                       ; 8e 87 38 48
    29823029    xor di, di                                ; 31 ff
    29833030    cld                                       ; fc
    2984     jcxz 01804h                               ; e3 02
     3031    jcxz 0183fh                               ; e3 02
    29853032    rep stosb                                 ; f3 aa
    29863033    mov ax, strict word 00005h                ; b8 05 00
    29873034    out DX, ax                                ; ef
    2988     jmp near 01a2ah                           ; e9 1f 02
    2989     cmp byte [bp+00eh], 001h                  ; 80 7e 0e 01
    2990     jne short 0187ah                          ; 75 69
    2991     movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    2992     mov word [bp-010h], ax                    ; 89 46 f0
    2993     movzx ax, byte [bp+008h]                  ; 0f b6 46 08
    2994     cmp ax, word [bp-010h]                    ; 3b 46 f0
    2995     jc near 01a2ah                            ; 0f 82 07 02
    2996     movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
    2997     add dx, word [bp-010h]                    ; 03 56 f0
     3035    jmp near 01a65h                           ; e9 1f 02
     3036    cmp byte [bp+00ah], 001h                  ; 80 7e 0a 01
     3037    jne short 018b5h                          ; 75 69
     3038    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
     3039    mov word [bp-014h], ax                    ; 89 46 ec
     3040    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
     3041    cmp ax, word [bp-014h]                    ; 3b 46 ec
     3042    jc near 01a65h                            ; 0f 82 07 02
     3043    movzx dx, byte [bp-010h]                  ; 0f b6 56 f0
     3044    add dx, word [bp-014h]                    ; 03 56 ec
    29983045    cmp dx, ax                                ; 39 c2
    2999     jnbe short 01834h                         ; 77 06
    3000     cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    3001     jne short 01853h                          ; 75 1f
     3046    jnbe short 0186fh                         ; 77 06
     3047    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
     3048    jne short 0188eh                          ; 75 1f
     3049    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     3050    push ax                                   ; 50
     3051    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     3052    push ax                                   ; 50
     3053    movzx cx, byte [bp-016h]                  ; 0f b6 4e ea
     3054    movzx bx, byte [bp-012h]                  ; 0f b6 5e ee
     3055    movzx dx, byte [bp-014h]                  ; 0f b6 56 ec
     3056    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
     3057    call 013d9h                               ; e8 4d fb
     3058    jmp short 018b0h                          ; eb 22
     3059    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     3060    push ax                                   ; 50
     3061    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
     3062    push ax                                   ; 50
     3063    movzx cx, byte [bp-012h]                  ; 0f b6 4e ee
     3064    movzx bx, byte [bp-014h]                  ; 0f b6 5e ec
     3065    mov al, byte [bp-014h]                    ; 8a 46 ec
     3066    add al, byte [bp-010h]                    ; 02 46 f0
     3067    movzx dx, al                              ; 0f b6 d0
     3068    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
     3069    call 01363h                               ; e8 b3 fa
     3070    inc word [bp-014h]                        ; ff 46 ec
     3071    jmp short 01853h                          ; eb 9e
     3072    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
     3073    mov word [bp-014h], ax                    ; 89 46 ec
    30023074    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    3003     push ax                                   ; 50
     3075    cmp ax, word [bp-014h]                    ; 3b 46 ec
     3076    jnbe near 01a65h                          ; 0f 87 9e 01
     3077    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
     3078    movzx dx, byte [bp-010h]                  ; 0f b6 56 f0
     3079    add ax, dx                                ; 01 d0
     3080    cmp ax, word [bp-014h]                    ; 3b 46 ec
     3081    jnbe short 018dch                         ; 77 06
     3082    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
     3083    jne short 018fbh                          ; 75 1f
     3084    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     3085    push ax                                   ; 50
     3086    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     3087    push ax                                   ; 50
     3088    movzx cx, byte [bp-016h]                  ; 0f b6 4e ea
     3089    movzx bx, byte [bp-012h]                  ; 0f b6 5e ee
     3090    movzx dx, byte [bp-014h]                  ; 0f b6 56 ec
    30043091    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
     3092    call 013d9h                               ; e8 e0 fa
     3093    jmp short 0191dh                          ; eb 22
     3094    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     3095    push ax                                   ; 50
     3096    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
    30053097    push ax                                   ; 50
    30063098    movzx cx, byte [bp-012h]                  ; 0f b6 4e ee
    3007     movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
    3008     movzx dx, byte [bp-010h]                  ; 0f b6 56 f0
    3009     movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    3010     call 013ach                               ; e8 5b fb
    3011     jmp short 01875h                          ; eb 22
     3099    mov al, byte [bp-014h]                    ; 8a 46 ec
     3100    sub al, byte [bp-010h]                    ; 2a 46 f0
     3101    movzx bx, al                              ; 0f b6 d8
     3102    movzx dx, byte [bp-014h]                  ; 0f b6 56 ec
    30123103    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    3013     push ax                                   ; 50
    3014     movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
    3015     push ax                                   ; 50
    3016     movzx cx, byte [bp-00eh]                  ; 0f b6 4e f2
    3017     movzx bx, byte [bp-010h]                  ; 0f b6 5e f0
    3018     mov al, byte [bp-010h]                    ; 8a 46 f0
    3019     add al, byte [bp-00ch]                    ; 02 46 f4
    3020     movzx dx, al                              ; 0f b6 d0
    3021     movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    3022     call 0133ah                               ; e8 c5 fa
    3023     inc word [bp-010h]                        ; ff 46 f0
    3024     jmp short 01818h                          ; eb 9e
    3025     movzx ax, byte [bp+008h]                  ; 0f b6 46 08
    3026     mov word [bp-010h], ax                    ; 89 46 f0
    3027     movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    3028     cmp ax, word [bp-010h]                    ; 3b 46 f0
    3029     jnbe near 01a2ah                          ; 0f 87 9e 01
    3030     movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    3031     movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
    3032     add ax, dx                                ; 01 d0
    3033     cmp ax, word [bp-010h]                    ; 3b 46 f0
    3034     jnbe short 018a1h                         ; 77 06
    3035     cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    3036     jne short 018c0h                          ; 75 1f
    3037     movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    3038     push ax                                   ; 50
    3039     movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    3040     push ax                                   ; 50
    3041     movzx cx, byte [bp-012h]                  ; 0f b6 4e ee
    3042     movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
    3043     movzx dx, byte [bp-010h]                  ; 0f b6 56 f0
    3044     movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    3045     call 013ach                               ; e8 ee fa
    3046     jmp short 018e2h                          ; eb 22
    3047     movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    3048     push ax                                   ; 50
    3049     movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
    3050     push ax                                   ; 50
    3051     movzx cx, byte [bp-00eh]                  ; 0f b6 4e f2
    3052     mov al, byte [bp-010h]                    ; 8a 46 f0
    3053     sub al, byte [bp-00ch]                    ; 2a 46 f4
    3054     movzx bx, al                              ; 0f b6 d8
    3055     movzx dx, byte [bp-010h]                  ; 0f b6 56 f0
    3056     movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    3057     call 0133ah                               ; e8 58 fa
    3058     movzx ax, byte [bp+008h]                  ; 0f b6 46 08
    3059     cmp ax, word [bp-010h]                    ; 3b 46 f0
    3060     jc near 01a2ah                            ; 0f 82 3d 01
    3061     dec word [bp-010h]                        ; ff 4e f0
    3062     jmp short 01881h                          ; eb 8f
    3063     mov dl, byte [di+04832h]                  ; 8a 95 32 48
    3064     cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    3065     jne short 01939h                          ; 75 3d
    3066     cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    3067     jne short 01939h                          ; 75 37
    3068     cmp byte [bp-002h], 000h                  ; 80 7e fe 00
    3069     jne short 01939h                          ; 75 31
    3070     movzx bx, byte [bp+008h]                  ; 0f b6 5e 08
    3071     cmp bx, word [bp-016h]                    ; 3b 5e ea
    3072     jne short 01939h                          ; 75 28
    3073     movzx bx, byte [bp+00ah]                  ; 0f b6 5e 0a
    3074     cmp bx, word [bp-014h]                    ; 3b 5e ec
    3075     jne short 01939h                          ; 75 1f
    3076     movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
     3104    call 01363h                               ; e8 46 fa
     3105    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
     3106    cmp ax, word [bp-014h]                    ; 3b 46 ec
     3107    jc near 01a65h                            ; 0f 82 3d 01
     3108    dec word [bp-014h]                        ; ff 4e ec
     3109    jmp short 018bch                          ; eb 8f
     3110    mov dl, byte [di+04837h]                  ; 8a 95 37 48
     3111    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
     3112    jne short 01974h                          ; 75 3d
     3113    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
     3114    jne short 01974h                          ; 75 37
     3115    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
     3116    jne short 01974h                          ; 75 31
     3117    movzx bx, byte [bp+004h]                  ; 0f b6 5e 04
     3118    cmp bx, word [bp-01ah]                    ; 3b 5e e6
     3119    jne short 01974h                          ; 75 28
     3120    movzx bx, byte [bp+006h]                  ; 0f b6 5e 06
     3121    cmp bx, word [bp-018h]                    ; 3b 5e e8
     3122    jne short 01974h                          ; 75 1f
     3123    movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
    30773124    imul ax, bx                               ; 0f af c3
    30783125    movzx cx, dl                              ; 0f b6 ca
    30793126    imul cx, ax                               ; 0f af c8
    3080     movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    3081     mov es, [di+04833h]                       ; 8e 85 33 48
     3127    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     3128    mov es, [di+04838h]                       ; 8e 85 38 48
    30823129    xor di, di                                ; 31 ff
    30833130    cld                                       ; fc
    3084     jcxz 01936h                               ; e3 02
     3131    jcxz 01971h                               ; e3 02
    30853132    rep stosb                                 ; f3 aa
    3086     jmp near 01a2ah                           ; e9 f1 00
     3133    jmp near 01a65h                           ; e9 f1 00
    30873134    cmp dl, 002h                              ; 80 fa 02
    3088     jne short 01947h                          ; 75 09
    3089     sal byte [bp-002h], 1                     ; d0 66 fe
    3090     sal byte [bp-00eh], 1                     ; d0 66 f2
    3091     sal word [bp-012h], 1                     ; d1 66 ee
    3092     cmp byte [bp+00eh], 001h                  ; 80 7e 0e 01
    3093     jne short 019b6h                          ; 75 69
    3094     movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    3095     mov word [bp-010h], ax                    ; 89 46 f0
    3096     movzx ax, byte [bp+008h]                  ; 0f b6 46 08
    3097     cmp ax, word [bp-010h]                    ; 3b 46 f0
    3098     jc near 01a2ah                            ; 0f 82 cb 00
    3099     movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
    3100     add dx, word [bp-010h]                    ; 03 56 f0
     3135    jne short 01982h                          ; 75 09
     3136    sal byte [bp-006h], 1                     ; d0 66 fa
     3137    sal byte [bp-012h], 1                     ; d0 66 ee
     3138    sal word [bp-016h], 1                     ; d1 66 ea
     3139    cmp byte [bp+00ah], 001h                  ; 80 7e 0a 01
     3140    jne short 019f1h                          ; 75 69
     3141    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
     3142    mov word [bp-014h], ax                    ; 89 46 ec
     3143    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
     3144    cmp ax, word [bp-014h]                    ; 3b 46 ec
     3145    jc near 01a65h                            ; 0f 82 cb 00
     3146    movzx dx, byte [bp-010h]                  ; 0f b6 56 f0
     3147    add dx, word [bp-014h]                    ; 03 56 ec
    31013148    cmp dx, ax                                ; 39 c2
    3102     jnbe short 01970h                         ; 77 06
    3103     cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    3104     jne short 0198fh                          ; 75 1f
     3149    jnbe short 019abh                         ; 77 06
     3150    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
     3151    jne short 019cah                          ; 75 1f
     3152    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     3153    push ax                                   ; 50
     3154    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     3155    push ax                                   ; 50
     3156    movzx cx, byte [bp-016h]                  ; 0f b6 4e ea
     3157    movzx bx, byte [bp-012h]                  ; 0f b6 5e ee
     3158    movzx dx, byte [bp-014h]                  ; 0f b6 56 ec
     3159    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
     3160    call 014deh                               ; e8 16 fb
     3161    jmp short 019ech                          ; eb 22
     3162    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     3163    push ax                                   ; 50
     3164    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
     3165    push ax                                   ; 50
     3166    movzx cx, byte [bp-012h]                  ; 0f b6 4e ee
     3167    movzx bx, byte [bp-014h]                  ; 0f b6 5e ec
     3168    mov al, byte [bp-014h]                    ; 8a 46 ec
     3169    add al, byte [bp-010h]                    ; 02 46 f0
     3170    movzx dx, al                              ; 0f b6 d0
     3171    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
     3172    call 0143ah                               ; e8 4e fa
     3173    inc word [bp-014h]                        ; ff 46 ec
     3174    jmp short 0198fh                          ; eb 9e
     3175    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
     3176    mov word [bp-014h], ax                    ; 89 46 ec
    31053177    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    3106     push ax                                   ; 50
     3178    cmp ax, word [bp-014h]                    ; 3b 46 ec
     3179    jnbe short 01a65h                         ; 77 64
     3180    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
     3181    movzx dx, byte [bp-010h]                  ; 0f b6 56 f0
     3182    add ax, dx                                ; 01 d0
     3183    cmp ax, word [bp-014h]                    ; 3b 46 ec
     3184    jnbe short 01a16h                         ; 77 06
     3185    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
     3186    jne short 01a35h                          ; 75 1f
     3187    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     3188    push ax                                   ; 50
     3189    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     3190    push ax                                   ; 50
     3191    movzx cx, byte [bp-016h]                  ; 0f b6 4e ea
     3192    movzx bx, byte [bp-012h]                  ; 0f b6 5e ee
     3193    movzx dx, byte [bp-014h]                  ; 0f b6 56 ec
    31073194    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
     3195    call 014deh                               ; e8 ab fa
     3196    jmp short 01a57h                          ; eb 22
     3197    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     3198    push ax                                   ; 50
     3199    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
    31083200    push ax                                   ; 50
    31093201    movzx cx, byte [bp-012h]                  ; 0f b6 4e ee
    3110     movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
    3111     movzx dx, byte [bp-010h]                  ; 0f b6 56 f0
    3112     movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    3113     call 014a9h                               ; e8 1c fb
    3114     jmp short 019b1h                          ; eb 22
     3202    mov al, byte [bp-014h]                    ; 8a 46 ec
     3203    sub al, byte [bp-010h]                    ; 2a 46 f0
     3204    movzx bx, al                              ; 0f b6 d8
     3205    movzx dx, byte [bp-014h]                  ; 0f b6 56 ec
    31153206    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    3116     push ax                                   ; 50
    3117     movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
    3118     push ax                                   ; 50
    3119     movzx cx, byte [bp-00eh]                  ; 0f b6 4e f2
    3120     movzx bx, byte [bp-010h]                  ; 0f b6 5e f0
    3121     mov al, byte [bp-010h]                    ; 8a 46 f0
    3122     add al, byte [bp-00ch]                    ; 02 46 f4
    3123     movzx dx, al                              ; 0f b6 d0
    3124     movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    3125     call 01409h                               ; e8 58 fa
    3126     inc word [bp-010h]                        ; ff 46 f0
    3127     jmp short 01954h                          ; eb 9e
    3128     movzx ax, byte [bp+008h]                  ; 0f b6 46 08
    3129     mov word [bp-010h], ax                    ; 89 46 f0
    3130     movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    3131     cmp ax, word [bp-010h]                    ; 3b 46 f0
    3132     jnbe short 01a2ah                         ; 77 64
    3133     movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    3134     movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
    3135     add ax, dx                                ; 01 d0
    3136     cmp ax, word [bp-010h]                    ; 3b 46 f0
    3137     jnbe short 019dbh                         ; 77 06
    3138     cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    3139     jne short 019fah                          ; 75 1f
    3140     movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    3141     push ax                                   ; 50
    3142     movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    3143     push ax                                   ; 50
    3144     movzx cx, byte [bp-012h]                  ; 0f b6 4e ee
    3145     movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
    3146     movzx dx, byte [bp-010h]                  ; 0f b6 56 f0
    3147     movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    3148     call 014a9h                               ; e8 b1 fa
    3149     jmp short 01a1ch                          ; eb 22
    3150     movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    3151     push ax                                   ; 50
    3152     movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
    3153     push ax                                   ; 50
    3154     movzx cx, byte [bp-00eh]                  ; 0f b6 4e f2
    3155     mov al, byte [bp-010h]                    ; 8a 46 f0
    3156     sub al, byte [bp-00ch]                    ; 2a 46 f4
    3157     movzx bx, al                              ; 0f b6 d8
    3158     movzx dx, byte [bp-010h]                  ; 0f b6 56 f0
    3159     movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    3160     call 01409h                               ; e8 ed f9
    3161     movzx ax, byte [bp+008h]                  ; 0f b6 46 08
    3162     cmp ax, word [bp-010h]                    ; 3b 46 f0
    3163     jc short 01a2ah                           ; 72 05
    3164     dec word [bp-010h]                        ; ff 4e f0
    3165     jmp short 019bdh                          ; eb 93
    3166     leave                                     ; c9
     3207    call 0143ah                               ; e8 e3 f9
     3208    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
     3209    cmp ax, word [bp-014h]                    ; 3b 46 ec
     3210    jc short 01a65h                           ; 72 05
     3211    dec word [bp-014h]                        ; ff 4e ec
     3212    jmp short 019f8h                          ; eb 93
     3213    lea sp, [bp-004h]                         ; 8d 66 fc
    31673214    pop di                                    ; 5f
    31683215    pop si                                    ; 5e
     3216    pop bp                                    ; 5d
    31693217    retn 00008h                               ; c2 08 00
    3170 write_gfx_char_pl4_:                         ; 0xc1a30 LB 0xe6
     3218write_gfx_char_pl4_:                         ; 0xc1a6e LB 0xeb
     3219    push bp                                   ; 55
     3220    mov bp, sp                                ; 89 e5
    31713221    push si                                   ; 56
    31723222    push di                                   ; 57
    3173     enter 0000ah, 000h                        ; c8 0a 00 00
    3174     mov byte [bp-002h], dl                    ; 88 56 fe
     3223    sub sp, strict byte 0000ah                ; 83 ec 0a
     3224    mov byte [bp-006h], dl                    ; 88 56 fa
    31753225    mov ah, bl                                ; 88 dc
    3176     cmp byte [bp+00ah], 010h                  ; 80 7e 0a 10
    3177     je short 01a4ch                           ; 74 0b
    3178     cmp byte [bp+00ah], 00eh                  ; 80 7e 0a 0e
    3179     jne short 01a51h                          ; 75 0a
    3180     mov di, 05dafh                            ; bf af 5d
    3181     jmp short 01a54h                          ; eb 08
    3182     mov di, 06bafh                            ; bf af 6b
    3183     jmp short 01a54h                          ; eb 03
    3184     mov di, 055afh                            ; bf af 55
     3226    cmp byte [bp+006h], 010h                  ; 80 7e 06 10
     3227    je short 01a8ch                           ; 74 0b
     3228    cmp byte [bp+006h], 00eh                  ; 80 7e 06 0e
     3229    jne short 01a91h                          ; 75 0a
     3230    mov di, 05db4h                            ; bf b4 5d
     3231    jmp short 01a94h                          ; eb 08
     3232    mov di, 06bb4h                            ; bf b4 6b
     3233    jmp short 01a94h                          ; eb 03
     3234    mov di, 055b4h                            ; bf b4 55
    31853235    movzx si, cl                              ; 0f b6 f1
    3186     movzx bx, byte [bp+00ah]                  ; 0f b6 5e 0a
     3236    movzx bx, byte [bp+006h]                  ; 0f b6 5e 06
    31873237    imul si, bx                               ; 0f af f3
    3188     movzx cx, byte [bp+008h]                  ; 0f b6 4e 08
     3238    movzx cx, byte [bp+004h]                  ; 0f b6 4e 04
    31893239    imul cx, si                               ; 0f af ce
    31903240    movzx si, ah                              ; 0f b6 f4
    31913241    add si, cx                                ; 01 ce
    3192     mov word [bp-00ah], si                    ; 89 76 f6
     3242    mov word [bp-00eh], si                    ; 89 76 f2
    31933243    xor ah, ah                                ; 30 e4
    31943244    imul ax, bx                               ; 0f af c3
    3195     mov word [bp-006h], ax                    ; 89 46 fa
     3245    mov word [bp-00ah], ax                    ; 89 46 f6
    31963246    mov ax, 00f02h                            ; b8 02 0f
    31973247    mov dx, 003c4h                            ; ba c4 03
     
    32003250    mov dx, 003ceh                            ; ba ce 03
    32013251    out DX, ax                                ; ef
    3202     test byte [bp-002h], 080h                 ; f6 46 fe 80
    3203     je short 01a8fh                           ; 74 06
     3252    test byte [bp-006h], 080h                 ; f6 46 fa 80
     3253    je short 01acfh                           ; 74 06
    32043254    mov ax, 01803h                            ; b8 03 18
    32053255    out DX, ax                                ; ef
    3206     jmp short 01a93h                          ; eb 04
     3256    jmp short 01ad3h                          ; eb 04
    32073257    mov ax, strict word 00003h                ; b8 03 00
    32083258    out DX, ax                                ; ef
    32093259    xor ch, ch                                ; 30 ed
    3210     cmp ch, byte [bp+00ah]                    ; 3a 6e 0a
    3211     jnc short 01b01h                          ; 73 67
     3260    cmp ch, byte [bp+006h]                    ; 3a 6e 06
     3261    jnc short 01b41h                          ; 73 67
    32123262    movzx si, ch                              ; 0f b6 f5
    3213     movzx ax, byte [bp+008h]                  ; 0f b6 46 08
     3263    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    32143264    imul si, ax                               ; 0f af f0
    3215     add si, word [bp-00ah]                    ; 03 76 f6
    3216     mov byte [bp-004h], 000h                  ; c6 46 fc 00
    3217     jmp short 01ac0h                          ; eb 13
     3265    add si, word [bp-00eh]                    ; 03 76 f2
     3266    mov byte [bp-008h], 000h                  ; c6 46 f8 00
     3267    jmp short 01b00h                          ; eb 13
    32183268    xor bx, bx                                ; 31 db
    32193269    mov dx, si                                ; 89 f2
    32203270    mov ax, 0a000h                            ; b8 00 a0
    3221     call 02ef9h                               ; e8 42 14
    3222     inc byte [bp-004h]                        ; fe 46 fc
    3223     cmp byte [bp-004h], 008h                  ; 80 7e fc 08
    3224     jnc short 01afdh                          ; 73 3d
    3225     movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
     3271    call 02f85h                               ; e8 8e 14
     3272    inc byte [bp-008h]                        ; fe 46 f8
     3273    cmp byte [bp-008h], 008h                  ; 80 7e f8 08
     3274    jnc short 01b3dh                          ; 73 3d
     3275    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    32263276    mov cl, al                                ; 88 c1
    32273277    mov ax, 00080h                            ; b8 80 00
    32283278    sar ax, CL                                ; d3 f8
    32293279    xor ah, ah                                ; 30 e4
    3230     mov word [bp-008h], ax                    ; 89 46 f8
     3280    mov word [bp-00ch], ax                    ; 89 46 f4
    32313281    sal ax, 008h                              ; c1 e0 08
    32323282    or AL, strict byte 008h                   ; 0c 08
     
    32353285    mov dx, si                                ; 89 f2
    32363286    mov ax, 0a000h                            ; b8 00 a0
    3237     call 02eebh                               ; e8 0a 14
     3287    call 02f77h                               ; e8 56 14
    32383288    movzx ax, ch                              ; 0f b6 c5
    3239     add ax, word [bp-006h]                    ; 03 46 fa
     3289    add ax, word [bp-00ah]                    ; 03 46 f6
    32403290    mov bx, di                                ; 89 fb
    32413291    add bx, ax                                ; 01 c3
    32423292    movzx ax, byte [bx]                       ; 0f b6 07
    3243     test word [bp-008h], ax                   ; 85 46 f8
    3244     je short 01aadh                           ; 74 ba
    3245     mov al, byte [bp-002h]                    ; 8a 46 fe
     3293    test word [bp-00ch], ax                   ; 85 46 f4
     3294    je short 01aedh                           ; 74 ba
     3295    mov al, byte [bp-006h]                    ; 8a 46 fa
    32463296    and AL, strict byte 00fh                  ; 24 0f
    32473297    movzx bx, al                              ; 0f b6 d8
    3248     jmp short 01aafh                          ; eb b2
     3298    jmp short 01aefh                          ; eb b2
    32493299    db  0feh, 0c5h
    32503300    ; inc ch                                    ; fe c5
    3251     jmp short 01a95h                          ; eb 94
     3301    jmp short 01ad5h                          ; eb 94
    32523302    mov ax, 0ff08h                            ; b8 08 ff
    32533303    mov dx, 003ceh                            ; ba ce 03
     
    32573307    mov ax, strict word 00003h                ; b8 03 00
    32583308    out DX, ax                                ; ef
    3259     leave                                     ; c9
     3309    lea sp, [bp-004h]                         ; 8d 66 fc
    32603310    pop di                                    ; 5f
    32613311    pop si                                    ; 5e
     3312    pop bp                                    ; 5d
    32623313    retn 00004h                               ; c2 04 00
    3263 write_gfx_char_cga_:                         ; 0xc1b16 LB 0x119
     3314write_gfx_char_cga_:                         ; 0xc1b59 LB 0x11e
     3315    push bp                                   ; 55
     3316    mov bp, sp                                ; 89 e5
    32643317    push si                                   ; 56
    32653318    push di                                   ; 57
    3266     enter 00008h, 000h                        ; c8 08 00 00
    3267     mov byte [bp-004h], dl                    ; 88 56 fc
    3268     mov si, 055afh                            ; be af 55
     3319    sub sp, strict byte 00008h                ; 83 ec 08
     3320    mov byte [bp-008h], dl                    ; 88 56 f8
     3321    mov si, 055b4h                            ; be b4 55
    32693322    xor bh, bh                                ; 30 ff
    3270     movzx di, byte [bp+00ah]                  ; 0f b6 7e 0a
     3323    movzx di, byte [bp+006h]                  ; 0f b6 7e 06
    32713324    imul di, bx                               ; 0f af fb
    32723325    movzx bx, cl                              ; 0f b6 d9
    32733326    imul bx, bx, 00140h                       ; 69 db 40 01
    32743327    add di, bx                                ; 01 df
    3275     mov word [bp-008h], di                    ; 89 7e f8
     3328    mov word [bp-00ch], di                    ; 89 7e f4
    32763329    movzx di, al                              ; 0f b6 f8
    32773330    sal di, 003h                              ; c1 e7 03
    3278     mov byte [bp-002h], 000h                  ; c6 46 fe 00
    3279     jmp near 01b94h                           ; e9 50 00
     3331    mov byte [bp-006h], 000h                  ; c6 46 fa 00
     3332    jmp near 01bd9h                           ; e9 50 00
    32803333    xor al, al                                ; 30 c0
    32813334    xor ah, ah                                ; 30 e4
    3282     jmp short 01b55h                          ; eb 0b
     3335    jmp short 01b9ah                          ; eb 0b
    32833336    or al, bl                                 ; 08 d8
    32843337    shr ch, 1                                 ; d0 ed
     
    32863339    ; inc ah                                    ; fe c4
    32873340    cmp ah, 008h                              ; 80 fc 08
    3288     jnc short 01b7dh                          ; 73 28
    3289     movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
     3341    jnc short 01bc2h                          ; 73 28
     3342    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    32903343    add bx, di                                ; 01 fb
    32913344    add bx, si                                ; 01 f3
     
    32933346    movzx dx, ch                              ; 0f b6 d5
    32943347    test bx, dx                               ; 85 d3
    3295     je short 01b4ch                           ; 74 e5
     3348    je short 01b91h                           ; 74 e5
    32963349    mov CL, strict byte 007h                  ; b1 07
    32973350    sub cl, ah                                ; 28 e1
    3298     mov bl, byte [bp-004h]                    ; 8a 5e fc
     3351    mov bl, byte [bp-008h]                    ; 8a 5e f8
    32993352    and bl, 001h                              ; 80 e3 01
    33003353    sal bl, CL                                ; d2 e3
    3301     test byte [bp-004h], 080h                 ; f6 46 fc 80
    3302     je short 01b4ah                           ; 74 d1
     3354    test byte [bp-008h], 080h                 ; f6 46 f8 80
     3355    je short 01b8fh                           ; 74 d1
    33033356    xor al, bl                                ; 30 d8
    3304     jmp short 01b4ch                          ; eb cf
     3357    jmp short 01b91h                          ; eb cf
    33053358    movzx bx, al                              ; 0f b6 d8
    3306     mov dx, word [bp-006h]                    ; 8b 56 fa
     3359    mov dx, word [bp-00ah]                    ; 8b 56 f6
    33073360    mov ax, 0b800h                            ; b8 00 b8
    3308     call 02ef9h                               ; e8 70 13
    3309     inc byte [bp-002h]                        ; fe 46 fe
    3310     cmp byte [bp-002h], 008h                  ; 80 7e fe 08
    3311     jnc near 01c29h                           ; 0f 83 95 00
    3312     movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
     3361    call 02f85h                               ; e8 b7 13
     3362    inc byte [bp-006h]                        ; fe 46 fa
     3363    cmp byte [bp-006h], 008h                  ; 80 7e fa 08
     3364    jnc near 01c6eh                           ; 0f 83 95 00
     3365    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    33133366    sar ax, 1                                 ; d1 f8
    33143367    imul ax, ax, strict byte 00050h           ; 6b c0 50
    3315     mov bx, word [bp-008h]                    ; 8b 5e f8
     3368    mov bx, word [bp-00ch]                    ; 8b 5e f4
    33163369    add bx, ax                                ; 01 c3
    3317     mov word [bp-006h], bx                    ; 89 5e fa
    3318     test byte [bp-002h], 001h                 ; f6 46 fe 01
    3319     je short 01bafh                           ; 74 04
    3320     add byte [bp-005h], 020h                  ; 80 46 fb 20
     3370    mov word [bp-00ah], bx                    ; 89 5e f6
     3371    test byte [bp-006h], 001h                 ; f6 46 fa 01
     3372    je short 01bf4h                           ; 74 04
     3373    add byte [bp-009h], 020h                  ; 80 46 f7 20
    33213374    mov CH, strict byte 080h                  ; b5 80
    3322     cmp byte [bp+00ah], 001h                  ; 80 7e 0a 01
    3323     jne short 01bc8h                          ; 75 11
    3324     test byte [bp-004h], ch                   ; 84 6e fc
    3325     je short 01b44h                           ; 74 88
    3326     mov dx, word [bp-006h]                    ; 8b 56 fa
     3375    cmp byte [bp+006h], 001h                  ; 80 7e 06 01
     3376    jne short 01c0dh                          ; 75 11
     3377    test byte [bp-008h], ch                   ; 84 6e f8
     3378    je short 01b89h                           ; 74 88
     3379    mov dx, word [bp-00ah]                    ; 8b 56 f6
    33273380    mov ax, 0b800h                            ; b8 00 b8
    3328     call 02eebh                               ; e8 26 13
    3329     jmp near 01b46h                           ; e9 7e ff
     3381    call 02f77h                               ; e8 6d 13
     3382    jmp near 01b8bh                           ; e9 7e ff
    33303383    test ch, ch                               ; 84 ed
    3331     jbe short 01b89h                          ; 76 bd
    3332     test byte [bp-004h], 080h                 ; f6 46 fc 80
    3333     je short 01bddh                           ; 74 0b
    3334     mov dx, word [bp-006h]                    ; 8b 56 fa
     3384    jbe short 01bceh                          ; 76 bd
     3385    test byte [bp-008h], 080h                 ; f6 46 f8 80
     3386    je short 01c22h                           ; 74 0b
     3387    mov dx, word [bp-00ah]                    ; 8b 56 f6
    33353388    mov ax, 0b800h                            ; b8 00 b8
    3336     call 02eebh                               ; e8 10 13
    3337     jmp short 01bdfh                          ; eb 02
     3389    call 02f77h                               ; e8 57 13
     3390    jmp short 01c24h                          ; eb 02
    33383391    xor al, al                                ; 30 c0
    33393392    xor ah, ah                                ; 30 e4
    3340     jmp short 01beeh                          ; eb 0b
     3393    jmp short 01c33h                          ; eb 0b
    33413394    or al, bl                                 ; 08 d8
    33423395    shr ch, 1                                 ; d0 ed
     
    33443397    ; inc ah                                    ; fe c4
    33453398    cmp ah, 004h                              ; 80 fc 04
    3346     jnc short 01c18h                          ; 73 2a
    3347     movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
     3399    jnc short 01c5dh                          ; 73 2a
     3400    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    33483401    add bx, di                                ; 01 fb
    33493402    add bx, si                                ; 01 f3
     
    33513404    movzx bx, ch                              ; 0f b6 dd
    33523405    test bx, dx                               ; 85 d3
    3353     je short 01be5h                           ; 74 e5
     3406    je short 01c2ah                           ; 74 e5
    33543407    mov CL, strict byte 003h                  ; b1 03
    33553408    sub cl, ah                                ; 28 e1
    3356     mov bl, byte [bp-004h]                    ; 8a 5e fc
     3409    mov bl, byte [bp-008h]                    ; 8a 5e f8
    33573410    and bl, 003h                              ; 80 e3 03
    33583411    add cl, cl                                ; 00 c9
    33593412    sal bl, CL                                ; d2 e3
    3360     test byte [bp-004h], 080h                 ; f6 46 fc 80
    3361     je short 01be3h                           ; 74 cf
     3413    test byte [bp-008h], 080h                 ; f6 46 f8 80
     3414    je short 01c28h                           ; 74 cf
    33623415    xor al, bl                                ; 30 d8
    3363     jmp short 01be5h                          ; eb cd
     3416    jmp short 01c2ah                          ; eb cd
    33643417    movzx bx, al                              ; 0f b6 d8
    3365     mov dx, word [bp-006h]                    ; 8b 56 fa
     3418    mov dx, word [bp-00ah]                    ; 8b 56 f6
    33663419    mov ax, 0b800h                            ; b8 00 b8
    3367     call 02ef9h                               ; e8 d5 12
    3368     inc word [bp-006h]                        ; ff 46 fa
    3369     jmp short 01bc8h                          ; eb 9f
    3370     leave                                     ; c9
     3420    call 02f85h                               ; e8 1c 13
     3421    inc word [bp-00ah]                        ; ff 46 f6
     3422    jmp short 01c0dh                          ; eb 9f
     3423    lea sp, [bp-004h]                         ; 8d 66 fc
    33713424    pop di                                    ; 5f
    33723425    pop si                                    ; 5e
     3426    pop bp                                    ; 5d
    33733427    retn 00004h                               ; c2 04 00
    3374 write_gfx_char_lin_:                         ; 0xc1c2f LB 0x8c
     3428write_gfx_char_lin_:                         ; 0xc1c77 LB 0x91
     3429    push bp                                   ; 55
     3430    mov bp, sp                                ; 89 e5
    33753431    push si                                   ; 56
    33763432    push di                                   ; 57
    3377     enter 00008h, 000h                        ; c8 08 00 00
    3378     mov byte [bp-002h], dl                    ; 88 56 fe
    3379     mov di, 055afh                            ; bf af 55
     3433    sub sp, strict byte 00008h                ; 83 ec 08
     3434    mov byte [bp-006h], dl                    ; 88 56 fa
     3435    mov di, 055b4h                            ; bf b4 55
    33803436    movzx dx, cl                              ; 0f b6 d1
    3381     movzx cx, byte [bp+008h]                  ; 0f b6 4e 08
     3437    movzx cx, byte [bp+004h]                  ; 0f b6 4e 04
    33823438    imul cx, dx                               ; 0f af ca
    33833439    sal cx, 006h                              ; c1 e1 06
     
    33853441    sal dx, 003h                              ; c1 e2 03
    33863442    add dx, cx                                ; 01 ca
    3387     mov word [bp-008h], dx                    ; 89 56 f8
     3443    mov word [bp-00ch], dx                    ; 89 56 f4
    33883444    movzx si, al                              ; 0f b6 f0
    33893445    sal si, 003h                              ; c1 e6 03
    33903446    xor cl, cl                                ; 30 c9
    3391     jmp short 01c98h                          ; eb 3b
     3447    jmp short 01ce2h                          ; eb 3b
    33923448    cmp ch, 008h                              ; 80 fd 08
    3393     jnc short 01c91h                          ; 73 2f
     3449    jnc short 01cdbh                          ; 73 2f
    33943450    xor al, al                                ; 30 c0
    33953451    movzx dx, cl                              ; 0f b6 d1
     
    33983454    add bx, dx                                ; 01 d3
    33993455    movzx dx, byte [bx]                       ; 0f b6 17
    3400     movzx bx, byte [bp-004h]                  ; 0f b6 5e fc
     3456    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
    34013457    test dx, bx                               ; 85 da
    3402     je short 01c7bh                           ; 74 03
    3403     mov al, byte [bp-002h]                    ; 8a 46 fe
     3458    je short 01cc5h                           ; 74 03
     3459    mov al, byte [bp-006h]                    ; 8a 46 fa
    34043460    movzx bx, al                              ; 0f b6 d8
    34053461    movzx dx, ch                              ; 0f b6 d5
    3406     add dx, word [bp-006h]                    ; 03 56 fa
     3462    add dx, word [bp-00ah]                    ; 03 56 f6
    34073463    mov ax, 0a000h                            ; b8 00 a0
    3408     call 02ef9h                               ; e8 6f 12
    3409     shr byte [bp-004h], 1                     ; d0 6e fc
     3464    call 02f85h                               ; e8 b1 12
     3465    shr byte [bp-008h], 1                     ; d0 6e f8
    34103466    db  0feh, 0c5h
    34113467    ; inc ch                                    ; fe c5
    3412     jmp short 01c5dh                          ; eb cc
     3468    jmp short 01ca7h                          ; eb cc
    34133469    db  0feh, 0c1h
    34143470    ; inc cl                                    ; fe c1
    34153471    cmp cl, 008h                              ; 80 f9 08
    3416     jnc short 01cb5h                          ; 73 1d
     3472    jnc short 01cffh                          ; 73 1d
    34173473    movzx bx, cl                              ; 0f b6 d9
    3418     movzx dx, byte [bp+008h]                  ; 0f b6 56 08
     3474    movzx dx, byte [bp+004h]                  ; 0f b6 56 04
    34193475    imul dx, bx                               ; 0f af d3
    34203476    sal dx, 003h                              ; c1 e2 03
    3421     mov bx, word [bp-008h]                    ; 8b 5e f8
     3477    mov bx, word [bp-00ch]                    ; 8b 5e f4
    34223478    add bx, dx                                ; 01 d3
    3423     mov word [bp-006h], bx                    ; 89 5e fa
    3424     mov byte [bp-004h], 080h                  ; c6 46 fc 80
     3479    mov word [bp-00ah], bx                    ; 89 5e f6
     3480    mov byte [bp-008h], 080h                  ; c6 46 f8 80
    34253481    xor ch, ch                                ; 30 ed
    3426     jmp short 01c62h                          ; eb ad
    3427     leave                                     ; c9
     3482    jmp short 01cach                          ; eb ad
     3483    lea sp, [bp-004h]                         ; 8d 66 fc
    34283484    pop di                                    ; 5f
    34293485    pop si                                    ; 5e
     3486    pop bp                                    ; 5d
    34303487    retn 00002h                               ; c2 02 00
    3431 biosfn_write_char_attr_:                     ; 0xc1cbb LB 0x163
     3488biosfn_write_char_attr_:                     ; 0xc1d08 LB 0x168
     3489    push bp                                   ; 55
     3490    mov bp, sp                                ; 89 e5
    34323491    push si                                   ; 56
    34333492    push di                                   ; 57
    3434     enter 00018h, 000h                        ; c8 18 00 00
    3435     mov byte [bp-00ah], al                    ; 88 46 f6
    3436     mov byte [bp-00ch], dl                    ; 88 56 f4
    3437     mov byte [bp-00eh], bl                    ; 88 5e f2
     3493    sub sp, strict byte 00018h                ; 83 ec 18
     3494    mov byte [bp-00eh], al                    ; 88 46 f2
     3495    mov byte [bp-010h], dl                    ; 88 56 f0
     3496    mov byte [bp-012h], bl                    ; 88 5e ee
    34383497    mov si, cx                                ; 89 ce
    34393498    mov dx, strict word 00049h                ; ba 49 00
    34403499    mov ax, strict word 00040h                ; b8 40 00
    3441     call 02eebh                               ; e8 16 12
     3500    call 02f77h                               ; e8 53 12
    34423501    xor ah, ah                                ; 30 e4
    3443     call 02ec4h                               ; e8 ea 11
     3502    call 02f50h                               ; e8 27 12
    34443503    mov cl, al                                ; 88 c1
    3445     mov byte [bp-002h], al                    ; 88 46 fe
     3504    mov byte [bp-006h], al                    ; 88 46 fa
    34463505    cmp AL, strict byte 0ffh                  ; 3c ff
    3447     je near 01e1ah                            ; 0f 84 35 01
    3448     movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    3449     lea bx, [bp-018h]                         ; 8d 5e e8
    3450     lea dx, [bp-016h]                         ; 8d 56 ea
    3451     call 00a83h                               ; e8 91 ed
    3452     mov al, byte [bp-018h]                    ; 8a 46 e8
    3453     mov byte [bp-008h], al                    ; 88 46 f8
    3454     mov ax, word [bp-018h]                    ; 8b 46 e8
     3506    je near 01e69h                            ; 0f 84 35 01
     3507    movzx ax, byte [bp-010h]                  ; 0f b6 46 f0
     3508    lea bx, [bp-01ch]                         ; 8d 5e e4
     3509    lea dx, [bp-01ah]                         ; 8d 56 e6
     3510    call 00a88h                               ; e8 47 ed
     3511    mov al, byte [bp-01ch]                    ; 8a 46 e4
     3512    mov byte [bp-00ch], al                    ; 88 46 f4
     3513    mov ax, word [bp-01ch]                    ; 8b 46 e4
    34553514    xor al, al                                ; 30 c0
    34563515    shr ax, 008h                              ; c1 e8 08
    3457     mov byte [bp-006h], al                    ; 88 46 fa
     3516    mov byte [bp-00ah], al                    ; 88 46 f6
    34583517    mov dx, 00084h                            ; ba 84 00
    34593518    mov ax, strict word 00040h                ; b8 40 00
    3460     call 02eebh                               ; e8 df 11
     3519    call 02f77h                               ; e8 1c 12
    34613520    xor ah, ah                                ; 30 e4
    34623521    inc ax                                    ; 40
    3463     mov word [bp-014h], ax                    ; 89 46 ec
     3522    mov word [bp-018h], ax                    ; 89 46 e8
    34643523    mov dx, strict word 0004ah                ; ba 4a 00
    34653524    mov ax, strict word 00040h                ; b8 40 00
    3466     call 02f07h                               ; e8 ec 11
    3467     mov word [bp-012h], ax                    ; 89 46 ee
     3525    call 02f93h                               ; e8 29 12
     3526    mov word [bp-016h], ax                    ; 89 46 ea
    34683527    movzx bx, cl                              ; 0f b6 d9
    34693528    mov di, bx                                ; 89 df
    34703529    sal di, 003h                              ; c1 e7 03
    3471     cmp byte [di+04830h], 000h                ; 80 bd 30 48 00
    3472     jne short 01d74h                          ; 75 47
    3473     mov bx, word [bp-014h]                    ; 8b 5e ec
     3530    cmp byte [di+04835h], 000h                ; 80 bd 35 48 00
     3531    jne short 01dc3h                          ; 75 47
     3532    mov bx, word [bp-018h]                    ; 8b 5e e8
    34743533    imul bx, ax                               ; 0f af d8
    34753534    add bx, bx                                ; 01 db
    34763535    or bl, 0ffh                               ; 80 cb ff
    3477     movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
     3536    movzx dx, byte [bp-010h]                  ; 0f b6 56 f0
    34783537    inc bx                                    ; 43
    34793538    imul dx, bx                               ; 0f af d3
    3480     movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
     3539    movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
    34813540    imul ax, bx                               ; 0f af c3
    3482     movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
     3541    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    34833542    add ax, bx                                ; 01 d8
    34843543    add ax, ax                                ; 01 c0
    34853544    add dx, ax                                ; 01 c2
    3486     movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
     3545    movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
    34873546    sal ax, 008h                              ; c1 e0 08
    3488     movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
     3547    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
    34893548    add ax, bx                                ; 01 d8
    3490     mov word [bp-016h], ax                    ; 89 46 ea
    3491     mov ax, word [bp-016h]                    ; 8b 46 ea
    3492     mov es, [di+04833h]                       ; 8e 85 33 48
     3549    mov word [bp-01ah], ax                    ; 89 46 e6
     3550    mov ax, word [bp-01ah]                    ; 8b 46 e6
     3551    mov es, [di+04838h]                       ; 8e 85 38 48
    34933552    mov cx, si                                ; 89 f1
    34943553    mov di, dx                                ; 89 d7
    34953554    cld                                       ; fc
    3496     jcxz 01d71h                               ; e3 02
     3555    jcxz 01dc0h                               ; e3 02
    34973556    rep stosw                                 ; f3 ab
    3498     jmp near 01e1ah                           ; e9 a6 00
    3499     movzx bx, byte [bx+048afh]                ; 0f b6 9f af 48
     3557    jmp near 01e69h                           ; e9 a6 00
     3558    movzx bx, byte [bx+048b4h]                ; 0f b6 9f b4 48
    35003559    sal bx, 006h                              ; c1 e3 06
    3501     mov al, byte [bx+048c5h]                  ; 8a 87 c5 48
    3502     mov byte [bp-004h], al                    ; 88 46 fc
    3503     mov al, byte [di+04832h]                  ; 8a 85 32 48
    3504     mov byte [bp-010h], al                    ; 88 46 f0
     3560    mov al, byte [bx+048cah]                  ; 8a 87 ca 48
     3561    mov byte [bp-008h], al                    ; 88 46 f8
     3562    mov al, byte [di+04837h]                  ; 8a 85 37 48
     3563    mov byte [bp-014h], al                    ; 88 46 ec
    35053564    dec si                                    ; 4e
    35063565    cmp si, strict byte 0ffffh                ; 83 fe ff
    3507     je near 01e1ah                            ; 0f 84 88 00
     3566    je near 01e69h                            ; 0f 84 88 00
     3567    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     3568    cmp ax, word [bp-016h]                    ; 3b 46 ea
     3569    jnc near 01e69h                           ; 0f 83 7d 00
     3570    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
     3571    sal bx, 003h                              ; c1 e3 03
     3572    mov al, byte [bx+04836h]                  ; 8a 87 36 48
     3573    cmp AL, strict byte 003h                  ; 3c 03
     3574    jc short 01e07h                           ; 72 0c
     3575    jbe short 01e0dh                          ; 76 10
     3576    cmp AL, strict byte 005h                  ; 3c 05
     3577    je short 01e4bh                           ; 74 4a
     3578    cmp AL, strict byte 004h                  ; 3c 04
     3579    je short 01e0dh                           ; 74 08
     3580    jmp short 01e63h                          ; eb 5c
     3581    cmp AL, strict byte 002h                  ; 3c 02
     3582    je short 01e2ch                           ; 74 21
     3583    jmp short 01e63h                          ; eb 56
    35083584    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    3509     cmp ax, word [bp-012h]                    ; 3b 46 ee
    3510     jnc near 01e1ah                           ; 0f 83 7d 00
    3511     movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
    3512     sal bx, 003h                              ; c1 e3 03
    3513     mov al, byte [bx+04831h]                  ; 8a 87 31 48
    3514     cmp AL, strict byte 003h                  ; 3c 03
    3515     jc short 01db8h                           ; 72 0c
    3516     jbe short 01dbeh                          ; 76 10
    3517     cmp AL, strict byte 005h                  ; 3c 05
    3518     je short 01dfch                           ; 74 4a
    3519     cmp AL, strict byte 004h                  ; 3c 04
    3520     je short 01dbeh                           ; 74 08
    3521     jmp short 01e14h                          ; eb 5c
    3522     cmp AL, strict byte 002h                  ; 3c 02
    3523     je short 01dddh                           ; 74 21
    3524     jmp short 01e14h                          ; eb 56
    3525     movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    3526     push ax                                   ; 50
    3527     movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
    3528     push ax                                   ; 50
    3529     movzx cx, byte [bp-006h]                  ; 0f b6 4e fa
    3530     movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
    3531     movzx dx, byte [bp-00eh]                  ; 0f b6 56 f2
    3532     movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    3533     call 01a30h                               ; e8 55 fc
    3534     jmp short 01e14h                          ; eb 37
    3535     movzx ax, byte [bp-010h]                  ; 0f b6 46 f0
    3536     push ax                                   ; 50
    3537     movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
    3538     push ax                                   ; 50
    3539     movzx cx, byte [bp-006h]                  ; 0f b6 4e fa
    3540     movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
    3541     movzx dx, byte [bp-00eh]                  ; 0f b6 56 f2
    3542     movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    3543     call 01b16h                               ; e8 1c fd
    3544     jmp short 01e14h                          ; eb 18
    3545     movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
    3546     push ax                                   ; 50
    3547     movzx cx, byte [bp-006h]                  ; 0f b6 4e fa
    3548     movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
    3549     movzx dx, byte [bp-00eh]                  ; 0f b6 56 f2
    3550     movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    3551     call 01c2fh                               ; e8 1b fe
    3552     inc byte [bp-008h]                        ; fe 46 f8
    3553     jmp near 01d8ah                           ; e9 70 ff
    3554     leave                                     ; c9
     3585    push ax                                   ; 50
     3586    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
     3587    push ax                                   ; 50
     3588    movzx cx, byte [bp-00ah]                  ; 0f b6 4e f6
     3589    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
     3590    movzx dx, byte [bp-012h]                  ; 0f b6 56 ee
     3591    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
     3592    call 01a6eh                               ; e8 44 fc
     3593    jmp short 01e63h                          ; eb 37
     3594    movzx ax, byte [bp-014h]                  ; 0f b6 46 ec
     3595    push ax                                   ; 50
     3596    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
     3597    push ax                                   ; 50
     3598    movzx cx, byte [bp-00ah]                  ; 0f b6 4e f6
     3599    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
     3600    movzx dx, byte [bp-012h]                  ; 0f b6 56 ee
     3601    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
     3602    call 01b59h                               ; e8 10 fd
     3603    jmp short 01e63h                          ; eb 18
     3604    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
     3605    push ax                                   ; 50
     3606    movzx cx, byte [bp-00ah]                  ; 0f b6 4e f6
     3607    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
     3608    movzx dx, byte [bp-012h]                  ; 0f b6 56 ee
     3609    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
     3610    call 01c77h                               ; e8 14 fe
     3611    inc byte [bp-00ch]                        ; fe 46 f4
     3612    jmp near 01dd9h                           ; e9 70 ff
     3613    lea sp, [bp-004h]                         ; 8d 66 fc
    35553614    pop di                                    ; 5f
    35563615    pop si                                    ; 5e
    3557     retn                                      ; c3
    3558 biosfn_write_char_only_:                     ; 0xc1e1e LB 0x16a
     3616    pop bp                                    ; 5d
     3617    retn                                      ; c3
     3618biosfn_write_char_only_:                     ; 0xc1e70 LB 0x16f
     3619    push bp                                   ; 55
     3620    mov bp, sp                                ; 89 e5
    35593621    push si                                   ; 56
    35603622    push di                                   ; 57
    3561     enter 00018h, 000h                        ; c8 18 00 00
    3562     mov byte [bp-00eh], al                    ; 88 46 f2
    3563     mov byte [bp-002h], dl                    ; 88 56 fe
    3564     mov byte [bp-010h], bl                    ; 88 5e f0
     3623    sub sp, strict byte 00018h                ; 83 ec 18
     3624    mov byte [bp-012h], al                    ; 88 46 ee
     3625    mov byte [bp-006h], dl                    ; 88 56 fa
     3626    mov byte [bp-014h], bl                    ; 88 5e ec
    35653627    mov si, cx                                ; 89 ce
    35663628    mov dx, strict word 00049h                ; ba 49 00
    35673629    mov ax, strict word 00040h                ; b8 40 00
    3568     call 02eebh                               ; e8 b3 10
     3630    call 02f77h                               ; e8 eb 10
    35693631    xor ah, ah                                ; 30 e4
    3570     call 02ec4h                               ; e8 87 10
     3632    call 02f50h                               ; e8 bf 10
    35713633    mov cl, al                                ; 88 c1
    3572     mov byte [bp-00ah], al                    ; 88 46 f6
     3634    mov byte [bp-00eh], al                    ; 88 46 f2
    35733635    cmp AL, strict byte 0ffh                  ; 3c ff
    3574     je near 01f84h                            ; 0f 84 3c 01
    3575     movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    3576     lea bx, [bp-018h]                         ; 8d 5e e8
    3577     lea dx, [bp-016h]                         ; 8d 56 ea
    3578     call 00a83h                               ; e8 2e ec
    3579     mov al, byte [bp-018h]                    ; 8a 46 e8
    3580     mov byte [bp-008h], al                    ; 88 46 f8
    3581     mov ax, word [bp-018h]                    ; 8b 46 e8
     3636    je near 01fd8h                            ; 0f 84 3c 01
     3637    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
     3638    lea bx, [bp-01ch]                         ; 8d 5e e4
     3639    lea dx, [bp-01ah]                         ; 8d 56 e6
     3640    call 00a88h                               ; e8 df eb
     3641    mov al, byte [bp-01ch]                    ; 8a 46 e4
     3642    mov byte [bp-00ch], al                    ; 88 46 f4
     3643    mov ax, word [bp-01ch]                    ; 8b 46 e4
    35823644    xor al, al                                ; 30 c0
    35833645    shr ax, 008h                              ; c1 e8 08
    3584     mov byte [bp-00ch], al                    ; 88 46 f4
     3646    mov byte [bp-010h], al                    ; 88 46 f0
    35853647    mov dx, 00084h                            ; ba 84 00
    35863648    mov ax, strict word 00040h                ; b8 40 00
    3587     call 02eebh                               ; e8 7c 10
     3649    call 02f77h                               ; e8 b4 10
    35883650    xor ah, ah                                ; 30 e4
    35893651    inc ax                                    ; 40
    3590     mov word [bp-014h], ax                    ; 89 46 ec
     3652    mov word [bp-018h], ax                    ; 89 46 e8
    35913653    mov dx, strict word 0004ah                ; ba 4a 00
    35923654    mov ax, strict word 00040h                ; b8 40 00
    3593     call 02f07h                               ; e8 89 10
    3594     mov word [bp-012h], ax                    ; 89 46 ee
     3655    call 02f93h                               ; e8 c1 10
     3656    mov word [bp-016h], ax                    ; 89 46 ea
    35953657    movzx di, cl                              ; 0f b6 f9
    35963658    mov bx, di                                ; 89 fb
    35973659    sal bx, 003h                              ; c1 e3 03
    3598     cmp byte [bx+04830h], 000h                ; 80 bf 30 48 00
    3599     jne short 01edah                          ; 75 4a
    3600     mov dx, word [bp-014h]                    ; 8b 56 ec
     3660    cmp byte [bx+04835h], 000h                ; 80 bf 35 48 00
     3661    jne short 01f2eh                          ; 75 4a
     3662    mov dx, word [bp-018h]                    ; 8b 56 e8
    36013663    imul dx, ax                               ; 0f af d0
    36023664    add dx, dx                                ; 01 d2
    36033665    or dl, 0ffh                               ; 80 ca ff
    3604     movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
     3666    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    36053667    inc dx                                    ; 42
    36063668    imul bx, dx                               ; 0f af da
    3607     movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
     3669    movzx dx, byte [bp-010h]                  ; 0f b6 56 f0
    36083670    mov cx, ax                                ; 89 c1
    36093671    imul cx, dx                               ; 0f af ca
    3610     movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
     3672    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
    36113673    add cx, dx                                ; 01 d1
    36123674    add cx, cx                                ; 01 c9
     
    36143676    dec si                                    ; 4e
    36153677    cmp si, strict byte 0ffffh                ; 83 fe ff
    3616     je near 01f84h                            ; 0f 84 c6 00
    3617     movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    3618     movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
     3678    je near 01fd8h                            ; 0f 84 c6 00
     3679    movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
     3680    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
    36193681    sal bx, 003h                              ; c1 e3 03
    3620     mov di, word [bx+04833h]                  ; 8b bf 33 48
     3682    mov di, word [bx+04838h]                  ; 8b bf 38 48
    36213683    mov bx, ax                                ; 89 c3
    36223684    mov dx, cx                                ; 89 ca
    36233685    mov ax, di                                ; 89 f8
    3624     call 02ef9h                               ; e8 23 10
    3625     inc cx                                    ; 41
    3626     inc cx                                    ; 41
    3627     jmp short 01eb6h                          ; eb dc
    3628     movzx di, byte [di+048afh]                ; 0f b6 bd af 48
     3686    call 02f85h                               ; e8 5b 10
     3687    inc cx                                    ; 41
     3688    inc cx                                    ; 41
     3689    jmp short 01f0ah                          ; eb dc
     3690    movzx di, byte [di+048b4h]                ; 0f b6 bd b4 48
    36293691    sal di, 006h                              ; c1 e7 06
    3630     mov al, byte [di+048c5h]                  ; 8a 85 c5 48
    3631     mov byte [bp-006h], al                    ; 88 46 fa
    3632     mov al, byte [bx+04832h]                  ; 8a 87 32 48
    3633     mov byte [bp-004h], al                    ; 88 46 fc
     3692    mov al, byte [di+048cah]                  ; 8a 85 ca 48
     3693    mov byte [bp-00ah], al                    ; 88 46 f6
     3694    mov al, byte [bx+04837h]                  ; 8a 87 37 48
     3695    mov byte [bp-008h], al                    ; 88 46 f8
    36343696    dec si                                    ; 4e
    36353697    cmp si, strict byte 0ffffh                ; 83 fe ff
    3636     je near 01f84h                            ; 0f 84 8c 00
     3698    je near 01fd8h                            ; 0f 84 8c 00
     3699    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     3700    cmp ax, word [bp-016h]                    ; 3b 46 ea
     3701    jnc near 01fd8h                           ; 0f 83 81 00
     3702    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
     3703    sal bx, 003h                              ; c1 e3 03
     3704    mov bl, byte [bx+04836h]                  ; 8a 9f 36 48
     3705    cmp bl, 003h                              ; 80 fb 03
     3706    jc short 01f75h                           ; 72 0e
     3707    jbe short 01f7ch                          ; 76 13
     3708    cmp bl, 005h                              ; 80 fb 05
     3709    je short 01fbah                           ; 74 4c
     3710    cmp bl, 004h                              ; 80 fb 04
     3711    je short 01f7ch                           ; 74 09
     3712    jmp short 01fd2h                          ; eb 5d
     3713    cmp bl, 002h                              ; 80 fb 02
     3714    je short 01f9bh                           ; 74 21
     3715    jmp short 01fd2h                          ; eb 56
     3716    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     3717    push ax                                   ; 50
     3718    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
     3719    push ax                                   ; 50
     3720    movzx cx, byte [bp-010h]                  ; 0f b6 4e f0
     3721    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
     3722    movzx dx, byte [bp-014h]                  ; 0f b6 56 ec
     3723    movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
     3724    call 01a6eh                               ; e8 d5 fa
     3725    jmp short 01fd2h                          ; eb 37
    36373726    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    3638     cmp ax, word [bp-012h]                    ; 3b 46 ee
    3639     jnc near 01f84h                           ; 0f 83 81 00
    3640     movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
    3641     sal bx, 003h                              ; c1 e3 03
    3642     mov bl, byte [bx+04831h]                  ; 8a 9f 31 48
    3643     cmp bl, 003h                              ; 80 fb 03
    3644     jc short 01f21h                           ; 72 0e
    3645     jbe short 01f28h                          ; 76 13
    3646     cmp bl, 005h                              ; 80 fb 05
    3647     je short 01f66h                           ; 74 4c
    3648     cmp bl, 004h                              ; 80 fb 04
    3649     je short 01f28h                           ; 74 09
    3650     jmp short 01f7eh                          ; eb 5d
    3651     cmp bl, 002h                              ; 80 fb 02
    3652     je short 01f47h                           ; 74 21
    3653     jmp short 01f7eh                          ; eb 56
    3654     movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    3655     push ax                                   ; 50
     3727    push ax                                   ; 50
     3728    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
     3729    push ax                                   ; 50
     3730    movzx cx, byte [bp-010h]                  ; 0f b6 4e f0
     3731    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
     3732    movzx dx, byte [bp-014h]                  ; 0f b6 56 ec
    36563733    movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
    3657     push ax                                   ; 50
    3658     movzx cx, byte [bp-00ch]                  ; 0f b6 4e f4
    3659     movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
    3660     movzx dx, byte [bp-010h]                  ; 0f b6 56 f0
    3661     movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    3662     call 01a30h                               ; e8 eb fa
    3663     jmp short 01f7eh                          ; eb 37
    3664     movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    3665     push ax                                   ; 50
     3734    call 01b59h                               ; e8 a1 fb
     3735    jmp short 01fd2h                          ; eb 18
     3736    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
     3737    push ax                                   ; 50
     3738    movzx cx, byte [bp-010h]                  ; 0f b6 4e f0
     3739    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
     3740    movzx dx, byte [bp-014h]                  ; 0f b6 56 ec
    36663741    movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
    3667     push ax                                   ; 50
    3668     movzx cx, byte [bp-00ch]                  ; 0f b6 4e f4
    3669     movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
    3670     movzx dx, byte [bp-010h]                  ; 0f b6 56 f0
    3671     movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    3672     call 01b16h                               ; e8 b2 fb
    3673     jmp short 01f7eh                          ; eb 18
    3674     movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
    3675     push ax                                   ; 50
    3676     movzx cx, byte [bp-00ch]                  ; 0f b6 4e f4
    3677     movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
    3678     movzx dx, byte [bp-010h]                  ; 0f b6 56 f0
    3679     movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    3680     call 01c2fh                               ; e8 b1 fc
    3681     inc byte [bp-008h]                        ; fe 46 f8
    3682     jmp near 01ef0h                           ; e9 6c ff
    3683     leave                                     ; c9
     3742    call 01c77h                               ; e8 a5 fc
     3743    inc byte [bp-00ch]                        ; fe 46 f4
     3744    jmp near 01f44h                           ; e9 6c ff
     3745    lea sp, [bp-004h]                         ; 8d 66 fc
    36843746    pop di                                    ; 5f
    36853747    pop si                                    ; 5e
    3686     retn                                      ; c3
    3687 biosfn_write_pixel_:                         ; 0xc1f88 LB 0x168
     3748    pop bp                                    ; 5d
     3749    retn                                      ; c3
     3750biosfn_write_pixel_:                         ; 0xc1fdf LB 0x16a
     3751    push bp                                   ; 55
     3752    mov bp, sp                                ; 89 e5
    36883753    push si                                   ; 56
    3689     enter 00008h, 000h                        ; c8 08 00 00
    3690     mov byte [bp-004h], dl                    ; 88 56 fc
    3691     mov word [bp-008h], bx                    ; 89 5e f8
     3754    sub sp, strict byte 00008h                ; 83 ec 08
     3755    mov byte [bp-006h], dl                    ; 88 56 fa
     3756    mov word [bp-00ah], bx                    ; 89 5e f6
    36923757    mov dx, strict word 00049h                ; ba 49 00
    36933758    mov ax, strict word 00040h                ; b8 40 00
    3694     call 02eebh                               ; e8 4f 0f
     3759    call 02f77h                               ; e8 82 0f
    36953760    xor ah, ah                                ; 30 e4
    3696     call 02ec4h                               ; e8 23 0f
    3697     mov byte [bp-002h], al                    ; 88 46 fe
     3761    call 02f50h                               ; e8 56 0f
     3762    mov byte [bp-004h], al                    ; 88 46 fc
    36983763    cmp AL, strict byte 0ffh                  ; 3c ff
    3699     je near 020edh                            ; 0f 84 43 01
     3764    je near 02121h                            ; 0f 84 1e 01
    37003765    movzx bx, al                              ; 0f b6 d8
    37013766    sal bx, 003h                              ; c1 e3 03
    3702     cmp byte [bx+04830h], 000h                ; 80 bf 30 48 00
    3703     je near 020edh                            ; 0f 84 34 01
    3704     mov al, byte [bx+04831h]                  ; 8a 87 31 48
     3767    cmp byte [bx+04835h], 000h                ; 80 bf 35 48 00
     3768    je near 02121h                            ; 0f 84 0f 01
     3769    mov al, byte [bx+04836h]                  ; 8a 87 36 48
    37053770    cmp AL, strict byte 003h                  ; 3c 03
    3706     jc short 01fd0h                           ; 72 0f
    3707     jbe short 01fd7h                          ; 76 14
     3771    jc short 02029h                           ; 72 0f
     3772    jbe short 02030h                          ; 76 14
    37083773    cmp AL, strict byte 005h                  ; 3c 05
    3709     je near 020cbh                            ; 0f 84 02 01
     3774    je near 02127h                            ; 0f 84 05 01
    37103775    cmp AL, strict byte 004h                  ; 3c 04
    3711     je short 01fd7h                           ; 74 0a
    3712     leave                                     ; c9
    3713     pop si                                    ; 5e
    3714     retn                                      ; c3
     3776    je short 02030h                           ; 74 0a
     3777    jmp near 02121h                           ; e9 f8 00
    37153778    cmp AL, strict byte 002h                  ; 3c 02
    3716     je short 0203ch                           ; 74 68
    3717     leave                                     ; c9
    3718     pop si                                    ; 5e
    3719     retn                                      ; c3
     3779    je short 02095h                           ; 74 68
     3780    jmp near 02121h                           ; e9 f1 00
    37203781    mov dx, strict word 0004ah                ; ba 4a 00
    37213782    mov ax, strict word 00040h                ; b8 40 00
    3722     call 02f07h                               ; e8 27 0f
     3783    call 02f93h                               ; e8 5a 0f
    37233784    imul ax, cx                               ; 0f af c1
    3724     mov bx, word [bp-008h]                    ; 8b 5e f8
     3785    mov bx, word [bp-00ah]                    ; 8b 5e f6
    37253786    shr bx, 003h                              ; c1 eb 03
    37263787    add bx, ax                                ; 01 c3
    3727     mov word [bp-006h], bx                    ; 89 5e fa
    3728     mov cx, word [bp-008h]                    ; 8b 4e f8
     3788    mov word [bp-008h], bx                    ; 89 5e f8
     3789    mov cx, word [bp-00ah]                    ; 8b 4e f6
    37293790    and cl, 007h                              ; 80 e1 07
    37303791    mov ax, 00080h                            ; b8 80 00
     
    37393800    mov dx, bx                                ; 89 da
    37403801    mov ax, 0a000h                            ; b8 00 a0
    3741     call 02eebh                               ; e8 db 0e
    3742     test byte [bp-004h], 080h                 ; f6 46 fc 80
    3743     je short 0201dh                           ; 74 07
     3802    call 02f77h                               ; e8 0e 0f
     3803    test byte [bp-006h], 080h                 ; f6 46 fa 80
     3804    je short 02076h                           ; 74 07
    37443805    mov ax, 01803h                            ; b8 03 18
    37453806    mov dx, 003ceh                            ; ba ce 03
    37463807    out DX, ax                                ; ef
    3747     movzx bx, byte [bp-004h]                  ; 0f b6 5e fc
    3748     mov dx, word [bp-006h]                    ; 8b 56 fa
     3808    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
     3809    mov dx, word [bp-008h]                    ; 8b 56 f8
    37493810    mov ax, 0a000h                            ; b8 00 a0
    3750     call 02ef9h                               ; e8 cf 0e
     3811    call 02f85h                               ; e8 02 0f
    37513812    mov ax, 0ff08h                            ; b8 08 ff
    37523813    mov dx, 003ceh                            ; ba ce 03
     
    37563817    mov ax, strict word 00003h                ; b8 03 00
    37573818    out DX, ax                                ; ef
    3758     leave                                     ; c9
    3759     pop si                                    ; 5e
    3760     retn                                      ; c3
     3819    jmp near 02121h                           ; e9 8c 00
    37613820    mov ax, cx                                ; 89 c8
    37623821    shr ax, 1                                 ; d1 e8
    37633822    imul ax, ax, strict byte 00050h           ; 6b c0 50
    3764     cmp byte [bx+04832h], 002h                ; 80 bf 32 48 02
    3765     jne short 02052h                          ; 75 08
    3766     mov bx, word [bp-008h]                    ; 8b 5e f8
     3823    cmp byte [bx+04837h], 002h                ; 80 bf 37 48 02
     3824    jne short 020abh                          ; 75 08
     3825    mov bx, word [bp-00ah]                    ; 8b 5e f6
    37673826    shr bx, 002h                              ; c1 eb 02
    3768     jmp short 02058h                          ; eb 06
    3769     mov bx, word [bp-008h]                    ; 8b 5e f8
     3827    jmp short 020b1h                          ; eb 06
     3828    mov bx, word [bp-00ah]                    ; 8b 5e f6
    37703829    shr bx, 003h                              ; c1 eb 03
    37713830    add bx, ax                                ; 01 c3
    3772     mov word [bp-006h], bx                    ; 89 5e fa
     3831    mov word [bp-008h], bx                    ; 89 5e f8
    37733832    test cl, 001h                             ; f6 c1 01
    3774     je short 02066h                           ; 74 04
    3775     add byte [bp-005h], 020h                  ; 80 46 fb 20
    3776     mov dx, word [bp-006h]                    ; 8b 56 fa
     3833    je short 020bfh                           ; 74 04
     3834    add byte [bp-007h], 020h                  ; 80 46 f9 20
     3835    mov dx, word [bp-008h]                    ; 8b 56 f8
    37773836    mov ax, 0b800h                            ; b8 00 b8
    3778     call 02eebh                               ; e8 7c 0e
     3837    call 02f77h                               ; e8 af 0e
    37793838    mov bl, al                                ; 88 c3
    3780     movzx si, byte [bp-002h]                  ; 0f b6 76 fe
     3839    movzx si, byte [bp-004h]                  ; 0f b6 76 fc
    37813840    sal si, 003h                              ; c1 e6 03
    3782     cmp byte [si+04832h], 002h                ; 80 bc 32 48 02
    3783     jne short 02098h                          ; 75 19
    3784     mov al, byte [bp-008h]                    ; 8a 46 f8
     3841    cmp byte [si+04837h], 002h                ; 80 bc 37 48 02
     3842    jne short 020f1h                          ; 75 19
     3843    mov al, byte [bp-00ah]                    ; 8a 46 f6
    37853844    and AL, strict byte 003h                  ; 24 03
    37863845    mov AH, strict byte 003h                  ; b4 03
     
    37883847    mov cl, ah                                ; 88 e1
    37893848    add cl, ah                                ; 00 e1
    3790     mov bh, byte [bp-004h]                    ; 8a 7e fc
     3849    mov bh, byte [bp-006h]                    ; 8a 7e fa
    37913850    and bh, 003h                              ; 80 e7 03
    37923851    sal bh, CL                                ; d2 e7
    37933852    mov AL, strict byte 003h                  ; b0 03
    3794     jmp short 020abh                          ; eb 13
    3795     mov al, byte [bp-008h]                    ; 8a 46 f8
     3853    jmp short 02104h                          ; eb 13
     3854    mov al, byte [bp-00ah]                    ; 8a 46 f6
    37963855    and AL, strict byte 007h                  ; 24 07
    37973856    mov CL, strict byte 007h                  ; b1 07
    37983857    sub cl, al                                ; 28 c1
    3799     mov bh, byte [bp-004h]                    ; 8a 7e fc
     3858    mov bh, byte [bp-006h]                    ; 8a 7e fa
    38003859    and bh, 001h                              ; 80 e7 01
    38013860    sal bh, CL                                ; d2 e7
    38023861    mov AL, strict byte 001h                  ; b0 01
    38033862    sal al, CL                                ; d2 e0
    3804     test byte [bp-004h], 080h                 ; f6 46 fc 80
    3805     je short 020b7h                           ; 74 04
     3863    test byte [bp-006h], 080h                 ; f6 46 fa 80
     3864    je short 02110h                           ; 74 04
    38063865    xor bl, bh                                ; 30 fb
    3807     jmp short 020bdh                          ; eb 06
     3866    jmp short 02116h                          ; eb 06
    38083867    not al                                    ; f6 d0
    38093868    and bl, al                                ; 20 c3
    38103869    or bl, bh                                 ; 08 fb
    38113870    xor bh, bh                                ; 30 ff
    3812     mov dx, word [bp-006h]                    ; 8b 56 fa
     3871    mov dx, word [bp-008h]                    ; 8b 56 f8
    38133872    mov ax, 0b800h                            ; b8 00 b8
    3814     call 02ef9h                               ; e8 31 0e
    3815     leave                                     ; c9
     3873    call 02f85h                               ; e8 64 0e
     3874    lea sp, [bp-002h]                         ; 8d 66 fe
    38163875    pop si                                    ; 5e
     3876    pop bp                                    ; 5d
    38173877    retn                                      ; c3
    38183878    mov dx, strict word 0004ah                ; ba 4a 00
    38193879    mov ax, strict word 00040h                ; b8 40 00
    3820     call 02f07h                               ; e8 33 0e
     3880    call 02f93h                               ; e8 63 0e
    38213881    sal ax, 003h                              ; c1 e0 03
    38223882    imul cx, ax                               ; 0f af c8
    3823     mov ax, word [bp-008h]                    ; 8b 46 f8
     3883    mov ax, word [bp-00ah]                    ; 8b 46 f6
    38243884    add ax, cx                                ; 01 c8
    3825     mov word [bp-006h], ax                    ; 89 46 fa
    3826     movzx bx, byte [bp-004h]                  ; 0f b6 5e fc
     3885    mov word [bp-008h], ax                    ; 89 46 f8
     3886    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    38273887    mov dx, ax                                ; 89 c2
    38283888    mov ax, 0a000h                            ; b8 00 a0
    3829     jmp short 020c5h                          ; eb d8
    3830     leave                                     ; c9
    3831     pop si                                    ; 5e
    3832     retn                                      ; c3
    3833 biosfn_write_teletype_:                      ; 0xc20f0 LB 0x27f
     3889    jmp short 0211eh                          ; eb d5
     3890biosfn_write_teletype_:                      ; 0xc2149 LB 0x284
     3891    push bp                                   ; 55
     3892    mov bp, sp                                ; 89 e5
    38343893    push si                                   ; 56
    3835     enter 00016h, 000h                        ; c8 16 00 00
    3836     mov byte [bp-00ah], al                    ; 88 46 f6
    3837     mov byte [bp-002h], dl                    ; 88 56 fe
    3838     mov byte [bp-004h], bl                    ; 88 5e fc
    3839     mov byte [bp-00eh], cl                    ; 88 4e f2
     3894    sub sp, strict byte 00016h                ; 83 ec 16
     3895    mov byte [bp-00ch], al                    ; 88 46 f4
     3896    mov byte [bp-004h], dl                    ; 88 56 fc
     3897    mov byte [bp-006h], bl                    ; 88 5e fa
     3898    mov byte [bp-010h], cl                    ; 88 4e f0
    38403899    cmp dl, 0ffh                              ; 80 fa ff
    3841     jne short 02112h                          ; 75 0c
     3900    jne short 0216dh                          ; 75 0c
    38423901    mov dx, strict word 00062h                ; ba 62 00
    38433902    mov ax, strict word 00040h                ; b8 40 00
    3844     call 02eebh                               ; e8 dc 0d
    3845     mov byte [bp-002h], al                    ; 88 46 fe
     3903    call 02f77h                               ; e8 0d 0e
     3904    mov byte [bp-004h], al                    ; 88 46 fc
    38463905    mov dx, strict word 00049h                ; ba 49 00
    38473906    mov ax, strict word 00040h                ; b8 40 00
    3848     call 02eebh                               ; e8 d0 0d
     3907    call 02f77h                               ; e8 01 0e
    38493908    xor ah, ah                                ; 30 e4
    3850     call 02ec4h                               ; e8 a4 0d
    3851     mov byte [bp-00ch], al                    ; 88 46 f4
     3909    call 02f50h                               ; e8 d5 0d
     3910    mov byte [bp-00eh], al                    ; 88 46 f2
    38523911    cmp AL, strict byte 0ffh                  ; 3c ff
    3853     je near 0236ch                            ; 0f 84 43 02
    3854     movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    3855     lea bx, [bp-016h]                         ; 8d 5e ea
    3856     lea dx, [bp-014h]                         ; 8d 56 ec
    3857     call 00a83h                               ; e8 4d e9
    3858     mov al, byte [bp-016h]                    ; 8a 46 ea
    3859     mov byte [bp-006h], al                    ; 88 46 fa
    3860     mov ax, word [bp-016h]                    ; 8b 46 ea
     3912    je near 023c7h                            ; 0f 84 43 02
     3913    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
     3914    lea bx, [bp-018h]                         ; 8d 5e e8
     3915    lea dx, [bp-016h]                         ; 8d 56 ea
     3916    call 00a88h                               ; e8 f7 e8
     3917    mov al, byte [bp-018h]                    ; 8a 46 e8
     3918    mov byte [bp-008h], al                    ; 88 46 f8
     3919    mov ax, word [bp-018h]                    ; 8b 46 e8
    38613920    xor al, al                                ; 30 c0
    38623921    shr ax, 008h                              ; c1 e8 08
    3863     mov byte [bp-008h], al                    ; 88 46 f8
     3922    mov byte [bp-00ah], al                    ; 88 46 f6
    38643923    mov dx, 00084h                            ; ba 84 00
    38653924    mov ax, strict word 00040h                ; b8 40 00
    3866     call 02eebh                               ; e8 9b 0d
     3925    call 02f77h                               ; e8 cc 0d
    38673926    xor ah, ah                                ; 30 e4
    38683927    inc ax                                    ; 40
     3928    mov word [bp-014h], ax                    ; 89 46 ec
     3929    mov dx, strict word 0004ah                ; ba 4a 00
     3930    mov ax, strict word 00040h                ; b8 40 00
     3931    call 02f93h                               ; e8 d9 0d
    38693932    mov word [bp-012h], ax                    ; 89 46 ee
    3870     mov dx, strict word 0004ah                ; ba 4a 00
    3871     mov ax, strict word 00040h                ; b8 40 00
    3872     call 02f07h                               ; e8 a8 0d
    3873     mov word [bp-010h], ax                    ; 89 46 f0
    3874     mov al, byte [bp-00ah]                    ; 8a 46 f6
     3933    mov al, byte [bp-00ch]                    ; 8a 46 f4
    38753934    cmp AL, strict byte 009h                  ; 3c 09
    3876     jc short 02175h                           ; 72 0c
    3877     jbe short 0219ch                          ; 76 31
     3935    jc short 021d0h                           ; 72 0c
     3936    jbe short 021f7h                          ; 76 31
    38783937    cmp AL, strict byte 00dh                  ; 3c 0d
    3879     je short 0218fh                           ; 74 20
     3938    je short 021eah                           ; 74 20
    38803939    cmp AL, strict byte 00ah                  ; 3c 0a
    3881     je short 02196h                           ; 74 23
    3882     jmp short 021ddh                          ; eb 68
     3940    je short 021f1h                           ; 74 23
     3941    jmp short 02238h                          ; eb 68
    38833942    cmp AL, strict byte 008h                  ; 3c 08
    3884     je short 02181h                           ; 74 08
     3943    je short 021dch                           ; 74 08
    38853944    cmp AL, strict byte 007h                  ; 3c 07
    3886     je near 022b9h                            ; 0f 84 3a 01
    3887     jmp short 021ddh                          ; eb 5c
    3888     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    3889     jbe near 022b9h                           ; 0f 86 30 01
    3890     dec byte [bp-006h]                        ; fe 4e fa
    3891     jmp near 022b9h                           ; e9 2a 01
    3892     mov byte [bp-006h], 000h                  ; c6 46 fa 00
    3893     jmp near 022b9h                           ; e9 23 01
    3894     inc byte [bp-008h]                        ; fe 46 f8
    3895     jmp near 022b9h                           ; e9 1d 01
    3896     movzx cx, byte [bp-00eh]                  ; 0f b6 4e f2
    3897     movzx bx, byte [bp-004h]                  ; 0f b6 5e fc
    3898     movzx si, byte [bp-002h]                  ; 0f b6 76 fe
     3945    je near 02314h                            ; 0f 84 3a 01
     3946    jmp short 02238h                          ; eb 5c
     3947    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
     3948    jbe near 02314h                           ; 0f 86 30 01
     3949    dec byte [bp-008h]                        ; fe 4e f8
     3950    jmp near 02314h                           ; e9 2a 01
     3951    mov byte [bp-008h], 000h                  ; c6 46 f8 00
     3952    jmp near 02314h                           ; e9 23 01
     3953    inc byte [bp-00ah]                        ; fe 46 f6
     3954    jmp near 02314h                           ; e9 1d 01
     3955    movzx cx, byte [bp-010h]                  ; 0f b6 4e f0
     3956    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
     3957    movzx si, byte [bp-004h]                  ; 0f b6 76 fc
    38993958    mov dx, si                                ; 89 f2
    39003959    mov ax, strict word 00020h                ; b8 20 00
    3901     call 020f0h                               ; e8 40 ff
    3902     lea bx, [bp-016h]                         ; 8d 5e ea
    3903     lea dx, [bp-014h]                         ; 8d 56 ec
    3904     mov ax, si                                ; 89 f0
    3905     call 00a83h                               ; e8 c8 e8
    3906     mov al, byte [bp-016h]                    ; 8a 46 ea
    3907     mov byte [bp-006h], al                    ; 88 46 fa
    3908     mov ax, word [bp-016h]                    ; 8b 46 ea
     3960    call 02149h                               ; e8 3e ff
     3961    lea bx, [bp-018h]                         ; 8d 5e e8
     3962    lea dx, [bp-016h]                         ; 8d 56 ea
     3963    mov ax, si                                ; 89 f0
     3964    call 00a88h                               ; e8 72 e8
     3965    mov al, byte [bp-018h]                    ; 8a 46 e8
     3966    mov byte [bp-008h], al                    ; 88 46 f8
     3967    mov ax, word [bp-018h]                    ; 8b 46 e8
    39093968    xor al, al                                ; 30 c0
    39103969    shr ax, 008h                              ; c1 e8 08
    3911     mov byte [bp-008h], al                    ; 88 46 f8
    3912     movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
     3970    mov byte [bp-00ah], al                    ; 88 46 f6
     3971    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    39133972    mov bx, strict word 00008h                ; bb 08 00
    39143973    cwd                                       ; 99
    39153974    idiv bx                                   ; f7 fb
    39163975    test dx, dx                               ; 85 d2
    3917     je short 0219ch                           ; 74 c2
    3918     jmp near 022b9h                           ; e9 dc 00
    3919     movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
     3976    je short 021f7h                           ; 74 c2
     3977    jmp near 02314h                           ; e9 dc 00
     3978    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
    39203979    mov si, bx                                ; 89 de
    39213980    sal si, 003h                              ; c1 e6 03
    3922     cmp byte [si+04830h], 000h                ; 80 bc 30 48 00
    3923     jne short 02238h                          ; 75 4b
    3924     mov ax, word [bp-010h]                    ; 8b 46 f0
    3925     imul ax, word [bp-012h]                   ; 0f af 46 ee
     3981    cmp byte [si+04835h], 000h                ; 80 bc 35 48 00
     3982    jne short 02293h                          ; 75 4b
     3983    mov ax, word [bp-012h]                    ; 8b 46 ee
     3984    imul ax, word [bp-014h]                   ; 0f af 46 ec
    39263985    add ax, ax                                ; 01 c0
    39273986    or AL, strict byte 0ffh                   ; 0c ff
    3928     movzx dx, byte [bp-002h]                  ; 0f b6 56 fe
     3987    movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
    39293988    inc ax                                    ; 40
    39303989    imul dx, ax                               ; 0f af d0
    3931     movzx cx, byte [bp-008h]                  ; 0f b6 4e f8
    3932     imul cx, word [bp-010h]                   ; 0f af 4e f0
    3933     movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
     3990    movzx cx, byte [bp-00ah]                  ; 0f b6 4e f6
     3991    imul cx, word [bp-012h]                   ; 0f af 4e ee
     3992    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
    39343993    add cx, bx                                ; 01 d9
    39353994    add cx, cx                                ; 01 c9
    39363995    add cx, dx                                ; 01 d1
    3937     movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
    3938     mov ax, word [si+04833h]                  ; 8b 84 33 48
    3939     mov dx, cx                                ; 89 ca
    3940     call 02ef9h                               ; e8 da 0c
    3941     cmp byte [bp-00eh], 003h                  ; 80 7e f2 03
    3942     jne near 022b6h                           ; 0f 85 8f 00
    3943     movzx bx, byte [bp-004h]                  ; 0f b6 5e fc
     3996    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
     3997    mov ax, word [si+04838h]                  ; 8b 84 38 48
     3998    mov dx, cx                                ; 89 ca
     3999    call 02f85h                               ; e8 0b 0d
     4000    cmp byte [bp-010h], 003h                  ; 80 7e f0 03
     4001    jne near 02311h                           ; 0f 85 8f 00
     4002    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    39444003    mov dx, cx                                ; 89 ca
    39454004    inc dx                                    ; 42
    3946     mov ax, word [si+04833h]                  ; 8b 84 33 48
    3947     call 02ef9h                               ; e8 c4 0c
    3948     jmp near 022b6h                           ; e9 7e 00
    3949     movzx bx, byte [bx+048afh]                ; 0f b6 9f af 48
     4005    mov ax, word [si+04838h]                  ; 8b 84 38 48
     4006    call 02f85h                               ; e8 f5 0c
     4007    jmp near 02311h                           ; e9 7e 00
     4008    movzx bx, byte [bx+048b4h]                ; 0f b6 9f b4 48
    39504009    sal bx, 006h                              ; c1 e3 06
    3951     mov ah, byte [bx+048c5h]                  ; 8a a7 c5 48
    3952     mov dl, byte [si+04832h]                  ; 8a 94 32 48
    3953     mov al, byte [si+04831h]                  ; 8a 84 31 48
     4010    mov ah, byte [bx+048cah]                  ; 8a a7 ca 48
     4011    mov dl, byte [si+04837h]                  ; 8a 94 37 48
     4012    mov al, byte [si+04836h]                  ; 8a 84 36 48
    39544013    cmp AL, strict byte 003h                  ; 3c 03
    3955     jc short 0225ch                           ; 72 0c
    3956     jbe short 02262h                          ; 76 10
     4014    jc short 022b7h                           ; 72 0c
     4015    jbe short 022bdh                          ; 76 10
    39574016    cmp AL, strict byte 005h                  ; 3c 05
    3958     je short 0229eh                           ; 74 48
     4017    je short 022f9h                           ; 74 48
    39594018    cmp AL, strict byte 004h                  ; 3c 04
    3960     je short 02262h                           ; 74 08
    3961     jmp short 022b6h                          ; eb 5a
     4019    je short 022bdh                           ; 74 08
     4020    jmp short 02311h                          ; eb 5a
    39624021    cmp AL, strict byte 002h                  ; 3c 02
    3963     je short 02280h                           ; 74 20
    3964     jmp short 022b6h                          ; eb 54
     4022    je short 022dbh                           ; 74 20
     4023    jmp short 02311h                          ; eb 54
    39654024    movzx ax, ah                              ; 0f b6 c4
    39664025    push ax                                   ; 50
    3967     movzx ax, byte [bp-010h]                  ; 0f b6 46 f0
    3968     push ax                                   ; 50
    3969     movzx cx, byte [bp-008h]                  ; 0f b6 4e f8
    3970     movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    3971     movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
    3972     movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    3973     call 01a30h                               ; e8 b2 f7
    3974     jmp short 022b6h                          ; eb 36
     4026    movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
     4027    push ax                                   ; 50
     4028    movzx cx, byte [bp-00ah]                  ; 0f b6 4e f6
     4029    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
     4030    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
     4031    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     4032    call 01a6eh                               ; e8 95 f7
     4033    jmp short 02311h                          ; eb 36
    39754034    movzx ax, dl                              ; 0f b6 c2
    39764035    push ax                                   ; 50
    3977     movzx ax, byte [bp-010h]                  ; 0f b6 46 f0
    3978     push ax                                   ; 50
    3979     movzx cx, byte [bp-008h]                  ; 0f b6 4e f8
    3980     movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    3981     movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
    3982     movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    3983     call 01b16h                               ; e8 7a f8
    3984     jmp short 022b6h                          ; eb 18
    3985     movzx ax, byte [bp-010h]                  ; 0f b6 46 f0
    3986     push ax                                   ; 50
    3987     movzx cx, byte [bp-008h]                  ; 0f b6 4e f8
    3988     movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    3989     movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
    3990     movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    3991     call 01c2fh                               ; e8 79 f9
    3992     inc byte [bp-006h]                        ; fe 46 fa
    3993     movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    3994     cmp ax, word [bp-010h]                    ; 3b 46 f0
    3995     jne short 022c9h                          ; 75 07
    3996     mov byte [bp-006h], 000h                  ; c6 46 fa 00
     4036    movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
     4037    push ax                                   ; 50
     4038    movzx cx, byte [bp-00ah]                  ; 0f b6 4e f6
     4039    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
     4040    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
     4041    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     4042    call 01b59h                               ; e8 62 f8
     4043    jmp short 02311h                          ; eb 18
     4044    movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
     4045    push ax                                   ; 50
     4046    movzx cx, byte [bp-00ah]                  ; 0f b6 4e f6
     4047    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
     4048    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
     4049    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     4050    call 01c77h                               ; e8 66 f9
    39974051    inc byte [bp-008h]                        ; fe 46 f8
    39984052    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    39994053    cmp ax, word [bp-012h]                    ; 3b 46 ee
    4000     jne near 02350h                           ; 0f 85 7c 00
    4001     movzx si, byte [bp-00ch]                  ; 0f b6 76 f4
     4054    jne short 02324h                          ; 75 07
     4055    mov byte [bp-008h], 000h                  ; c6 46 f8 00
     4056    inc byte [bp-00ah]                        ; fe 46 f6
     4057    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     4058    cmp ax, word [bp-014h]                    ; 3b 46 ec
     4059    jne near 023abh                           ; 0f 85 7c 00
     4060    movzx si, byte [bp-00eh]                  ; 0f b6 76 f2
    40024061    sal si, 003h                              ; c1 e6 03
    4003     mov bl, byte [bp-012h]                    ; 8a 5e ee
     4062    mov bl, byte [bp-014h]                    ; 8a 5e ec
    40044063    db  0feh, 0cbh
    40054064    ; dec bl                                    ; fe cb
    4006     mov bh, byte [bp-010h]                    ; 8a 7e f0
     4065    mov bh, byte [bp-012h]                    ; 8a 7e ee
    40074066    db  0feh, 0cfh
    40084067    ; dec bh                                    ; fe cf
    4009     cmp byte [si+04830h], 000h                ; 80 bc 30 48 00
    4010     jne short 02332h                          ; 75 46
    4011     mov ax, word [bp-010h]                    ; 8b 46 f0
    4012     imul ax, word [bp-012h]                   ; 0f af 46 ee
     4068    cmp byte [si+04835h], 000h                ; 80 bc 35 48 00
     4069    jne short 0238dh                          ; 75 46
     4070    mov ax, word [bp-012h]                    ; 8b 46 ee
     4071    imul ax, word [bp-014h]                   ; 0f af 46 ec
    40134072    add ax, ax                                ; 01 c0
    40144073    or AL, strict byte 0ffh                   ; 0c ff
    4015     movzx dx, byte [bp-002h]                  ; 0f b6 56 fe
     4074    movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
    40164075    inc ax                                    ; 40
    40174076    imul dx, ax                               ; 0f af d0
    4018     movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
     4077    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    40194078    dec ax                                    ; 48
    4020     imul ax, word [bp-010h]                   ; 0f af 46 f0
    4021     movzx cx, byte [bp-006h]                  ; 0f b6 4e fa
     4079    imul ax, word [bp-012h]                   ; 0f af 46 ee
     4080    movzx cx, byte [bp-008h]                  ; 0f b6 4e f8
    40224081    add cx, ax                                ; 01 c1
    40234082    add cx, cx                                ; 01 c9
    40244083    add dx, cx                                ; 01 ca
    40254084    inc dx                                    ; 42
    4026     mov ax, word [si+04833h]                  ; 8b 84 33 48
    4027     call 02eebh                               ; e8 d1 0b
     4085    mov ax, word [si+04838h]                  ; 8b 84 38 48
     4086    call 02f77h                               ; e8 02 0c
    40284087    push strict byte 00001h                   ; 6a 01
    4029     movzx dx, byte [bp-002h]                  ; 0f b6 56 fe
     4088    movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
    40304089    push dx                                   ; 52
    40314090    movzx dx, bh                              ; 0f b6 d7
     
    40364095    xor cx, cx                                ; 31 c9
    40374096    xor bx, bx                                ; 31 db
    4038     jmp short 02347h                          ; eb 15
     4097    jmp short 023a2h                          ; eb 15
    40394098    push strict byte 00001h                   ; 6a 01
    4040     movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
     4099    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    40414100    push ax                                   ; 50
    40424101    movzx ax, bh                              ; 0f b6 c7
     
    40484107    xor dx, dx                                ; 31 d2
    40494108    mov ax, strict word 00001h                ; b8 01 00
    4050     call 0152fh                               ; e8 e2 f1
    4051     dec byte [bp-008h]                        ; fe 4e f8
     4109    call 01568h                               ; e8 c0 f1
     4110    dec byte [bp-00ah]                        ; fe 4e f6
     4111    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     4112    mov word [bp-018h], ax                    ; 89 46 e8
     4113    sal word [bp-018h], 008h                  ; c1 66 e8 08
    40524114    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    4053     mov word [bp-016h], ax                    ; 89 46 ea
    4054     sal word [bp-016h], 008h                  ; c1 66 ea 08
    4055     movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    4056     add word [bp-016h], ax                    ; 01 46 ea
    4057     mov dx, word [bp-016h]                    ; 8b 56 ea
    4058     movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    4059     call 00e42h                               ; e8 d6 ea
    4060     leave                                     ; c9
     4115    add word [bp-018h], ax                    ; 01 46 e8
     4116    mov dx, word [bp-018h]                    ; 8b 56 e8
     4117    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
     4118    call 00e5eh                               ; e8 97 ea
     4119    lea sp, [bp-002h]                         ; 8d 66 fe
    40614120    pop si                                    ; 5e
    4062     retn                                      ; c3
    4063 get_font_access_:                            ; 0xc236f LB 0x29
    4064     push dx                                   ; 52
     4121    pop bp                                    ; 5d
     4122    retn                                      ; c3
     4123get_font_access_:                            ; 0xc23cd LB 0x2c
    40654124    push bp                                   ; 55
    40664125    mov bp, sp                                ; 89 e5
     4126    push dx                                   ; 52
    40674127    mov ax, 00100h                            ; b8 00 01
    40684128    mov dx, 003c4h                            ; ba c4 03
     
    40814141    mov ax, 00406h                            ; b8 06 04
    40824142    out DX, ax                                ; ef
     4143    lea sp, [bp-002h]                         ; 8d 66 fe
     4144    pop dx                                    ; 5a
    40834145    pop bp                                    ; 5d
    4084     pop dx                                    ; 5a
    4085     retn                                      ; c3
    4086 release_font_access_:                        ; 0xc2398 LB 0x39
    4087     push dx                                   ; 52
     4146    retn                                      ; c3
     4147release_font_access_:                        ; 0xc23f9 LB 0x3c
    40884148    push bp                                   ; 55
    40894149    mov bp, sp                                ; 89 e5
     4150    push dx                                   ; 52
    40904151    mov ax, 00100h                            ; b8 00 01
    40914152    mov dx, 003c4h                            ; ba c4 03
     
    41124173    mov ax, 01005h                            ; b8 05 10
    41134174    out DX, ax                                ; ef
     4175    lea sp, [bp-002h]                         ; 8d 66 fe
     4176    pop dx                                    ; 5a
    41144177    pop bp                                    ; 5d
    4115     pop dx                                    ; 5a
    4116     retn                                      ; c3
    4117 set_scan_lines_:                             ; 0xc23d1 LB 0xbc
     4178    retn                                      ; c3
     4179set_scan_lines_:                             ; 0xc2435 LB 0xbf
     4180    push bp                                   ; 55
     4181    mov bp, sp                                ; 89 e5
    41184182    push bx                                   ; 53
    41194183    push cx                                   ; 51
     
    41214185    push si                                   ; 56
    41224186    push di                                   ; 57
    4123     push bp                                   ; 55
    4124     mov bp, sp                                ; 89 e5
    41254187    mov bl, al                                ; 88 c3
    41264188    mov dx, strict word 00063h                ; ba 63 00
    41274189    mov ax, strict word 00040h                ; b8 40 00
    4128     call 02f07h                               ; e8 23 0b
     4190    call 02f93h                               ; e8 4b 0b
    41294191    mov dx, ax                                ; 89 c2
    41304192    mov si, ax                                ; 89 c6
     
    41434205    out DX, AL                                ; ee
    41444206    cmp bl, 008h                              ; 80 fb 08
    4145     jne short 02408h                          ; 75 08
     4207    jne short 0246ch                          ; 75 08
    41464208    mov dx, strict word 00007h                ; ba 07 00
    41474209    mov ax, strict word 00006h                ; b8 06 00
    4148     jmp short 02415h                          ; eb 0d
     4210    jmp short 02479h                          ; eb 0d
    41494211    mov al, bl                                ; 88 d8
    41504212    sub AL, strict byte 003h                  ; 2c 03
     
    41534215    sub AL, strict byte 004h                  ; 2c 04
    41544216    xor ah, ah                                ; 30 e4
    4155     call 00da1h                               ; e8 89 e9
     4217    call 00dbah                               ; e8 3e e9
    41564218    movzx di, bl                              ; 0f b6 fb
    41574219    mov bx, di                                ; 89 fb
    41584220    mov dx, 00085h                            ; ba 85 00
    41594221    mov ax, strict word 00040h                ; b8 40 00
    4160     call 02f15h                               ; e8 ef 0a
     4222    call 02fa1h                               ; e8 17 0b
    41614223    mov AL, strict byte 012h                  ; b0 12
    41624224    mov dx, si                                ; 89 f2
     
    41934255    mov dx, 00084h                            ; ba 84 00
    41944256    mov ax, strict word 00040h                ; b8 40 00
    4195     call 02ef9h                               ; e8 8f 0a
     4257    call 02f85h                               ; e8 b7 0a
    41964258    mov dx, strict word 0004ah                ; ba 4a 00
    41974259    mov ax, strict word 00040h                ; b8 40 00
    4198     call 02f07h                               ; e8 94 0a
     4260    call 02f93h                               ; e8 bc 0a
    41994261    movzx dx, cl                              ; 0f b6 d1
    42004262    mov bx, ax                                ; 89 c3
     
    42034265    mov dx, strict word 0004ch                ; ba 4c 00
    42044266    mov ax, strict word 00040h                ; b8 40 00
    4205     call 02f15h                               ; e8 8f 0a
    4206     pop bp                                    ; 5d
     4267    call 02fa1h                               ; e8 b7 0a
     4268    lea sp, [bp-00ah]                         ; 8d 66 f6
    42074269    pop di                                    ; 5f
    42084270    pop si                                    ; 5e
     
    42104272    pop cx                                    ; 59
    42114273    pop bx                                    ; 5b
    4212     retn                                      ; c3
    4213 biosfn_load_text_user_pat_:                  ; 0xc248d LB 0x78
     4274    pop bp                                    ; 5d
     4275    retn                                      ; c3
     4276biosfn_load_text_user_pat_:                  ; 0xc24f4 LB 0x7d
     4277    push bp                                   ; 55
     4278    mov bp, sp                                ; 89 e5
    42144279    push si                                   ; 56
    42154280    push di                                   ; 57
    4216     enter 0000ah, 000h                        ; c8 0a 00 00
    4217     mov byte [bp-002h], al                    ; 88 46 fe
    4218     mov word [bp-008h], dx                    ; 89 56 f8
    4219     mov word [bp-004h], bx                    ; 89 5e fc
    4220     mov word [bp-006h], cx                    ; 89 4e fa
    4221     call 0236fh                               ; e8 cd fe
    4222     mov al, byte [bp+00ah]                    ; 8a 46 0a
     4281    sub sp, strict byte 0000ah                ; 83 ec 0a
     4282    mov byte [bp-006h], al                    ; 88 46 fa
     4283    mov word [bp-00ch], dx                    ; 89 56 f4
     4284    mov word [bp-008h], bx                    ; 89 5e f8
     4285    mov word [bp-00ah], cx                    ; 89 4e f6
     4286    call 023cdh                               ; e8 c2 fe
     4287    mov al, byte [bp+006h]                    ; 8a 46 06
    42234288    and AL, strict byte 003h                  ; 24 03
    42244289    xor ah, ah                                ; 30 e4
    42254290    mov bx, ax                                ; 89 c3
    42264291    sal bx, 00eh                              ; c1 e3 0e
    4227     mov al, byte [bp+00ah]                    ; 8a 46 0a
     4292    mov al, byte [bp+006h]                    ; 8a 46 06
    42284293    and AL, strict byte 004h                  ; 24 04
    42294294    xor ah, ah                                ; 30 e4
    42304295    sal ax, 00bh                              ; c1 e0 0b
    42314296    add bx, ax                                ; 01 c3
    4232     mov word [bp-00ah], bx                    ; 89 5e f6
     4297    mov word [bp-00eh], bx                    ; 89 5e f2
    42334298    xor bx, bx                                ; 31 db
    4234     cmp bx, word [bp-006h]                    ; 3b 5e fa
    4235     jnc short 024efh                          ; 73 2b
    4236     movzx cx, byte [bp+00ch]                  ; 0f b6 4e 0c
     4299    cmp bx, word [bp-00ah]                    ; 3b 5e f6
     4300    jnc short 02558h                          ; 73 2b
     4301    movzx cx, byte [bp+008h]                  ; 0f b6 4e 08
    42374302    mov si, bx                                ; 89 de
    42384303    imul si, cx                               ; 0f af f1
    4239     add si, word [bp-004h]                    ; 03 76 fc
    4240     mov di, word [bp+008h]                    ; 8b 7e 08
     4304    add si, word [bp-008h]                    ; 03 76 f8
     4305    mov di, word [bp+004h]                    ; 8b 7e 04
    42414306    add di, bx                                ; 01 df
    42424307    sal di, 005h                              ; c1 e7 05
    4243     add di, word [bp-00ah]                    ; 03 7e f6
    4244     mov dx, word [bp-008h]                    ; 8b 56 f8
     4308    add di, word [bp-00eh]                    ; 03 7e f2
     4309    mov dx, word [bp-00ch]                    ; 8b 56 f4
    42454310    mov ax, 0a000h                            ; b8 00 a0
    42464311    mov es, ax                                ; 8e c0
    42474312    cld                                       ; fc
    4248     jcxz 024ech                               ; e3 06
     4313    jcxz 02555h                               ; e3 06
    42494314    push DS                                   ; 1e
    42504315    mov ds, dx                                ; 8e da
     
    42524317    pop DS                                    ; 1f
    42534318    inc bx                                    ; 43
    4254     jmp short 024bfh                          ; eb d0
    4255     call 02398h                               ; e8 a6 fe
    4256     cmp byte [bp-002h], 010h                  ; 80 7e fe 10
    4257     jc short 024ffh                           ; 72 07
    4258     movzx ax, byte [bp+00ch]                  ; 0f b6 46 0c
    4259     call 023d1h                               ; e8 d2 fe
    4260     leave                                     ; c9
     4319    jmp short 02528h                          ; eb d0
     4320    call 023f9h                               ; e8 9e fe
     4321    cmp byte [bp-006h], 010h                  ; 80 7e fa 10
     4322    jc short 02568h                           ; 72 07
     4323    movzx ax, byte [bp+008h]                  ; 0f b6 46 08
     4324    call 02435h                               ; e8 cd fe
     4325    lea sp, [bp-004h]                         ; 8d 66 fc
    42614326    pop di                                    ; 5f
    42624327    pop si                                    ; 5e
     4328    pop bp                                    ; 5d
    42634329    retn 00006h                               ; c2 06 00
    4264 biosfn_load_text_8_14_pat_:                  ; 0xc2505 LB 0x6c
     4330biosfn_load_text_8_14_pat_:                  ; 0xc2571 LB 0x70
     4331    push bp                                   ; 55
     4332    mov bp, sp                                ; 89 e5
    42654333    push bx                                   ; 53
    42664334    push cx                                   ; 51
    42674335    push si                                   ; 56
    42684336    push di                                   ; 57
    4269     enter 00004h, 000h                        ; c8 04 00 00
    4270     mov byte [bp-002h], al                    ; 88 46 fe
    4271     call 0236fh                               ; e8 5c fe
     4337    push ax                                   ; 50
     4338    push ax                                   ; 50
     4339    mov byte [bp-00ah], al                    ; 88 46 f6
     4340    call 023cdh                               ; e8 4d fe
    42724341    mov al, dl                                ; 88 d0
    42734342    and AL, strict byte 003h                  ; 24 03
     
    42804349    sal ax, 00bh                              ; c1 e0 0b
    42814350    add bx, ax                                ; 01 c3
    4282     mov word [bp-004h], bx                    ; 89 5e fc
     4351    mov word [bp-00ch], bx                    ; 89 5e f4
    42834352    xor bx, bx                                ; 31 db
    4284     jmp short 02536h                          ; eb 06
     4353    jmp short 025a3h                          ; eb 06
    42854354    cmp bx, 00100h                            ; 81 fb 00 01
    4286     jnc short 0255ch                          ; 73 26
     4355    jnc short 025c9h                          ; 73 26
    42874356    imul si, bx, strict byte 0000eh           ; 6b f3 0e
    42884357    mov di, bx                                ; 89 df
    42894358    sal di, 005h                              ; c1 e7 05
    4290     add di, word [bp-004h]                    ; 03 7e fc
    4291     add si, 05dafh                            ; 81 c6 af 5d
     4359    add di, word [bp-00ch]                    ; 03 7e f4
     4360    add si, 05db4h                            ; 81 c6 b4 5d
    42924361    mov cx, strict word 0000eh                ; b9 0e 00
    42934362    mov dx, 0c000h                            ; ba 00 c0
     
    42954364    mov es, ax                                ; 8e c0
    42964365    cld                                       ; fc
    4297     jcxz 02559h                               ; e3 06
     4366    jcxz 025c6h                               ; e3 06
    42984367    push DS                                   ; 1e
    42994368    mov ds, dx                                ; 8e da
     
    43014370    pop DS                                    ; 1f
    43024371    inc bx                                    ; 43
    4303     jmp short 02530h                          ; eb d4
    4304     call 02398h                               ; e8 39 fe
    4305     cmp byte [bp-002h], 010h                  ; 80 7e fe 10
    4306     jc short 0256bh                           ; 72 06
     4372    jmp short 0259dh                          ; eb d4
     4373    call 023f9h                               ; e8 2d fe
     4374    cmp byte [bp-00ah], 010h                  ; 80 7e f6 10
     4375    jc short 025d8h                           ; 72 06
    43074376    mov ax, strict word 0000eh                ; b8 0e 00
    4308     call 023d1h                               ; e8 66 fe
    4309     leave                                     ; c9
     4377    call 02435h                               ; e8 5d fe
     4378    lea sp, [bp-008h]                         ; 8d 66 f8
    43104379    pop di                                    ; 5f
    43114380    pop si                                    ; 5e
    43124381    pop cx                                    ; 59
    43134382    pop bx                                    ; 5b
    4314     retn                                      ; c3
    4315 biosfn_load_text_8_8_pat_:                   ; 0xc2571 LB 0x6e
     4383    pop bp                                    ; 5d
     4384    retn                                      ; c3
     4385biosfn_load_text_8_8_pat_:                   ; 0xc25e1 LB 0x72
     4386    push bp                                   ; 55
     4387    mov bp, sp                                ; 89 e5
    43164388    push bx                                   ; 53
    43174389    push cx                                   ; 51
    43184390    push si                                   ; 56
    43194391    push di                                   ; 57
    4320     enter 00004h, 000h                        ; c8 04 00 00
    4321     mov byte [bp-002h], al                    ; 88 46 fe
    4322     call 0236fh                               ; e8 f0 fd
     4392    push ax                                   ; 50
     4393    push ax                                   ; 50
     4394    mov byte [bp-00ah], al                    ; 88 46 f6
     4395    call 023cdh                               ; e8 dd fd
    43234396    mov al, dl                                ; 88 d0
    43244397    and AL, strict byte 003h                  ; 24 03
     
    43314404    sal ax, 00bh                              ; c1 e0 0b
    43324405    add bx, ax                                ; 01 c3
    4333     mov word [bp-004h], bx                    ; 89 5e fc
     4406    mov word [bp-00ch], bx                    ; 89 5e f4
    43344407    xor bx, bx                                ; 31 db
    4335     jmp short 025a2h                          ; eb 06
     4408    jmp short 02613h                          ; eb 06
    43364409    cmp bx, 00100h                            ; 81 fb 00 01
    4337     jnc short 025cah                          ; 73 28
     4410    jnc short 0263bh                          ; 73 28
    43384411    mov si, bx                                ; 89 de
    43394412    sal si, 003h                              ; c1 e6 03
    43404413    mov di, bx                                ; 89 df
    43414414    sal di, 005h                              ; c1 e7 05
    4342     add di, word [bp-004h]                    ; 03 7e fc
    4343     add si, 055afh                            ; 81 c6 af 55
     4415    add di, word [bp-00ch]                    ; 03 7e f4
     4416    add si, 055b4h                            ; 81 c6 b4 55
    43444417    mov cx, strict word 00008h                ; b9 08 00
    43454418    mov dx, 0c000h                            ; ba 00 c0
     
    43474420    mov es, ax                                ; 8e c0
    43484421    cld                                       ; fc
    4349     jcxz 025c7h                               ; e3 06
     4422    jcxz 02638h                               ; e3 06
    43504423    push DS                                   ; 1e
    43514424    mov ds, dx                                ; 8e da
     
    43534426    pop DS                                    ; 1f
    43544427    inc bx                                    ; 43
    4355     jmp short 0259ch                          ; eb d2
    4356     call 02398h                               ; e8 cb fd
    4357     cmp byte [bp-002h], 010h                  ; 80 7e fe 10
    4358     jc short 025d9h                           ; 72 06
     4428    jmp short 0260dh                          ; eb d2
     4429    call 023f9h                               ; e8 bb fd
     4430    cmp byte [bp-00ah], 010h                  ; 80 7e f6 10
     4431    jc short 0264ah                           ; 72 06
    43594432    mov ax, strict word 00008h                ; b8 08 00
    4360     call 023d1h                               ; e8 f8 fd
    4361     leave                                     ; c9
     4433    call 02435h                               ; e8 eb fd
     4434    lea sp, [bp-008h]                         ; 8d 66 f8
    43624435    pop di                                    ; 5f
    43634436    pop si                                    ; 5e
    43644437    pop cx                                    ; 59
    43654438    pop bx                                    ; 5b
    4366     retn                                      ; c3
    4367 biosfn_load_text_8_16_pat_:                  ; 0xc25df LB 0x6e
     4439    pop bp                                    ; 5d
     4440    retn                                      ; c3
     4441biosfn_load_text_8_16_pat_:                  ; 0xc2653 LB 0x72
     4442    push bp                                   ; 55
     4443    mov bp, sp                                ; 89 e5
    43684444    push bx                                   ; 53
    43694445    push cx                                   ; 51
    43704446    push si                                   ; 56
    43714447    push di                                   ; 57
    4372     enter 00004h, 000h                        ; c8 04 00 00
    4373     mov byte [bp-002h], al                    ; 88 46 fe
    4374     call 0236fh                               ; e8 82 fd
     4448    push ax                                   ; 50
     4449    push ax                                   ; 50
     4450    mov byte [bp-00ah], al                    ; 88 46 f6
     4451    call 023cdh                               ; e8 6b fd
    43754452    mov al, dl                                ; 88 d0
    43764453    and AL, strict byte 003h                  ; 24 03
     
    43834460    sal ax, 00bh                              ; c1 e0 0b
    43844461    add bx, ax                                ; 01 c3
    4385     mov word [bp-004h], bx                    ; 89 5e fc
     4462    mov word [bp-00ch], bx                    ; 89 5e f4
    43864463    xor bx, bx                                ; 31 db
    4387     jmp short 02610h                          ; eb 06
     4464    jmp short 02685h                          ; eb 06
    43884465    cmp bx, 00100h                            ; 81 fb 00 01
    4389     jnc short 02638h                          ; 73 28
     4466    jnc short 026adh                          ; 73 28
    43904467    mov si, bx                                ; 89 de
    43914468    sal si, 004h                              ; c1 e6 04
    43924469    mov di, bx                                ; 89 df
    43934470    sal di, 005h                              ; c1 e7 05
    4394     add di, word [bp-004h]                    ; 03 7e fc
    4395     add si, 06bafh                            ; 81 c6 af 6b
     4471    add di, word [bp-00ch]                    ; 03 7e f4
     4472    add si, 06bb4h                            ; 81 c6 b4 6b
    43964473    mov cx, strict word 00010h                ; b9 10 00
    43974474    mov dx, 0c000h                            ; ba 00 c0
     
    43994476    mov es, ax                                ; 8e c0
    44004477    cld                                       ; fc
    4401     jcxz 02635h                               ; e3 06
     4478    jcxz 026aah                               ; e3 06
    44024479    push DS                                   ; 1e
    44034480    mov ds, dx                                ; 8e da
     
    44054482    pop DS                                    ; 1f
    44064483    inc bx                                    ; 43
    4407     jmp short 0260ah                          ; eb d2
    4408     call 02398h                               ; e8 5d fd
    4409     cmp byte [bp-002h], 010h                  ; 80 7e fe 10
    4410     jc short 02647h                           ; 72 06
     4484    jmp short 0267fh                          ; eb d2
     4485    call 023f9h                               ; e8 49 fd
     4486    cmp byte [bp-00ah], 010h                  ; 80 7e f6 10
     4487    jc short 026bch                           ; 72 06
    44114488    mov ax, strict word 00010h                ; b8 10 00
    4412     call 023d1h                               ; e8 8a fd
    4413     leave                                     ; c9
     4489    call 02435h                               ; e8 79 fd
     4490    lea sp, [bp-008h]                         ; 8d 66 f8
    44144491    pop di                                    ; 5f
    44154492    pop si                                    ; 5e
    44164493    pop cx                                    ; 59
    44174494    pop bx                                    ; 5b
    4418     retn                                      ; c3
    4419 biosfn_load_gfx_8_8_chars_:                  ; 0xc264d LB 0x5
     4495    pop bp                                    ; 5d
     4496    retn                                      ; c3
     4497biosfn_load_gfx_8_8_chars_:                  ; 0xc26c5 LB 0x5
    44204498    push bp                                   ; 55
    44214499    mov bp, sp                                ; 89 e5
    44224500    pop bp                                    ; 5d
    44234501    retn                                      ; c3
    4424 biosfn_load_gfx_user_chars_:                 ; 0xc2652 LB 0x7
     4502biosfn_load_gfx_user_chars_:                 ; 0xc26ca LB 0x7
    44254503    push bp                                   ; 55
    44264504    mov bp, sp                                ; 89 e5
    44274505    pop bp                                    ; 5d
    44284506    retn 00002h                               ; c2 02 00
    4429 biosfn_load_gfx_8_14_chars_:                 ; 0xc2659 LB 0x5
     4507biosfn_load_gfx_8_14_chars_:                 ; 0xc26d1 LB 0x5
    44304508    push bp                                   ; 55
    44314509    mov bp, sp                                ; 89 e5
    44324510    pop bp                                    ; 5d
    44334511    retn                                      ; c3
    4434 biosfn_load_gfx_8_8_dd_chars_:               ; 0xc265e LB 0x5
     4512biosfn_load_gfx_8_8_dd_chars_:               ; 0xc26d6 LB 0x5
    44354513    push bp                                   ; 55
    44364514    mov bp, sp                                ; 89 e5
    44374515    pop bp                                    ; 5d
    44384516    retn                                      ; c3
    4439 biosfn_load_gfx_8_16_chars_:                 ; 0xc2663 LB 0x5
     4517biosfn_load_gfx_8_16_chars_:                 ; 0xc26db LB 0x5
    44404518    push bp                                   ; 55
    44414519    mov bp, sp                                ; 89 e5
    44424520    pop bp                                    ; 5d
    44434521    retn                                      ; c3
    4444 biosfn_alternate_prtsc_:                     ; 0xc2668 LB 0x5
     4522biosfn_alternate_prtsc_:                     ; 0xc26e0 LB 0x5
    44454523    push bp                                   ; 55
    44464524    mov bp, sp                                ; 89 e5
    44474525    pop bp                                    ; 5d
    44484526    retn                                      ; c3
    4449 biosfn_switch_video_interface_:              ; 0xc266d LB 0x5
     4527biosfn_switch_video_interface_:              ; 0xc26e5 LB 0x5
    44504528    push bp                                   ; 55
    44514529    mov bp, sp                                ; 89 e5
    44524530    pop bp                                    ; 5d
    44534531    retn                                      ; c3
    4454 biosfn_enable_video_refresh_control_:        ; 0xc2672 LB 0x5
     4532biosfn_enable_video_refresh_control_:        ; 0xc26ea LB 0x5
    44554533    push bp                                   ; 55
    44564534    mov bp, sp                                ; 89 e5
    44574535    pop bp                                    ; 5d
    44584536    retn                                      ; c3
    4459 biosfn_write_string_:                        ; 0xc2677 LB 0x97
     4537biosfn_write_string_:                        ; 0xc26ef LB 0x9c
     4538    push bp                                   ; 55
     4539    mov bp, sp                                ; 89 e5
    44604540    push si                                   ; 56
    44614541    push di                                   ; 57
    4462     enter 0000ah, 000h                        ; c8 0a 00 00
    4463     mov byte [bp-006h], al                    ; 88 46 fa
    4464     mov byte [bp-004h], dl                    ; 88 56 fc
    4465     mov byte [bp-002h], bl                    ; 88 5e fe
     4542    sub sp, strict byte 0000ah                ; 83 ec 0a
     4543    mov byte [bp-00ah], al                    ; 88 46 f6
     4544    mov byte [bp-008h], dl                    ; 88 56 f8
     4545    mov byte [bp-006h], bl                    ; 88 5e fa
    44664546    mov si, cx                                ; 89 ce
    4467     mov di, word [bp+00eh]                    ; 8b 7e 0e
     4547    mov di, word [bp+00ah]                    ; 8b 7e 0a
    44684548    movzx ax, dl                              ; 0f b6 c2
    4469     lea bx, [bp-00ah]                         ; 8d 5e f6
    4470     lea dx, [bp-008h]                         ; 8d 56 f8
    4471     call 00a83h                               ; e8 ec e3
    4472     cmp byte [bp+008h], 0ffh                  ; 80 7e 08 ff
    4473     jne short 026aeh                          ; 75 11
    4474     mov al, byte [bp-00ah]                    ; 8a 46 f6
    4475     mov byte [bp+00ah], al                    ; 88 46 0a
    4476     mov ax, word [bp-00ah]                    ; 8b 46 f6
     4549    lea bx, [bp-00eh]                         ; 8d 5e f2
     4550    lea dx, [bp-00ch]                         ; 8d 56 f4
     4551    call 00a88h                               ; e8 77 e3
     4552    cmp byte [bp+004h], 0ffh                  ; 80 7e 04 ff
     4553    jne short 02728h                          ; 75 11
     4554    mov al, byte [bp-00eh]                    ; 8a 46 f2
     4555    mov byte [bp+006h], al                    ; 88 46 06
     4556    mov ax, word [bp-00eh]                    ; 8b 46 f2
    44774557    xor al, al                                ; 30 c0
    44784558    shr ax, 008h                              ; c1 e8 08
    4479     mov byte [bp+008h], al                    ; 88 46 08
    4480     movzx dx, byte [bp+008h]                  ; 0f b6 56 08
     4559    mov byte [bp+004h], al                    ; 88 46 04
     4560    movzx dx, byte [bp+004h]                  ; 0f b6 56 04
    44814561    sal dx, 008h                              ; c1 e2 08
    4482     movzx ax, byte [bp+00ah]                  ; 0f b6 46 0a
     4562    movzx ax, byte [bp+006h]                  ; 0f b6 46 06
    44834563    add dx, ax                                ; 01 c2
    4484     movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    4485     call 00e42h                               ; e8 80 e7
     4564    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
     4565    call 00e5eh                               ; e8 22 e7
    44864566    dec si                                    ; 4e
    44874567    cmp si, strict byte 0ffffh                ; 83 fe ff
    4488     je short 026f8h                           ; 74 30
     4568    je short 02772h                           ; 74 30
    44894569    mov dx, di                                ; 89 fa
    44904570    inc di                                    ; 47
    4491     mov ax, word [bp+00ch]                    ; 8b 46 0c
    4492     call 02eebh                               ; e8 1a 08
     4571    mov ax, word [bp+008h]                    ; 8b 46 08
     4572    call 02f77h                               ; e8 2c 08
    44934573    mov cl, al                                ; 88 c1
    4494     test byte [bp-006h], 002h                 ; f6 46 fa 02
    4495     je short 026e5h                           ; 74 0c
     4574    test byte [bp-00ah], 002h                 ; f6 46 f6 02
     4575    je short 0275fh                           ; 74 0c
    44964576    mov dx, di                                ; 89 fa
    44974577    inc di                                    ; 47
    4498     mov ax, word [bp+00ch]                    ; 8b 46 0c
    4499     call 02eebh                               ; e8 09 08
    4500     mov byte [bp-002h], al                    ; 88 46 fe
    4501     movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
    4502     movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
     4578    mov ax, word [bp+008h]                    ; 8b 46 08
     4579    call 02f77h                               ; e8 1b 08
     4580    mov byte [bp-006h], al                    ; 88 46 fa
     4581    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
     4582    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    45034583    movzx ax, cl                              ; 0f b6 c1
    45044584    mov cx, strict word 00003h                ; b9 03 00
    4505     call 020f0h                               ; e8 fa f9
    4506     jmp short 026c2h                          ; eb ca
    4507     test byte [bp-006h], 001h                 ; f6 46 fa 01
    4508     jne short 02708h                          ; 75 0a
    4509     mov dx, word [bp-00ah]                    ; 8b 56 f6
    4510     movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    4511     call 00e42h                               ; e8 3a e7
    4512     leave                                     ; c9
     4585    call 02149h                               ; e8 d9 f9
     4586    jmp short 0273ch                          ; eb ca
     4587    test byte [bp-00ah], 001h                 ; f6 46 f6 01
     4588    jne short 02782h                          ; 75 0a
     4589    mov dx, word [bp-00eh]                    ; 8b 56 f2
     4590    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
     4591    call 00e5eh                               ; e8 dc e6
     4592    lea sp, [bp-004h]                         ; 8d 66 fc
    45134593    pop di                                    ; 5f
    45144594    pop si                                    ; 5e
     4595    pop bp                                    ; 5d
    45154596    retn 00008h                               ; c2 08 00
    4516 biosfn_read_state_info_:                     ; 0xc270e LB 0xfe
     4597biosfn_read_state_info_:                     ; 0xc278b LB 0x101
     4598    push bp                                   ; 55
     4599    mov bp, sp                                ; 89 e5
    45174600    push cx                                   ; 51
    45184601    push si                                   ; 56
    45194602    push di                                   ; 57
    4520     push bp                                   ; 55
    4521     mov bp, sp                                ; 89 e5
    45224603    push dx                                   ; 52
    45234604    push bx                                   ; 53
    45244605    mov cx, ds                                ; 8c d9
    4525     mov bx, 05583h                            ; bb 83 55
    4526     mov dx, word [bp-004h]                    ; 8b 56 fc
    4527     mov ax, word [bp-002h]                    ; 8b 46 fe
    4528     call 02f35h                               ; e8 11 08
    4529     mov di, word [bp-004h]                    ; 8b 7e fc
     4606    mov bx, 05588h                            ; bb 88 55
     4607    mov dx, word [bp-00ah]                    ; 8b 56 f6
     4608    mov ax, word [bp-008h]                    ; 8b 46 f8
     4609    call 02fc1h                               ; e8 20 08
     4610    mov di, word [bp-00ah]                    ; 8b 7e f6
    45304611    add di, strict byte 00004h                ; 83 c7 04
    45314612    mov cx, strict word 0001eh                ; b9 1e 00
    45324613    mov si, strict word 00049h                ; be 49 00
    45334614    mov dx, strict word 00040h                ; ba 40 00
    4534     mov es, [bp-002h]                         ; 8e 46 fe
     4615    mov es, [bp-008h]                         ; 8e 46 f8
    45354616    cld                                       ; fc
    4536     jcxz 0273fh                               ; e3 06
     4617    jcxz 027bch                               ; e3 06
    45374618    push DS                                   ; 1e
    45384619    mov ds, dx                                ; 8e da
    45394620    rep movsb                                 ; f3 a4
    45404621    pop DS                                    ; 1f
    4541     mov di, word [bp-004h]                    ; 8b 7e fc
     4622    mov di, word [bp-00ah]                    ; 8b 7e f6
    45424623    add di, strict byte 00022h                ; 83 c7 22
    45434624    mov cx, strict word 00003h                ; b9 03 00
    45444625    mov si, 00084h                            ; be 84 00
    45454626    mov dx, strict word 00040h                ; ba 40 00
    4546     mov es, [bp-002h]                         ; 8e 46 fe
     4627    mov es, [bp-008h]                         ; 8e 46 f8
    45474628    cld                                       ; fc
    4548     jcxz 0275ah                               ; e3 06
     4629    jcxz 027d7h                               ; e3 06
    45494630    push DS                                   ; 1e
    45504631    mov ds, dx                                ; 8e da
     
    45534634    mov dx, 0008ah                            ; ba 8a 00
    45544635    mov ax, strict word 00040h                ; b8 40 00
    4555     call 02eebh                               ; e8 88 07
     4636    call 02f77h                               ; e8 97 07
    45564637    movzx bx, al                              ; 0f b6 d8
    4557     mov dx, word [bp-004h]                    ; 8b 56 fc
     4638    mov dx, word [bp-00ah]                    ; 8b 56 f6
    45584639    add dx, strict byte 00025h                ; 83 c2 25
    4559     mov ax, word [bp-002h]                    ; 8b 46 fe
    4560     call 02ef9h                               ; e8 87 07
    4561     mov dx, word [bp-004h]                    ; 8b 56 fc
     4640    mov ax, word [bp-008h]                    ; 8b 46 f8
     4641    call 02f85h                               ; e8 96 07
     4642    mov dx, word [bp-00ah]                    ; 8b 56 f6
    45624643    add dx, strict byte 00026h                ; 83 c2 26
    45634644    xor bx, bx                                ; 31 db
    4564     mov ax, word [bp-002h]                    ; 8b 46 fe
    4565     call 02ef9h                               ; e8 79 07
    4566     mov dx, word [bp-004h]                    ; 8b 56 fc
     4645    mov ax, word [bp-008h]                    ; 8b 46 f8
     4646    call 02f85h                               ; e8 88 07
     4647    mov dx, word [bp-00ah]                    ; 8b 56 f6
    45674648    add dx, strict byte 00027h                ; 83 c2 27
    45684649    mov bx, strict word 00010h                ; bb 10 00
    4569     mov ax, word [bp-002h]                    ; 8b 46 fe
    4570     call 02ef9h                               ; e8 6a 07
    4571     mov dx, word [bp-004h]                    ; 8b 56 fc
     4650    mov ax, word [bp-008h]                    ; 8b 46 f8
     4651    call 02f85h                               ; e8 79 07
     4652    mov dx, word [bp-00ah]                    ; 8b 56 f6
    45724653    add dx, strict byte 00028h                ; 83 c2 28
    45734654    xor bx, bx                                ; 31 db
    4574     mov ax, word [bp-002h]                    ; 8b 46 fe
    4575     call 02ef9h                               ; e8 5c 07
    4576     mov dx, word [bp-004h]                    ; 8b 56 fc
     4655    mov ax, word [bp-008h]                    ; 8b 46 f8
     4656    call 02f85h                               ; e8 6b 07
     4657    mov dx, word [bp-00ah]                    ; 8b 56 f6
    45774658    add dx, strict byte 00029h                ; 83 c2 29
    45784659    mov bx, strict word 00008h                ; bb 08 00
    4579     mov ax, word [bp-002h]                    ; 8b 46 fe
    4580     call 02ef9h                               ; e8 4d 07
    4581     mov dx, word [bp-004h]                    ; 8b 56 fc
     4660    mov ax, word [bp-008h]                    ; 8b 46 f8
     4661    call 02f85h                               ; e8 5c 07
     4662    mov dx, word [bp-00ah]                    ; 8b 56 f6
    45824663    add dx, strict byte 0002ah                ; 83 c2 2a
    45834664    mov bx, strict word 00002h                ; bb 02 00
    4584     mov ax, word [bp-002h]                    ; 8b 46 fe
    4585     call 02ef9h                               ; e8 3e 07
    4586     mov dx, word [bp-004h]                    ; 8b 56 fc
     4665    mov ax, word [bp-008h]                    ; 8b 46 f8
     4666    call 02f85h                               ; e8 4d 07
     4667    mov dx, word [bp-00ah]                    ; 8b 56 f6
    45874668    add dx, strict byte 0002bh                ; 83 c2 2b
    45884669    xor bx, bx                                ; 31 db
    4589     mov ax, word [bp-002h]                    ; 8b 46 fe
    4590     call 02ef9h                               ; e8 30 07
    4591     mov dx, word [bp-004h]                    ; 8b 56 fc
     4670    mov ax, word [bp-008h]                    ; 8b 46 f8
     4671    call 02f85h                               ; e8 3f 07
     4672    mov dx, word [bp-00ah]                    ; 8b 56 f6
    45924673    add dx, strict byte 0002ch                ; 83 c2 2c
    45934674    xor bx, bx                                ; 31 db
    4594     mov ax, word [bp-002h]                    ; 8b 46 fe
    4595     call 02ef9h                               ; e8 22 07
    4596     mov dx, word [bp-004h]                    ; 8b 56 fc
     4675    mov ax, word [bp-008h]                    ; 8b 46 f8
     4676    call 02f85h                               ; e8 31 07
     4677    mov dx, word [bp-00ah]                    ; 8b 56 f6
    45974678    add dx, strict byte 00031h                ; 83 c2 31
    45984679    mov bx, strict word 00003h                ; bb 03 00
    4599     mov ax, word [bp-002h]                    ; 8b 46 fe
    4600     call 02ef9h                               ; e8 13 07
    4601     mov dx, word [bp-004h]                    ; 8b 56 fc
     4680    mov ax, word [bp-008h]                    ; 8b 46 f8
     4681    call 02f85h                               ; e8 22 07
     4682    mov dx, word [bp-00ah]                    ; 8b 56 f6
    46024683    add dx, strict byte 00032h                ; 83 c2 32
    46034684    xor bx, bx                                ; 31 db
    4604     mov ax, word [bp-002h]                    ; 8b 46 fe
    4605     call 02ef9h                               ; e8 05 07
    4606     mov di, word [bp-004h]                    ; 8b 7e fc
     4685    mov ax, word [bp-008h]                    ; 8b 46 f8
     4686    call 02f85h                               ; e8 14 07
     4687    mov di, word [bp-00ah]                    ; 8b 7e f6
    46074688    add di, strict byte 00033h                ; 83 c7 33
    46084689    mov cx, strict word 0000dh                ; b9 0d 00
    46094690    xor ax, ax                                ; 31 c0
    4610     mov es, [bp-002h]                         ; 8e 46 fe
     4691    mov es, [bp-008h]                         ; 8e 46 f8
    46114692    cld                                       ; fc
    4612     jcxz 02807h                               ; e3 02
     4693    jcxz 02884h                               ; e3 02
    46134694    rep stosb                                 ; f3 aa
    4614     leave                                     ; c9
     4695    lea sp, [bp-006h]                         ; 8d 66 fa
    46154696    pop di                                    ; 5f
    46164697    pop si                                    ; 5e
    46174698    pop cx                                    ; 59
    4618     retn                                      ; c3
    4619 biosfn_read_video_state_size2_:              ; 0xc280c LB 0x23
     4699    pop bp                                    ; 5d
     4700    retn                                      ; c3
     4701biosfn_read_video_state_size2_:              ; 0xc288c LB 0x23
    46204702    push dx                                   ; 52
    46214703    push bp                                   ; 55
     
    46244706    xor ax, ax                                ; 31 c0
    46254707    test dl, 001h                             ; f6 c2 01
    4626     je short 0281ch                           ; 74 03
     4708    je short 0289ch                           ; 74 03
    46274709    mov ax, strict word 00046h                ; b8 46 00
    46284710    test dl, 002h                             ; f6 c2 02
    4629     je short 02824h                           ; 74 03
     4711    je short 028a4h                           ; 74 03
    46304712    add ax, strict word 0002ah                ; 05 2a 00
    46314713    test dl, 004h                             ; f6 c2 04
    4632     je short 0282ch                           ; 74 03
     4714    je short 028ach                           ; 74 03
    46334715    add ax, 00304h                            ; 05 04 03
    46344716    pop bp                                    ; 5d
    46354717    pop dx                                    ; 5a
    46364718    retn                                      ; c3
    4637 vga_get_video_state_size_:                   ; 0xc282f LB 0xf
    4638     push bx                                   ; 53
     4719vga_get_video_state_size_:                   ; 0xc28af LB 0x12
    46394720    push bp                                   ; 55
    46404721    mov bp, sp                                ; 89 e5
     4722    push bx                                   ; 53
    46414723    mov bx, dx                                ; 89 d3
    4642     call 0280ch                               ; e8 d4 ff
     4724    call 0288ch                               ; e8 d4 ff
    46434725    mov word [ss:bx], ax                      ; 36 89 07
     4726    lea sp, [bp-002h]                         ; 8d 66 fe
     4727    pop bx                                    ; 5b
    46444728    pop bp                                    ; 5d
    4645     pop bx                                    ; 5b
    4646     retn                                      ; c3
    4647 biosfn_save_video_state_:                    ; 0xc283e LB 0x365
     4729    retn                                      ; c3
     4730biosfn_save_video_state_:                    ; 0xc28c1 LB 0x369
     4731    push bp                                   ; 55
     4732    mov bp, sp                                ; 89 e5
    46484733    push cx                                   ; 51
    46494734    push si                                   ; 56
    46504735    push di                                   ; 57
    4651     enter 00004h, 000h                        ; c8 04 00 00
     4736    push ax                                   ; 50
     4737    push ax                                   ; 50
    46524738    push ax                                   ; 50
    46534739    mov si, dx                                ; 89 d6
     
    46554741    mov dx, strict word 00063h                ; ba 63 00
    46564742    mov ax, strict word 00040h                ; b8 40 00
    4657     call 02f07h                               ; e8 b4 06
     4743    call 02f93h                               ; e8 bc 06
    46584744    mov di, ax                                ; 89 c7
    4659     test byte [bp-006h], 001h                 ; f6 46 fa 01
    4660     je near 029c0h                            ; 0f 84 63 01
     4745    test byte [bp-00ch], 001h                 ; f6 46 f4 01
     4746    je near 02a44h                            ; 0f 84 63 01
    46614747    mov dx, 003c4h                            ; ba c4 03
    46624748    in AL, DX                                 ; ec
     
    46664752    mov dx, cx                                ; 89 ca
    46674753    mov ax, si                                ; 89 f0
    4668     call 02ef9h                               ; e8 8c 06
     4754    call 02f85h                               ; e8 94 06
    46694755    inc cx                                    ; 41
    46704756    mov dx, di                                ; 89 fa
     
    46754761    mov dx, cx                                ; 89 ca
    46764762    mov ax, si                                ; 89 f0
    4677     call 02ef9h                               ; e8 7c 06
     4763    call 02f85h                               ; e8 84 06
    46784764    inc cx                                    ; 41
    46794765    mov dx, 003ceh                            ; ba ce 03
     
    46844770    mov dx, cx                                ; 89 ca
    46854771    mov ax, si                                ; 89 f0
    4686     call 02ef9h                               ; e8 6b 06
     4772    call 02f85h                               ; e8 73 06
    46874773    inc cx                                    ; 41
    46884774    mov dx, 003dah                            ; ba da 03
     
    46944780    db  02ah, 0e4h
    46954781    ; sub ah, ah                                ; 2a e4
    4696     mov word [bp-002h], ax                    ; 89 46 fe
    4697     movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
    4698     mov dx, cx                                ; 89 ca
    4699     mov ax, si                                ; 89 f0
    4700     call 02ef9h                               ; e8 50 06
     4782    mov word [bp-008h], ax                    ; 89 46 f8
     4783    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
     4784    mov dx, cx                                ; 89 ca
     4785    mov ax, si                                ; 89 f0
     4786    call 02f85h                               ; e8 58 06
    47014787    inc cx                                    ; 41
    47024788    mov dx, 003cah                            ; ba ca 03
     
    47074793    mov dx, cx                                ; 89 ca
    47084794    mov ax, si                                ; 89 f0
    4709     call 02ef9h                               ; e8 3f 06
     4795    call 02f85h                               ; e8 47 06
    47104796    mov ax, strict word 00001h                ; b8 01 00
    4711     mov word [bp-004h], ax                    ; 89 46 fc
     4797    mov word [bp-00ah], ax                    ; 89 46 f6
    47124798    add cx, ax                                ; 01 c1
    4713     jmp short 028cah                          ; eb 06
    4714     cmp word [bp-004h], strict byte 00004h    ; 83 7e fc 04
    4715     jnbe short 028e7h                         ; 77 1d
    4716     mov al, byte [bp-004h]                    ; 8a 46 fc
     4799    jmp short 0294eh                          ; eb 06
     4800    cmp word [bp-00ah], strict byte 00004h    ; 83 7e f6 04
     4801    jnbe short 0296bh                         ; 77 1d
     4802    mov al, byte [bp-00ah]                    ; 8a 46 f6
    47174803    mov dx, 003c4h                            ; ba c4 03
    47184804    out DX, AL                                ; ee
     
    47244810    mov dx, cx                                ; 89 ca
    47254811    mov ax, si                                ; 89 f0
    4726     call 02ef9h                               ; e8 18 06
    4727     inc cx                                    ; 41
    4728     inc word [bp-004h]                        ; ff 46 fc
    4729     jmp short 028c4h                          ; eb dd
     4812    call 02f85h                               ; e8 20 06
     4813    inc cx                                    ; 41
     4814    inc word [bp-00ah]                        ; ff 46 f6
     4815    jmp short 02948h                          ; eb dd
    47304816    xor al, al                                ; 30 c0
    47314817    mov dx, 003c4h                            ; ba c4 03
     
    47384824    mov dx, cx                                ; 89 ca
    47394825    mov ax, si                                ; 89 f0
    4740     call 02ef9h                               ; e8 fc 05
    4741     mov word [bp-004h], strict word 00000h    ; c7 46 fc 00 00
    4742     inc cx                                    ; 41
    4743     jmp short 0290bh                          ; eb 06
    4744     cmp word [bp-004h], strict byte 00018h    ; 83 7e fc 18
    4745     jnbe short 02927h                         ; 77 1c
    4746     mov al, byte [bp-004h]                    ; 8a 46 fc
     4826    call 02f85h                               ; e8 04 06
     4827    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
     4828    inc cx                                    ; 41
     4829    jmp short 0298fh                          ; eb 06
     4830    cmp word [bp-00ah], strict byte 00018h    ; 83 7e f6 18
     4831    jnbe short 029abh                         ; 77 1c
     4832    mov al, byte [bp-00ah]                    ; 8a 46 f6
    47474833    mov dx, di                                ; 89 fa
    47484834    out DX, AL                                ; ee
     
    47544840    mov dx, cx                                ; 89 ca
    47554841    mov ax, si                                ; 89 f0
    4756     call 02ef9h                               ; e8 d8 05
    4757     inc cx                                    ; 41
    4758     inc word [bp-004h]                        ; ff 46 fc
    4759     jmp short 02905h                          ; eb de
    4760     mov word [bp-004h], strict word 00000h    ; c7 46 fc 00 00
    4761     jmp short 02934h                          ; eb 06
    4762     cmp word [bp-004h], strict byte 00013h    ; 83 7e fc 13
    4763     jnbe short 0295dh                         ; 77 29
     4842    call 02f85h                               ; e8 e0 05
     4843    inc cx                                    ; 41
     4844    inc word [bp-00ah]                        ; ff 46 f6
     4845    jmp short 02989h                          ; eb de
     4846    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
     4847    jmp short 029b8h                          ; eb 06
     4848    cmp word [bp-00ah], strict byte 00013h    ; 83 7e f6 13
     4849    jnbe short 029e1h                         ; 77 29
    47644850    mov dx, 003dah                            ; ba da 03
    47654851    in AL, DX                                 ; ec
    47664852    db  02ah, 0e4h
    47674853    ; sub ah, ah                                ; 2a e4
    4768     mov ax, word [bp-002h]                    ; 8b 46 fe
     4854    mov ax, word [bp-008h]                    ; 8b 46 f8
    47694855    and ax, strict word 00020h                ; 25 20 00
    4770     or ax, word [bp-004h]                     ; 0b 46 fc
     4856    or ax, word [bp-00ah]                     ; 0b 46 f6
    47714857    mov dx, 003c0h                            ; ba c0 03
    47724858    out DX, AL                                ; ee
     
    47784864    mov dx, cx                                ; 89 ca
    47794865    mov ax, si                                ; 89 f0
    4780     call 02ef9h                               ; e8 a2 05
    4781     inc cx                                    ; 41
    4782     inc word [bp-004h]                        ; ff 46 fc
    4783     jmp short 0292eh                          ; eb d1
     4866    call 02f85h                               ; e8 aa 05
     4867    inc cx                                    ; 41
     4868    inc word [bp-00ah]                        ; ff 46 f6
     4869    jmp short 029b2h                          ; eb d1
    47844870    mov dx, 003dah                            ; ba da 03
    47854871    in AL, DX                                 ; ec
    47864872    db  02ah, 0e4h
    47874873    ; sub ah, ah                                ; 2a e4
    4788     mov word [bp-004h], strict word 00000h    ; c7 46 fc 00 00
    4789     jmp short 02970h                          ; eb 06
    4790     cmp word [bp-004h], strict byte 00008h    ; 83 7e fc 08
    4791     jnbe short 0298dh                         ; 77 1d
    4792     mov al, byte [bp-004h]                    ; 8a 46 fc
     4874    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
     4875    jmp short 029f4h                          ; eb 06
     4876    cmp word [bp-00ah], strict byte 00008h    ; 83 7e f6 08
     4877    jnbe short 02a11h                         ; 77 1d
     4878    mov al, byte [bp-00ah]                    ; 8a 46 f6
    47934879    mov dx, 003ceh                            ; ba ce 03
    47944880    out DX, AL                                ; ee
     
    48004886    mov dx, cx                                ; 89 ca
    48014887    mov ax, si                                ; 89 f0
    4802     call 02ef9h                               ; e8 72 05
    4803     inc cx                                    ; 41
    4804     inc word [bp-004h]                        ; ff 46 fc
    4805     jmp short 0296ah                          ; eb dd
     4888    call 02f85h                               ; e8 7a 05
     4889    inc cx                                    ; 41
     4890    inc word [bp-00ah]                        ; ff 46 f6
     4891    jmp short 029eeh                          ; eb dd
    48064892    mov bx, di                                ; 89 fb
    48074893    mov dx, cx                                ; 89 ca
    48084894    mov ax, si                                ; 89 f0
    4809     call 02f15h                               ; e8 7f 05
     4895    call 02fa1h                               ; e8 87 05
    48104896    inc cx                                    ; 41
    48114897    inc cx                                    ; 41
     
    48134899    mov dx, cx                                ; 89 ca
    48144900    mov ax, si                                ; 89 f0
    4815     call 02ef9h                               ; e8 58 05
     4901    call 02f85h                               ; e8 60 05
    48164902    inc cx                                    ; 41
    48174903    xor bx, bx                                ; 31 db
    48184904    mov dx, cx                                ; 89 ca
    48194905    mov ax, si                                ; 89 f0
    4820     call 02ef9h                               ; e8 4e 05
     4906    call 02f85h                               ; e8 56 05
    48214907    inc cx                                    ; 41
    48224908    xor bx, bx                                ; 31 db
    48234909    mov dx, cx                                ; 89 ca
    48244910    mov ax, si                                ; 89 f0
    4825     call 02ef9h                               ; e8 44 05
     4911    call 02f85h                               ; e8 4c 05
    48264912    inc cx                                    ; 41
    48274913    xor bx, bx                                ; 31 db
    48284914    mov dx, cx                                ; 89 ca
    48294915    mov ax, si                                ; 89 f0
    4830     call 02ef9h                               ; e8 3a 05
    4831     inc cx                                    ; 41
    4832     test byte [bp-006h], 002h                 ; f6 46 fa 02
    4833     je near 02b2fh                            ; 0f 84 67 01
     4916    call 02f85h                               ; e8 42 05
     4917    inc cx                                    ; 41
     4918    test byte [bp-00ch], 002h                 ; f6 46 f4 02
     4919    je near 02bb3h                            ; 0f 84 67 01
    48344920    mov dx, strict word 00049h                ; ba 49 00
    48354921    mov ax, strict word 00040h                ; b8 40 00
    4836     call 02eebh                               ; e8 1a 05
     4922    call 02f77h                               ; e8 22 05
    48374923    movzx bx, al                              ; 0f b6 d8
    48384924    mov dx, cx                                ; 89 ca
    48394925    mov ax, si                                ; 89 f0
    4840     call 02ef9h                               ; e8 1e 05
     4926    call 02f85h                               ; e8 26 05
    48414927    inc cx                                    ; 41
    48424928    mov dx, strict word 0004ah                ; ba 4a 00
    48434929    mov ax, strict word 00040h                ; b8 40 00
    4844     call 02f07h                               ; e8 22 05
     4930    call 02f93h                               ; e8 2a 05
    48454931    mov bx, ax                                ; 89 c3
    48464932    mov dx, cx                                ; 89 ca
    48474933    mov ax, si                                ; 89 f0
    4848     call 02f15h                               ; e8 27 05
     4934    call 02fa1h                               ; e8 2f 05
    48494935    inc cx                                    ; 41
    48504936    inc cx                                    ; 41
    48514937    mov dx, strict word 0004ch                ; ba 4c 00
    48524938    mov ax, strict word 00040h                ; b8 40 00
    4853     call 02f07h                               ; e8 0e 05
     4939    call 02f93h                               ; e8 16 05
    48544940    mov bx, ax                                ; 89 c3
    48554941    mov dx, cx                                ; 89 ca
    48564942    mov ax, si                                ; 89 f0
    4857     call 02f15h                               ; e8 13 05
     4943    call 02fa1h                               ; e8 1b 05
    48584944    inc cx                                    ; 41
    48594945    inc cx                                    ; 41
    48604946    mov dx, strict word 00063h                ; ba 63 00
    48614947    mov ax, strict word 00040h                ; b8 40 00
    4862     call 02f07h                               ; e8 fa 04
     4948    call 02f93h                               ; e8 02 05
    48634949    mov bx, ax                                ; 89 c3
    48644950    mov dx, cx                                ; 89 ca
    48654951    mov ax, si                                ; 89 f0
    4866     call 02f15h                               ; e8 ff 04
     4952    call 02fa1h                               ; e8 07 05
    48674953    inc cx                                    ; 41
    48684954    inc cx                                    ; 41
    48694955    mov dx, 00084h                            ; ba 84 00
    48704956    mov ax, strict word 00040h                ; b8 40 00
    4871     call 02eebh                               ; e8 ca 04
     4957    call 02f77h                               ; e8 d2 04
    48724958    movzx bx, al                              ; 0f b6 d8
    48734959    mov dx, cx                                ; 89 ca
    48744960    mov ax, si                                ; 89 f0
    4875     call 02ef9h                               ; e8 ce 04
     4961    call 02f85h                               ; e8 d6 04
    48764962    inc cx                                    ; 41
    48774963    mov dx, 00085h                            ; ba 85 00
    48784964    mov ax, strict word 00040h                ; b8 40 00
    4879     call 02f07h                               ; e8 d2 04
     4965    call 02f93h                               ; e8 da 04
    48804966    mov bx, ax                                ; 89 c3
    48814967    mov dx, cx                                ; 89 ca
    48824968    mov ax, si                                ; 89 f0
    4883     call 02f15h                               ; e8 d7 04
     4969    call 02fa1h                               ; e8 df 04
    48844970    inc cx                                    ; 41
    48854971    inc cx                                    ; 41
    48864972    mov dx, 00087h                            ; ba 87 00
    48874973    mov ax, strict word 00040h                ; b8 40 00
    4888     call 02eebh                               ; e8 a2 04
     4974    call 02f77h                               ; e8 aa 04
    48894975    movzx bx, al                              ; 0f b6 d8
    48904976    mov dx, cx                                ; 89 ca
    48914977    mov ax, si                                ; 89 f0
    4892     call 02ef9h                               ; e8 a6 04
     4978    call 02f85h                               ; e8 ae 04
    48934979    inc cx                                    ; 41
    48944980    mov dx, 00088h                            ; ba 88 00
    48954981    mov ax, strict word 00040h                ; b8 40 00
    4896     call 02eebh                               ; e8 8e 04
     4982    call 02f77h                               ; e8 96 04
    48974983    movzx bx, al                              ; 0f b6 d8
    48984984    mov dx, cx                                ; 89 ca
    48994985    mov ax, si                                ; 89 f0
    4900     call 02ef9h                               ; e8 92 04
     4986    call 02f85h                               ; e8 9a 04
    49014987    inc cx                                    ; 41
    49024988    mov dx, 00089h                            ; ba 89 00
    49034989    mov ax, strict word 00040h                ; b8 40 00
    4904     call 02eebh                               ; e8 7a 04
     4990    call 02f77h                               ; e8 82 04
    49054991    movzx bx, al                              ; 0f b6 d8
    49064992    mov dx, cx                                ; 89 ca
    49074993    mov ax, si                                ; 89 f0
    4908     call 02ef9h                               ; e8 7e 04
     4994    call 02f85h                               ; e8 86 04
    49094995    inc cx                                    ; 41
    49104996    mov dx, strict word 00060h                ; ba 60 00
    49114997    mov ax, strict word 00040h                ; b8 40 00
    4912     call 02f07h                               ; e8 82 04
     4998    call 02f93h                               ; e8 8a 04
    49134999    mov bx, ax                                ; 89 c3
    49145000    mov dx, cx                                ; 89 ca
    49155001    mov ax, si                                ; 89 f0
    4916     call 02f15h                               ; e8 87 04
    4917     mov word [bp-004h], strict word 00000h    ; c7 46 fc 00 00
    4918     inc cx                                    ; 41
    4919     inc cx                                    ; 41
    4920     jmp short 02a9dh                          ; eb 06
    4921     cmp word [bp-004h], strict byte 00008h    ; 83 7e fc 08
    4922     jnc short 02abbh                          ; 73 1e
    4923     mov dx, word [bp-004h]                    ; 8b 56 fc
     5002    call 02fa1h                               ; e8 8f 04
     5003    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
     5004    inc cx                                    ; 41
     5005    inc cx                                    ; 41
     5006    jmp short 02b21h                          ; eb 06
     5007    cmp word [bp-00ah], strict byte 00008h    ; 83 7e f6 08
     5008    jnc short 02b3fh                          ; 73 1e
     5009    mov dx, word [bp-00ah]                    ; 8b 56 f6
    49245010    add dx, dx                                ; 01 d2
    49255011    add dx, strict byte 00050h                ; 83 c2 50
    49265012    mov ax, strict word 00040h                ; b8 40 00
    4927     call 02f07h                               ; e8 5c 04
     5013    call 02f93h                               ; e8 64 04
    49285014    mov bx, ax                                ; 89 c3
    49295015    mov dx, cx                                ; 89 ca
    49305016    mov ax, si                                ; 89 f0
    4931     call 02f15h                               ; e8 61 04
    4932     inc cx                                    ; 41
    4933     inc cx                                    ; 41
    4934     inc word [bp-004h]                        ; ff 46 fc
    4935     jmp short 02a97h                          ; eb dc
     5017    call 02fa1h                               ; e8 69 04
     5018    inc cx                                    ; 41
     5019    inc cx                                    ; 41
     5020    inc word [bp-00ah]                        ; ff 46 f6
     5021    jmp short 02b1bh                          ; eb dc
    49365022    mov dx, strict word 0004eh                ; ba 4e 00
    49375023    mov ax, strict word 00040h                ; b8 40 00
    4938     call 02f07h                               ; e8 43 04
     5024    call 02f93h                               ; e8 4b 04
    49395025    mov bx, ax                                ; 89 c3
    49405026    mov dx, cx                                ; 89 ca
    49415027    mov ax, si                                ; 89 f0
    4942     call 02f15h                               ; e8 48 04
     5028    call 02fa1h                               ; e8 50 04
    49435029    inc cx                                    ; 41
    49445030    inc cx                                    ; 41
    49455031    mov dx, strict word 00062h                ; ba 62 00
    49465032    mov ax, strict word 00040h                ; b8 40 00
    4947     call 02eebh                               ; e8 13 04
     5033    call 02f77h                               ; e8 1b 04
    49485034    movzx bx, al                              ; 0f b6 d8
    49495035    mov dx, cx                                ; 89 ca
    49505036    mov ax, si                                ; 89 f0
    4951     call 02ef9h                               ; e8 17 04
     5037    call 02f85h                               ; e8 1f 04
    49525038    inc cx                                    ; 41
    49535039    mov dx, strict word 0007ch                ; ba 7c 00
    49545040    xor ax, ax                                ; 31 c0
    4955     call 02f07h                               ; e8 1c 04
     5041    call 02f93h                               ; e8 24 04
    49565042    mov bx, ax                                ; 89 c3
    49575043    mov dx, cx                                ; 89 ca
    49585044    mov ax, si                                ; 89 f0
    4959     call 02f15h                               ; e8 21 04
     5045    call 02fa1h                               ; e8 29 04
    49605046    inc cx                                    ; 41
    49615047    inc cx                                    ; 41
    49625048    mov dx, strict word 0007eh                ; ba 7e 00
    49635049    xor ax, ax                                ; 31 c0
    4964     call 02f07h                               ; e8 09 04
     5050    call 02f93h                               ; e8 11 04
    49655051    mov bx, ax                                ; 89 c3
    49665052    mov dx, cx                                ; 89 ca
    49675053    mov ax, si                                ; 89 f0
    4968     call 02f15h                               ; e8 0e 04
     5054    call 02fa1h                               ; e8 16 04
    49695055    inc cx                                    ; 41
    49705056    inc cx                                    ; 41
    49715057    mov dx, 0010ch                            ; ba 0c 01
    49725058    xor ax, ax                                ; 31 c0
    4973     call 02f07h                               ; e8 f6 03
     5059    call 02f93h                               ; e8 fe 03
    49745060    mov bx, ax                                ; 89 c3
    49755061    mov dx, cx                                ; 89 ca
    49765062    mov ax, si                                ; 89 f0
    4977     call 02f15h                               ; e8 fb 03
     5063    call 02fa1h                               ; e8 03 04
    49785064    inc cx                                    ; 41
    49795065    inc cx                                    ; 41
    49805066    mov dx, 0010eh                            ; ba 0e 01
    49815067    xor ax, ax                                ; 31 c0
    4982     call 02f07h                               ; e8 e3 03
     5068    call 02f93h                               ; e8 eb 03
    49835069    mov bx, ax                                ; 89 c3
    49845070    mov dx, cx                                ; 89 ca
    49855071    mov ax, si                                ; 89 f0
    4986     call 02f15h                               ; e8 e8 03
    4987     inc cx                                    ; 41
    4988     inc cx                                    ; 41
    4989     test byte [bp-006h], 004h                 ; f6 46 fa 04
    4990     je short 02b9ch                           ; 74 67
     5072    call 02fa1h                               ; e8 f0 03
     5073    inc cx                                    ; 41
     5074    inc cx                                    ; 41
     5075    test byte [bp-00ch], 004h                 ; f6 46 f4 04
     5076    je short 02c20h                           ; 74 67
    49915077    mov dx, 003c7h                            ; ba c7 03
    49925078    in AL, DX                                 ; ec
     
    49965082    mov dx, cx                                ; 89 ca
    49975083    mov ax, si                                ; 89 f0
    4998     call 02ef9h                               ; e8 b4 03
     5084    call 02f85h                               ; e8 bc 03
    49995085    inc cx                                    ; 41
    50005086    mov dx, 003c8h                            ; ba c8 03
     
    50055091    mov dx, cx                                ; 89 ca
    50065092    mov ax, si                                ; 89 f0
    5007     call 02ef9h                               ; e8 a3 03
     5093    call 02f85h                               ; e8 ab 03
    50085094    inc cx                                    ; 41
    50095095    mov dx, 003c6h                            ; ba c6 03
     
    50145100    mov dx, cx                                ; 89 ca
    50155101    mov ax, si                                ; 89 f0
    5016     call 02ef9h                               ; e8 92 03
     5102    call 02f85h                               ; e8 9a 03
    50175103    inc cx                                    ; 41
    50185104    xor al, al                                ; 30 c0
     
    50205106    out DX, AL                                ; ee
    50215107    xor ah, ah                                ; 30 e4
    5022     mov word [bp-004h], ax                    ; 89 46 fc
    5023     jmp short 02b7ch                          ; eb 07
    5024     cmp word [bp-004h], 00300h                ; 81 7e fc 00 03
    5025     jnc short 02b92h                          ; 73 16
     5108    mov word [bp-00ah], ax                    ; 89 46 f6
     5109    jmp short 02c00h                          ; eb 07
     5110    cmp word [bp-00ah], 00300h                ; 81 7e f6 00 03
     5111    jnc short 02c16h                          ; 73 16
    50265112    mov dx, 003c9h                            ; ba c9 03
    50275113    in AL, DX                                 ; ec
     
    50315117    mov dx, cx                                ; 89 ca
    50325118    mov ax, si                                ; 89 f0
    5033     call 02ef9h                               ; e8 6d 03
    5034     inc cx                                    ; 41
    5035     inc word [bp-004h]                        ; ff 46 fc
    5036     jmp short 02b75h                          ; eb e3
     5119    call 02f85h                               ; e8 75 03
     5120    inc cx                                    ; 41
     5121    inc word [bp-00ah]                        ; ff 46 f6
     5122    jmp short 02bf9h                          ; eb e3
    50375123    xor bx, bx                                ; 31 db
    50385124    mov dx, cx                                ; 89 ca
    50395125    mov ax, si                                ; 89 f0
    5040     call 02ef9h                               ; e8 5e 03
     5126    call 02f85h                               ; e8 66 03
    50415127    inc cx                                    ; 41
    50425128    mov ax, cx                                ; 89 c8
    5043     leave                                     ; c9
     5129    lea sp, [bp-006h]                         ; 8d 66 fa
    50445130    pop di                                    ; 5f
    50455131    pop si                                    ; 5e
    50465132    pop cx                                    ; 59
    5047     retn                                      ; c3
    5048 biosfn_restore_video_state_:                 ; 0xc2ba3 LB 0x321
     5133    pop bp                                    ; 5d
     5134    retn                                      ; c3
     5135biosfn_restore_video_state_:                 ; 0xc2c2a LB 0x326
     5136    push bp                                   ; 55
     5137    mov bp, sp                                ; 89 e5
    50495138    push cx                                   ; 51
    50505139    push si                                   ; 56
    50515140    push di                                   ; 57
    5052     enter 00006h, 000h                        ; c8 06 00 00
     5141    sub sp, strict byte 00006h                ; 83 ec 06
    50535142    push ax                                   ; 50
    50545143    mov si, dx                                ; 89 d6
    50555144    mov cx, bx                                ; 89 d9
    5056     test byte [bp-008h], 001h                 ; f6 46 f8 01
    5057     je near 02d01h                            ; 0f 84 4a 01
     5145    test byte [bp-00eh], 001h                 ; f6 46 f2 01
     5146    je near 02d8ah                            ; 0f 84 4a 01
    50585147    mov dx, 003dah                            ; ba da 03
    50595148    in AL, DX                                 ; ec
     
    50625151    lea dx, [bx+040h]                         ; 8d 57 40
    50635152    mov ax, si                                ; 89 f0
    5064     call 02f07h                               ; e8 42 03
     5153    call 02f93h                               ; e8 45 03
    50655154    mov di, ax                                ; 89 c7
    5066     mov word [bp-002h], strict word 00001h    ; c7 46 fe 01 00
     5155    mov word [bp-008h], strict word 00001h    ; c7 46 f8 01 00
    50675156    lea cx, [bx+005h]                         ; 8d 4f 05
    5068     jmp short 02bd7h                          ; eb 06
    5069     cmp word [bp-002h], strict byte 00004h    ; 83 7e fe 04
    5070     jnbe short 02befh                         ; 77 18
    5071     mov al, byte [bp-002h]                    ; 8a 46 fe
     5157    jmp short 02c60h                          ; eb 06
     5158    cmp word [bp-008h], strict byte 00004h    ; 83 7e f8 04
     5159    jnbe short 02c78h                         ; 77 18
     5160    mov al, byte [bp-008h]                    ; 8a 46 f8
    50725161    mov dx, 003c4h                            ; ba c4 03
    50735162    out DX, AL                                ; ee
    50745163    mov dx, cx                                ; 89 ca
    50755164    mov ax, si                                ; 89 f0
    5076     call 02eebh                               ; e8 06 03
     5165    call 02f77h                               ; e8 09 03
    50775166    mov dx, 003c5h                            ; ba c5 03
    50785167    out DX, AL                                ; ee
    50795168    inc cx                                    ; 41
    5080     inc word [bp-002h]                        ; ff 46 fe
    5081     jmp short 02bd1h                          ; eb e2
     5169    inc word [bp-008h]                        ; ff 46 f8
     5170    jmp short 02c5ah                          ; eb e2
    50825171    xor al, al                                ; 30 c0
    50835172    mov dx, 003c4h                            ; ba c4 03
     
    50855174    mov dx, cx                                ; 89 ca
    50865175    mov ax, si                                ; 89 f0
    5087     call 02eebh                               ; e8 ef 02
     5176    call 02f77h                               ; e8 f2 02
    50885177    mov dx, 003c5h                            ; ba c5 03
    50895178    out DX, AL                                ; ee
     
    50925181    mov dx, di                                ; 89 fa
    50935182    out DX, ax                                ; ef
    5094     mov word [bp-002h], strict word 00000h    ; c7 46 fe 00 00
    5095     jmp short 02c14h                          ; eb 06
    5096     cmp word [bp-002h], strict byte 00018h    ; 83 7e fe 18
    5097     jnbe short 02c31h                         ; 77 1d
    5098     cmp word [bp-002h], strict byte 00011h    ; 83 7e fe 11
    5099     je short 02c2bh                           ; 74 11
    5100     mov al, byte [bp-002h]                    ; 8a 46 fe
     5183    mov word [bp-008h], strict word 00000h    ; c7 46 f8 00 00
     5184    jmp short 02c9dh                          ; eb 06
     5185    cmp word [bp-008h], strict byte 00018h    ; 83 7e f8 18
     5186    jnbe short 02cbah                         ; 77 1d
     5187    cmp word [bp-008h], strict byte 00011h    ; 83 7e f8 11
     5188    je short 02cb4h                           ; 74 11
     5189    mov al, byte [bp-008h]                    ; 8a 46 f8
    51015190    mov dx, di                                ; 89 fa
    51025191    out DX, AL                                ; ee
    51035192    mov dx, cx                                ; 89 ca
    51045193    mov ax, si                                ; 89 f0
    5105     call 02eebh                               ; e8 c4 02
     5194    call 02f77h                               ; e8 c7 02
    51065195    lea dx, [di+001h]                         ; 8d 55 01
    51075196    out DX, AL                                ; ee
    51085197    inc cx                                    ; 41
    5109     inc word [bp-002h]                        ; ff 46 fe
    5110     jmp short 02c0eh                          ; eb dd
     5198    inc word [bp-008h]                        ; ff 46 f8
     5199    jmp short 02c97h                          ; eb dd
    51115200    mov dx, 003cch                            ; ba cc 03
    51125201    in AL, DX                                 ; ec
     
    51145203    ; sub ah, ah                                ; 2a e4
    51155204    and AL, strict byte 0feh                  ; 24 fe
    5116     mov word [bp-004h], ax                    ; 89 46 fc
     5205    mov word [bp-00ah], ax                    ; 89 46 f6
    51175206    cmp di, 003d4h                            ; 81 ff d4 03
    5118     jne short 02c46h                          ; 75 04
    5119     or byte [bp-004h], 001h                   ; 80 4e fc 01
    5120     mov al, byte [bp-004h]                    ; 8a 46 fc
     5207    jne short 02ccfh                          ; 75 04
     5208    or byte [bp-00ah], 001h                   ; 80 4e f6 01
     5209    mov al, byte [bp-00ah]                    ; 8a 46 f6
    51215210    mov dx, 003c2h                            ; ba c2 03
    51225211    out DX, AL                                ; ee
     
    51275216    add dx, strict byte 0fff9h                ; 83 c2 f9
    51285217    mov ax, si                                ; 89 f0
    5129     call 02eebh                               ; e8 8f 02
     5218    call 02f77h                               ; e8 92 02
    51305219    lea dx, [di+001h]                         ; 8d 55 01
    51315220    out DX, AL                                ; ee
    51325221    lea dx, [bx+003h]                         ; 8d 57 03
    51335222    mov ax, si                                ; 89 f0
    5134     call 02eebh                               ; e8 83 02
     5223    call 02f77h                               ; e8 86 02
    51355224    xor ah, ah                                ; 30 e4
    5136     mov word [bp-006h], ax                    ; 89 46 fa
     5225    mov word [bp-00ch], ax                    ; 89 46 f4
    51375226    mov dx, 003dah                            ; ba da 03
    51385227    in AL, DX                                 ; ec
    51395228    db  02ah, 0e4h
    51405229    ; sub ah, ah                                ; 2a e4
    5141     mov word [bp-002h], strict word 00000h    ; c7 46 fe 00 00
    5142     jmp short 02c80h                          ; eb 06
    5143     cmp word [bp-002h], strict byte 00013h    ; 83 7e fe 13
    5144     jnbe short 02c9eh                         ; 77 1e
    5145     mov ax, word [bp-006h]                    ; 8b 46 fa
     5230    mov word [bp-008h], strict word 00000h    ; c7 46 f8 00 00
     5231    jmp short 02d09h                          ; eb 06
     5232    cmp word [bp-008h], strict byte 00013h    ; 83 7e f8 13
     5233    jnbe short 02d27h                         ; 77 1e
     5234    mov ax, word [bp-00ch]                    ; 8b 46 f4
    51465235    and ax, strict word 00020h                ; 25 20 00
    5147     or ax, word [bp-002h]                     ; 0b 46 fe
     5236    or ax, word [bp-008h]                     ; 0b 46 f8
    51485237    mov dx, 003c0h                            ; ba c0 03
    51495238    out DX, AL                                ; ee
    51505239    mov dx, cx                                ; 89 ca
    51515240    mov ax, si                                ; 89 f0
    5152     call 02eebh                               ; e8 57 02
     5241    call 02f77h                               ; e8 5a 02
    51535242    mov dx, 003c0h                            ; ba c0 03
    51545243    out DX, AL                                ; ee
    51555244    inc cx                                    ; 41
    5156     inc word [bp-002h]                        ; ff 46 fe
    5157     jmp short 02c7ah                          ; eb dc
    5158     mov al, byte [bp-006h]                    ; 8a 46 fa
     5245    inc word [bp-008h]                        ; ff 46 f8
     5246    jmp short 02d03h                          ; eb dc
     5247    mov al, byte [bp-00ch]                    ; 8a 46 f4
    51595248    mov dx, 003c0h                            ; ba c0 03
    51605249    out DX, AL                                ; ee
     
    51635252    db  02ah, 0e4h
    51645253    ; sub ah, ah                                ; 2a e4
    5165     mov word [bp-002h], strict word 00000h    ; c7 46 fe 00 00
    5166     jmp short 02cb8h                          ; eb 06
    5167     cmp word [bp-002h], strict byte 00008h    ; 83 7e fe 08
    5168     jnbe short 02cd0h                         ; 77 18
    5169     mov al, byte [bp-002h]                    ; 8a 46 fe
     5254    mov word [bp-008h], strict word 00000h    ; c7 46 f8 00 00
     5255    jmp short 02d41h                          ; eb 06
     5256    cmp word [bp-008h], strict byte 00008h    ; 83 7e f8 08
     5257    jnbe short 02d59h                         ; 77 18
     5258    mov al, byte [bp-008h]                    ; 8a 46 f8
    51705259    mov dx, 003ceh                            ; ba ce 03
    51715260    out DX, AL                                ; ee
    51725261    mov dx, cx                                ; 89 ca
    51735262    mov ax, si                                ; 89 f0
    5174     call 02eebh                               ; e8 25 02
     5263    call 02f77h                               ; e8 28 02
    51755264    mov dx, 003cfh                            ; ba cf 03
    51765265    out DX, AL                                ; ee
    51775266    inc cx                                    ; 41
    5178     inc word [bp-002h]                        ; ff 46 fe
    5179     jmp short 02cb2h                          ; eb e2
     5267    inc word [bp-008h]                        ; ff 46 f8
     5268    jmp short 02d3bh                          ; eb e2
    51805269    add cx, strict byte 00006h                ; 83 c1 06
    51815270    mov dx, bx                                ; 89 da
    51825271    mov ax, si                                ; 89 f0
    5183     call 02eebh                               ; e8 11 02
     5272    call 02f77h                               ; e8 14 02
    51845273    mov dx, 003c4h                            ; ba c4 03
    51855274    out DX, AL                                ; ee
     
    51875276    mov dx, bx                                ; 89 da
    51885277    mov ax, si                                ; 89 f0
    5189     call 02eebh                               ; e8 05 02
     5278    call 02f77h                               ; e8 08 02
    51905279    mov dx, di                                ; 89 fa
    51915280    out DX, AL                                ; ee
     
    51935282    mov dx, bx                                ; 89 da
    51945283    mov ax, si                                ; 89 f0
    5195     call 02eebh                               ; e8 fa 01
     5284    call 02f77h                               ; e8 fd 01
    51965285    mov dx, 003ceh                            ; ba ce 03
    51975286    out DX, AL                                ; ee
    51985287    lea dx, [bx+002h]                         ; 8d 57 02
    51995288    mov ax, si                                ; 89 f0
    5200     call 02eebh                               ; e8 ee 01
     5289    call 02f77h                               ; e8 f1 01
    52015290    lea dx, [di+006h]                         ; 8d 55 06
    52025291    out DX, AL                                ; ee
    5203     test byte [bp-008h], 002h                 ; f6 46 f8 02
    5204     je near 02e70h                            ; 0f 84 67 01
    5205     mov dx, cx                                ; 89 ca
    5206     mov ax, si                                ; 89 f0
    5207     call 02eebh                               ; e8 db 01
     5292    test byte [bp-00eh], 002h                 ; f6 46 f2 02
     5293    je near 02ef9h                            ; 0f 84 67 01
     5294    mov dx, cx                                ; 89 ca
     5295    mov ax, si                                ; 89 f0
     5296    call 02f77h                               ; e8 de 01
    52085297    movzx bx, al                              ; 0f b6 d8
    52095298    mov dx, strict word 00049h                ; ba 49 00
    52105299    mov ax, strict word 00040h                ; b8 40 00
    5211     call 02ef9h                               ; e8 dd 01
    5212     inc cx                                    ; 41
    5213     mov dx, cx                                ; 89 ca
    5214     mov ax, si                                ; 89 f0
    5215     call 02f07h                               ; e8 e3 01
     5300    call 02f85h                               ; e8 e0 01
     5301    inc cx                                    ; 41
     5302    mov dx, cx                                ; 89 ca
     5303    mov ax, si                                ; 89 f0
     5304    call 02f93h                               ; e8 e6 01
    52165305    mov bx, ax                                ; 89 c3
    52175306    mov dx, strict word 0004ah                ; ba 4a 00
    52185307    mov ax, strict word 00040h                ; b8 40 00
    5219     call 02f15h                               ; e8 e6 01
    5220     inc cx                                    ; 41
    5221     inc cx                                    ; 41
    5222     mov dx, cx                                ; 89 ca
    5223     mov ax, si                                ; 89 f0
    5224     call 02f07h                               ; e8 cf 01
     5308    call 02fa1h                               ; e8 e9 01
     5309    inc cx                                    ; 41
     5310    inc cx                                    ; 41
     5311    mov dx, cx                                ; 89 ca
     5312    mov ax, si                                ; 89 f0
     5313    call 02f93h                               ; e8 d2 01
    52255314    mov bx, ax                                ; 89 c3
    52265315    mov dx, strict word 0004ch                ; ba 4c 00
    52275316    mov ax, strict word 00040h                ; b8 40 00
    5228     call 02f15h                               ; e8 d2 01
    5229     inc cx                                    ; 41
    5230     inc cx                                    ; 41
    5231     mov dx, cx                                ; 89 ca
    5232     mov ax, si                                ; 89 f0
    5233     call 02f07h                               ; e8 bb 01
     5317    call 02fa1h                               ; e8 d5 01
     5318    inc cx                                    ; 41
     5319    inc cx                                    ; 41
     5320    mov dx, cx                                ; 89 ca
     5321    mov ax, si                                ; 89 f0
     5322    call 02f93h                               ; e8 be 01
    52345323    mov bx, ax                                ; 89 c3
    52355324    mov dx, strict word 00063h                ; ba 63 00
    52365325    mov ax, strict word 00040h                ; b8 40 00
    5237     call 02f15h                               ; e8 be 01
    5238     inc cx                                    ; 41
    5239     inc cx                                    ; 41
    5240     mov dx, cx                                ; 89 ca
    5241     mov ax, si                                ; 89 f0
    5242     call 02eebh                               ; e8 8b 01
     5326    call 02fa1h                               ; e8 c1 01
     5327    inc cx                                    ; 41
     5328    inc cx                                    ; 41
     5329    mov dx, cx                                ; 89 ca
     5330    mov ax, si                                ; 89 f0
     5331    call 02f77h                               ; e8 8e 01
    52435332    movzx bx, al                              ; 0f b6 d8
    52445333    mov dx, 00084h                            ; ba 84 00
    52455334    mov ax, strict word 00040h                ; b8 40 00
    5246     call 02ef9h                               ; e8 8d 01
    5247     inc cx                                    ; 41
    5248     mov dx, cx                                ; 89 ca
    5249     mov ax, si                                ; 89 f0
    5250     call 02f07h                               ; e8 93 01
     5335    call 02f85h                               ; e8 90 01
     5336    inc cx                                    ; 41
     5337    mov dx, cx                                ; 89 ca
     5338    mov ax, si                                ; 89 f0
     5339    call 02f93h                               ; e8 96 01
    52515340    mov bx, ax                                ; 89 c3
    52525341    mov dx, 00085h                            ; ba 85 00
    52535342    mov ax, strict word 00040h                ; b8 40 00
    5254     call 02f15h                               ; e8 96 01
    5255     inc cx                                    ; 41
    5256     inc cx                                    ; 41
    5257     mov dx, cx                                ; 89 ca
    5258     mov ax, si                                ; 89 f0
    5259     call 02eebh                               ; e8 63 01
     5343    call 02fa1h                               ; e8 99 01
     5344    inc cx                                    ; 41
     5345    inc cx                                    ; 41
     5346    mov dx, cx                                ; 89 ca
     5347    mov ax, si                                ; 89 f0
     5348    call 02f77h                               ; e8 66 01
    52605349    movzx bx, al                              ; 0f b6 d8
    52615350    mov dx, 00087h                            ; ba 87 00
    52625351    mov ax, strict word 00040h                ; b8 40 00
    5263     call 02ef9h                               ; e8 65 01
    5264     inc cx                                    ; 41
    5265     mov dx, cx                                ; 89 ca
    5266     mov ax, si                                ; 89 f0
    5267     call 02eebh                               ; e8 4f 01
     5352    call 02f85h                               ; e8 68 01
     5353    inc cx                                    ; 41
     5354    mov dx, cx                                ; 89 ca
     5355    mov ax, si                                ; 89 f0
     5356    call 02f77h                               ; e8 52 01
    52685357    movzx bx, al                              ; 0f b6 d8
    52695358    mov dx, 00088h                            ; ba 88 00
    52705359    mov ax, strict word 00040h                ; b8 40 00
    5271     call 02ef9h                               ; e8 51 01
    5272     inc cx                                    ; 41
    5273     mov dx, cx                                ; 89 ca
    5274     mov ax, si                                ; 89 f0
    5275     call 02eebh                               ; e8 3b 01
     5360    call 02f85h                               ; e8 54 01
     5361    inc cx                                    ; 41
     5362    mov dx, cx                                ; 89 ca
     5363    mov ax, si                                ; 89 f0
     5364    call 02f77h                               ; e8 3e 01
    52765365    movzx bx, al                              ; 0f b6 d8
    52775366    mov dx, 00089h                            ; ba 89 00
    52785367    mov ax, strict word 00040h                ; b8 40 00
    5279     call 02ef9h                               ; e8 3d 01
    5280     inc cx                                    ; 41
    5281     mov dx, cx                                ; 89 ca
    5282     mov ax, si                                ; 89 f0
    5283     call 02f07h                               ; e8 43 01
     5368    call 02f85h                               ; e8 40 01
     5369    inc cx                                    ; 41
     5370    mov dx, cx                                ; 89 ca
     5371    mov ax, si                                ; 89 f0
     5372    call 02f93h                               ; e8 46 01
    52845373    mov bx, ax                                ; 89 c3
    52855374    mov dx, strict word 00060h                ; ba 60 00
    52865375    mov ax, strict word 00040h                ; b8 40 00
    5287     call 02f15h                               ; e8 46 01
    5288     mov word [bp-002h], strict word 00000h    ; c7 46 fe 00 00
    5289     inc cx                                    ; 41
    5290     inc cx                                    ; 41
    5291     jmp short 02ddeh                          ; eb 06
    5292     cmp word [bp-002h], strict byte 00008h    ; 83 7e fe 08
    5293     jnc short 02dfch                          ; 73 1e
    5294     mov dx, cx                                ; 89 ca
    5295     mov ax, si                                ; 89 f0
    5296     call 02f07h                               ; e8 22 01
     5376    call 02fa1h                               ; e8 49 01
     5377    mov word [bp-008h], strict word 00000h    ; c7 46 f8 00 00
     5378    inc cx                                    ; 41
     5379    inc cx                                    ; 41
     5380    jmp short 02e67h                          ; eb 06
     5381    cmp word [bp-008h], strict byte 00008h    ; 83 7e f8 08
     5382    jnc short 02e85h                          ; 73 1e
     5383    mov dx, cx                                ; 89 ca
     5384    mov ax, si                                ; 89 f0
     5385    call 02f93h                               ; e8 25 01
    52975386    mov bx, ax                                ; 89 c3
    5298     mov dx, word [bp-002h]                    ; 8b 56 fe
     5387    mov dx, word [bp-008h]                    ; 8b 56 f8
    52995388    add dx, dx                                ; 01 d2
    53005389    add dx, strict byte 00050h                ; 83 c2 50
    53015390    mov ax, strict word 00040h                ; b8 40 00
    5302     call 02f15h                               ; e8 20 01
    5303     inc cx                                    ; 41
    5304     inc cx                                    ; 41
    5305     inc word [bp-002h]                        ; ff 46 fe
    5306     jmp short 02dd8h                          ; eb dc
    5307     mov dx, cx                                ; 89 ca
    5308     mov ax, si                                ; 89 f0
    5309     call 02f07h                               ; e8 04 01
     5391    call 02fa1h                               ; e8 23 01
     5392    inc cx                                    ; 41
     5393    inc cx                                    ; 41
     5394    inc word [bp-008h]                        ; ff 46 f8
     5395    jmp short 02e61h                          ; eb dc
     5396    mov dx, cx                                ; 89 ca
     5397    mov ax, si                                ; 89 f0
     5398    call 02f93h                               ; e8 07 01
    53105399    mov bx, ax                                ; 89 c3
    53115400    mov dx, strict word 0004eh                ; ba 4e 00
    53125401    mov ax, strict word 00040h                ; b8 40 00
    5313     call 02f15h                               ; e8 07 01
    5314     inc cx                                    ; 41
    5315     inc cx                                    ; 41
    5316     mov dx, cx                                ; 89 ca
    5317     mov ax, si                                ; 89 f0
    5318     call 02eebh                               ; e8 d4 00
     5402    call 02fa1h                               ; e8 0a 01
     5403    inc cx                                    ; 41
     5404    inc cx                                    ; 41
     5405    mov dx, cx                                ; 89 ca
     5406    mov ax, si                                ; 89 f0
     5407    call 02f77h                               ; e8 d7 00
    53195408    movzx bx, al                              ; 0f b6 d8
    53205409    mov dx, strict word 00062h                ; ba 62 00
    53215410    mov ax, strict word 00040h                ; b8 40 00
    5322     call 02ef9h                               ; e8 d6 00
    5323     inc cx                                    ; 41
    5324     mov dx, cx                                ; 89 ca
    5325     mov ax, si                                ; 89 f0
    5326     call 02f07h                               ; e8 dc 00
     5411    call 02f85h                               ; e8 d9 00
     5412    inc cx                                    ; 41
     5413    mov dx, cx                                ; 89 ca
     5414    mov ax, si                                ; 89 f0
     5415    call 02f93h                               ; e8 df 00
    53275416    mov bx, ax                                ; 89 c3
    53285417    mov dx, strict word 0007ch                ; ba 7c 00
    53295418    xor ax, ax                                ; 31 c0
    5330     call 02f15h                               ; e8 e0 00
    5331     inc cx                                    ; 41
    5332     inc cx                                    ; 41
    5333     mov dx, cx                                ; 89 ca
    5334     mov ax, si                                ; 89 f0
    5335     call 02f07h                               ; e8 c9 00
     5419    call 02fa1h                               ; e8 e3 00
     5420    inc cx                                    ; 41
     5421    inc cx                                    ; 41
     5422    mov dx, cx                                ; 89 ca
     5423    mov ax, si                                ; 89 f0
     5424    call 02f93h                               ; e8 cc 00
    53365425    mov bx, ax                                ; 89 c3
    53375426    mov dx, strict word 0007eh                ; ba 7e 00
    53385427    xor ax, ax                                ; 31 c0
    5339     call 02f15h                               ; e8 cd 00
    5340     inc cx                                    ; 41
    5341     inc cx                                    ; 41
    5342     mov dx, cx                                ; 89 ca
    5343     mov ax, si                                ; 89 f0
    5344     call 02f07h                               ; e8 b6 00
     5428    call 02fa1h                               ; e8 d0 00
     5429    inc cx                                    ; 41
     5430    inc cx                                    ; 41
     5431    mov dx, cx                                ; 89 ca
     5432    mov ax, si                                ; 89 f0
     5433    call 02f93h                               ; e8 b9 00
    53455434    mov bx, ax                                ; 89 c3
    53465435    mov dx, 0010ch                            ; ba 0c 01
    53475436    xor ax, ax                                ; 31 c0
    5348     call 02f15h                               ; e8 ba 00
    5349     inc cx                                    ; 41
    5350     inc cx                                    ; 41
    5351     mov dx, cx                                ; 89 ca
    5352     mov ax, si                                ; 89 f0
    5353     call 02f07h                               ; e8 a3 00
     5437    call 02fa1h                               ; e8 bd 00
     5438    inc cx                                    ; 41
     5439    inc cx                                    ; 41
     5440    mov dx, cx                                ; 89 ca
     5441    mov ax, si                                ; 89 f0
     5442    call 02f93h                               ; e8 a6 00
    53545443    mov bx, ax                                ; 89 c3
    53555444    mov dx, 0010eh                            ; ba 0e 01
    53565445    xor ax, ax                                ; 31 c0
    5357     call 02f15h                               ; e8 a7 00
    5358     inc cx                                    ; 41
    5359     inc cx                                    ; 41
    5360     test byte [bp-008h], 004h                 ; f6 46 f8 04
    5361     je short 02ebdh                           ; 74 47
    5362     inc cx                                    ; 41
    5363     mov dx, cx                                ; 89 ca
    5364     mov ax, si                                ; 89 f0
    5365     call 02eebh                               ; e8 6d 00
     5446    call 02fa1h                               ; e8 aa 00
     5447    inc cx                                    ; 41
     5448    inc cx                                    ; 41
     5449    test byte [bp-00eh], 004h                 ; f6 46 f2 04
     5450    je short 02f46h                           ; 74 47
     5451    inc cx                                    ; 41
     5452    mov dx, cx                                ; 89 ca
     5453    mov ax, si                                ; 89 f0
     5454    call 02f77h                               ; e8 70 00
    53665455    xor ah, ah                                ; 30 e4
    5367     mov word [bp-004h], ax                    ; 89 46 fc
    5368     inc cx                                    ; 41
    5369     mov dx, cx                                ; 89 ca
    5370     mov ax, si                                ; 89 f0
    5371     call 02eebh                               ; e8 60 00
     5456    mov word [bp-00ah], ax                    ; 89 46 f6
     5457    inc cx                                    ; 41
     5458    mov dx, cx                                ; 89 ca
     5459    mov ax, si                                ; 89 f0
     5460    call 02f77h                               ; e8 63 00
    53725461    mov dx, 003c6h                            ; ba c6 03
    53735462    out DX, AL                                ; ee
     
    53775466    out DX, AL                                ; ee
    53785467    xor ah, ah                                ; 30 e4
    5379     mov word [bp-002h], ax                    ; 89 46 fe
    5380     jmp short 02ea4h                          ; eb 07
    5381     cmp word [bp-002h], 00300h                ; 81 7e fe 00 03
    5382     jnc short 02eb5h                          ; 73 11
    5383     mov dx, cx                                ; 89 ca
    5384     mov ax, si                                ; 89 f0
    5385     call 02eebh                               ; e8 40 00
     5468    mov word [bp-008h], ax                    ; 89 46 f8
     5469    jmp short 02f2dh                          ; eb 07
     5470    cmp word [bp-008h], 00300h                ; 81 7e f8 00 03
     5471    jnc short 02f3eh                          ; 73 11
     5472    mov dx, cx                                ; 89 ca
     5473    mov ax, si                                ; 89 f0
     5474    call 02f77h                               ; e8 43 00
    53865475    mov dx, 003c9h                            ; ba c9 03
    53875476    out DX, AL                                ; ee
    53885477    inc cx                                    ; 41
    5389     inc word [bp-002h]                        ; ff 46 fe
    5390     jmp short 02e9dh                          ; eb e8
    5391     inc cx                                    ; 41
    5392     mov al, byte [bp-004h]                    ; 8a 46 fc
     5478    inc word [bp-008h]                        ; ff 46 f8
     5479    jmp short 02f26h                          ; eb e8
     5480    inc cx                                    ; 41
     5481    mov al, byte [bp-00ah]                    ; 8a 46 f6
    53935482    mov dx, 003c8h                            ; ba c8 03
    53945483    out DX, AL                                ; ee
    53955484    mov ax, cx                                ; 89 c8
    5396     leave                                     ; c9
     5485    lea sp, [bp-006h]                         ; 8d 66 fa
    53975486    pop di                                    ; 5f
    53985487    pop si                                    ; 5e
    53995488    pop cx                                    ; 59
    5400     retn                                      ; c3
    5401 find_vga_entry_:                             ; 0xc2ec4 LB 0x27
     5489    pop bp                                    ; 5d
     5490    retn                                      ; c3
     5491find_vga_entry_:                             ; 0xc2f50 LB 0x27
    54025492    push bx                                   ; 53
    54035493    push dx                                   ; 52
     
    54075497    mov AH, strict byte 0ffh                  ; b4 ff
    54085498    xor al, al                                ; 30 c0
    5409     jmp short 02ed7h                          ; eb 06
     5499    jmp short 02f63h                          ; eb 06
    54105500    db  0feh, 0c0h
    54115501    ; inc al                                    ; fe c0
    54125502    cmp AL, strict byte 00fh                  ; 3c 0f
    5413     jnbe short 02ee5h                         ; 77 0e
     5503    jnbe short 02f71h                         ; 77 0e
    54145504    movzx bx, al                              ; 0f b6 d8
    54155505    sal bx, 003h                              ; c1 e3 03
    5416     cmp dl, byte [bx+0482fh]                  ; 3a 97 2f 48
    5417     jne short 02ed1h                          ; 75 ee
     5506    cmp dl, byte [bx+04834h]                  ; 3a 97 34 48
     5507    jne short 02f5dh                          ; 75 ee
    54185508    mov ah, al                                ; 88 c4
    54195509    mov al, ah                                ; 88 e0
     
    54225512    pop bx                                    ; 5b
    54235513    retn                                      ; c3
    5424 read_byte_:                                  ; 0xc2eeb LB 0xe
     5514read_byte_:                                  ; 0xc2f77 LB 0xe
    54255515    push bx                                   ; 53
    54265516    push bp                                   ; 55
     
    54325522    pop bx                                    ; 5b
    54335523    retn                                      ; c3
    5434 write_byte_:                                 ; 0xc2ef9 LB 0xe
     5524write_byte_:                                 ; 0xc2f85 LB 0xe
    54355525    push si                                   ; 56
    54365526    push bp                                   ; 55
     
    54425532    pop si                                    ; 5e
    54435533    retn                                      ; c3
    5444 read_word_:                                  ; 0xc2f07 LB 0xe
     5534read_word_:                                  ; 0xc2f93 LB 0xe
    54455535    push bx                                   ; 53
    54465536    push bp                                   ; 55
     
    54525542    pop bx                                    ; 5b
    54535543    retn                                      ; c3
    5454 write_word_:                                 ; 0xc2f15 LB 0xe
     5544write_word_:                                 ; 0xc2fa1 LB 0xe
    54555545    push si                                   ; 56
    54565546    push bp                                   ; 55
     
    54625552    pop si                                    ; 5e
    54635553    retn                                      ; c3
    5464 read_dword_:                                 ; 0xc2f23 LB 0x12
     5554read_dword_:                                 ; 0xc2faf LB 0x12
    54655555    push bx                                   ; 53
    54665556    push bp                                   ; 55
     
    54735563    pop bx                                    ; 5b
    54745564    retn                                      ; c3
    5475 write_dword_:                                ; 0xc2f35 LB 0x7f
     5565write_dword_:                                ; 0xc2fc1 LB 0x7f
    54765566    push si                                   ; 56
    54775567    push bp                                   ; 55
     
    54955585    add ax, 00304h                            ; 05 04 03
    54965586    add al, byte [bx+di]                      ; 02 01
    5497     add byte [bx+033h], dh                    ; 00 77 33
    5498     loop 02f8fh                               ; e2 2f
    5499     and byte [bx+si], dh                      ; 20 30
    5500     xor AL, strict byte 030h                  ; 34 30
    5501     inc bp                                    ; 45
    5502     xor byte [bx+di+030h], bl                 ; 30 59 30
    5503     push strict byte 00030h                   ; 6a 30
    5504     je short 02f9ch                           ; 74 30
    5505     scasb                                     ; ae
    5506     xor byte [bp+si-03cd0h], dh               ; 30 b2 30 c3
    5507     xor al, ah                                ; 30 e0
    5508     xor ch, bh                                ; 30 fd
    5509     xor byte [di], bl                         ; 30 1d
     5587    add byte [bp+di], al                      ; 00 03
     5588    xor AL, strict byte 06eh                  ; 34 6e
     5589    xor byte [si-03fd0h], ch                  ; 30 ac 30 c0
     5590    xor cl, dl                                ; 30 d1
     5591    xor ch, ah                                ; 30 e5
     5592    xor dh, dh                                ; 30 f6
     5593    xor byte [bx+si], al                      ; 30 00
    55105594    xor word [bp+si], di                      ; 31 3a
    5511     xor word [bx+di+031h], dx                 ; 31 51 31
    5512     pop bp                                    ; 5d
    5513     xor word [bx+si], di                      ; 31 38
    5514     xor dh, byte [bp+di+032h]                 ; 32 73 32
    5515     mov word [0b832h], ax                     ; a3 32 b8
    5516     db  032h, 0fah
    5517     ; xor bh, dl                                ; 32 fa
    5518     xor dh, byte [bx+si]                      ; 32 30
    5519     and AL, strict byte 023h                  ; 24 23
    5520     and ah, byte [bx+di]                      ; 22 21
    5521     and byte [si], dl                         ; 20 14
    5522     adc dl, byte [bx+di]                      ; 12 11
    5523     adc byte [si], al                         ; 10 04
    5524     add al, byte [bx+di]                      ; 02 01
    5525     add byte [bx+033h], dh                    ; 00 77 33
    5526     jle short 02fcbh                          ; 7e 31
    5527     movsb                                     ; a4
    5528     xor word [di-039cfh], si                  ; 31 b5 31 c6
    5529     xor word [bp+031h], di                    ; 31 7e 31
    5530     movsb                                     ; a4
    5531     xor word [di-039cfh], si                  ; 31 b5 31 c6
    5532     xor di, dx                                ; 31 d7
    5533     xor bx, sp                                ; 31 e3
    5534     xor si, di                                ; 31 fe
    5535     xor word [bx+di], cx                      ; 31 09
    5536     xor dl, byte [si]                         ; 32 14
    5537     xor bl, byte [bx]                         ; 32 1f
     5595    xor word [04f31h], di                     ; 31 3e 31 4f
     5596    xor word [si+031h], bp                    ; 31 6c 31
     5597    mov word [bx+di], si                      ; 89 31
     5598    test ax, 0c631h                           ; a9 31 c6
     5599    xor bp, bx                                ; 31 dd
     5600    xor cx, bp                                ; 31 e9
     5601    xor sp, ax                                ; 31 c4
     5602    db  032h, 0ffh
     5603    ; xor bh, bh                                ; 32 ff
     5604    xor ch, byte [bx]                         ; 32 2f
     5605    xor ax, word [si+033h]                    ; 33 44 33
     5606    xchg byte [bp+di], dh                     ; 86 33
     5607    xor byte [si], ah                         ; 30 24
     5608    and sp, word [bp+si]                      ; 23 22
     5609    and word [bx+si], sp                      ; 21 20
     5610    adc AL, strict byte 012h                  ; 14 12
     5611    adc word [bx+si], dx                      ; 11 10
     5612    add AL, strict byte 002h                  ; 04 02
     5613    add word [bx+si], ax                      ; 01 00
     5614    add si, word [si]                         ; 03 34
     5615    or dh, byte [bp+si]                       ; 0a 32
     5616    xor byte [bp+si], dh                      ; 30 32
     5617    inc cx                                    ; 41
     5618    xor dl, byte [bp+si+032h]                 ; 32 52 32
     5619    or dh, byte [bp+si]                       ; 0a 32
     5620    xor byte [bp+si], dh                      ; 30 32
     5621    inc cx                                    ; 41
     5622    xor dl, byte [bp+si+032h]                 ; 32 52 32
     5623    arpl word [bp+si], si                     ; 63 32
     5624    outsw                                     ; 6f
     5625    xor cl, byte [bp+si-06aceh]               ; 32 8a 32 95
     5626    xor ah, byte [bx+si-054ceh]               ; 32 a0 32 ab
    55385627    db  032h
    5539 _int10_func:                                 ; 0xc2fb4 LB 0x3c7
     5628_int10_func:                                 ; 0xc3040 LB 0x3ca
     5629    push bp                                   ; 55
     5630    mov bp, sp                                ; 89 e5
    55405631    push si                                   ; 56
    55415632    push di                                   ; 57
    5542     enter 00002h, 000h                        ; c8 02 00 00
    5543     mov si, word [bp+008h]                    ; 8b 76 08
    5544     mov ax, word [bp+016h]                    ; 8b 46 16
     5633    push ax                                   ; 50
     5634    mov si, word [bp+004h]                    ; 8b 76 04
     5635    mov ax, word [bp+012h]                    ; 8b 46 12
    55455636    shr ax, 008h                              ; c1 e8 08
    55465637    cmp ax, strict word 0004fh                ; 3d 4f 00
    5547     jnbe near 03377h                          ; 0f 87 ad 03
     5638    jnbe near 03403h                          ; 0f 87 ad 03
    55485639    push CS                                   ; 0e
    55495640    pop ES                                    ; 07
    55505641    mov cx, strict word 00016h                ; b9 16 00
    5551     mov di, 02f47h                            ; bf 47 2f
     5642    mov di, 02fd3h                            ; bf d3 2f
    55525643    repne scasb                               ; f2 ae
    55535644    sal cx, 1                                 ; d1 e1
    55545645    mov di, cx                                ; 89 cf
    5555     mov ax, word [cs:di+02f5ch]               ; 2e 8b 85 5c 2f
    5556     mov cl, byte [bp+016h]                    ; 8a 4e 16
     5646    mov ax, word [cs:di+02fe8h]               ; 2e 8b 85 e8 2f
     5647    mov cl, byte [bp+012h]                    ; 8a 4e 12
    55575648    jmp ax                                    ; ff e0
    5558     mov al, byte [bp+016h]                    ; 8a 46 16
     5649    mov al, byte [bp+012h]                    ; 8a 46 12
    55595650    xor ah, ah                                ; 30 e4
    5560     call 00fb8h                               ; e8 ce df
    5561     mov ax, word [bp+016h]                    ; 8b 46 16
     5651    call 00fdch                               ; e8 66 df
     5652    mov ax, word [bp+012h]                    ; 8b 46 12
    55625653    and ax, strict word 0007fh                ; 25 7f 00
    55635654    cmp ax, strict word 00007h                ; 3d 07 00
    5564     je short 0300ah                           ; 74 15
     5655    je short 03096h                           ; 74 15
    55655656    cmp ax, strict word 00006h                ; 3d 06 00
    5566     je short 03001h                           ; 74 07
     5657    je short 0308dh                           ; 74 07
    55675658    cmp ax, strict word 00005h                ; 3d 05 00
    5568     jbe short 0300ah                          ; 76 0b
    5569     jmp short 03013h                          ; eb 12
    5570     mov ax, word [bp+016h]                    ; 8b 46 16
     5659    jbe short 03096h                          ; 76 0b
     5660    jmp short 0309fh                          ; eb 12
     5661    mov ax, word [bp+012h]                    ; 8b 46 12
    55715662    xor al, al                                ; 30 c0
    55725663    or AL, strict byte 03fh                   ; 0c 3f
    5573     jmp short 0301ah                          ; eb 10
    5574     mov ax, word [bp+016h]                    ; 8b 46 16
     5664    jmp short 030a6h                          ; eb 10
     5665    mov ax, word [bp+012h]                    ; 8b 46 12
    55755666    xor al, al                                ; 30 c0
    55765667    or AL, strict byte 030h                   ; 0c 30
    5577     jmp short 0301ah                          ; eb 07
    5578     mov ax, word [bp+016h]                    ; 8b 46 16
     5668    jmp short 030a6h                          ; eb 07
     5669    mov ax, word [bp+012h]                    ; 8b 46 12
    55795670    xor al, al                                ; 30 c0
    55805671    or AL, strict byte 020h                   ; 0c 20
    5581     mov word [bp+016h], ax                    ; 89 46 16
    5582     jmp near 03377h                           ; e9 57 03
    5583     mov al, byte [bp+014h]                    ; 8a 46 14
     5672    mov word [bp+012h], ax                    ; 89 46 12
     5673    jmp near 03403h                           ; e9 57 03
     5674    mov al, byte [bp+010h]                    ; 8a 46 10
    55845675    movzx dx, al                              ; 0f b6 d0
    5585     mov ax, word [bp+014h]                    ; 8b 46 14
    5586     shr ax, 008h                              ; c1 e8 08
    5587     xor ah, ah                                ; 30 e4
    5588     call 00da1h                               ; e8 70 dd
    5589     jmp near 03377h                           ; e9 43 03
    5590     mov dx, word [bp+012h]                    ; 8b 56 12
    55915676    mov ax, word [bp+010h]                    ; 8b 46 10
    55925677    shr ax, 008h                              ; c1 e8 08
    55935678    xor ah, ah                                ; 30 e4
    5594     call 00e42h                               ; e8 00 de
    5595     jmp near 03377h                           ; e9 32 03
    5596     lea bx, [bp+012h]                         ; 8d 5e 12
    5597     lea dx, [bp+014h]                         ; 8d 56 14
     5679    call 00dbah                               ; e8 fd dc
     5680    jmp near 03403h                           ; e9 43 03
     5681    mov dx, word [bp+00eh]                    ; 8b 56 0e
     5682    mov ax, word [bp+00ch]                    ; 8b 46 0c
     5683    shr ax, 008h                              ; c1 e8 08
     5684    xor ah, ah                                ; 30 e4
     5685    call 00e5eh                               ; e8 90 dd
     5686    jmp near 03403h                           ; e9 32 03
     5687    lea bx, [bp+00eh]                         ; 8d 5e 0e
     5688    lea dx, [bp+010h]                         ; 8d 56 10
     5689    mov ax, word [bp+00ch]                    ; 8b 46 0c
     5690    shr ax, 008h                              ; c1 e8 08
     5691    xor ah, ah                                ; 30 e4
     5692    call 00a88h                               ; e8 a6 d9
     5693    jmp near 03403h                           ; e9 1e 03
     5694    xor ax, ax                                ; 31 c0
     5695    mov word [bp+012h], ax                    ; 89 46 12
     5696    mov word [bp+00ch], ax                    ; 89 46 0c
     5697    mov word [bp+010h], ax                    ; 89 46 10
     5698    mov word [bp+00eh], ax                    ; 89 46 0e
     5699    jmp near 03403h                           ; e9 0d 03
     5700    mov al, cl                                ; 88 c8
     5701    xor ah, ah                                ; 30 e4
     5702    call 00f00h                               ; e8 03 de
     5703    jmp near 03403h                           ; e9 03 03
     5704    mov ax, strict word 00001h                ; b8 01 00
     5705    push ax                                   ; 50
     5706    mov ax, 000ffh                            ; b8 ff 00
     5707    push ax                                   ; 50
     5708    mov al, byte [bp+00eh]                    ; 8a 46 0e
     5709    xor ah, ah                                ; 30 e4
     5710    push ax                                   ; 50
     5711    mov ax, word [bp+00eh]                    ; 8b 46 0e
     5712    shr ax, 008h                              ; c1 e8 08
     5713    xor ah, ah                                ; 30 e4
     5714    push ax                                   ; 50
     5715    mov al, byte [bp+010h]                    ; 8a 46 10
     5716    movzx cx, al                              ; 0f b6 c8
    55985717    mov ax, word [bp+010h]                    ; 8b 46 10
    55995718    shr ax, 008h                              ; c1 e8 08
    5600     xor ah, ah                                ; 30 e4
    5601     call 00a83h                               ; e8 2d da
    5602     jmp near 03377h                           ; e9 1e 03
    5603     xor ax, ax                                ; 31 c0
    5604     mov word [bp+016h], ax                    ; 89 46 16
    5605     mov word [bp+010h], ax                    ; 89 46 10
    5606     mov word [bp+014h], ax                    ; 89 46 14
    5607     mov word [bp+012h], ax                    ; 89 46 12
    5608     jmp near 03377h                           ; e9 0d 03
    5609     mov al, cl                                ; 88 c8
    5610     xor ah, ah                                ; 30 e4
    5611     call 00ee0h                               ; e8 6f de
    5612     jmp near 03377h                           ; e9 03 03
    5613     mov ax, strict word 00001h                ; b8 01 00
    5614     push ax                                   ; 50
    5615     mov ax, 000ffh                            ; b8 ff 00
    5616     push ax                                   ; 50
     5719    movzx bx, al                              ; 0f b6 d8
     5720    mov ax, word [bp+00ch]                    ; 8b 46 0c
     5721    shr ax, 008h                              ; c1 e8 08
     5722    movzx dx, al                              ; 0f b6 d0
    56175723    mov al, byte [bp+012h]                    ; 8a 46 12
    56185724    xor ah, ah                                ; 30 e4
    5619     push ax                                   ; 50
    5620     mov ax, word [bp+012h]                    ; 8b 46 12
     5725    call 01568h                               ; e8 31 e4
     5726    jmp near 03403h                           ; e9 c9 02
     5727    xor ax, ax                                ; 31 c0
     5728    jmp short 03103h                          ; eb c5
     5729    lea dx, [bp+012h]                         ; 8d 56 12
     5730    mov ax, word [bp+00ch]                    ; 8b 46 0c
    56215731    shr ax, 008h                              ; c1 e8 08
    56225732    xor ah, ah                                ; 30 e4
    5623     push ax                                   ; 50
    5624     mov al, byte [bp+014h]                    ; 8a 46 14
    5625     movzx cx, al                              ; 0f b6 c8
    5626     mov ax, word [bp+014h]                    ; 8b 46 14
    5627     shr ax, 008h                              ; c1 e8 08
     5733    call 00acbh                               ; e8 7f d9
     5734    jmp near 03403h                           ; e9 b4 02
     5735    mov cx, word [bp+010h]                    ; 8b 4e 10
     5736    mov al, byte [bp+00ch]                    ; 8a 46 0c
    56285737    movzx bx, al                              ; 0f b6 d8
    5629     mov ax, word [bp+010h]                    ; 8b 46 10
     5738    mov ax, word [bp+00ch]                    ; 8b 46 0c
    56305739    shr ax, 008h                              ; c1 e8 08
    56315740    movzx dx, al                              ; 0f b6 d0
    5632     mov al, byte [bp+016h]                    ; 8a 46 16
     5741    mov al, byte [bp+012h]                    ; 8a 46 12
    56335742    xor ah, ah                                ; 30 e4
    5634     call 0152fh                               ; e8 84 e4
    5635     jmp near 03377h                           ; e9 c9 02
    5636     xor ax, ax                                ; 31 c0
    5637     jmp short 03077h                          ; eb c5
    5638     lea dx, [bp+016h]                         ; 8d 56 16
    5639     mov ax, word [bp+010h]                    ; 8b 46 10
    5640     shr ax, 008h                              ; c1 e8 08
    5641     xor ah, ah                                ; 30 e4
    5642     call 00ac3h                               ; e8 03 da
    5643     jmp near 03377h                           ; e9 b4 02
    5644     mov cx, word [bp+014h]                    ; 8b 4e 14
    5645     mov al, byte [bp+010h]                    ; 8a 46 10
     5743    call 01d08h                               ; e8 9f eb
     5744    jmp near 03403h                           ; e9 97 02
     5745    mov cx, word [bp+010h]                    ; 8b 4e 10
     5746    mov al, byte [bp+00ch]                    ; 8a 46 0c
    56465747    movzx bx, al                              ; 0f b6 d8
    5647     mov ax, word [bp+010h]                    ; 8b 46 10
     5748    mov ax, word [bp+00ch]                    ; 8b 46 0c
    56485749    shr ax, 008h                              ; c1 e8 08
    56495750    movzx dx, al                              ; 0f b6 d0
    5650     mov al, byte [bp+016h]                    ; 8a 46 16
     5751    mov al, byte [bp+012h]                    ; 8a 46 12
    56515752    xor ah, ah                                ; 30 e4
    5652     call 01cbbh                               ; e8 de eb
    5653     jmp near 03377h                           ; e9 97 02
    5654     mov cx, word [bp+014h]                    ; 8b 4e 14
    5655     mov al, byte [bp+010h]                    ; 8a 46 10
    5656     movzx bx, al                              ; 0f b6 d8
    5657     mov ax, word [bp+010h]                    ; 8b 46 10
     5753    call 01e70h                               ; e8 ea ec
     5754    jmp near 03403h                           ; e9 7a 02
     5755    mov cx, word [bp+00eh]                    ; 8b 4e 0e
     5756    mov bx, word [bp+010h]                    ; 8b 5e 10
     5757    mov al, byte [bp+012h]                    ; 8a 46 12
     5758    movzx dx, al                              ; 0f b6 d0
     5759    mov ax, word [bp+00ch]                    ; 8b 46 0c
    56585760    shr ax, 008h                              ; c1 e8 08
    5659     movzx dx, al                              ; 0f b6 d0
    5660     mov al, byte [bp+016h]                    ; 8a 46 16
     5761    mov word [bp-006h], ax                    ; 89 46 fa
     5762    mov al, byte [bp-006h]                    ; 8a 46 fa
    56615763    xor ah, ah                                ; 30 e4
    5662     call 01e1eh                               ; e8 24 ed
    5663     jmp near 03377h                           ; e9 7a 02
    5664     mov cx, word [bp+012h]                    ; 8b 4e 12
    5665     mov bx, word [bp+014h]                    ; 8b 5e 14
    5666     mov al, byte [bp+016h]                    ; 8a 46 16
    5667     movzx dx, al                              ; 0f b6 d0
    5668     mov ax, word [bp+010h]                    ; 8b 46 10
     5764    call 01fdfh                               ; e8 39 ee
     5765    jmp near 03403h                           ; e9 5a 02
     5766    lea cx, [bp+012h]                         ; 8d 4e 12
     5767    mov bx, word [bp+00eh]                    ; 8b 5e 0e
     5768    mov dx, word [bp+010h]                    ; 8b 56 10
     5769    mov ax, word [bp+00ch]                    ; 8b 46 0c
    56695770    shr ax, 008h                              ; c1 e8 08
    5670     mov word [bp-002h], ax                    ; 89 46 fe
    5671     mov al, byte [bp-002h]                    ; 8a 46 fe
     5771    mov word [bp-006h], ax                    ; 89 46 fa
     5772    mov al, byte [bp-006h]                    ; 8a 46 fa
    56725773    xor ah, ah                                ; 30 e4
    5673     call 01f88h                               ; e8 6e ee
    5674     jmp near 03377h                           ; e9 5a 02
    5675     lea cx, [bp+016h]                         ; 8d 4e 16
    5676     mov bx, word [bp+012h]                    ; 8b 5e 12
    5677     mov dx, word [bp+014h]                    ; 8b 56 14
    5678     mov ax, word [bp+010h]                    ; 8b 46 10
    5679     shr ax, 008h                              ; c1 e8 08
    5680     mov word [bp-002h], ax                    ; 89 46 fe
    5681     mov al, byte [bp-002h]                    ; 8a 46 fe
    5682     xor ah, ah                                ; 30 e4
    5683     call 00be5h                               ; e8 ae da
    5684     jmp near 03377h                           ; e9 3d 02
     5774    call 00bf5h                               ; e8 32 da
     5775    jmp near 03403h                           ; e9 3d 02
    56855776    mov cx, strict word 00002h                ; b9 02 00
    5686     mov al, byte [bp+010h]                    ; 8a 46 10
     5777    mov al, byte [bp+00ch]                    ; 8a 46 0c
    56875778    movzx bx, al                              ; 0f b6 d8
    56885779    mov dx, 000ffh                            ; ba ff 00
    5689     mov al, byte [bp+016h]                    ; 8a 46 16
     5780    mov al, byte [bp+012h]                    ; 8a 46 12
    56905781    xor ah, ah                                ; 30 e4
    5691     call 020f0h                               ; e8 a2 ef
    5692     jmp near 03377h                           ; e9 26 02
    5693     mov dx, word [bp+014h]                    ; 8b 56 14
    5694     mov ax, word [bp+010h]                    ; 8b 46 10
    5695     call 00d19h                               ; e8 bf db
    5696     jmp near 03377h                           ; e9 1a 02
    5697     mov ax, word [bp+016h]                    ; 8b 46 16
     5782    call 02149h                               ; e8 6f ef
     5783    jmp near 03403h                           ; e9 26 02
     5784    mov dx, word [bp+010h]                    ; 8b 56 10
     5785    mov ax, word [bp+00ch]                    ; 8b 46 0c
     5786    call 00d2eh                               ; e8 48 db
     5787    jmp near 03403h                           ; e9 1a 02
     5788    mov ax, word [bp+012h]                    ; 8b 46 12
    56985789    xor ah, ah                                ; 30 e4
    56995790    cmp ax, strict word 00030h                ; 3d 30 00
    5700     jnbe near 03377h                          ; 0f 87 0e 02
     5791    jnbe near 03403h                          ; 0f 87 0e 02
    57015792    push CS                                   ; 0e
    57025793    pop ES                                    ; 07
    57035794    mov cx, strict word 0000fh                ; b9 0f 00
    5704     mov di, 02f88h                            ; bf 88 2f
     5795    mov di, 03014h                            ; bf 14 30
    57055796    repne scasb                               ; f2 ae
    57065797    sal cx, 1                                 ; d1 e1
    57075798    mov di, cx                                ; 89 cf
    5708     mov ax, word [cs:di+02f96h]               ; 2e 8b 85 96 2f
     5799    mov ax, word [cs:di+03022h]               ; 2e 8b 85 22 30
    57095800    jmp ax                                    ; ff e0
    5710     mov ax, word [bp+010h]                    ; 8b 46 10
     5801    mov ax, word [bp+00ch]                    ; 8b 46 0c
    57115802    shr ax, 008h                              ; c1 e8 08
    57125803    xor ah, ah                                ; 30 e4
    57135804    push ax                                   ; 50
    5714     mov al, byte [bp+010h]                    ; 8a 46 10
     5805    mov al, byte [bp+00ch]                    ; 8a 46 0c
    57155806    xor ah, ah                                ; 30 e4
    57165807    push ax                                   ; 50
    5717     push word [bp+012h]                       ; ff 76 12
    5718     mov al, byte [bp+016h]                    ; 8a 46 16
    5719     xor ah, ah                                ; 30 e4
    5720     mov cx, word [bp+014h]                    ; 8b 4e 14
    5721     mov bx, word [bp+00ch]                    ; 8b 5e 0c
    5722     mov dx, word [bp+01ah]                    ; 8b 56 1a
    5723     call 0248dh                               ; e8 ec f2
    5724     jmp near 03377h                           ; e9 d3 01
    5725     mov al, byte [bp+010h]                    ; 8a 46 10
    5726     movzx dx, al                              ; 0f b6 d0
    5727     mov al, byte [bp+016h]                    ; 8a 46 16
    5728     xor ah, ah                                ; 30 e4
    5729     call 02505h                               ; e8 53 f3
    5730     jmp near 03377h                           ; e9 c2 01
    5731     mov al, byte [bp+010h]                    ; 8a 46 10
    5732     movzx dx, al                              ; 0f b6 d0
    5733     mov al, byte [bp+016h]                    ; 8a 46 16
    5734     xor ah, ah                                ; 30 e4
    5735     call 02571h                               ; e8 ae f3
    5736     jmp near 03377h                           ; e9 b1 01
    5737     mov al, byte [bp+010h]                    ; 8a 46 10
    5738     movzx dx, al                              ; 0f b6 d0
    5739     mov al, byte [bp+016h]                    ; 8a 46 16
    5740     xor ah, ah                                ; 30 e4
    5741     call 025dfh                               ; e8 0b f4
    5742     jmp near 03377h                           ; e9 a0 01
    5743     mov dx, word [bp+00ch]                    ; 8b 56 0c
    5744     mov ax, word [bp+01ah]                    ; 8b 46 1a
    5745     call 0264dh                               ; e8 6d f4
    5746     jmp near 03377h                           ; e9 94 01
     5808    push word [bp+00eh]                       ; ff 76 0e
    57475809    mov al, byte [bp+012h]                    ; 8a 46 12
    57485810    xor ah, ah                                ; 30 e4
    5749     push ax                                   ; 50
    5750     mov al, byte [bp+010h]                    ; 8a 46 10
     5811    mov cx, word [bp+010h]                    ; 8b 4e 10
     5812    mov bx, word [bp+008h]                    ; 8b 5e 08
     5813    mov dx, word [bp+016h]                    ; 8b 56 16
     5814    call 024f4h                               ; e8 c7 f2
     5815    jmp near 03403h                           ; e9 d3 01
     5816    mov al, byte [bp+00ch]                    ; 8a 46 0c
     5817    movzx dx, al                              ; 0f b6 d0
     5818    mov al, byte [bp+012h]                    ; 8a 46 12
     5819    xor ah, ah                                ; 30 e4
     5820    call 02571h                               ; e8 33 f3
     5821    jmp near 03403h                           ; e9 c2 01
     5822    mov al, byte [bp+00ch]                    ; 8a 46 0c
     5823    movzx dx, al                              ; 0f b6 d0
     5824    mov al, byte [bp+012h]                    ; 8a 46 12
     5825    xor ah, ah                                ; 30 e4
     5826    call 025e1h                               ; e8 92 f3
     5827    jmp near 03403h                           ; e9 b1 01
     5828    mov al, byte [bp+00ch]                    ; 8a 46 0c
     5829    movzx dx, al                              ; 0f b6 d0
     5830    mov al, byte [bp+012h]                    ; 8a 46 12
     5831    xor ah, ah                                ; 30 e4
     5832    call 02653h                               ; e8 f3 f3
     5833    jmp near 03403h                           ; e9 a0 01
     5834    mov dx, word [bp+008h]                    ; 8b 56 08
     5835    mov ax, word [bp+016h]                    ; 8b 46 16
     5836    call 026c5h                               ; e8 59 f4
     5837    jmp near 03403h                           ; e9 94 01
     5838    mov al, byte [bp+00eh]                    ; 8a 46 0e
     5839    xor ah, ah                                ; 30 e4
     5840    push ax                                   ; 50
     5841    mov al, byte [bp+00ch]                    ; 8a 46 0c
    57515842    movzx cx, al                              ; 0f b6 c8
    5752     mov bx, word [bp+014h]                    ; 8b 5e 14
    5753     mov dx, word [bp+00ch]                    ; 8b 56 0c
    5754     mov ax, word [bp+01ah]                    ; 8b 46 1a
    5755     call 02652h                               ; e8 57 f4
    5756     jmp near 03377h                           ; e9 79 01
    5757     mov al, byte [bp+010h]                    ; 8a 46 10
     5843    mov bx, word [bp+010h]                    ; 8b 5e 10
     5844    mov dx, word [bp+008h]                    ; 8b 56 08
     5845    mov ax, word [bp+016h]                    ; 8b 46 16
     5846    call 026cah                               ; e8 43 f4
     5847    jmp near 03403h                           ; e9 79 01
     5848    mov al, byte [bp+00ch]                    ; 8a 46 0c
    57585849    xor ah, ah                                ; 30 e4
    5759     call 02659h                               ; e8 53 f4
    5760     jmp near 03377h                           ; e9 6e 01
    5761     mov al, byte [bp+010h]                    ; 8a 46 10
     5850    call 026d1h                               ; e8 3f f4
     5851    jmp near 03403h                           ; e9 6e 01
     5852    mov al, byte [bp+00ch]                    ; 8a 46 0c
    57625853    xor ah, ah                                ; 30 e4
    5763     call 0265eh                               ; e8 4d f4
    5764     jmp near 03377h                           ; e9 63 01
    5765     mov al, byte [bp+010h]                    ; 8a 46 10
     5854    call 026d6h                               ; e8 39 f4
     5855    jmp near 03403h                           ; e9 63 01
     5856    mov al, byte [bp+00ch]                    ; 8a 46 0c
    57665857    xor ah, ah                                ; 30 e4
    5767     call 02663h                               ; e8 47 f4
    5768     jmp near 03377h                           ; e9 58 01
    5769     lea ax, [bp+012h]                         ; 8d 46 12
    5770     push ax                                   ; 50
    5771     lea cx, [bp+014h]                         ; 8d 4e 14
    5772     lea bx, [bp+00ch]                         ; 8d 5e 0c
    5773     lea dx, [bp+01ah]                         ; 8d 56 1a
    5774     mov ax, word [bp+010h]                    ; 8b 46 10
     5858    call 026dbh                               ; e8 33 f4
     5859    jmp near 03403h                           ; e9 58 01
     5860    lea ax, [bp+00eh]                         ; 8d 46 0e
     5861    push ax                                   ; 50
     5862    lea cx, [bp+010h]                         ; 8d 4e 10
     5863    lea bx, [bp+008h]                         ; 8d 5e 08
     5864    lea dx, [bp+016h]                         ; 8d 56 16
     5865    mov ax, word [bp+00ch]                    ; 8b 46 0c
    57755866    shr ax, 008h                              ; c1 e8 08
    5776     call 00b66h                               ; e8 31 d9
    5777     jmp near 03377h                           ; e9 3f 01
    5778     mov ax, word [bp+010h]                    ; 8b 46 10
     5867    call 00b73h                               ; e8 b2 d8
     5868    jmp near 03403h                           ; e9 3f 01
     5869    mov ax, word [bp+00ch]                    ; 8b 46 0c
    57795870    xor ah, ah                                ; 30 e4
    57805871    cmp ax, strict word 00036h                ; 3d 36 00
    5781     je short 0326ah                           ; 74 28
     5872    je short 032f6h                           ; 74 28
    57825873    cmp ax, strict word 00035h                ; 3d 35 00
    5783     je short 03254h                           ; 74 0d
     5874    je short 032e0h                           ; 74 0d
    57845875    cmp ax, strict word 00020h                ; 3d 20 00
    5785     jne near 03377h                           ; 0f 85 29 01
    5786     call 02668h                               ; e8 17 f4
    5787     jmp near 03377h                           ; e9 23 01
     5876    jne near 03403h                           ; 0f 85 29 01
     5877    call 026e0h                               ; e8 03 f4
     5878    jmp near 03403h                           ; e9 23 01
    57885879    movzx ax, cl                              ; 0f b6 c1
    5789     mov bx, word [bp+012h]                    ; 8b 5e 12
    5790     mov dx, word [bp+01ah]                    ; 8b 56 1a
    5791     call 0266dh                               ; e8 0d f4
    5792     mov ax, word [bp+016h]                    ; 8b 46 16
     5880    mov bx, word [bp+00eh]                    ; 8b 5e 0e
     5881    mov dx, word [bp+016h]                    ; 8b 56 16
     5882    call 026e5h                               ; e8 f9 f3
     5883    mov ax, word [bp+012h]                    ; 8b 46 12
    57935884    xor al, al                                ; 30 c0
    57945885    or AL, strict byte 012h                   ; 0c 12
    5795     jmp near 0301ah                           ; e9 b0 fd
     5886    jmp near 030a6h                           ; e9 b0 fd
    57965887    mov al, cl                                ; 88 c8
    57975888    xor ah, ah                                ; 30 e4
    5798     call 02672h                               ; e8 01 f4
    5799     jmp short 03260h                          ; eb ed
    5800     push word [bp+00ch]                       ; ff 76 0c
    5801     push word [bp+01ah]                       ; ff 76 1a
    5802     mov al, byte [bp+012h]                    ; 8a 46 12
     5889    call 026eah                               ; e8 ed f3
     5890    jmp short 032ech                          ; eb ed
     5891    push word [bp+008h]                       ; ff 76 08
     5892    push word [bp+016h]                       ; ff 76 16
     5893    mov al, byte [bp+00eh]                    ; 8a 46 0e
    58035894    xor ah, ah                                ; 30 e4
    58045895    push ax                                   ; 50
    5805     mov ax, word [bp+012h]                    ; 8b 46 12
     5896    mov ax, word [bp+00eh]                    ; 8b 46 0e
    58065897    shr ax, 008h                              ; c1 e8 08
    58075898    xor ah, ah                                ; 30 e4
    58085899    push ax                                   ; 50
    5809     mov al, byte [bp+010h]                    ; 8a 46 10
     5900    mov al, byte [bp+00ch]                    ; 8a 46 0c
    58105901    movzx bx, al                              ; 0f b6 d8
    5811     mov ax, word [bp+010h]                    ; 8b 46 10
     5902    mov ax, word [bp+00ch]                    ; 8b 46 0c
    58125903    shr ax, 008h                              ; c1 e8 08
    58135904    movzx dx, al                              ; 0f b6 d0
    58145905    movzx ax, cl                              ; 0f b6 c1
    5815     mov cx, word [bp+014h]                    ; 8b 4e 14
    5816     call 02677h                               ; e8 d7 f3
    5817     jmp near 03377h                           ; e9 d4 00
     5906    mov cx, word [bp+010h]                    ; 8b 4e 10
     5907    call 026efh                               ; e8 c3 f3
     5908    jmp near 03403h                           ; e9 d4 00
    58185909    mov bx, si                                ; 89 f3
    5819     mov dx, word [bp+01ah]                    ; 8b 56 1a
    5820     mov ax, word [bp+010h]                    ; 8b 46 10
    5821     call 0270eh                               ; e8 60 f4
    5822     mov ax, word [bp+016h]                    ; 8b 46 16
     5910    mov dx, word [bp+016h]                    ; 8b 56 16
     5911    mov ax, word [bp+00ch]                    ; 8b 46 0c
     5912    call 0278bh                               ; e8 51 f4
     5913    mov ax, word [bp+012h]                    ; 8b 46 12
    58235914    xor al, al                                ; 30 c0
    58245915    or AL, strict byte 01bh                   ; 0c 1b
    5825     jmp near 0301ah                           ; e9 62 fd
    5826     mov ax, word [bp+016h]                    ; 8b 46 16
     5916    jmp near 030a6h                           ; e9 62 fd
     5917    mov ax, word [bp+012h]                    ; 8b 46 12
    58275918    xor ah, ah                                ; 30 e4
    58285919    cmp ax, strict word 00002h                ; 3d 02 00
    5829     je short 032e4h                           ; 74 22
     5920    je short 03370h                           ; 74 22
    58305921    cmp ax, strict word 00001h                ; 3d 01 00
    5831     je short 032d6h                           ; 74 0f
     5922    je short 03362h                           ; 74 0f
    58325923    test ax, ax                               ; 85 c0
    5833     jne short 032f0h                          ; 75 25
    5834     lea dx, [bp+010h]                         ; 8d 56 10
    5835     mov ax, word [bp+014h]                    ; 8b 46 14
    5836     call 0282fh                               ; e8 5b f5
    5837     jmp short 032f0h                          ; eb 1a
    5838     mov bx, word [bp+010h]                    ; 8b 5e 10
    5839     mov dx, word [bp+01ah]                    ; 8b 56 1a
    5840     mov ax, word [bp+014h]                    ; 8b 46 14
    5841     call 0283eh                               ; e8 5c f5
    5842     jmp short 032f0h                          ; eb 0c
    5843     mov bx, word [bp+010h]                    ; 8b 5e 10
    5844     mov dx, word [bp+01ah]                    ; 8b 56 1a
    5845     mov ax, word [bp+014h]                    ; 8b 46 14
    5846     call 02ba3h                               ; e8 b3 f8
    5847     mov ax, word [bp+016h]                    ; 8b 46 16
     5924    jne short 0337ch                          ; 75 25
     5925    lea dx, [bp+00ch]                         ; 8d 56 0c
     5926    mov ax, word [bp+010h]                    ; 8b 46 10
     5927    call 028afh                               ; e8 4f f5
     5928    jmp short 0337ch                          ; eb 1a
     5929    mov bx, word [bp+00ch]                    ; 8b 5e 0c
     5930    mov dx, word [bp+016h]                    ; 8b 56 16
     5931    mov ax, word [bp+010h]                    ; 8b 46 10
     5932    call 028c1h                               ; e8 53 f5
     5933    jmp short 0337ch                          ; eb 0c
     5934    mov bx, word [bp+00ch]                    ; 8b 5e 0c
     5935    mov dx, word [bp+016h]                    ; 8b 56 16
     5936    mov ax, word [bp+010h]                    ; 8b 46 10
     5937    call 02c2ah                               ; e8 ae f8
     5938    mov ax, word [bp+012h]                    ; 8b 46 12
    58485939    xor al, al                                ; 30 c0
    58495940    or AL, strict byte 01ch                   ; 0c 1c
    5850     jmp near 0301ah                           ; e9 20 fd
    5851     call 007a4h                               ; e8 a7 d4
     5941    jmp near 030a6h                           ; e9 20 fd
     5942    call 007a4h                               ; e8 1b d4
    58525943    test ax, ax                               ; 85 c0
    5853     je near 03372h                            ; 0f 84 6f 00
    5854     mov ax, word [bp+016h]                    ; 8b 46 16
     5944    je near 033feh                            ; 0f 84 6f 00
     5945    mov ax, word [bp+012h]                    ; 8b 46 12
    58555946    xor ah, ah                                ; 30 e4
    58565947    cmp ax, strict word 00002h                ; 3d 02 00
    5857     jc short 03320h                           ; 72 13
    5858     jbe short 03346h                          ; 76 37
     5948    jc short 033ach                           ; 72 13
     5949    jbe short 033d2h                          ; 76 37
    58595950    cmp ax, strict word 0000ah                ; 3d 0a 00
    5860     je short 0336bh                           ; 74 57
     5951    je short 033f7h                           ; 74 57
    58615952    cmp ax, strict word 00009h                ; 3d 09 00
    5862     je short 0336bh                           ; 74 52
     5953    je short 033f7h                           ; 74 52
    58635954    cmp ax, strict word 00004h                ; 3d 04 00
    5864     je short 03356h                           ; 74 38
    5865     jmp short 0336bh                          ; eb 4b
     5955    je short 033e2h                           ; 74 38
     5956    jmp short 033f7h                          ; eb 4b
    58665957    cmp ax, strict word 00001h                ; 3d 01 00
    5867     je short 03336h                           ; 74 11
     5958    je short 033c2h                           ; 74 11
    58685959    test ax, ax                               ; 85 c0
    5869     jne short 0336bh                          ; 75 42
     5960    jne short 033f7h                          ; 75 42
    58705961    mov bx, si                                ; 89 f3
    5871     mov dx, word [bp+01ah]                    ; 8b 56 1a
    5872     lea ax, [bp+016h]                         ; 8d 46 16
    5873     call 03486h                               ; e8 52 01
    5874     jmp short 03377h                          ; eb 41
     5962    mov dx, word [bp+016h]                    ; 8b 56 16
     5963    lea ax, [bp+012h]                         ; 8d 46 12
     5964    call 03530h                               ; e8 70 01
     5965    jmp short 03403h                          ; eb 41
    58755966    mov cx, si                                ; 89 f1
    5876     mov bx, word [bp+01ah]                    ; 8b 5e 1a
    5877     mov dx, word [bp+014h]                    ; 8b 56 14
    5878     lea ax, [bp+016h]                         ; 8d 46 16
    5879     call 035aah                               ; e8 66 02
    5880     jmp short 03377h                          ; eb 31
     5967    mov bx, word [bp+016h]                    ; 8b 5e 16
     5968    mov dx, word [bp+010h]                    ; 8b 56 10
     5969    lea ax, [bp+012h]                         ; 8d 46 12
     5970    call 03659h                               ; e8 89 02
     5971    jmp short 03403h                          ; eb 31
    58815972    mov cx, si                                ; 89 f1
    5882     mov bx, word [bp+01ah]                    ; 8b 5e 1a
     5973    mov bx, word [bp+016h]                    ; 8b 5e 16
     5974    mov dx, word [bp+00ch]                    ; 8b 56 0c
     5975    lea ax, [bp+012h]                         ; 8d 46 12
     5976    call 0370dh                               ; e8 2d 03
     5977    jmp short 03403h                          ; eb 21
     5978    lea ax, [bp+00ch]                         ; 8d 46 0c
     5979    push ax                                   ; 50
     5980    mov cx, word [bp+016h]                    ; 8b 4e 16
     5981    mov bx, word [bp+00eh]                    ; 8b 5e 0e
    58835982    mov dx, word [bp+010h]                    ; 8b 56 10
    5884     lea ax, [bp+016h]                         ; 8d 46 16
    5885     call 0365ah                               ; e8 06 03
    5886     jmp short 03377h                          ; eb 21
    5887     lea ax, [bp+010h]                         ; 8d 46 10
    5888     push ax                                   ; 50
    5889     mov cx, word [bp+01ah]                    ; 8b 4e 1a
    5890     mov bx, word [bp+012h]                    ; 8b 5e 12
    5891     mov dx, word [bp+014h]                    ; 8b 56 14
    5892     lea ax, [bp+016h]                         ; 8d 46 16
    5893     call 03836h                               ; e8 cd 04
    5894     jmp short 03377h                          ; eb 0c
    5895     mov word [bp+016h], 00100h                ; c7 46 16 00 01
    5896     jmp short 03377h                          ; eb 05
    5897     mov word [bp+016h], 00100h                ; c7 46 16 00 01
    5898     leave                                     ; c9
     5983    lea ax, [bp+012h]                         ; 8d 46 12
     5984    call 038f4h                               ; e8 ff 04
     5985    jmp short 03403h                          ; eb 0c
     5986    mov word [bp+012h], 00100h                ; c7 46 12 00 01
     5987    jmp short 03403h                          ; eb 05
     5988    mov word [bp+012h], 00100h                ; c7 46 12 00 01
     5989    lea sp, [bp-004h]                         ; 8d 66 fc
    58995990    pop di                                    ; 5f
    59005991    pop si                                    ; 5e
    5901     retn                                      ; c3
    5902 dispi_set_xres_:                             ; 0xc337b LB 0x18
     5992    pop bp                                    ; 5d
     5993    retn                                      ; c3
     5994dispi_set_xres_:                             ; 0xc340a LB 0x1b
     5995    push bp                                   ; 55
     5996    mov bp, sp                                ; 89 e5
    59035997    push bx                                   ; 53
    59045998    push dx                                   ; 52
    5905     push bp                                   ; 55
    5906     mov bp, sp                                ; 89 e5
    59075999    mov bx, ax                                ; 89 c3
    59086000    mov ax, strict word 00001h                ; b8 01 00
     
    59126004    mov dx, 001cfh                            ; ba cf 01
    59136005    out DX, ax                                ; ef
    5914     pop bp                                    ; 5d
     6006    lea sp, [bp-004h]                         ; 8d 66 fc
    59156007    pop dx                                    ; 5a
    59166008    pop bx                                    ; 5b
    5917     retn                                      ; c3
    5918 dispi_set_yres_:                             ; 0xc3393 LB 0x18
     6009    pop bp                                    ; 5d
     6010    retn                                      ; c3
     6011dispi_set_yres_:                             ; 0xc3425 LB 0x1b
     6012    push bp                                   ; 55
     6013    mov bp, sp                                ; 89 e5
    59196014    push bx                                   ; 53
    59206015    push dx                                   ; 52
    5921     push bp                                   ; 55
    5922     mov bp, sp                                ; 89 e5
    59236016    mov bx, ax                                ; 89 c3
    59246017    mov ax, strict word 00002h                ; b8 02 00
     
    59286021    mov dx, 001cfh                            ; ba cf 01
    59296022    out DX, ax                                ; ef
    5930     pop bp                                    ; 5d
     6023    lea sp, [bp-004h]                         ; 8d 66 fc
    59316024    pop dx                                    ; 5a
    59326025    pop bx                                    ; 5b
    5933     retn                                      ; c3
    5934 dispi_set_bpp_:                              ; 0xc33ab LB 0x18
     6026    pop bp                                    ; 5d
     6027    retn                                      ; c3
     6028dispi_set_bpp_:                              ; 0xc3440 LB 0x1b
     6029    push bp                                   ; 55
     6030    mov bp, sp                                ; 89 e5
    59356031    push bx                                   ; 53
    59366032    push dx                                   ; 52
    5937     push bp                                   ; 55
    5938     mov bp, sp                                ; 89 e5
    59396033    mov bx, ax                                ; 89 c3
    59406034    mov ax, strict word 00003h                ; b8 03 00
     
    59446038    mov dx, 001cfh                            ; ba cf 01
    59456039    out DX, ax                                ; ef
    5946     pop bp                                    ; 5d
     6040    lea sp, [bp-004h]                         ; 8d 66 fc
    59476041    pop dx                                    ; 5a
    59486042    pop bx                                    ; 5b
    5949     retn                                      ; c3
    5950 in_word_:                                    ; 0xc33c3 LB 0xf
    5951     push bx                                   ; 53
     6043    pop bp                                    ; 5d
     6044    retn                                      ; c3
     6045in_word_:                                    ; 0xc345b LB 0x12
    59526046    push bp                                   ; 55
    59536047    mov bp, sp                                ; 89 e5
     6048    push bx                                   ; 53
    59546049    mov bx, ax                                ; 89 c3
    59556050    mov ax, dx                                ; 89 d0
     
    59576052    out DX, ax                                ; ef
    59586053    in ax, DX                                 ; ed
     6054    lea sp, [bp-002h]                         ; 8d 66 fe
     6055    pop bx                                    ; 5b
    59596056    pop bp                                    ; 5d
    5960     pop bx                                    ; 5b
    5961     retn                                      ; c3
    5962 in_byte_:                                    ; 0xc33d2 LB 0x11
    5963     push bx                                   ; 53
     6057    retn                                      ; c3
     6058in_byte_:                                    ; 0xc346d LB 0x14
    59646059    push bp                                   ; 55
    59656060    mov bp, sp                                ; 89 e5
     6061    push bx                                   ; 53
    59666062    mov bx, ax                                ; 89 c3
    59676063    mov ax, dx                                ; 89 d0
     
    59716067    db  02ah, 0e4h
    59726068    ; sub ah, ah                                ; 2a e4
     6069    lea sp, [bp-002h]                         ; 8d 66 fe
     6070    pop bx                                    ; 5b
    59736071    pop bp                                    ; 5d
    5974     pop bx                                    ; 5b
    5975     retn                                      ; c3
    5976 dispi_get_id_:                               ; 0xc33e3 LB 0x11
    5977     push dx                                   ; 52
     6072    retn                                      ; c3
     6073dispi_get_id_:                               ; 0xc3481 LB 0x14
    59786074    push bp                                   ; 55
    59796075    mov bp, sp                                ; 89 e5
     6076    push dx                                   ; 52
    59806077    xor ax, ax                                ; 31 c0
    59816078    mov dx, 001ceh                            ; ba ce 01
     
    59836080    mov dx, 001cfh                            ; ba cf 01
    59846081    in ax, DX                                 ; ed
     6082    lea sp, [bp-002h]                         ; 8d 66 fe
     6083    pop dx                                    ; 5a
    59856084    pop bp                                    ; 5d
    5986     pop dx                                    ; 5a
    5987     retn                                      ; c3
    5988 dispi_set_id_:                               ; 0xc33f4 LB 0x17
     6085    retn                                      ; c3
     6086dispi_set_id_:                               ; 0xc3495 LB 0x1a
     6087    push bp                                   ; 55
     6088    mov bp, sp                                ; 89 e5
    59896089    push bx                                   ; 53
    59906090    push dx                                   ; 52
    5991     push bp                                   ; 55
    5992     mov bp, sp                                ; 89 e5
    59936091    mov bx, ax                                ; 89 c3
    59946092    xor ax, ax                                ; 31 c0
     
    59986096    mov dx, 001cfh                            ; ba cf 01
    59996097    out DX, ax                                ; ef
    6000     pop bp                                    ; 5d
     6098    lea sp, [bp-004h]                         ; 8d 66 fc
    60016099    pop dx                                    ; 5a
    60026100    pop bx                                    ; 5b
    6003     retn                                      ; c3
    6004 vbe_init_:                                   ; 0xc340b LB 0x29
     6101    pop bp                                    ; 5d
     6102    retn                                      ; c3
     6103vbe_init_:                                   ; 0xc34af LB 0x2c
     6104    push bp                                   ; 55
     6105    mov bp, sp                                ; 89 e5
    60056106    push bx                                   ; 53
    60066107    push dx                                   ; 52
     6108    mov ax, 0b0c0h                            ; b8 c0 b0
     6109    call 03495h                               ; e8 db ff
     6110    call 03481h                               ; e8 c4 ff
     6111    cmp ax, 0b0c0h                            ; 3d c0 b0
     6112    jne short 034d4h                          ; 75 12
     6113    mov bx, strict word 00001h                ; bb 01 00
     6114    mov dx, 000b9h                            ; ba b9 00
     6115    mov ax, strict word 00040h                ; b8 40 00
     6116    call 02f85h                               ; e8 b7 fa
     6117    mov ax, 0b0c4h                            ; b8 c4 b0
     6118    call 03495h                               ; e8 c1 ff
     6119    lea sp, [bp-004h]                         ; 8d 66 fc
     6120    pop dx                                    ; 5a
     6121    pop bx                                    ; 5b
     6122    pop bp                                    ; 5d
     6123    retn                                      ; c3
     6124mode_info_find_mode_:                        ; 0xc34db LB 0x55
    60076125    push bp                                   ; 55
    60086126    mov bp, sp                                ; 89 e5
    6009     mov ax, 0b0c0h                            ; b8 c0 b0
    6010     call 033f4h                               ; e8 de ff
    6011     call 033e3h                               ; e8 ca ff
    6012     cmp ax, 0b0c0h                            ; 3d c0 b0
    6013     jne short 03430h                          ; 75 12
    6014     mov bx, strict word 00001h                ; bb 01 00
    6015     mov dx, 000b9h                            ; ba b9 00
    6016     mov ax, strict word 00040h                ; b8 40 00
    6017     call 02ef9h                               ; e8 cf fa
    6018     mov ax, 0b0c4h                            ; b8 c4 b0
    6019     call 033f4h                               ; e8 c4 ff
    6020     pop bp                                    ; 5d
    6021     pop dx                                    ; 5a
    6022     pop bx                                    ; 5b
    6023     retn                                      ; c3
    6024 mode_info_find_mode_:                        ; 0xc3434 LB 0x52
    60256127    push bx                                   ; 53
    60266128    push cx                                   ; 51
    60276129    push si                                   ; 56
    60286130    push di                                   ; 57
    6029     push bp                                   ; 55
    6030     mov bp, sp                                ; 89 e5
    60316131    mov di, ax                                ; 89 c7
    60326132    mov si, dx                                ; 89 d6
    60336133    xor dx, dx                                ; 31 d2
    60346134    mov ax, 003b6h                            ; b8 b6 03
    6035     call 033c3h                               ; e8 7c ff
     6135    call 0345bh                               ; e8 6d ff
    60366136    cmp ax, 077cch                            ; 3d cc 77
    6037     jne short 0347eh                          ; 75 32
     6137    jne short 03525h                          ; 75 32
    60386138    mov bx, strict word 00004h                ; bb 04 00
    60396139    mov dx, bx                                ; 89 da
    60406140    mov ax, 003b6h                            ; b8 b6 03
    6041     call 033c3h                               ; e8 6c ff
     6141    call 0345bh                               ; e8 5d ff
    60426142    mov cx, ax                                ; 89 c1
    60436143    cmp cx, strict byte 0ffffh                ; 83 f9 ff
    6044     je short 0347eh                           ; 74 20
     6144    je short 03525h                           ; 74 20
    60456145    lea dx, [bx+002h]                         ; 8d 57 02
    60466146    mov ax, 003b6h                            ; b8 b6 03
    6047     call 033c3h                               ; e8 5c ff
     6147    call 0345bh                               ; e8 4d ff
    60486148    lea dx, [bx+044h]                         ; 8d 57 44
    60496149    cmp cx, di                                ; 39 f9
    6050     jne short 0347ah                          ; 75 0c
     6150    jne short 03521h                          ; 75 0c
    60516151    test si, si                               ; 85 f6
    6052     jne short 03476h                          ; 75 04
     6152    jne short 0351dh                          ; 75 04
    60536153    mov ax, bx                                ; 89 d8
    6054     jmp short 03480h                          ; eb 0a
     6154    jmp short 03527h                          ; eb 0a
    60556155    test AL, strict byte 080h                 ; a8 80
    6056     jne short 03472h                          ; 75 f8
     6156    jne short 03519h                          ; 75 f8
    60576157    mov bx, dx                                ; 89 d3
    6058     jmp short 03451h                          ; eb d3
     6158    jmp short 034f8h                          ; eb d3
    60596159    xor ax, ax                                ; 31 c0
    6060     pop bp                                    ; 5d
     6160    lea sp, [bp-008h]                         ; 8d 66 f8
    60616161    pop di                                    ; 5f
    60626162    pop si                                    ; 5e
    60636163    pop cx                                    ; 59
    60646164    pop bx                                    ; 5b
    6065     retn                                      ; c3
    6066 vbe_biosfn_return_controller_information_: ; 0xc3486 LB 0x124
     6165    pop bp                                    ; 5d
     6166    retn                                      ; c3
     6167vbe_biosfn_return_controller_information_: ; 0xc3530 LB 0x129
     6168    push bp                                   ; 55
     6169    mov bp, sp                                ; 89 e5
    60676170    push cx                                   ; 51
    60686171    push si                                   ; 56
    60696172    push di                                   ; 57
    6070     enter 0000ah, 000h                        ; c8 0a 00 00
     6173    sub sp, strict byte 0000ah                ; 83 ec 0a
    60716174    mov si, ax                                ; 89 c6
    60726175    mov di, dx                                ; 89 d7
    6073     mov word [bp-004h], bx                    ; 89 5e fc
    6074     mov word [bp-006h], strict word 00022h    ; c7 46 fa 22 00
    6075     call 005a7h                               ; e8 0b d1
    6076     mov word [bp-00ah], ax                    ; 89 46 f6
    6077     mov bx, word [bp-004h]                    ; 8b 5e fc
    6078     mov word [bp-002h], di                    ; 89 7e fe
     6176    mov word [bp-00ah], bx                    ; 89 5e f6
     6177    mov word [bp-00ch], strict word 00022h    ; c7 46 f4 22 00
     6178    call 005a7h                               ; e8 5f d0
     6179    mov word [bp-010h], ax                    ; 89 46 f0
     6180    mov bx, word [bp-00ah]                    ; 8b 5e f6
     6181    mov word [bp-008h], di                    ; 89 7e f8
    60796182    xor dx, dx                                ; 31 d2
    60806183    mov ax, 003b6h                            ; b8 b6 03
    6081     call 033c3h                               ; e8 16 ff
     6184    call 0345bh                               ; e8 02 ff
    60826185    cmp ax, 077cch                            ; 3d cc 77
    6083     je short 034bch                           ; 74 0a
     6186    je short 03568h                           ; 74 0a
    60846187    push SS                                   ; 16
    60856188    pop ES                                    ; 07
    60866189    mov word [es:si], 00100h                  ; 26 c7 04 00 01
    6087     jmp near 035a5h                           ; e9 e9 00
     6190    jmp near 03651h                           ; e9 e9 00
    60886191    mov cx, strict word 00004h                ; b9 04 00
    6089     mov word [bp-008h], strict word 00000h    ; c7 46 f8 00 00
    6090     mov es, [bp-002h]                         ; 8e 46 fe
     6192    mov word [bp-00eh], strict word 00000h    ; c7 46 f2 00 00
     6193    mov es, [bp-008h]                         ; 8e 46 f8
    60916194    cmp word [es:bx+002h], 03245h             ; 26 81 7f 02 45 32
    6092     jne short 034d6h                          ; 75 07
     6195    jne short 03582h                          ; 75 07
    60936196    cmp word [es:bx], 04256h                  ; 26 81 3f 56 42
    6094     je short 034e5h                           ; 74 0f
     6197    je short 03591h                           ; 74 0f
    60956198    cmp word [es:bx+002h], 04153h             ; 26 81 7f 02 53 41
    6096     jne short 034eah                          ; 75 0c
     6199    jne short 03596h                          ; 75 0c
    60976200    cmp word [es:bx], 04556h                  ; 26 81 3f 56 45
    6098     jne short 034eah                          ; 75 05
    6099     mov word [bp-008h], strict word 00001h    ; c7 46 f8 01 00
    6100     mov es, [bp-002h]                         ; 8e 46 fe
     6201    jne short 03596h                          ; 75 05
     6202    mov word [bp-00eh], strict word 00001h    ; c7 46 f2 01 00
     6203    mov es, [bp-008h]                         ; 8e 46 f8
    61016204    db  066h, 026h, 0c7h, 007h, 056h, 045h, 053h, 041h
    61026205    ; mov dword [es:bx], strict dword 041534556h ; 66 26 c7 07 56 45 53 41
    61036206    mov word [es:bx+004h], 00200h             ; 26 c7 47 04 00 02
    6104     mov word [es:bx+006h], 07e20h             ; 26 c7 47 06 20 7e
     6207    mov word [es:bx+006h], 07e26h             ; 26 c7 47 06 26 7e
    61056208    mov [es:bx+008h], ds                      ; 26 8c 5f 08
    61066209    db  066h, 026h, 0c7h, 047h, 00ah, 001h, 000h, 000h, 000h
    61076210    ; mov dword [es:bx+00ah], strict dword 000000001h ; 66 26 c7 47 0a 01 00 00 00
    61086211    mov word [es:bx+010h], di                 ; 26 89 7f 10
    6109     mov ax, word [bp-004h]                    ; 8b 46 fc
     6212    mov ax, word [bp-00ah]                    ; 8b 46 f6
    61106213    add ax, strict word 00022h                ; 05 22 00
    61116214    mov word [es:bx+00eh], ax                 ; 26 89 47 0e
    61126215    mov dx, strict word 0ffffh                ; ba ff ff
    61136216    mov ax, 003b6h                            ; b8 b6 03
    6114     call 033c3h                               ; e8 9e fe
    6115     mov es, [bp-002h]                         ; 8e 46 fe
     6217    call 0345bh                               ; e8 8a fe
     6218    mov es, [bp-008h]                         ; 8e 46 f8
    61166219    mov word [es:bx+012h], ax                 ; 26 89 47 12
    6117     cmp word [bp-008h], strict byte 00000h    ; 83 7e f8 00
    6118     je short 03556h                           ; 74 24
     6220    cmp word [bp-00eh], strict byte 00000h    ; 83 7e f2 00
     6221    je short 03602h                           ; 74 24
    61196222    mov word [es:bx+014h], strict word 00003h ; 26 c7 47 14 03 00
    6120     mov word [es:bx+016h], 07e35h             ; 26 c7 47 16 35 7e
     6223    mov word [es:bx+016h], 07e3bh             ; 26 c7 47 16 3b 7e
    61216224    mov [es:bx+018h], ds                      ; 26 8c 5f 18
    6122     mov word [es:bx+01ah], 07e48h             ; 26 c7 47 1a 48 7e
     6225    mov word [es:bx+01ah], 07e4eh             ; 26 c7 47 1a 4e 7e
    61236226    mov [es:bx+01ch], ds                      ; 26 8c 5f 1c
    6124     mov word [es:bx+01eh], 07e69h             ; 26 c7 47 1e 69 7e
     6227    mov word [es:bx+01eh], 07e6fh             ; 26 c7 47 1e 6f 7e
    61256228    mov [es:bx+020h], ds                      ; 26 8c 5f 20
    61266229    mov dx, cx                                ; 89 ca
    61276230    add dx, strict byte 0001bh                ; 83 c2 1b
    61286231    mov ax, 003b6h                            ; b8 b6 03
    6129     call 033d2h                               ; e8 71 fe
     6232    call 0346dh                               ; e8 60 fe
    61306233    xor ah, ah                                ; 30 e4
    6131     cmp ax, word [bp-00ah]                    ; 3b 46 f6
    6132     jnbe short 03581h                         ; 77 19
     6234    cmp ax, word [bp-010h]                    ; 3b 46 f0
     6235    jnbe short 0362dh                         ; 77 19
    61336236    mov dx, cx                                ; 89 ca
    61346237    mov ax, 003b6h                            ; b8 b6 03
    6135     call 033c3h                               ; e8 53 fe
     6238    call 0345bh                               ; e8 3f fe
    61366239    mov bx, ax                                ; 89 c3
    6137     mov dx, word [bp-004h]                    ; 8b 56 fc
    6138     add dx, word [bp-006h]                    ; 03 56 fa
     6240    mov dx, word [bp-00ah]                    ; 8b 56 f6
     6241    add dx, word [bp-00ch]                    ; 03 56 f4
    61396242    mov ax, di                                ; 89 f8
    6140     call 02f15h                               ; e8 98 f9
    6141     add word [bp-006h], strict byte 00002h    ; 83 46 fa 02
     6243    call 02fa1h                               ; e8 78 f9
     6244    add word [bp-00ch], strict byte 00002h    ; 83 46 f4 02
    61426245    add cx, strict byte 00044h                ; 83 c1 44
    61436246    mov dx, cx                                ; 89 ca
    61446247    mov ax, 003b6h                            ; b8 b6 03
    6145     call 033c3h                               ; e8 37 fe
     6248    call 0345bh                               ; e8 23 fe
    61466249    mov bx, ax                                ; 89 c3
    61476250    cmp ax, strict word 0ffffh                ; 3d ff ff
    6148     jne short 03556h                          ; 75 c3
    6149     mov dx, word [bp-004h]                    ; 8b 56 fc
    6150     add dx, word [bp-006h]                    ; 03 56 fa
     6251    jne short 03602h                          ; 75 c3
     6252    mov dx, word [bp-00ah]                    ; 8b 56 f6
     6253    add dx, word [bp-00ch]                    ; 03 56 f4
    61516254    mov ax, di                                ; 89 f8
    6152     call 02f15h                               ; e8 77 f9
     6255    call 02fa1h                               ; e8 57 f9
    61536256    push SS                                   ; 16
    61546257    pop ES                                    ; 07
    61556258    mov word [es:si], strict word 0004fh      ; 26 c7 04 4f 00
    6156     leave                                     ; c9
     6259    lea sp, [bp-006h]                         ; 8d 66 fa
    61576260    pop di                                    ; 5f
    61586261    pop si                                    ; 5e
    61596262    pop cx                                    ; 59
    6160     retn                                      ; c3
    6161 vbe_biosfn_return_mode_information_:         ; 0xc35aa LB 0xb0
     6263    pop bp                                    ; 5d
     6264    retn                                      ; c3
     6265vbe_biosfn_return_mode_information_:         ; 0xc3659 LB 0xb4
     6266    push bp                                   ; 55
     6267    mov bp, sp                                ; 89 e5
    61626268    push si                                   ; 56
    61636269    push di                                   ; 57
    6164     enter 00004h, 000h                        ; c8 04 00 00
     6270    push ax                                   ; 50
     6271    push ax                                   ; 50
    61656272    push ax                                   ; 50
    61666273    mov ax, dx                                ; 89 d0
    61676274    mov si, bx                                ; 89 de
    6168     mov word [bp-002h], cx                    ; 89 4e fe
     6275    mov word [bp-006h], cx                    ; 89 4e fa
    61696276    test dh, 040h                             ; f6 c6 40
    61706277    db  00fh, 095h, 0c2h
     
    61726279    xor dh, dh                                ; 30 f6
    61736280    and ah, 001h                              ; 80 e4 01
    6174     call 03434h                               ; e8 6e fe
    6175     mov word [bp-004h], ax                    ; 89 46 fc
     6281    call 034dbh                               ; e8 65 fe
     6282    mov word [bp-008h], ax                    ; 89 46 f8
    61766283    test ax, ax                               ; 85 c0
    6177     je near 0364bh                            ; 0f 84 7c 00
     6284    je near 036fbh                            ; 0f 84 7c 00
    61786285    mov cx, 00100h                            ; b9 00 01
    61796286    xor ax, ax                                ; 31 c0
    6180     mov di, word [bp-002h]                    ; 8b 7e fe
     6287    mov di, word [bp-006h]                    ; 8b 7e fa
    61816288    mov es, bx                                ; 8e c3
    61826289    cld                                       ; fc
    6183     jcxz 035deh                               ; e3 02
     6290    jcxz 0368eh                               ; e3 02
    61846291    rep stosb                                 ; f3 aa
    61856292    xor cx, cx                                ; 31 c9
    6186     jmp short 035e7h                          ; eb 05
     6293    jmp short 03697h                          ; eb 05
    61876294    cmp cx, strict byte 00042h                ; 83 f9 42
    6188     jnc short 03604h                          ; 73 1d
    6189     mov dx, word [bp-004h]                    ; 8b 56 fc
     6295    jnc short 036b4h                          ; 73 1d
     6296    mov dx, word [bp-008h]                    ; 8b 56 f8
    61906297    inc dx                                    ; 42
    61916298    inc dx                                    ; 42
    61926299    add dx, cx                                ; 01 ca
    61936300    mov ax, 003b6h                            ; b8 b6 03
    6194     call 033d2h                               ; e8 de fd
     6301    call 0346dh                               ; e8 c9 fd
    61956302    movzx bx, al                              ; 0f b6 d8
    6196     mov dx, word [bp-002h]                    ; 8b 56 fe
     6303    mov dx, word [bp-006h]                    ; 8b 56 fa
    61976304    add dx, cx                                ; 01 ca
    61986305    mov ax, si                                ; 89 f0
    6199     call 02ef9h                               ; e8 f8 f8
    6200     inc cx                                    ; 41
    6201     jmp short 035e2h                          ; eb de
    6202     mov dx, word [bp-002h]                    ; 8b 56 fe
     6306    call 02f85h                               ; e8 d4 f8
     6307    inc cx                                    ; 41
     6308    jmp short 03692h                          ; eb de
     6309    mov dx, word [bp-006h]                    ; 8b 56 fa
    62036310    inc dx                                    ; 42
    62046311    inc dx                                    ; 42
    62056312    mov ax, si                                ; 89 f0
    6206     call 02eebh                               ; e8 dd f8
     6313    call 02f77h                               ; e8 b9 f8
    62076314    test AL, strict byte 001h                 ; a8 01
    6208     je short 0362eh                           ; 74 1c
    6209     mov dx, word [bp-002h]                    ; 8b 56 fe
     6315    je short 036deh                           ; 74 1c
     6316    mov dx, word [bp-006h]                    ; 8b 56 fa
    62106317    add dx, strict byte 0000ch                ; 83 c2 0c
    62116318    mov bx, 00605h                            ; bb 05 06
    62126319    mov ax, si                                ; 89 f0
    6213     call 02f15h                               ; e8 f5 f8
    6214     mov dx, word [bp-002h]                    ; 8b 56 fe
     6320    call 02fa1h                               ; e8 d1 f8
     6321    mov dx, word [bp-006h]                    ; 8b 56 fa
    62156322    add dx, strict byte 0000eh                ; 83 c2 0e
    62166323    mov bx, 0c000h                            ; bb 00 c0
    62176324    mov ax, si                                ; 89 f0
    6218     call 02f15h                               ; e8 e7 f8
     6325    call 02fa1h                               ; e8 c3 f8
    62196326    mov ax, strict word 0000bh                ; b8 0b 00
    62206327    mov dx, 001ceh                            ; ba ce 01
     
    62226329    mov dx, 001cfh                            ; ba cf 01
    62236330    in ax, DX                                 ; ed
    6224     mov dx, word [bp-002h]                    ; 8b 56 fe
     6331    mov dx, word [bp-006h]                    ; 8b 56 fa
    62256332    add dx, strict byte 0002ah                ; 83 c2 2a
    62266333    mov bx, ax                                ; 89 c3
    62276334    mov ax, si                                ; 89 f0
    6228     call 02f15h                               ; e8 cf f8
     6335    call 02fa1h                               ; e8 ab f8
    62296336    mov ax, strict word 0004fh                ; b8 4f 00
    6230     jmp short 0364eh                          ; eb 03
     6337    jmp short 036feh                          ; eb 03
    62316338    mov ax, 00100h                            ; b8 00 01
    62326339    push SS                                   ; 16
    62336340    pop ES                                    ; 07
    6234     mov bx, word [bp-006h]                    ; 8b 5e fa
     6341    mov bx, word [bp-00ah]                    ; 8b 5e f6
    62356342    mov word [es:bx], ax                      ; 26 89 07
    6236     leave                                     ; c9
     6343    lea sp, [bp-004h]                         ; 8d 66 fc
    62376344    pop di                                    ; 5f
    62386345    pop si                                    ; 5e
    6239     retn                                      ; c3
    6240 vbe_biosfn_set_mode_:                        ; 0xc365a LB 0xe4
     6346    pop bp                                    ; 5d
     6347    retn                                      ; c3
     6348vbe_biosfn_set_mode_:                        ; 0xc370d LB 0xe9
     6349    push bp                                   ; 55
     6350    mov bp, sp                                ; 89 e5
    62416351    push si                                   ; 56
    62426352    push di                                   ; 57
    6243     enter 00006h, 000h                        ; c8 06 00 00
     6353    sub sp, strict byte 00006h                ; 83 ec 06
    62446354    mov si, ax                                ; 89 c6
    6245     mov word [bp-006h], dx                    ; 89 56 fa
    6246     test byte [bp-005h], 040h                 ; f6 46 fb 40
     6355    mov word [bp-00ah], dx                    ; 89 56 f6
     6356    test byte [bp-009h], 040h                 ; f6 46 f7 40
    62476357    db  00fh, 095h, 0c0h
    62486358    ; setne al                                  ; 0f 95 c0
     
    62506360    mov ax, dx                                ; 89 d0
    62516361    test dx, dx                               ; 85 d2
    6252     je short 03678h                           ; 74 03
     6362    je short 0372dh                           ; 74 03
    62536363    mov dx, strict word 00040h                ; ba 40 00
    6254     mov byte [bp-002h], dl                    ; 88 56 fe
    6255     test byte [bp-005h], 080h                 ; f6 46 fb 80
    6256     je short 03686h                           ; 74 05
     6364    mov byte [bp-006h], dl                    ; 88 56 fa
     6365    test byte [bp-009h], 080h                 ; f6 46 f7 80
     6366    je short 0373bh                           ; 74 05
    62576367    mov dx, 00080h                            ; ba 80 00
    6258     jmp short 03688h                          ; eb 02
     6368    jmp short 0373dh                          ; eb 02
    62596369    xor dx, dx                                ; 31 d2
    6260     mov byte [bp-004h], dl                    ; 88 56 fc
    6261     and byte [bp-005h], 001h                  ; 80 66 fb 01
    6262     cmp word [bp-006h], 00100h                ; 81 7e fa 00 01
    6263     jnc short 036a8h                          ; 73 12
     6370    mov byte [bp-008h], dl                    ; 88 56 f8
     6371    and byte [bp-009h], 001h                  ; 80 66 f7 01
     6372    cmp word [bp-00ah], 00100h                ; 81 7e f6 00 01
     6373    jnc short 0375dh                          ; 73 12
    62646374    xor ax, ax                                ; 31 c0
    6265     call 005c9h                               ; e8 2e cf
    6266     movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    6267     call 00fb8h                               ; e8 16 d9
     6375    call 005c9h                               ; e8 79 ce
     6376    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     6377    call 00fdch                               ; e8 85 d8
    62686378    mov ax, strict word 0004fh                ; b8 4f 00
    6269     jmp near 03737h                           ; e9 8f 00
     6379    jmp near 037ech                           ; e9 8f 00
    62706380    mov dx, ax                                ; 89 c2
    6271     mov ax, word [bp-006h]                    ; 8b 46 fa
    6272     call 03434h                               ; e8 84 fd
     6381    mov ax, word [bp-00ah]                    ; 8b 46 f6
     6382    call 034dbh                               ; e8 76 fd
    62736383    mov bx, ax                                ; 89 c3
    62746384    test ax, ax                               ; 85 c0
    6275     je near 03734h                            ; 0f 84 7c 00
     6385    je near 037e9h                            ; 0f 84 7c 00
    62766386    lea dx, [bx+014h]                         ; 8d 57 14
    62776387    mov ax, 003b6h                            ; b8 b6 03
    6278     call 033c3h                               ; e8 02 fd
     6388    call 0345bh                               ; e8 e5 fc
    62796389    mov cx, ax                                ; 89 c1
    62806390    lea dx, [bx+016h]                         ; 8d 57 16
    62816391    mov ax, 003b6h                            ; b8 b6 03
    6282     call 033c3h                               ; e8 f7 fc
     6392    call 0345bh                               ; e8 da fc
    62836393    mov di, ax                                ; 89 c7
    62846394    lea dx, [bx+01bh]                         ; 8d 57 1b
    62856395    mov ax, 003b6h                            ; b8 b6 03
    6286     call 033d2h                               ; e8 fb fc
     6396    call 0346dh                               ; e8 e1 fc
    62876397    mov bl, al                                ; 88 c3
    62886398    mov dl, al                                ; 88 c2
    62896399    xor ax, ax                                ; 31 c0
    6290     call 005c9h                               ; e8 e9 ce
     6400    call 005c9h                               ; e8 34 ce
    62916401    cmp bl, 004h                              ; 80 fb 04
    6292     jne short 036ebh                          ; 75 06
     6402    jne short 037a0h                          ; 75 06
    62936403    mov ax, strict word 0006ah                ; b8 6a 00
    6294     call 00fb8h                               ; e8 cd d8
     6404    call 00fdch                               ; e8 3c d8
    62956405    movzx ax, dl                              ; 0f b6 c2
    6296     call 033abh                               ; e8 ba fc
     6406    call 03440h                               ; e8 9a fc
    62976407    mov ax, cx                                ; 89 c8
    6298     call 0337bh                               ; e8 85 fc
     6408    call 0340ah                               ; e8 5f fc
    62996409    mov ax, di                                ; 89 f8
    6300     call 03393h                               ; e8 98 fc
     6410    call 03425h                               ; e8 75 fc
    63016411    xor ax, ax                                ; 31 c0
    6302     call 005e7h                               ; e8 e7 ce
    6303     mov al, byte [bp-004h]                    ; 8a 46 fc
     6412    call 005e7h                               ; e8 32 ce
     6413    mov al, byte [bp-008h]                    ; 8a 46 f8
    63046414    or AL, strict byte 001h                   ; 0c 01
    63056415    movzx dx, al                              ; 0f b6 d0
    6306     movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
     6416    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    63076417    or ax, dx                                 ; 09 d0
    6308     call 005c9h                               ; e8 b8 ce
    6309     call 006c3h                               ; e8 af cf
    6310     mov bx, word [bp-006h]                    ; 8b 5e fa
     6418    call 005c9h                               ; e8 03 ce
     6419    call 006c3h                               ; e8 fa ce
     6420    mov bx, word [bp-00ah]                    ; 8b 5e f6
    63116421    mov dx, 000bah                            ; ba ba 00
    63126422    mov ax, strict word 00040h                ; b8 40 00
    6313     call 02f15h                               ; e8 f5 f7
    6314     mov al, byte [bp-004h]                    ; 8a 46 fc
     6423    call 02fa1h                               ; e8 cc f7
     6424    mov al, byte [bp-008h]                    ; 8a 46 f8
    63156425    or AL, strict byte 060h                   ; 0c 60
    63166426    movzx bx, al                              ; 0f b6 d8
    63176427    mov dx, 00087h                            ; ba 87 00
    63186428    mov ax, strict word 00040h                ; b8 40 00
    6319     call 02ef9h                               ; e8 c8 f7
    6320     jmp near 036a2h                           ; e9 6e ff
     6429    call 02f85h                               ; e8 9f f7
     6430    jmp near 03757h                           ; e9 6e ff
    63216431    mov ax, 00100h                            ; b8 00 01
    63226432    mov word [ss:si], ax                      ; 36 89 04
    6323     leave                                     ; c9
     6433    lea sp, [bp-004h]                         ; 8d 66 fc
    63246434    pop di                                    ; 5f
    63256435    pop si                                    ; 5e
    6326     retn                                      ; c3
    6327 vbe_biosfn_read_video_state_size_:           ; 0xc373e LB 0x8
     6436    pop bp                                    ; 5d
     6437    retn                                      ; c3
     6438vbe_biosfn_read_video_state_size_:           ; 0xc37f6 LB 0x8
    63286439    push bp                                   ; 55
    63296440    mov bp, sp                                ; 89 e5
     
    63316442    pop bp                                    ; 5d
    63326443    retn                                      ; c3
    6333 vbe_biosfn_save_video_state_:                ; 0xc3746 LB 0x58
     6444vbe_biosfn_save_video_state_:                ; 0xc37fe LB 0x5b
     6445    push bp                                   ; 55
     6446    mov bp, sp                                ; 89 e5
    63346447    push bx                                   ; 53
    63356448    push cx                                   ; 51
    63366449    push si                                   ; 56
    63376450    push di                                   ; 57
    6338     enter 00002h, 000h                        ; c8 02 00 00
     6451    push ax                                   ; 50
    63396452    mov di, ax                                ; 89 c7
    63406453    mov cx, dx                                ; 89 d1
     
    63446457    mov dx, 001cfh                            ; ba cf 01
    63456458    in ax, DX                                 ; ed
    6346     mov word [bp-002h], ax                    ; 89 46 fe
     6459    mov word [bp-00ah], ax                    ; 89 46 f6
    63476460    mov bx, ax                                ; 89 c3
    63486461    mov dx, cx                                ; 89 ca
    63496462    mov ax, di                                ; 89 f8
    6350     call 02f15h                               ; e8 ac f7
    6351     inc cx                                    ; 41
    6352     inc cx                                    ; 41
    6353     test byte [bp-002h], 001h                 ; f6 46 fe 01
    6354     je short 03798h                           ; 74 27
     6463    call 02fa1h                               ; e8 80 f7
     6464    inc cx                                    ; 41
     6465    inc cx                                    ; 41
     6466    test byte [bp-00ah], 001h                 ; f6 46 f6 01
     6467    je short 03850h                           ; 74 27
    63556468    mov si, strict word 00001h                ; be 01 00
    6356     jmp short 0377bh                          ; eb 05
     6469    jmp short 03833h                          ; eb 05
    63576470    cmp si, strict byte 00009h                ; 83 fe 09
    6358     jnbe short 03798h                         ; 77 1d
     6471    jnbe short 03850h                         ; 77 1d
    63596472    cmp si, strict byte 00004h                ; 83 fe 04
    6360     je short 03795h                           ; 74 15
     6473    je short 0384dh                           ; 74 15
    63616474    mov ax, si                                ; 89 f0
    63626475    mov dx, 001ceh                            ; ba ce 01
     
    63676480    mov dx, cx                                ; 89 ca
    63686481    mov ax, di                                ; 89 f8
    6369     call 02f15h                               ; e8 82 f7
     6482    call 02fa1h                               ; e8 56 f7
    63706483    inc cx                                    ; 41
    63716484    inc cx                                    ; 41
    63726485    inc si                                    ; 46
    6373     jmp short 03776h                          ; eb de
    6374     leave                                     ; c9
     6486    jmp short 0382eh                          ; eb de
     6487    lea sp, [bp-008h]                         ; 8d 66 f8
    63756488    pop di                                    ; 5f
    63766489    pop si                                    ; 5e
    63776490    pop cx                                    ; 59
    63786491    pop bx                                    ; 5b
    6379     retn                                      ; c3
    6380 vbe_biosfn_restore_video_state_:             ; 0xc379e LB 0x98
     6492    pop bp                                    ; 5d
     6493    retn                                      ; c3
     6494vbe_biosfn_restore_video_state_:             ; 0xc3859 LB 0x9b
     6495    push bp                                   ; 55
     6496    mov bp, sp                                ; 89 e5
    63816497    push bx                                   ; 53
    63826498    push cx                                   ; 51
    63836499    push si                                   ; 56
    6384     enter 00002h, 000h                        ; c8 02 00 00
     6500    push ax                                   ; 50
    63856501    mov cx, ax                                ; 89 c1
    63866502    mov bx, dx                                ; 89 d3
    6387     call 02f07h                               ; e8 5b f7
    6388     mov word [bp-002h], ax                    ; 89 46 fe
     6503    call 02f93h                               ; e8 2c f7
     6504    mov word [bp-008h], ax                    ; 89 46 f8
    63896505    inc bx                                    ; 43
    63906506    inc bx                                    ; 43
    6391     test byte [bp-002h], 001h                 ; f6 46 fe 01
    6392     jne short 037c7h                          ; 75 10
     6507    test byte [bp-008h], 001h                 ; f6 46 f8 01
     6508    jne short 03882h                          ; 75 10
    63936509    mov ax, strict word 00004h                ; b8 04 00
    63946510    mov dx, 001ceh                            ; ba ce 01
    63956511    out DX, ax                                ; ef
    6396     mov ax, word [bp-002h]                    ; 8b 46 fe
     6512    mov ax, word [bp-008h]                    ; 8b 46 f8
    63976513    mov dx, 001cfh                            ; ba cf 01
    63986514    out DX, ax                                ; ef
    6399     jmp short 03831h                          ; eb 6a
     6515    jmp short 038ech                          ; eb 6a
    64006516    mov ax, strict word 00001h                ; b8 01 00
    64016517    mov dx, 001ceh                            ; ba ce 01
     
    64036519    mov dx, bx                                ; 89 da
    64046520    mov ax, cx                                ; 89 c8
    6405     call 02f07h                               ; e8 32 f7
     6521    call 02f93h                               ; e8 03 f7
    64066522    mov dx, 001cfh                            ; ba cf 01
    64076523    out DX, ax                                ; ef
     
    64136529    mov dx, bx                                ; 89 da
    64146530    mov ax, cx                                ; 89 c8
    6415     call 02f07h                               ; e8 1e f7
     6531    call 02f93h                               ; e8 ef f6
    64166532    mov dx, 001cfh                            ; ba cf 01
    64176533    out DX, ax                                ; ef
     
    64236539    mov dx, bx                                ; 89 da
    64246540    mov ax, cx                                ; 89 c8
    6425     call 02f07h                               ; e8 0a f7
     6541    call 02f93h                               ; e8 db f6
    64266542    mov dx, 001cfh                            ; ba cf 01
    64276543    out DX, ax                                ; ef
     
    64316547    mov dx, 001ceh                            ; ba ce 01
    64326548    out DX, ax                                ; ef
    6433     mov ax, word [bp-002h]                    ; 8b 46 fe
     6549    mov ax, word [bp-008h]                    ; 8b 46 f8
    64346550    mov dx, 001cfh                            ; ba cf 01
    64356551    out DX, ax                                ; ef
    64366552    mov si, strict word 00005h                ; be 05 00
    6437     jmp short 0381bh                          ; eb 05
     6553    jmp short 038d6h                          ; eb 05
    64386554    cmp si, strict byte 00009h                ; 83 fe 09
    6439     jnbe short 03831h                         ; 77 16
     6555    jnbe short 038ech                         ; 77 16
    64406556    mov ax, si                                ; 89 f0
    64416557    mov dx, 001ceh                            ; ba ce 01
     
    64436559    mov dx, bx                                ; 89 da
    64446560    mov ax, cx                                ; 89 c8
    6445     call 02f07h                               ; e8 df f6
     6561    call 02f93h                               ; e8 b0 f6
    64466562    mov dx, 001cfh                            ; ba cf 01
    64476563    out DX, ax                                ; ef
     
    64496565    inc bx                                    ; 43
    64506566    inc si                                    ; 46
    6451     jmp short 03816h                          ; eb e5
    6452     leave                                     ; c9
     6567    jmp short 038d1h                          ; eb e5
     6568    lea sp, [bp-006h]                         ; 8d 66 fa
    64536569    pop si                                    ; 5e
    64546570    pop cx                                    ; 59
    64556571    pop bx                                    ; 5b
    6456     retn                                      ; c3
    6457 vbe_biosfn_save_restore_state_:              ; 0xc3836 LB 0x89
     6572    pop bp                                    ; 5d
     6573    retn                                      ; c3
     6574vbe_biosfn_save_restore_state_:              ; 0xc38f4 LB 0x8c
     6575    push bp                                   ; 55
     6576    mov bp, sp                                ; 89 e5
    64586577    push si                                   ; 56
    64596578    push di                                   ; 57
    6460     enter 00002h, 000h                        ; c8 02 00 00
     6579    push ax                                   ; 50
    64616580    mov si, ax                                ; 89 c6
    6462     mov word [bp-002h], dx                    ; 89 56 fe
     6581    mov word [bp-006h], dx                    ; 89 56 fa
    64636582    mov ax, bx                                ; 89 d8
    6464     mov bx, word [bp+008h]                    ; 8b 5e 08
     6583    mov bx, word [bp+004h]                    ; 8b 5e 04
    64656584    mov di, strict word 0004fh                ; bf 4f 00
    64666585    xor ah, ah                                ; 30 e4
    64676586    cmp ax, strict word 00002h                ; 3d 02 00
    6468     je short 03895h                           ; 74 45
     6587    je short 03953h                           ; 74 45
    64696588    cmp ax, strict word 00001h                ; 3d 01 00
    6470     je short 03879h                           ; 74 24
     6589    je short 03937h                           ; 74 24
    64716590    test ax, ax                               ; 85 c0
    6472     jne short 038b1h                          ; 75 58
    6473     mov ax, word [bp-002h]                    ; 8b 46 fe
    6474     call 0280ch                               ; e8 ad ef
     6591    jne short 0396fh                          ; 75 58
     6592    mov ax, word [bp-006h]                    ; 8b 46 fa
     6593    call 0288ch                               ; e8 6f ef
    64756594    mov cx, ax                                ; 89 c1
    6476     test byte [bp-002h], 008h                 ; f6 46 fe 08
    6477     je short 0386ch                           ; 74 05
    6478     call 0373eh                               ; e8 d4 fe
     6595    test byte [bp-006h], 008h                 ; f6 46 fa 08
     6596    je short 0392ah                           ; 74 05
     6597    call 037f6h                               ; e8 ce fe
    64796598    add ax, cx                                ; 01 c8
    64806599    add ax, strict word 0003fh                ; 05 3f 00
     
    64836602    pop ES                                    ; 07
    64846603    mov word [es:bx], ax                      ; 26 89 07
    6485     jmp short 038b4h                          ; eb 3b
     6604    jmp short 03972h                          ; eb 3b
    64866605    push SS                                   ; 16
    64876606    pop ES                                    ; 07
    64886607    mov bx, word [es:bx]                      ; 26 8b 1f
    64896608    mov dx, cx                                ; 89 ca
    6490     mov ax, word [bp-002h]                    ; 8b 46 fe
    6491     call 0283eh                               ; e8 b8 ef
    6492     test byte [bp-002h], 008h                 ; f6 46 fe 08
    6493     je short 038b4h                           ; 74 28
     6609    mov ax, word [bp-006h]                    ; 8b 46 fa
     6610    call 028c1h                               ; e8 7d ef
     6611    test byte [bp-006h], 008h                 ; f6 46 fa 08
     6612    je short 03972h                           ; 74 28
    64946613    mov dx, ax                                ; 89 c2
    64956614    mov ax, cx                                ; 89 c8
    6496     call 03746h                               ; e8 b3 fe
    6497     jmp short 038b4h                          ; eb 1f
     6615    call 037feh                               ; e8 ad fe
     6616    jmp short 03972h                          ; eb 1f
    64986617    push SS                                   ; 16
    64996618    pop ES                                    ; 07
    65006619    mov bx, word [es:bx]                      ; 26 8b 1f
    65016620    mov dx, cx                                ; 89 ca
    6502     mov ax, word [bp-002h]                    ; 8b 46 fe
    6503     call 02ba3h                               ; e8 01 f3
    6504     test byte [bp-002h], 008h                 ; f6 46 fe 08
    6505     je short 038b4h                           ; 74 0c
     6621    mov ax, word [bp-006h]                    ; 8b 46 fa
     6622    call 02c2ah                               ; e8 ca f2
     6623    test byte [bp-006h], 008h                 ; f6 46 fa 08
     6624    je short 03972h                           ; 74 0c
    65066625    mov dx, ax                                ; 89 c2
    65076626    mov ax, cx                                ; 89 c8
    6508     call 0379eh                               ; e8 ef fe
    6509     jmp short 038b4h                          ; eb 03
     6627    call 03859h                               ; e8 ec fe
     6628    jmp short 03972h                          ; eb 03
    65106629    mov di, 00100h                            ; bf 00 01
    65116630    push SS                                   ; 16
    65126631    pop ES                                    ; 07
    65136632    mov word [es:si], di                      ; 26 89 3c
    6514     leave                                     ; c9
     6633    lea sp, [bp-004h]                         ; 8d 66 fc
    65156634    pop di                                    ; 5f
    65166635    pop si                                    ; 5e
     6636    pop bp                                    ; 5d
    65176637    retn 00002h                               ; c2 02 00
    65186638
    6519   ; Padding 0xd41 bytes at 0xc38bf
    6520   times 3393 db 0
     6639  ; Padding 0xc80 bytes at 0xc3980
     6640  times 3200 db 0
    65216641
    65226642section VBE32 progbits vstart=0x4600 align=1 ; size=0x115 class=CODE group=AUTO
     
    66506770  times 235 db 0
    66516771
    6652 section _DATA progbits vstart=0x4800 align=1 ; size=0x36e1 class=DATA group=DGROUP
    6653 _msg_vga_init:                               ; 0xc4800 LB 0x2f
    6654     db  'Oracle VM VirtualBox Version 4.2.51 VGA BIOS', 00dh, 00ah, 000h
    6655 _vga_modes:                                  ; 0xc482f LB 0x80
     6772section _DATA progbits vstart=0x4800 align=1 ; size=0x36ec class=DATA group=DGROUP
     6773_msg_vga_init:                               ; 0xc4800 LB 0x34
     6774    db  'Oracle VM VirtualBox Version 4.3.0_BETA1 VGA BIOS', 00dh, 00ah, 000h
     6775_vga_modes:                                  ; 0xc4834 LB 0x80
    66566776    db  000h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h, 001h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h
    66576777    db  002h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h, 003h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h
     
    66626782    db  011h, 001h, 003h, 001h, 000h, 0a0h, 0ffh, 002h, 012h, 001h, 004h, 004h, 000h, 0a0h, 0ffh, 002h
    66636783    db  013h, 001h, 005h, 008h, 000h, 0a0h, 0ffh, 003h, 06ah, 001h, 004h, 004h, 000h, 0a0h, 0ffh, 002h
    6664 _line_to_vpti:                               ; 0xc48af LB 0x10
     6784_line_to_vpti:                               ; 0xc48b4 LB 0x10
    66656785    db  017h, 017h, 018h, 018h, 004h, 005h, 006h, 007h, 00dh, 00eh, 011h, 012h, 01ah, 01bh, 01ch, 01dh
    6666 _dac_regs:                                   ; 0xc48bf LB 0x4
     6786_dac_regs:                                   ; 0xc48c4 LB 0x4
    66676787    dd  0ff3f3f3fh
    6668 _video_param_table:                          ; 0xc48c3 LB 0x780
     6788_video_param_table:                          ; 0xc48c8 LB 0x780
    66696789    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    66706790    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     
    67876907    db  073h, 0e3h, 0ffh, 000h, 001h, 002h, 003h, 004h, 005h, 014h, 007h, 038h, 039h, 03ah, 03bh, 03ch
    67886908    db  03dh, 03eh, 03fh, 001h, 000h, 00fh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 005h, 00fh, 0ffh
    6789 _palette0:                                   ; 0xc5043 LB 0xc0
     6909_palette0:                                   ; 0xc5048 LB 0xc0
    67906910    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    67916911    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah
     
    68006920    db  02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh
    68016921    db  03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh
    6802 _palette1:                                   ; 0xc5103 LB 0xc0
     6922_palette1:                                   ; 0xc5108 LB 0xc0
    68036923    db  000h, 000h, 000h, 000h, 000h, 02ah, 000h, 02ah, 000h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 02ah
    68046924    db  000h, 02ah, 02ah, 015h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 000h, 000h, 000h, 02ah, 000h, 02ah
     
    68136933    db  015h, 03fh, 03fh, 03fh, 015h, 03fh, 03fh, 03fh, 015h, 015h, 015h, 015h, 015h, 03fh, 015h, 03fh
    68146934    db  015h, 015h, 03fh, 03fh, 03fh, 015h, 015h, 03fh, 015h, 03fh, 03fh, 03fh, 015h, 03fh, 03fh, 03fh
    6815 _palette2:                                   ; 0xc51c3 LB 0xc0
     6935_palette2:                                   ; 0xc51c8 LB 0xc0
    68166936    db  000h, 000h, 000h, 000h, 000h, 02ah, 000h, 02ah, 000h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 02ah
    68176937    db  000h, 02ah, 02ah, 02ah, 000h, 02ah, 02ah, 02ah, 000h, 000h, 015h, 000h, 000h, 03fh, 000h, 02ah
     
    68266946    db  015h, 02ah, 03fh, 03fh, 000h, 03fh, 03fh, 02ah, 015h, 015h, 015h, 015h, 015h, 03fh, 015h, 03fh
    68276947    db  015h, 015h, 03fh, 03fh, 03fh, 015h, 015h, 03fh, 015h, 03fh, 03fh, 03fh, 015h, 03fh, 03fh, 03fh
    6828 _palette3:                                   ; 0xc5283 LB 0x300
     6948_palette3:                                   ; 0xc5288 LB 0x300
    68296949    db  000h, 000h, 000h, 000h, 000h, 02ah, 000h, 02ah, 000h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 02ah
    68306950    db  000h, 02ah, 02ah, 015h, 000h, 02ah, 02ah, 02ah, 015h, 015h, 015h, 015h, 015h, 03fh, 015h, 03fh
     
    68756995    db  00fh, 010h, 00bh, 00dh, 010h, 00bh, 00ch, 010h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    68766996    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    6877 _static_functionality:                       ; 0xc5583 LB 0x10
     6997_static_functionality:                       ; 0xc5588 LB 0x10
    68786998    db  0ffh, 0e0h, 00fh, 000h, 000h, 000h, 000h, 007h, 002h, 008h, 0e7h, 00ch, 000h, 000h, 000h, 000h
    6879 _video_save_pointer_table:                   ; 0xc5593 LB 0x1c
    6880     db  0c3h, 048h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     6999_video_save_pointer_table:                   ; 0xc5598 LB 0x1c
     7000    db  0c8h, 048h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    68817001    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    6882 _vgafont8:                                   ; 0xc55af LB 0x800
     7002_vgafont8:                                   ; 0xc55b4 LB 0x800
    68837003    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07eh, 081h, 0a5h, 081h, 0bdh, 099h, 081h, 07eh
    68847004    db  07eh, 0ffh, 0dbh, 0ffh, 0c3h, 0e7h, 0ffh, 07eh, 06ch, 0feh, 0feh, 0feh, 07ch, 038h, 010h, 000h
     
    70097129    db  078h, 06ch, 06ch, 06ch, 06ch, 000h, 000h, 000h, 070h, 018h, 030h, 060h, 078h, 000h, 000h, 000h
    70107130    db  000h, 000h, 03ch, 03ch, 03ch, 03ch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7011 _vgafont14:                                  ; 0xc5daf LB 0xe00
     7131_vgafont14:                                  ; 0xc5db4 LB 0xe00
    70127132    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    70137133    db  07eh, 081h, 0a5h, 081h, 081h, 0bdh, 099h, 081h, 07eh, 000h, 000h, 000h, 000h, 000h, 07eh, 0ffh
     
    72347354    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07ch, 07ch, 07ch, 07ch, 07ch, 07ch, 000h, 000h
    72357355    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7236 _vgafont16:                                  ; 0xc6baf LB 0x1000
     7356_vgafont16:                                  ; 0xc6bb4 LB 0x1000
    72377357    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    72387358    db  000h, 000h, 07eh, 081h, 0a5h, 081h, 081h, 0bdh, 099h, 081h, 081h, 07eh, 000h, 000h, 000h, 000h
     
    74917611    db  000h, 000h, 000h, 000h, 07ch, 07ch, 07ch, 07ch, 07ch, 07ch, 07ch, 000h, 000h, 000h, 000h, 000h
    74927612    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7493 _vgafont14alt:                               ; 0xc7baf LB 0x12d
     7613_vgafont14alt:                               ; 0xc7bb4 LB 0x12d
    74947614    db  01dh, 000h, 000h, 000h, 000h, 024h, 066h, 0ffh, 066h, 024h, 000h, 000h, 000h, 000h, 000h, 022h
    74957615    db  000h, 063h, 063h, 063h, 022h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 02bh, 000h
     
    75117631    db  000h, 018h, 018h, 018h, 0ffh, 018h, 018h, 018h, 000h, 0ffh, 000h, 000h, 000h, 0f6h, 000h, 000h
    75127632    db  018h, 018h, 000h, 000h, 0ffh, 000h, 000h, 018h, 018h, 000h, 000h, 000h, 000h
    7513 _vgafont16alt:                               ; 0xc7cdc LB 0x144
     7633_vgafont16alt:                               ; 0xc7ce1 LB 0x145
    75147634    db  01dh, 000h, 000h, 000h, 000h, 000h, 024h, 066h, 0ffh, 066h, 024h, 000h, 000h, 000h, 000h, 000h
    75157635    db  000h, 030h, 000h, 000h, 03ch, 066h, 0c3h, 0c3h, 0dbh, 0dbh, 0c3h, 0c3h, 066h, 03ch, 000h, 000h
     
    75327652    db  000h, 0abh, 000h, 0c0h, 0c0h, 0c2h, 0c6h, 0cch, 018h, 030h, 060h, 0ceh, 09bh, 006h, 00ch, 01fh
    75337653    db  000h, 000h, 0ach, 000h, 0c0h, 0c0h, 0c2h, 0c6h, 0cch, 018h, 030h, 066h, 0ceh, 096h, 03eh, 006h
    7534     db  006h, 000h, 000h, 000h
    7535 _vbebios_copyright:                          ; 0xc7e20 LB 0x15
     7654    db  006h, 000h, 000h, 000h, 000h
     7655_vbebios_copyright:                          ; 0xc7e26 LB 0x15
    75367656    db  'VirtualBox VESA BIOS', 000h
    7537 _vbebios_vendor_name:                        ; 0xc7e35 LB 0x13
     7657_vbebios_vendor_name:                        ; 0xc7e3b LB 0x13
    75387658    db  'Oracle Corporation', 000h
    7539 _vbebios_product_name:                       ; 0xc7e48 LB 0x21
     7659_vbebios_product_name:                       ; 0xc7e4e LB 0x21
    75407660    db  'Oracle VM VirtualBox VBE Adapter', 000h
    7541 _vbebios_product_revision:                   ; 0xc7e69 LB 0x24
    7542     db  'Oracle VM VirtualBox Version 4.2.51', 000h
    7543 _vbebios_info_string:                        ; 0xc7e8d LB 0x2b
     7661_vbebios_product_revision:                   ; 0xc7e6f LB 0x29
     7662    db  'Oracle VM VirtualBox Version 4.3.0_BETA1', 000h
     7663_vbebios_info_string:                        ; 0xc7e98 LB 0x2b
    75447664    db  'VirtualBox VBE Display Adapter enabled', 00dh, 00ah, 00dh, 00ah, 000h
    7545 _no_vbebios_info_string:                     ; 0xc7eb8 LB 0x29
     7665_no_vbebios_info_string:                     ; 0xc7ec3 LB 0x29
    75467666    db  'No VirtualBox VBE support available!', 00dh, 00ah, 00dh, 00ah, 000h
    75477667
    7548   ; Padding 0x1 bytes at 0xc7ee1
    7549   times 1 db 0
     7668section CONST progbits vstart=0x7eec align=1 ; size=0x0 class=DATA group=DGROUP
    75507669
    7551 section CONST progbits vstart=0x7ee2 align=1 ; size=0x0 class=DATA group=DGROUP
     7670section CONST2 progbits vstart=0x7eec align=1 ; size=0x0 class=DATA group=DGROUP
    75527671
    7553 section CONST2 progbits vstart=0x7ee2 align=1 ; size=0x0 class=DATA group=DGROUP
    7554 
    7555   ; Padding 0x11e bytes at 0xc7ee2
     7672  ; Padding 0x114 bytes at 0xc7eec
     7673    db  001h, 000h, 000h, 000h, 000h, 001h, 000h, 000h, 000h, 000h, 000h, 000h, 02fh, 068h, 06fh, 06dh
     7674    db  065h, 02fh, 066h, 06dh, 033h, 02fh, 073h, 072h, 063h, 02fh, 076h, 062h, 06fh, 078h, 02fh, 06fh
     7675    db  075h, 074h, 02fh, 06ch, 069h, 06eh, 075h, 078h, 02eh, 061h, 06dh, 064h, 036h, 034h, 02fh, 072h
     7676    db  065h, 06ch, 065h, 061h, 073h, 065h, 02fh, 06fh, 062h, 06ah, 02fh, 056h, 042h, 06fh, 078h, 056h
     7677    db  067h, 061h, 042h, 069h, 06fh, 073h, 02fh, 056h, 042h, 06fh, 078h, 056h, 067h, 061h, 042h, 069h
     7678    db  06fh, 073h, 02eh, 073h, 079h, 06dh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    75567679    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    75577680    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     
    75657688    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    75667689    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7567     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7568     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7569     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7570     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7571     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7572     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7573     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 00ch
     7690    db  000h, 000h, 000h, 050h
  • trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative.md5sum

    r43630 r47937  
    1 48c82a5cfcc09e4b2e77c98d35aa6683 *VBoxVgaBios.rom
     1fb494d9bc6385112896b6cd75566b529 *VBoxVgaBios.rom
Note: See TracChangeset for help on using the changeset viewer.

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