Changeset 58831 in vbox for trunk/src/VBox/Devices/PC/BIOS
- Timestamp:
- Nov 23, 2015 5:21:38 PM (9 years ago)
- Location:
- trunk/src/VBox/Devices/PC/BIOS
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative.asm
r57333 r58831 856 856 db 001h, 000h, 002h, 002h, 003h, 003h, 004h, 004h, 005h, 005h, 00eh, 006h, 00fh, 006h, 000h 857 857 _pktacc: ; 0xf006a LB 0xc 858 db 000h, 000h, 000h, 000h, 000h, 000h, 0 8fh, 028h, 089h, 07bh, 06bh, 089h858 db 000h, 000h, 000h, 000h, 000h, 000h, 064h, 02bh, 03eh, 07fh, 065h, 08eh 859 859 _softrst: ; 0xf0076 LB 0xc 860 db 000h, 000h, 000h, 000h, 000h, 000h, 0 77h, 02bh, 054h, 038h, 054h, 038h860 db 000h, 000h, 000h, 000h, 000h, 000h, 04ch, 02eh, 029h, 03bh, 029h, 03bh 861 861 _dskacc: ; 0xf0082 LB 0x2e 862 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0 d8h, 027h, 052h, 028h, 000h, 000h, 000h, 000h863 db 0 17h, 07ah, 0d0h, 07ah, 066h, 088h, 0f9h, 088h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h862 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 054h, 02ah, 009h, 02bh, 000h, 000h, 000h, 000h 863 db 088h, 07dh, 063h, 07eh, 03bh, 08dh, 0e1h, 08dh, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h 864 864 db 032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h 865 865 866 section CONST progbits vstart=0xb0 align=1 ; size=0xc e0class=DATA group=DGROUP866 section CONST progbits vstart=0xb0 align=1 ; size=0xcde class=DATA group=DGROUP 867 867 db 'NMI Handler called', 00ah, 000h 868 868 db 'INT18: BOOT FAILURE', 00ah, 000h 869 869 db '%s', 00ah, 000h, 000h 870 870 db 'FATAL: ', 000h 871 db 'bios_printf: unknown format', 00ah, 000h, 000h 871 db 'bios_printf: unknown %ll format', 00ah, 000h 872 db 'bios_printf: unknown format', 00ah, 000h 872 873 db 'ata-detect: Failed to detect ATA device', 00ah, 000h 873 874 db 'ata%d-%d: PCHS=%u/%u/%u LCHS=%u/%u/%u', 00ah, 000h … … 927 928 db '%s: function %02xh unsupported, returns fail', 00ah, 000h 928 929 db 'int13_harddisk_ext', 000h 929 db '%s: function %02x. Can', 027h, 't use 64bits lba', 00ah, 000h 930 db '%s: function %02x. LBA out of range', 00ah, 000h 930 db '%s: function %02x. LBA out of range', 00ah, 000h, 000h 931 931 db 'int15: Func 24h, subfunc %02xh, A20 gate control not supported', 00ah, 000h 932 932 db '*** int 15h function AH=bf not yet supported!', 00ah, 000h … … 968 968 db '%s: SCSI_READ_CAPACITY failed', 00ah, 000h 969 969 db 'Disk %d has an unsupported sector size of %u', 00ah, 000h 970 db 'SCSI %d-ID#%d: LCHS=% u/%u/%u %lusectors', 00ah, 000h970 db 'SCSI %d-ID#%d: LCHS=%lu/%u/%u 0x%llx sectors', 00ah, 000h 971 971 db 'SCSI %d-ID#%d: CD/DVD-ROM', 00ah, 000h, 000h 972 972 db 'ahci_read_sectors', 000h … … 975 975 db 'ahci_cmd_packet', 000h 976 976 db '%s: DATA_OUT not supported yet', 00ah, 000h 977 db 'AHCI %d-P#%d: PCHS=%u/%u/%u LCHS=%u/%u/%u %lu sectors', 00ah, 000h, 000h977 db 'AHCI %d-P#%d: PCHS=%u/%u/%u LCHS=%u/%u/%u 0x%llx sectors', 00ah, 000h 978 978 db 'Standby', 000h 979 979 db 'Suspend', 000h … … 982 982 db 'PCI: Unsupported function AX=%04X BX=%04X called', 00ah, 000h 983 983 984 section CONST2 progbits vstart=0xd 90align=1 ; size=0x3fa class=DATA group=DGROUP985 _bios_cvs_version_string: ; 0xf0d 90LB 0x12986 db 'VirtualBox 5.0. 2', 000h, 000h987 _bios_prefix_string: ; 0xf0da 2LB 0x8984 section CONST2 progbits vstart=0xd8e align=1 ; size=0x3fa class=DATA group=DGROUP 985 _bios_cvs_version_string: ; 0xf0d8e LB 0x12 986 db 'VirtualBox 5.0.51', 000h 987 _bios_prefix_string: ; 0xf0da0 LB 0x8 988 988 db 'BIOS: ', 000h, 000h 989 _isotag: ; 0xf0da aLB 0x6989 _isotag: ; 0xf0da8 LB 0x6 990 990 db 'CD001', 000h 991 _eltorito: ; 0xf0d b0LB 0x18991 _eltorito: ; 0xf0dae LB 0x18 992 992 db 'EL TORITO SPECIFICATION', 000h 993 _drivetypes: ; 0xf0dc 8LB 0x28993 _drivetypes: ; 0xf0dc6 LB 0x28 994 994 db 046h, 06ch, 06fh, 070h, 070h, 079h, 000h, 000h, 000h, 000h, 048h, 061h, 072h, 064h, 020h, 044h 995 995 db 069h, 073h, 06bh, 000h, 043h, 044h, 02dh, 052h, 04fh, 04dh, 000h, 000h, 000h, 000h, 04ch, 041h 996 996 db 04eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h 997 _scan_to_scanascii: ; 0xf0d f0LB 0x37a997 _scan_to_scanascii: ; 0xf0dee LB 0x37a 998 998 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 01bh, 001h, 01bh, 001h, 01bh, 001h 999 999 db 000h, 001h, 000h, 000h, 031h, 002h, 021h, 002h, 000h, 000h, 000h, 078h, 000h, 000h, 032h, 003h … … 1052 1052 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h, 000h, 087h, 000h, 089h, 000h, 08bh, 000h, 000h 1053 1053 db 000h, 086h, 000h, 088h, 000h, 08ah, 000h, 08ch, 000h, 000h 1054 _panic_msg_keyb_buffer_full: ; 0xf116 aLB 0x201054 _panic_msg_keyb_buffer_full: ; 0xf1168 LB 0x20 1055 1055 db '%s: keyboard input buffer full', 00ah, 000h 1056 1056 1057 ; Padding 0x47 6 bytes at 0xf118a1058 times 114 2db 01057 ; Padding 0x478 bytes at 0xf1188 1058 times 1144 db 0 1059 1059 1060 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8 235 class=CODE group=AUTO1060 section _TEXT progbits vstart=0x1600 align=1 ; size=0x87f5 class=CODE group=AUTO 1061 1061 rom_scan_: ; 0xf1600 LB 0x50 1062 1062 push bp ; 55 … … 1280 1280 push bp ; 55 1281 1281 mov bp, sp ; 89 e5 1282 mov bx, 00da 2h ; bb a20d1282 mov bx, 00da0h ; bb a0 0d 1283 1283 mov cx, ds ; 8c d9 1284 1284 mov ax, strict word 00004h ; b8 04 00 1285 1285 call 01931h ; e8 ac 01 1286 push 00d 90h ; 68 900d1286 push 00d8eh ; 68 8e 0d 1287 1287 push 000d9h ; 68 d9 00 1288 1288 push strict byte 00004h ; 6a 04 … … 1309 1309 int 010h ; cd 10 1310 1310 jmp short 017c1h ; eb 03 1311 call 07 5fah ; e8 39 5e1311 call 07947h ; e8 86 61 1312 1312 mov sp, bp ; 89 ec 1313 1313 pop bp ; 5d … … 1455 1455 mov bx, strict word 0000ah ; bb 0a 00 1456 1456 xor cx, cx ; 31 c9 1457 call 09 740h ; e8 67 7e1457 call 09ce0h ; e8 07 84 1458 1458 mov word [bp-008h], ax ; 89 46 f8 1459 1459 mov cx, dx ; 89 d1 … … 1534 1534 pop bp ; 5d 1535 1535 retn ; c3 1536 bios_printf_: ; 0xf1972 LB 0x 23b1536 bios_printf_: ; 0xf1972 LB 0x33d 1537 1537 push bp ; 55 1538 1538 mov bp, sp ; 89 e5 … … 1542 1542 push si ; 56 1543 1543 push di ; 57 1544 sub sp, strict byte 000 08h ; 83 ec 081544 sub sp, strict byte 0001ch ; 83 ec 1c 1545 1545 lea bx, [bp+008h] ; 8d 5e 08 1546 mov word [bp-01 2h], bx ; 89 5e ee1547 mov [bp-01 0h], ss ; 8c 56 f01548 xor cx, cx ; 31 c91549 xor si, si ; 31 f61546 mov word [bp-016h], bx ; 89 5e ea 1547 mov [bp-014h], ss ; 8c 56 ec 1548 xor bx, bx ; 31 db 1549 xor di, di ; 31 ff 1550 1550 mov ax, word [bp+004h] ; 8b 46 04 1551 1551 and ax, strict word 00007h ; 25 07 00 … … 1556 1556 call 01972h ; e8 d5 ff 1557 1557 add sp, strict byte 00004h ; 83 c4 04 1558 mov bx, word [bp+006h] ; 8b 5e061559 mov dl, byte [ bx] ; 8a 171558 mov si, word [bp+006h] ; 8b 76 06 1559 mov dl, byte [si] ; 8a 14 1560 1560 test dl, dl ; 84 d2 1561 je near 01 b91h ; 0f 84 e6 011561 je near 01c93h ; 0f 84 e8 02 1562 1562 cmp dl, 025h ; 80 fa 25 1563 1563 jne short 019b8h ; 75 08 1564 mov cx, strict word 00001h ; b901 001565 xor si, si ; 31 f61566 jmp near 01 b8bh ; e9 d3 011567 test cx, cx ; 85 c91568 je near 01 b83h ; 0f 84 c5 011564 mov bx, strict word 00001h ; bb 01 00 1565 xor di, di ; 31 ff 1566 jmp near 01c8dh ; e9 d5 02 1567 test bx, bx ; 85 db 1568 je near 01c85h ; 0f 84 c7 02 1569 1569 cmp dl, 030h ; 80 fa 30 1570 1570 jc short 019d6h ; 72 13 … … 1572 1572 jnbe short 019d6h ; 77 0e 1573 1573 movzx ax, dl ; 0f b6 c2 1574 imul si, si, strict byte 0000ah ; 6b f60a1574 imul di, di, strict byte 0000ah ; 6b ff 0a 1575 1575 sub ax, strict word 00030h ; 2d 30 00 1576 add si, ax ; 01 c61577 jmp near 01 b8bh ; e9 b5 011578 mov ax, word [bp-01 0h] ; 8b 46 f01579 mov word [bp-01 0h], ax ; 89 46 f01580 add word [bp-01 2h], strict byte 00002h ; 83 46 ee021581 les bx, [bp-01 2h] ; c4 5e ee1576 add di, ax ; 01 c7 1577 jmp near 01c8dh ; e9 b7 02 1578 mov ax, word [bp-014h] ; 8b 46 ec 1579 mov word [bp-014h], ax ; 89 46 ec 1580 add word [bp-016h], strict byte 00002h ; 83 46 ea 02 1581 les bx, [bp-016h] ; c4 5e ea 1582 1582 mov ax, word [es:bx-002h] ; 26 8b 47 fe 1583 mov word [bp-0 0ch], ax ; 89 46 f41583 mov word [bp-012h], ax ; 89 46 ee 1584 1584 cmp dl, 078h ; 80 fa 78 1585 1585 je short 019f4h ; 74 05 1586 1586 cmp dl, 058h ; 80 fa 58 1587 jne short 01a 3dh ; 75 491588 test si, si ; 85 f61587 jne short 01a4ah ; 75 56 1588 test di, di ; 85 ff 1589 1589 jne short 019fbh ; 75 03 1590 mov si, strict word 00004h ; be04 001590 mov di, strict word 00004h ; bf 04 00 1591 1591 cmp dl, 078h ; 80 fa 78 1592 jne short 01a05h ; 75 05 1593 mov di, strict word 00061h ; bf 61 00 1594 jmp short 01a08h ; eb 03 1595 mov di, strict word 00041h ; bf 41 00 1596 lea bx, [si-001h] ; 8d 5c ff 1597 test bx, bx ; 85 db 1598 jl near 01b7fh ; 0f 8c 6e 01 1599 mov cx, bx ; 89 d9 1592 jne short 01a07h ; 75 07 1593 mov word [bp-00eh], strict word 00061h ; c7 46 f2 61 00 1594 jmp short 01a0ch ; eb 05 1595 mov word [bp-00eh], strict word 00041h ; c7 46 f2 41 00 1596 lea ax, [di-001h] ; 8d 45 ff 1597 mov word [bp-00ch], ax ; 89 46 f4 1598 mov ax, word [bp-00ch] ; 8b 46 f4 1599 test ax, ax ; 85 c0 1600 jl near 01c81h ; 0f 8c 66 02 1601 mov cx, ax ; 89 c1 1600 1602 sal cx, 002h ; c1 e1 02 1601 mov ax, word [bp-0 0ch] ; 8b 46 f41603 mov ax, word [bp-012h] ; 8b 46 ee 1602 1604 shr ax, CL ; d3 e8 1603 1605 xor ah, ah ; 30 e4 1604 1606 and AL, strict byte 00fh ; 24 0f 1605 1607 cmp ax, strict word 00009h ; 3d 09 00 1606 jnbe short 01a 2bh ; 77 071608 jnbe short 01a35h ; 77 07 1607 1609 mov dx, ax ; 89 c2 1608 1610 add dx, strict byte 00030h ; 83 c2 30 1609 jmp short 01a3 2h ; eb 071610 mov dx, ax ; 89 c21611 sub dx, strict byte 0000ah ; 83 ea 0a1612 add dx, di ; 01 fa1611 jmp short 01a3dh ; eb 08 1612 sub ax, strict word 0000ah ; 2d 0a 00 1613 mov dx, word [bp-00eh] ; 8b 56 f2 1614 add dx, ax ; 01 c2 1613 1615 xor dh, dh ; 30 f6 1614 1616 mov ax, word [bp+004h] ; 8b 46 04 1615 call 017c5h ; e8 8 bfd1616 dec bx ; 4b1617 jmp short 01a 0bh ; eb ce1617 call 017c5h ; e8 80 fd 1618 dec word [bp-00ch] ; ff 4e f4 1619 jmp short 01a12h ; eb c8 1618 1620 cmp dl, 075h ; 80 fa 75 1619 jne short 01a5 1h ; 75 0f1621 jne short 01a5eh ; 75 0f 1620 1622 xor cx, cx ; 31 c9 1621 mov bx, si ; 89 f31623 mov bx, di ; 89 fb 1622 1624 mov dx, ax ; 89 c2 1623 1625 mov ax, word [bp+004h] ; 8b 46 04 1624 call 0185fh ; e8 11 fe 1625 jmp near 01b7fh ; e9 2e 01 1626 lea bx, [si-001h] ; 8d 5c ff 1626 call 0185fh ; e8 04 fe 1627 jmp near 01c81h ; e9 23 02 1627 1628 cmp dl, 06ch ; 80 fa 6c 1628 jne near 01b0dh ; 0f 85 b2 00 1629 jne near 01b40h ; 0f 85 db 00 1630 mov bx, word [bp+006h] ; 8b 5e 06 1631 cmp dl, byte [bx+001h] ; 3a 57 01 1632 jne near 01b40h ; 0f 85 d1 00 1633 add word [bp+006h], strict byte 00002h ; 83 46 06 02 1634 mov bx, word [bp+006h] ; 8b 5e 06 1635 mov dl, byte [bx] ; 8a 17 1636 mov word [bp-026h], ax ; 89 46 da 1637 mov ax, word [bp-014h] ; 8b 46 ec 1638 mov word [bp-014h], ax ; 89 46 ec 1639 add word [bp-016h], strict byte 00002h ; 83 46 ea 02 1640 les bx, [bp-016h] ; c4 5e ea 1641 mov ax, word [es:bx-002h] ; 26 8b 47 fe 1642 mov word [bp-024h], ax ; 89 46 dc 1643 mov ax, word [bp-014h] ; 8b 46 ec 1644 mov word [bp-014h], ax ; 89 46 ec 1645 add word [bp-016h], strict byte 00002h ; 83 46 ea 02 1646 les bx, [bp-016h] ; c4 5e ea 1647 mov ax, word [es:bx-002h] ; 26 8b 47 fe 1648 mov word [bp-022h], ax ; 89 46 de 1649 mov ax, word [bp-014h] ; 8b 46 ec 1650 mov word [bp-014h], ax ; 89 46 ec 1651 add word [bp-016h], strict byte 00002h ; 83 46 ea 02 1652 les bx, [bp-016h] ; c4 5e ea 1653 mov ax, word [es:bx-002h] ; 26 8b 47 fe 1654 mov word [bp-020h], ax ; 89 46 e0 1655 cmp dl, 078h ; 80 fa 78 1656 je short 01ac1h ; 74 05 1657 cmp dl, 058h ; 80 fa 58 1658 jne short 01b32h ; 75 71 1659 test di, di ; 85 ff 1660 jne short 01ac8h ; 75 03 1661 mov di, strict word 00010h ; bf 10 00 1662 cmp dl, 078h ; 80 fa 78 1663 jne short 01ad4h ; 75 07 1664 mov word [bp-00eh], strict word 00061h ; c7 46 f2 61 00 1665 jmp short 01ad9h ; eb 05 1666 mov word [bp-00eh], strict word 00041h ; c7 46 f2 41 00 1667 lea ax, [di-001h] ; 8d 45 ff 1668 mov word [bp-00ch], ax ; 89 46 f4 1669 mov ax, word [bp-00ch] ; 8b 46 f4 1670 test ax, ax ; 85 c0 1671 jl near 01c81h ; 0f 8c 99 01 1672 sal ax, 002h ; c1 e0 02 1673 mov word [bp-01eh], ax ; 89 46 e2 1674 xor ax, ax ; 31 c0 1675 mov word [bp-01ch], ax ; 89 46 e4 1676 mov word [bp-01ah], ax ; 89 46 e6 1677 mov word [bp-018h], ax ; 89 46 e8 1678 mov ax, word [bp-020h] ; 8b 46 e0 1679 mov bx, word [bp-022h] ; 8b 5e de 1680 mov cx, word [bp-024h] ; 8b 4e dc 1681 mov dx, word [bp-026h] ; 8b 56 da 1682 mov si, word [bp-01eh] ; 8b 76 e2 1683 call 09d5ah ; e8 4f 82 1684 mov ax, dx ; 89 d0 1685 xor ah, dh ; 30 f4 1686 and AL, strict byte 00fh ; 24 0f 1687 cmp ax, strict word 00009h ; 3d 09 00 1688 jnbe short 01b1dh ; 77 07 1689 mov dx, ax ; 89 c2 1690 add dx, strict byte 00030h ; 83 c2 30 1691 jmp short 01b25h ; eb 08 1692 sub ax, strict word 0000ah ; 2d 0a 00 1693 mov dx, word [bp-00eh] ; 8b 56 f2 1694 add dx, ax ; 01 c2 1695 xor dh, dh ; 30 f6 1696 mov ax, word [bp+004h] ; 8b 46 04 1697 call 017c5h ; e8 98 fc 1698 dec word [bp-00ch] ; ff 4e f4 1699 jmp short 01adfh ; eb ad 1700 push 000e6h ; 68 e6 00 1701 push strict byte 00007h ; 6a 07 1702 call 01972h ; e8 38 fe 1703 add sp, strict byte 00004h ; 83 c4 04 1704 jmp near 01c81h ; e9 41 01 1705 lea bx, [di-001h] ; 8d 5d ff 1706 cmp dl, 06ch ; 80 fa 6c 1707 jne near 01c09h ; 0f 85 bf 00 1629 1708 inc word [bp+006h] ; ff 46 06 1630 mov di, word [bp+006h] ; 8b 7e 06 1631 mov dl, byte [di] ; 8a 15 1632 mov ax, word [bp-010h] ; 8b 46 f0 1709 mov si, word [bp+006h] ; 8b 76 06 1710 mov dl, byte [si] ; 8a 14 1711 mov ax, word [bp-014h] ; 8b 46 ec 1712 mov word [bp-014h], ax ; 89 46 ec 1713 add word [bp-016h], strict byte 00002h ; 83 46 ea 02 1714 les si, [bp-016h] ; c4 76 ea 1715 mov ax, word [es:si-002h] ; 26 8b 44 fe 1633 1716 mov word [bp-010h], ax ; 89 46 f0 1634 add word [bp-012h], strict byte 00002h ; 83 46 ee 021635 les di, [bp-012h] ; c4 7e ee1636 mov ax, word [es:di-002h] ; 26 8b 45 fe1637 mov word [bp-00eh], ax ; 89 46 f21638 1717 cmp dl, 064h ; 80 fa 64 1639 jne short 01 aa9h ; 75 2d1640 test byte [bp-00 dh], 080h ; f6 46 f3801641 je short 01 a97h ; 74 151718 jne short 01b98h ; 75 2d 1719 test byte [bp-00fh], 080h ; f6 46 f1 80 1720 je short 01b86h ; 74 15 1642 1721 push strict byte 00001h ; 6a 01 1643 mov ax, word [bp-0 0ch] ; 8b 46 f41644 mov cx, word [bp-0 0eh] ; 8b 4e f21722 mov ax, word [bp-012h] ; 8b 46 ee 1723 mov cx, word [bp-010h] ; 8b 4e f0 1645 1724 neg cx ; f7 d9 1646 1725 neg ax ; f7 d8 … … 1648 1727 mov dx, bx ; 89 da 1649 1728 mov bx, ax ; 89 c3 1650 jmp short 01 aa0h ; eb 091729 jmp short 01b8fh ; eb 09 1651 1730 push strict byte 00000h ; 6a 00 1652 mov bx, word [bp-0 0ch] ; 8b 5e f41653 mov dx, si ; 89 f21731 mov bx, word [bp-012h] ; 8b 5e ee 1732 mov dx, di ; 89 fa 1654 1733 mov cx, ax ; 89 c1 1655 1734 mov ax, word [bp+004h] ; 8b 46 04 1656 call 018bfh ; e8 19 fe1657 jmp near 01 b7fh ; e9 d6001735 call 018bfh ; e8 2a fd 1736 jmp near 01c81h ; e9 e9 00 1658 1737 cmp dl, 075h ; 80 fa 75 1659 jne short 01 ab0h ; 75 021660 jmp short 01 a97h ; eb e71738 jne short 01b9fh ; 75 02 1739 jmp short 01b86h ; eb e7 1661 1740 cmp dl, 078h ; 80 fa 78 1662 je short 01 abch ; 74 071741 je short 01babh ; 74 07 1663 1742 cmp dl, 058h ; 80 fa 58 1664 jne near 01 b7fh ; 0f 85 c3001665 test si, si ; 85 f61666 jne short 01 ac3h ; 75 031667 mov si, strict word 00008h ; be08 001743 jne near 01c81h ; 0f 85 d6 00 1744 test di, di ; 85 ff 1745 jne short 01bb2h ; 75 03 1746 mov di, strict word 00008h ; bf 08 00 1668 1747 cmp dl, 078h ; 80 fa 78 1669 jne short 01acdh ; 75 05 1670 mov di, strict word 00061h ; bf 61 00 1671 jmp short 01ad0h ; eb 03 1672 mov di, strict word 00041h ; bf 41 00 1673 lea bx, [si-001h] ; 8d 5c ff 1674 test bx, bx ; 85 db 1675 jl near 01b7fh ; 0f 8c a6 00 1676 mov ax, word [bp-00ch] ; 8b 46 f4 1677 mov cx, bx ; 89 d9 1748 jne short 01bbeh ; 75 07 1749 mov word [bp-00eh], strict word 00061h ; c7 46 f2 61 00 1750 jmp short 01bc3h ; eb 05 1751 mov word [bp-00eh], strict word 00041h ; c7 46 f2 41 00 1752 lea ax, [di-001h] ; 8d 45 ff 1753 mov word [bp-00ch], ax ; 89 46 f4 1754 cmp word [bp-00ch], strict byte 00000h ; 83 7e f4 00 1755 jl near 01c81h ; 0f 8c b0 00 1756 mov ax, word [bp-012h] ; 8b 46 ee 1757 mov cx, word [bp-00ch] ; 8b 4e f4 1678 1758 sal cx, 002h ; c1 e1 02 1679 mov dx, word [bp-0 0eh] ; 8b 56 f21680 jcxz 01 aech ; e3 061759 mov dx, word [bp-010h] ; 8b 56 f0 1760 jcxz 01be5h ; e3 06 1681 1761 shr dx, 1 ; d1 ea 1682 1762 rcr ax, 1 ; d1 d8 1683 loop 01 ae6h ; e2 fa1763 loop 01bdfh ; e2 fa 1684 1764 and ax, strict word 0000fh ; 25 0f 00 1685 1765 cmp ax, strict word 00009h ; 3d 09 00 1686 jnbe short 01 afbh ; 77 071766 jnbe short 01bf4h ; 77 07 1687 1767 mov dx, ax ; 89 c2 1688 1768 add dx, strict byte 00030h ; 83 c2 30 1689 jmp short 01b 02h ; eb 071690 mov dx, ax ; 89 c21691 sub dx, strict byte 0000ah ; 83 ea 0a1692 add dx, di ; 01 fa1769 jmp short 01bfch ; eb 08 1770 sub ax, strict word 0000ah ; 2d 0a 00 1771 mov dx, word [bp-00eh] ; 8b 56 f2 1772 add dx, ax ; 01 c2 1693 1773 xor dh, dh ; 30 f6 1694 1774 mov ax, word [bp+004h] ; 8b 46 04 1695 call 017c5h ; e8 bb fc1696 dec bx ; 4b1697 jmp short 01 ad3h ; eb c61775 call 017c5h ; e8 c1 fb 1776 dec word [bp-00ch] ; ff 4e f4 1777 jmp short 01bc9h ; eb c0 1698 1778 cmp dl, 064h ; 80 fa 64 1699 jne short 01 b2fh ; 75 1d1700 test byte [bp-0 0bh], 080h ; f6 46 f5801701 je short 01 b21h ; 74 091702 mov dx, ax ; 89 c21779 jne short 01c2dh ; 75 1f 1780 test byte [bp-011h], 080h ; f6 46 ef 80 1781 je short 01c1eh ; 74 0a 1782 mov dx, word [bp-012h] ; 8b 56 ee 1703 1783 neg dx ; f7 da 1704 1784 mov cx, strict word 00001h ; b9 01 00 1705 jmp short 01 b27h ; eb 061785 jmp short 01c25h ; eb 07 1706 1786 xor cx, cx ; 31 c9 1707 mov bx, si ; 89 f31708 mov dx, ax ; 89 c21787 mov bx, di ; 89 fb 1788 mov dx, word [bp-012h] ; 8b 56 ee 1709 1789 mov ax, word [bp+004h] ; 8b 46 04 1710 call 01800h ; e8 d 3 fc1711 jmp short 01 b7fh ; eb 501790 call 01800h ; e8 d5 fb 1791 jmp short 01c81h ; eb 54 1712 1792 cmp dl, 073h ; 80 fa 73 1713 jne short 01 b40h ; 75 0c1793 jne short 01c3fh ; 75 0d 1714 1794 mov cx, ds ; 8c d9 1795 mov bx, word [bp-012h] ; 8b 5e ee 1796 mov ax, word [bp+004h] ; 8b 46 04 1797 call 01931h ; e8 f4 fc 1798 jmp short 01c81h ; eb 42 1799 cmp dl, 053h ; 80 fa 53 1800 jne short 01c65h ; 75 21 1801 mov ax, word [bp-012h] ; 8b 46 ee 1802 mov word [bp-010h], ax ; 89 46 f0 1803 mov ax, word [bp-014h] ; 8b 46 ec 1804 mov word [bp-014h], ax ; 89 46 ec 1805 add word [bp-016h], strict byte 00002h ; 83 46 ea 02 1806 les bx, [bp-016h] ; c4 5e ea 1807 mov ax, word [es:bx-002h] ; 26 8b 47 fe 1808 mov word [bp-012h], ax ; 89 46 ee 1715 1809 mov bx, ax ; 89 c3 1810 mov cx, word [bp-010h] ; 8b 4e f0 1811 jmp short 01c37h ; eb d2 1812 cmp dl, 063h ; 80 fa 63 1813 jne short 01c76h ; 75 0c 1814 movzx dx, byte [bp-012h] ; 0f b6 56 ee 1716 1815 mov ax, word [bp+004h] ; 8b 46 04 1717 call 01931h ; e8 f3 fd 1718 jmp short 01b7fh ; eb 3f 1719 cmp dl, 053h ; 80 fa 53 1720 jne short 01b63h ; 75 1e 1721 mov word [bp-00eh], ax ; 89 46 f2 1722 mov ax, word [bp-010h] ; 8b 46 f0 1723 mov word [bp-010h], ax ; 89 46 f0 1724 add word [bp-012h], strict byte 00002h ; 83 46 ee 02 1725 les bx, [bp-012h] ; c4 5e ee 1726 mov ax, word [es:bx-002h] ; 26 8b 47 fe 1727 mov word [bp-00ch], ax ; 89 46 f4 1728 mov bx, ax ; 89 c3 1729 mov cx, word [bp-00eh] ; 8b 4e f2 1730 jmp short 01b38h ; eb d5 1731 cmp dl, 063h ; 80 fa 63 1732 jne short 01b74h ; 75 0c 1733 movzx dx, byte [bp-00ch] ; 0f b6 56 f4 1734 mov ax, word [bp+004h] ; 8b 46 04 1735 call 017c5h ; e8 53 fc 1736 jmp short 01b7fh ; eb 0b 1737 push 000e6h ; 68 e6 00 1816 call 017c5h ; e8 51 fb 1817 jmp short 01c81h ; eb 0b 1818 push 00107h ; 68 07 01 1738 1819 push strict byte 00007h ; 6a 07 1739 call 01972h ; e8 f 6 fd1820 call 01972h ; e8 f4 fc 1740 1821 add sp, strict byte 00004h ; 83 c4 04 1741 xor cx, cx ; 31 c91742 jmp short 01 b8bh ; eb 081822 xor bx, bx ; 31 db 1823 jmp short 01c8dh ; eb 08 1743 1824 xor dh, dh ; 30 f6 1744 1825 mov ax, word [bp+004h] ; 8b 46 04 1745 call 017c5h ; e8 3 a fc1826 call 017c5h ; e8 38 fb 1746 1827 inc word [bp+006h] ; ff 46 06 1747 jmp near 019a0h ; e9 0 f fe1828 jmp near 019a0h ; e9 0d fd 1748 1829 xor ax, ax ; 31 c0 1749 mov word [bp-01 2h], ax ; 89 46 ee1750 mov word [bp-01 0h], ax ; 89 46 f01830 mov word [bp-016h], ax ; 89 46 ea 1831 mov word [bp-014h], ax ; 89 46 ec 1751 1832 test byte [bp+004h], 001h ; f6 46 04 01 1752 je short 01 ba3h ; 74 041833 je short 01ca5h ; 74 04 1753 1834 cli ; fa 1754 1835 hlt ; f4 1755 jmp short 01 ba0h ; eb fd1836 jmp short 01ca2h ; eb fd 1756 1837 lea sp, [bp-00ah] ; 8d 66 f6 1757 1838 pop di ; 5f … … 1762 1843 pop bp ; 5d 1763 1844 retn ; c3 1764 _ata_init: ; 0xf1 bad LB 0xc41845 _ata_init: ; 0xf1caf LB 0xcd 1765 1846 push bp ; 55 1766 1847 mov bp, sp ; 89 e5 … … 1768 1849 mov dx, strict word 0000eh ; ba 0e 00 1769 1850 mov ax, strict word 00040h ; b8 40 00 1770 call 0166ch ; e8 b 2 fa1851 call 0166ch ; e8 b0 f9 1771 1852 mov si, 00122h ; be 22 01 1772 1853 mov dx, ax ; 89 c2 1773 1854 xor al, al ; 30 c0 1774 jmp short 01 bc7h ; eb 041855 jmp short 01cc9h ; eb 04 1775 1856 cmp AL, strict byte 004h ; 3c 04 1776 jnc short 01 bebh ; 73 241857 jnc short 01cedh ; 73 24 1777 1858 movzx bx, al ; 0f b6 d8 1778 1859 imul bx, bx, strict byte 00006h ; 6b db 06 1779 1860 mov es, dx ; 8e c2 1780 1861 add bx, si ; 01 f3 1781 mov byte [es:bx+00 1c0h], 000h ; 26 c6 87 c0 01001782 db 066h, 026h, 0c7h, 087h, 0 c2h, 001h, 000h, 000h, 000h, 000h1783 ; mov dword [es:bx+00 1c2h], strict dword 000000000h ; 66 26 c7 87 c2 0100 00 00 001784 mov byte [es:bx+00 1c1h], 000h ; 26 c6 87 c1 01001862 mov byte [es:bx+00204h], 000h ; 26 c6 87 04 02 00 1863 db 066h, 026h, 0c7h, 087h, 006h, 002h, 000h, 000h, 000h, 000h 1864 ; mov dword [es:bx+00206h], strict dword 000000000h ; 66 26 c7 87 06 02 00 00 00 00 1865 mov byte [es:bx+00205h], 000h ; 26 c6 87 05 02 00 1785 1866 db 0feh, 0c0h 1786 1867 ; inc al ; fe c0 1787 jmp short 01 bc3h ; eb d81868 jmp short 01cc5h ; eb d8 1788 1869 xor al, al ; 30 c0 1789 jmp short 01 bf3h ; eb 041870 jmp short 01cf5h ; eb 04 1790 1871 cmp AL, strict byte 008h ; 3c 08 1791 jnc short 01 c3eh ; 73 4b1872 jnc short 01d49h ; 73 54 1792 1873 movzx bx, al ; 0f b6 d8 1793 imul bx, bx, strict byte 0001 8h ; 6b db 181874 imul bx, bx, strict byte 0001ch ; 6b db 1c 1794 1875 mov es, dx ; 8e c2 1795 1876 add bx, si ; 01 f3 1796 db 066h, 026h, 0c7h, 047h, 01eh, 000h, 000h, 000h, 000h 1797 ; mov dword [es:bx+01eh], strict dword 000000000h ; 66 26 c7 47 1e 00 00 00 00 1798 mov byte [es:bx+022h], 000h ; 26 c6 47 22 00 1799 mov word [es:bx+024h], 00200h ; 26 c7 47 24 00 02 1800 mov byte [es:bx+023h], 000h ; 26 c6 47 23 00 1801 db 066h, 026h, 0c7h, 047h, 026h, 000h, 000h, 000h, 000h 1802 ; mov dword [es:bx+026h], strict dword 000000000h ; 66 26 c7 47 26 00 00 00 00 1877 db 066h, 026h, 0c7h, 047h, 022h, 000h, 000h, 000h, 000h 1878 ; mov dword [es:bx+022h], strict dword 000000000h ; 66 26 c7 47 22 00 00 00 00 1879 mov byte [es:bx+026h], 000h ; 26 c6 47 26 00 1880 mov word [es:bx+028h], 00200h ; 26 c7 47 28 00 02 1881 mov byte [es:bx+027h], 000h ; 26 c6 47 27 00 1803 1882 db 066h, 026h, 0c7h, 047h, 02ah, 000h, 000h, 000h, 000h 1804 1883 ; mov dword [es:bx+02ah], strict dword 000000000h ; 66 26 c7 47 2a 00 00 00 00 … … 1807 1886 db 066h, 026h, 0c7h, 047h, 032h, 000h, 000h, 000h, 000h 1808 1887 ; mov dword [es:bx+032h], strict dword 000000000h ; 66 26 c7 47 32 00 00 00 00 1888 db 066h, 026h, 0c7h, 047h, 03ah, 000h, 000h, 000h, 000h 1889 ; mov dword [es:bx+03ah], strict dword 000000000h ; 66 26 c7 47 3a 00 00 00 00 1890 db 066h, 026h, 0c7h, 047h, 036h, 000h, 000h, 000h, 000h 1891 ; mov dword [es:bx+036h], strict dword 000000000h ; 66 26 c7 47 36 00 00 00 00 1809 1892 db 0feh, 0c0h 1810 1893 ; inc al ; fe c0 1811 jmp short 01 befh ; eb b11894 jmp short 01cf1h ; eb a8 1812 1895 xor al, al ; 30 c0 1813 jmp short 01 c46h ; eb 041896 jmp short 01d51h ; eb 04 1814 1897 cmp AL, strict byte 010h ; 3c 10 1815 jnc short 01 c5dh ; 73 171898 jnc short 01d68h ; 73 17 1816 1899 movzx bx, al ; 0f b6 d8 1817 1900 mov es, dx ; 8e c2 1818 1901 add bx, si ; 01 f3 1819 mov byte [es:bx+001 9fh], 010h ; 26 c6 87 9f01 101820 mov byte [es:bx+001 b0h], 010h ; 26 c6 87 b001 101902 mov byte [es:bx+001e3h], 010h ; 26 c6 87 e3 01 10 1903 mov byte [es:bx+001f4h], 010h ; 26 c6 87 f4 01 10 1821 1904 db 0feh, 0c0h 1822 1905 ; inc al ; fe c0 1823 jmp short 01 c42h ; eb e51906 jmp short 01d4dh ; eb e5 1824 1907 mov es, dx ; 8e c2 1825 mov byte [es:si+001 9eh], 000h ; 26 c6 84 9e01 001826 mov byte [es:si+001 afh], 000h ; 26 c6 84 af01 001908 mov byte [es:si+001e2h], 000h ; 26 c6 84 e2 01 00 1909 mov byte [es:si+001f3h], 000h ; 26 c6 84 f3 01 00 1827 1910 lea sp, [bp-002h] ; 8d 66 fe 1828 1911 pop si ; 5e 1829 1912 pop bp ; 5d 1830 1913 retn ; c3 1831 ata_reset_: ; 0xf1 c71LB 0xde1914 ata_reset_: ; 0xf1d7c LB 0xde 1832 1915 push bp ; 55 1833 1916 mov bp, sp ; 89 e5 … … 1842 1925 mov dx, strict word 0000eh ; ba 0e 00 1843 1926 mov ax, strict word 00040h ; b8 40 00 1844 call 0166ch ; e8 e7 f91927 call 0166ch ; e8 dc f8 1845 1928 mov word [bp-00eh], 00122h ; c7 46 f2 22 01 1846 1929 mov di, ax ; 89 c7 … … 1854 1937 mov es, ax ; 8e c0 1855 1938 add bx, 00122h ; 81 c3 22 01 1856 mov cx, word [es:bx+00 1c2h] ; 26 8b 8f c2 011857 mov si, word [es:bx+00 1c4h] ; 26 8b b7 c4 011939 mov cx, word [es:bx+00206h] ; 26 8b 8f 06 02 1940 mov si, word [es:bx+00208h] ; 26 8b b7 08 02 1858 1941 lea dx, [si+006h] ; 8d 54 06 1859 1942 mov AL, strict byte 00eh ; b0 0e … … 1862 1945 dec bx ; 4b 1863 1946 test bx, bx ; 85 db 1864 jbe short 01 cc9h ; 76 0c1947 jbe short 01dd4h ; 76 0c 1865 1948 mov dx, cx ; 89 ca 1866 1949 add dx, strict byte 00007h ; 83 c2 07 … … 1869 1952 ; sub ah, ah ; 2a e4 1870 1953 test AL, strict byte 080h ; a8 80 1871 je short 01 cb8h ; 74 ef1954 je short 01dc3h ; 74 ef 1872 1955 lea dx, [si+006h] ; 8d 54 06 1873 1956 mov AL, strict byte 00ah ; b0 0a 1874 1957 out DX, AL ; ee 1875 imul bx, word [bp-010h], strict byte 0001 8h ; 6b 5e f0 181958 imul bx, word [bp-010h], strict byte 0001ch ; 6b 5e f0 1c 1876 1959 mov es, di ; 8e c7 1877 1960 add bx, word [bp-00eh] ; 03 5e f2 1878 cmp byte [es:bx+0 1eh], 000h ; 26 80 7f 1e001879 je short 01 d2bh ; 74 4c1961 cmp byte [es:bx+022h], 000h ; 26 80 7f 22 00 1962 je short 01e36h ; 74 4c 1880 1963 cmp byte [bp-00ch], 000h ; 80 7e f4 00 1881 je short 01 ceah ; 74 051964 je short 01df5h ; 74 05 1882 1965 mov ax, 000b0h ; b8 b0 00 1883 jmp short 01 cedh ; eb 031966 jmp short 01df8h ; eb 03 1884 1967 mov ax, 000a0h ; b8 a0 00 1885 1968 mov dx, cx ; 89 ca … … 1899 1982 ; sub ah, ah ; 2a e4 1900 1983 cmp bl, 001h ; 80 fb 01 1901 jne short 01 d2bh ; 75 221984 jne short 01e36h ; 75 22 1902 1985 cmp al, bl ; 38 d8 1903 jne short 01 d2bh ; 75 1e1986 jne short 01e36h ; 75 1e 1904 1987 mov bx, strict word 0ffffh ; bb ff ff 1905 1988 dec bx ; 4b 1906 1989 test bx, bx ; 85 db 1907 jbe short 01 d2bh ; 76 161990 jbe short 01e36h ; 76 16 1908 1991 mov dx, cx ; 89 ca 1909 1992 add dx, strict byte 00007h ; 83 c2 07 … … 1912 1995 ; sub ah, ah ; 2a e4 1913 1996 test AL, strict byte 080h ; a8 80 1914 je short 01 d2bh ; 74 0a1997 je short 01e36h ; 74 0a 1915 1998 mov ax, strict word 0ffffh ; b8 ff ff 1916 1999 dec ax ; 48 1917 2000 test ax, ax ; 85 c0 1918 jnbe short 01 d24h ; 77 fb1919 jmp short 01 d10h ; eb e52001 jnbe short 01e2fh ; 77 fb 2002 jmp short 01e1bh ; eb e5 1920 2003 mov bx, strict word 00010h ; bb 10 00 1921 2004 dec bx ; 4b 1922 2005 test bx, bx ; 85 db 1923 jbe short 01 d3fh ; 76 0c2006 jbe short 01e4ah ; 76 0c 1924 2007 mov dx, cx ; 89 ca 1925 2008 add dx, strict byte 00007h ; 83 c2 07 … … 1928 2011 ; sub ah, ah ; 2a e4 1929 2012 test AL, strict byte 040h ; a8 40 1930 je short 01 d2eh ; 74 ef2013 je short 01e39h ; 74 ef 1931 2014 lea dx, [si+006h] ; 8d 54 06 1932 2015 mov AL, strict byte 008h ; b0 08 … … 1940 2023 pop bp ; 5d 1941 2024 retn ; c3 1942 ata_cmd_data_in_: ; 0xf1 d4f LB 0x2582025 ata_cmd_data_in_: ; 0xf1e5a LB 0x2e2 1943 2026 push bp ; 55 1944 2027 mov bp, sp ; 89 e5 1945 2028 push si ; 56 1946 2029 push di ; 57 1947 sub sp, strict byte 0001 ch ; 83 ec 1c1948 mov si, ax ; 89 c61949 mov word [bp-00ah], dx ; 89 56 f61950 mov word [bp-016h], bx ; 89 5e ea1951 mov word [bp-014h], cx ; 89 4e ec2030 sub sp, strict byte 00012h ; 83 ec 12 2031 push ax ; 50 2032 push dx ; 52 2033 push bx ; 53 2034 push cx ; 51 1952 2035 mov es, dx ; 8e c2 1953 movzx ax, byte [es:si+008h] ; 26 0f b6 44 08 1954 mov dx, ax ; 89 c2 1955 shr dx, 1 ; d1 ea 1956 mov dh, al ; 88 c6 1957 and dh, 001h ; 80 e6 01 1958 mov byte [bp-008h], dh ; 88 76 f8 1959 movzx di, dl ; 0f b6 fa 1960 imul di, di, strict byte 00006h ; 6b ff 06 1961 add di, si ; 01 f7 1962 mov bx, word [es:di+001c2h] ; 26 8b 9d c2 01 1963 mov dx, word [es:di+001c4h] ; 26 8b 95 c4 01 1964 mov word [bp-01ch], dx ; 89 56 e4 1965 imul ax, ax, strict byte 00018h ; 6b c0 18 1966 mov di, si ; 89 f7 2036 mov bx, ax ; 89 c3 2037 mov al, byte [es:bx+00ch] ; 26 8a 47 0c 2038 mov byte [bp-00ah], al ; 88 46 f6 2039 movzx bx, al ; 0f b6 d8 2040 mov ax, bx ; 89 d8 2041 cwd ; 99 2042 db 02bh, 0c2h 2043 ; sub ax, dx ; 2b c2 2044 sar ax, 1 ; d1 f8 2045 imul ax, ax, strict byte 00006h ; 6b c0 06 2046 mov di, word [bp-018h] ; 8b 7e e8 1967 2047 add di, ax ; 01 c7 1968 mov al, byte [es:di+022h] ; 26 8a 45 22 1969 mov byte [bp-006h], al ; 88 46 fa 1970 mov ax, word [es:di+024h] ; 26 8b 45 24 2048 mov ax, word [es:di+00206h] ; 26 8b 85 06 02 1971 2049 mov word [bp-00ch], ax ; 89 46 f4 2050 mov ax, word [es:di+00208h] ; 26 8b 85 08 02 2051 mov word [bp-010h], ax ; 89 46 f0 2052 imul bx, bx, strict byte 0001ch ; 6b db 1c 2053 mov di, word [bp-018h] ; 8b 7e e8 2054 add di, bx ; 01 df 2055 mov al, byte [es:di+026h] ; 26 8a 45 26 2056 mov byte [bp-008h], al ; 88 46 f8 2057 mov ax, word [es:di+028h] ; 26 8b 45 28 2058 mov word [bp-00eh], ax ; 89 46 f2 1972 2059 test ax, ax ; 85 c0 1973 jne short 01db7h ; 75 14 1974 cmp byte [bp-006h], 001h ; 80 7e fa 01 1975 jne short 01db0h ; 75 07 1976 mov word [bp-00ch], 04000h ; c7 46 f4 00 40 1977 jmp short 01dc6h ; eb 16 1978 mov word [bp-00ch], 08000h ; c7 46 f4 00 80 1979 jmp short 01dc6h ; eb 0f 1980 cmp byte [bp-006h], 001h ; 80 7e fa 01 1981 jne short 01dc3h ; 75 06 1982 shr word [bp-00ch], 002h ; c1 6e f4 02 1983 jmp short 01dc6h ; eb 03 1984 shr word [bp-00ch], 1 ; d1 6e f4 1985 lea dx, [bx+007h] ; 8d 57 07 2060 jne short 01ec1h ; 75 14 2061 cmp byte [bp-008h], 001h ; 80 7e f8 01 2062 jne short 01ebah ; 75 07 2063 mov word [bp-00eh], 04000h ; c7 46 f2 00 40 2064 jmp short 01ed0h ; eb 16 2065 mov word [bp-00eh], 08000h ; c7 46 f2 00 80 2066 jmp short 01ed0h ; eb 0f 2067 cmp byte [bp-008h], 001h ; 80 7e f8 01 2068 jne short 01ecdh ; 75 06 2069 shr word [bp-00eh], 002h ; c1 6e f2 02 2070 jmp short 01ed0h ; eb 03 2071 shr word [bp-00eh], 1 ; d1 6e f2 2072 mov dx, word [bp-00ch] ; 8b 56 f4 2073 add dx, strict byte 00007h ; 83 c2 07 1986 2074 in AL, DX ; ec 1987 2075 db 02ah, 0e4h 1988 2076 ; sub ah, ah ; 2a e4 1989 2077 test AL, strict byte 080h ; a8 80 1990 je short 01 ddfh ; 74 0f1991 mov dx, word [bp-01 ch] ; 8b 56 e42078 je short 01eech ; 74 0f 2079 mov dx, word [bp-010h] ; 8b 56 f0 1992 2080 add dx, strict byte 00006h ; 83 c2 06 1993 2081 mov AL, strict byte 008h ; b0 08 1994 2082 out DX, AL ; ee 1995 2083 mov dx, strict word 00001h ; ba 01 00 1996 jmp near 01f9eh ; e9 bf 01 1997 mov es, [bp-00ah] ; 8e 46 f6 1998 mov ax, word [es:si] ; 26 8b 04 1999 mov word [bp-020h], ax ; 89 46 e0 2000 mov ax, word [es:si+002h] ; 26 8b 44 02 2001 mov word [bp-01eh], ax ; 89 46 e2 2002 mov di, word [es:si+004h] ; 26 8b 7c 04 2084 jmp near 02133h ; e9 47 02 2085 mov es, [bp-01ah] ; 8e 46 e6 2086 mov di, word [bp-018h] ; 8b 7e e8 2087 mov di, word [es:di+008h] ; 26 8b 7d 08 2088 mov bx, word [bp-018h] ; 8b 5e e8 2089 mov ax, word [es:bx+00ah] ; 26 8b 47 0a 2090 mov word [bp-012h], ax ; 89 46 ee 2091 mov al, byte [es:bx+016h] ; 26 8a 47 16 2092 mov byte [bp-006h], al ; 88 46 fa 2093 mov ax, word [es:bx+012h] ; 26 8b 47 12 2094 mov word [bp-014h], ax ; 89 46 ec 2095 mov bl, byte [es:bx+014h] ; 26 8a 5f 14 2096 mov al, byte [bp-006h] ; 8a 46 fa 2097 test al, al ; 84 c0 2098 jne near 01ffeh ; 0f 85 e3 00 2099 xor bx, bx ; 31 db 2100 xor dx, dx ; 31 d2 2101 xor ah, ah ; 30 e4 2102 mov word [bp-016h], ax ; 89 46 ea 2103 mov si, word [bp-018h] ; 8b 76 e8 2104 mov cx, word [es:si] ; 26 8b 0c 2105 add cx, word [bp-01eh] ; 03 4e e2 2106 adc bx, word [es:si+002h] ; 26 13 5c 02 2107 adc dx, word [es:si+004h] ; 26 13 54 04 2003 2108 mov ax, word [es:si+006h] ; 26 8b 44 06 2004 mov word [bp-00eh], ax ; 89 46 f2 2005 mov ax, word [es:si+012h] ; 26 8b 44 12 2006 mov word [bp-010h], ax ; 89 46 f0 2007 mov ax, word [es:si+00eh] ; 26 8b 44 0e 2008 mov word [bp-012h], ax ; 89 46 ee 2009 mov ax, word [es:si+010h] ; 26 8b 44 10 2010 mov word [bp-018h], ax ; 89 46 e8 2011 mov ax, word [bp-010h] ; 8b 46 f0 2109 adc ax, word [bp-016h] ; 13 46 ea 2012 2110 test ax, ax ; 85 c0 2013 jne short 01e7dh ; 75 67 2014 mov dx, word [bp-020h] ; 8b 56 e0 2015 add dx, word [bp-014h] ; 03 56 ec 2016 adc ax, word [bp-01eh] ; 13 46 e2 2017 cmp ax, 01000h ; 3d 00 10 2018 jnbe short 01e26h ; 77 02 2019 jne short 01e51h ; 75 2b 2111 jnbe short 01f50h ; 77 10 2112 jne short 01fb4h ; 75 72 2113 test dx, dx ; 85 d2 2114 jnbe short 01f50h ; 77 0a 2115 jne short 01fb4h ; 75 6c 2116 cmp bx, 01000h ; 81 fb 00 10 2117 jnbe short 01f50h ; 77 02 2118 jne short 01fb4h ; 75 64 2119 mov bx, si ; 89 f3 2120 mov ax, word [es:bx+006h] ; 26 8b 47 06 2121 mov bx, word [es:bx+004h] ; 26 8b 5f 04 2122 mov cx, word [es:si+002h] ; 26 8b 4c 02 2123 mov dx, word [es:si] ; 26 8b 14 2124 mov si, strict word 00018h ; be 18 00 2125 call 09d5ah ; e8 f3 7d 2126 xor dh, dh ; 30 f6 2127 mov word [bp-016h], dx ; 89 56 ea 2128 mov bx, word [bp-018h] ; 8b 5e e8 2129 mov ax, word [es:bx+006h] ; 26 8b 47 06 2130 mov bx, word [es:bx+004h] ; 26 8b 5f 04 2131 mov si, word [bp-018h] ; 8b 76 e8 2132 mov cx, word [es:si+002h] ; 26 8b 4c 02 2133 mov dx, word [es:si] ; 26 8b 14 2134 mov si, strict word 00020h ; be 20 00 2135 call 09d5ah ; e8 d3 7d 2136 mov bx, dx ; 89 d3 2020 2137 mov ax, word [bp-01eh] ; 8b 46 e2 2021 2138 xor al, al ; 30 c0 2022 2139 shr ax, 008h ; c1 e8 08 2023 mov word [bp-010h], ax ; 89 46 f0 2024 mov ax, word [bp-014h] ; 8b 46 ec 2025 xor al, al ; 30 c0 2140 mov dx, word [bp-00ch] ; 8b 56 f4 2141 inc dx ; 42 2142 inc dx ; 42 2143 out DX, AL ; ee 2144 mov dx, word [bp-00ch] ; 8b 56 f4 2145 add dx, strict byte 00003h ; 83 c2 03 2146 mov al, byte [bp-016h] ; 8a 46 ea 2147 out DX, AL ; ee 2148 mov ax, bx ; 89 d8 2149 mov dx, word [bp-00ch] ; 8b 56 f4 2150 add dx, strict byte 00004h ; 83 c2 04 2151 out DX, AL ; ee 2026 2152 shr ax, 008h ; c1 e8 08 2027 lea dx, [bx+002h] ; 8d 57 022028 out DX, AL ; ee2029 lea dx, [bx+003h] ; 8d 57 032030 mov al, byte [bp-010h] ; 8a 46 f02031 out DX, AL ; ee2032 lea dx, [bx+004h] ; 8d 57 042033 xor al, al ; 30 c02034 out DX, AL ; ee2035 lea dx, [bx+005h] ; 8d 57 052036 out DX, AL ; ee2037 mov byte [bp-01dh], al ; 88 46 e32038 mov ax, word [bp-020h] ; 8b 46 e02039 xor ah, ah ; 30 e42040 mov word [bp-010h], ax ; 89 46 f02041 mov cx, strict word 00008h ; b9 08 002042 shr word [bp-01eh], 1 ; d1 6e e22043 rcr word [bp-020h], 1 ; d1 5e e02044 loop 01e5ch ; e2 f82045 mov ax, word [bp-020h] ; 8b 46 e02046 mov word [bp-012h], ax ; 89 46 ee2047 mov ax, word [bp-01eh] ; 8b 46 e22048 mov word [bp-020h], ax ; 89 46 e02049 mov word [bp-01eh], strict word 00000h ; c7 46 e2 00 002050 and ax, strict word 0000fh ; 25 0f 002051 or AL, strict byte 040h ; 0c402052 mov word [bp-018h], ax ; 89 46 e82053 mov dx, word [bp-01 ch] ; 8b 56 e42153 mov dx, word [bp-00ch] ; 8b 56 f4 2154 add dx, strict byte 00005h ; 83 c2 05 2155 out DX, AL ; ee 2156 mov es, [bp-01ah] ; 8e 46 e6 2157 mov bx, word [bp-018h] ; 8b 5e e8 2158 mov ax, word [es:bx] ; 26 8b 07 2159 mov byte [bp-006h], al ; 88 46 fa 2160 mov ax, word [es:bx+006h] ; 26 8b 47 06 2161 mov bx, word [es:bx+004h] ; 26 8b 5f 04 2162 mov si, word [bp-018h] ; 8b 76 e8 2163 mov cx, word [es:si+002h] ; 26 8b 4c 02 2164 mov dx, word [es:si] ; 26 8b 14 2165 mov si, strict word 00008h ; be 08 00 2166 call 09d5ah ; e8 82 7d 2167 mov word [bp-014h], dx ; 89 56 ec 2168 mov bx, word [bp-018h] ; 8b 5e e8 2169 mov ax, word [es:bx+006h] ; 26 8b 47 06 2170 mov bx, word [es:bx+004h] ; 26 8b 5f 04 2171 mov si, word [bp-018h] ; 8b 76 e8 2172 mov cx, word [es:si+002h] ; 26 8b 4c 02 2173 mov dx, word [es:si] ; 26 8b 14 2174 mov si, strict word 00018h ; be 18 00 2175 call 09d5ah ; e8 64 7d 2176 and dx, strict byte 0000fh ; 83 e2 0f 2177 or dl, 040h ; 80 ca 40 2178 mov bx, dx ; 89 d3 2179 mov dx, word [bp-010h] ; 8b 56 f0 2054 2180 add dx, strict byte 00006h ; 83 c2 06 2055 2181 mov AL, strict byte 00ah ; b0 0a 2056 2182 out DX, AL ; ee 2057 lea dx, [bx+001h] ; 8d 57 01 2183 mov dx, word [bp-00ch] ; 8b 56 f4 2184 inc dx ; 42 2058 2185 xor al, al ; 30 c0 2059 2186 out DX, AL ; ee 2060 lea dx, [bx+002h] ; 8d 57 02 2061 mov al, byte [bp-014h] ; 8a 46 ec 2062 out DX, AL ; ee 2063 lea dx, [bx+003h] ; 8d 57 03 2064 mov al, byte [bp-010h] ; 8a 46 f0 2065 out DX, AL ; ee 2066 mov ax, word [bp-012h] ; 8b 46 ee 2067 lea dx, [bx+004h] ; 8d 57 04 2187 mov dx, word [bp-00ch] ; 8b 56 f4 2188 inc dx ; 42 2189 inc dx ; 42 2190 mov al, byte [bp-01eh] ; 8a 46 e2 2191 out DX, AL ; ee 2192 mov dx, word [bp-00ch] ; 8b 56 f4 2193 add dx, strict byte 00003h ; 83 c2 03 2194 mov al, byte [bp-006h] ; 8a 46 fa 2195 out DX, AL ; ee 2196 mov ax, word [bp-014h] ; 8b 46 ec 2197 mov dx, word [bp-00ch] ; 8b 56 f4 2198 add dx, strict byte 00004h ; 83 c2 04 2068 2199 out DX, AL ; ee 2069 2200 shr ax, 008h ; c1 e8 08 2070 lea dx, [bx+005h] ; 8d 57 05 2071 out DX, AL ; ee 2072 cmp byte [bp-008h], 000h ; 80 7e f8 00 2073 je short 01eb3h ; 74 05 2201 mov dx, word [bp-00ch] ; 8b 56 f4 2202 add dx, strict byte 00005h ; 83 c2 05 2203 out DX, AL ; ee 2204 test byte [bp-00ah], 001h ; f6 46 f6 01 2205 je short 02040h ; 74 05 2074 2206 mov ax, 000b0h ; b8 b0 00 2075 jmp short 0 1eb6h ; eb 032207 jmp short 02043h ; eb 03 2076 2208 mov ax, 000a0h ; b8 a0 00 2077 movzx dx, b yte [bp-018h] ; 0f b6 56 e82209 movzx dx, bl ; 0f b6 d3 2078 2210 or ax, dx ; 09 d0 2079 lea dx, [bx+006h] ; 8d 57 06 2080 out DX, AL ; ee 2081 lea dx, [bx+007h] ; 8d 57 07 2082 mov al, byte [bp-016h] ; 8a 46 ea 2083 out DX, AL ; ee 2084 mov ax, word [bp-016h] ; 8b 46 ea 2211 mov dx, word [bp-00ch] ; 8b 56 f4 2212 add dx, strict byte 00006h ; 83 c2 06 2213 out DX, AL ; ee 2214 mov dx, word [bp-00ch] ; 8b 56 f4 2215 add dx, strict byte 00007h ; 83 c2 07 2216 mov al, byte [bp-01ch] ; 8a 46 e4 2217 out DX, AL ; ee 2218 mov ax, word [bp-01ch] ; 8b 46 e4 2085 2219 cmp ax, 000c4h ; 3d c4 00 2086 je short 0 1ed4h ; 74 052220 je short 02066h ; 74 05 2087 2221 cmp ax, strict word 00029h ; 3d 29 00 2088 jne short 0 1ee1h ; 75 0d2089 mov ax, word [bp-014h] ; 8b 46 ec2090 mov word [bp-01 ah], ax ; 89 46 e62091 mov word [bp-014h], strict word 00001h ; c7 46 ec 01 002092 jmp short 01ee6h ; eb 052093 mov word [bp-01ah], strict word 00001h ; c7 46 e6 01 002094 lea dx, [bx+007h] ; 8d 57072222 jne short 02070h ; 75 0a 2223 mov bx, word [bp-01eh] ; 8b 5e e2 2224 mov word [bp-01eh], strict word 00001h ; c7 46 e2 01 00 2225 jmp short 02073h ; eb 03 2226 mov bx, strict word 00001h ; bb 01 00 2227 mov dx, word [bp-00ch] ; 8b 56 f4 2228 add dx, strict byte 00007h ; 83 c2 07 2095 2229 in AL, DX ; ec 2096 2230 db 02ah, 0e4h … … 2098 2232 mov dl, al ; 88 c2 2099 2233 test AL, strict byte 080h ; a8 80 2100 jne short 0 1ee6h ; 75 f42234 jne short 02073h ; 75 f1 2101 2235 test AL, strict byte 001h ; a8 01 2102 je short 0 1f05h ; 74 0f2103 mov dx, word [bp-01 ch] ; 8b 56 e42236 je short 02095h ; 74 0f 2237 mov dx, word [bp-010h] ; 8b 56 f0 2104 2238 add dx, strict byte 00006h ; 83 c2 06 2105 2239 mov AL, strict byte 008h ; b0 08 2106 2240 out DX, AL ; ee 2107 2241 mov dx, strict word 00002h ; ba 02 00 2108 jmp near 0 1f9eh ; e9 99002242 jmp near 02133h ; e9 9e 00 2109 2243 test dl, 008h ; f6 c2 08 2110 jne short 0 1f19h ; 75 0f2111 mov dx, word [bp-01 ch] ; 8b 56 e42244 jne short 020a9h ; 75 0f 2245 mov dx, word [bp-010h] ; 8b 56 f0 2112 2246 add dx, strict byte 00006h ; 83 c2 06 2113 2247 mov AL, strict byte 008h ; b0 08 2114 2248 out DX, AL ; ee 2115 2249 mov dx, strict word 00003h ; ba 03 00 2116 jmp near 0 1f9eh ; e9 85002250 jmp near 02133h ; e9 8a 00 2117 2251 sti ; fb 2118 2252 cmp di, 0f800h ; 81 ff 00 f8 2119 jc short 0 1f2dh ; 72 0d2253 jc short 020bdh ; 72 0d 2120 2254 sub di, 00800h ; 81 ef 00 08 2121 mov ax, word [bp-0 0eh] ; 8b 46 f22255 mov ax, word [bp-012h] ; 8b 46 ee 2122 2256 add ax, 00080h ; 05 80 00 2123 mov word [bp-0 0eh], ax ; 89 46 f22124 cmp byte [bp-00 6h], 001h ; 80 7e fa012125 jne short 0 1f40h ; 75 0d2126 mov dx, bx ; 89 da2127 mov cx, word [bp-00 ch] ; 8b 4e f42128 mov es, [bp-0 0eh] ; 8e 46 f22257 mov word [bp-012h], ax ; 89 46 ee 2258 cmp byte [bp-008h], 001h ; 80 7e f8 01 2259 jne short 020d1h ; 75 0e 2260 mov dx, word [bp-00ch] ; 8b 56 f4 2261 mov cx, word [bp-00eh] ; 8b 4e f2 2262 mov es, [bp-012h] ; 8e 46 ee 2129 2263 db 0f3h, 066h, 06dh 2130 2264 ; rep insd ; f3 66 6d 2131 jmp short 0 1f4ah ; eb 0a2132 mov dx, bx ; 89 da2133 mov cx, word [bp-00 ch] ; 8b 4e f42134 mov es, [bp-0 0eh] ; 8e 46 f22265 jmp short 020dch ; eb 0b 2266 mov dx, word [bp-00ch] ; 8b 56 f4 2267 mov cx, word [bp-00eh] ; 8b 4e f2 2268 mov es, [bp-012h] ; 8e 46 ee 2135 2269 rep insw ; f3 6d 2136 mov ax, word [bp-01ah] ; 8b 46 e6 2137 mov es, [bp-00ah] ; 8e 46 f6 2138 add word [es:si+014h], ax ; 26 01 44 14 2139 dec word [bp-014h] ; ff 4e ec 2140 lea dx, [bx+007h] ; 8d 57 07 2270 mov es, [bp-01ah] ; 8e 46 e6 2271 mov si, word [bp-018h] ; 8b 76 e8 2272 add word [es:si+018h], bx ; 26 01 5c 18 2273 dec word [bp-01eh] ; ff 4e e2 2274 mov dx, word [bp-00ch] ; 8b 56 f4 2275 add dx, strict byte 00007h ; 83 c2 07 2141 2276 in AL, DX ; ec 2142 2277 db 02ah, 0e4h … … 2144 2279 mov dl, al ; 88 c2 2145 2280 test AL, strict byte 080h ; a8 80 2146 jne short 0 1f57h ; 75 f42147 cmp word [bp-01 4h], strict byte 00000h ; 83 7e ec002148 jne short 0 1f7dh ; 75 142281 jne short 020e9h ; 75 f1 2282 cmp word [bp-01eh], strict byte 00000h ; 83 7e e2 00 2283 jne short 02112h ; 75 14 2149 2284 and AL, strict byte 0c9h ; 24 c9 2150 2285 cmp AL, strict byte 040h ; 3c 40 2151 je short 0 1f93h ; 74 242152 mov dx, word [bp-01 ch] ; 8b 56 e42286 je short 02128h ; 74 24 2287 mov dx, word [bp-010h] ; 8b 56 f0 2153 2288 add dx, strict byte 00006h ; 83 c2 06 2154 2289 mov AL, strict byte 008h ; b0 08 2155 2290 out DX, AL ; ee 2156 2291 mov dx, strict word 00004h ; ba 04 00 2157 jmp short 0 1f9eh ; eb 212292 jmp short 02133h ; eb 21 2158 2293 mov al, dl ; 88 d0 2159 2294 and AL, strict byte 0c9h ; 24 c9 2160 2295 cmp AL, strict byte 048h ; 3c 48 2161 je short 0 1f1ah ; 74 952162 mov dx, word [bp-01 ch] ; 8b 56 e42296 je short 020aah ; 74 90 2297 mov dx, word [bp-010h] ; 8b 56 f0 2163 2298 add dx, strict byte 00006h ; 83 c2 06 2164 2299 mov AL, strict byte 008h ; b0 08 2165 2300 out DX, AL ; ee 2166 2301 mov dx, strict word 00005h ; ba 05 00 2167 jmp short 0 1f9eh ; eb 0b2168 mov dx, word [bp-01 ch] ; 8b 56 e42302 jmp short 02133h ; eb 0b 2303 mov dx, word [bp-010h] ; 8b 56 f0 2169 2304 add dx, strict byte 00006h ; 83 c2 06 2170 2305 mov AL, strict byte 008h ; b0 08 … … 2177 2312 pop bp ; 5d 2178 2313 retn ; c3 2179 _ata_detect: ; 0xf 1fa7 LB 0x6172314 _ata_detect: ; 0xf213c LB 0x65c 2180 2315 push bp ; 55 2181 2316 mov bp, sp ; 89 e5 2182 2317 push si ; 56 2183 2318 push di ; 57 2184 sub sp, 002 5ch ; 81 ec 5c022319 sub sp, 00260h ; 81 ec 60 02 2185 2320 mov dx, strict word 0000eh ; ba 0e 00 2186 2321 mov ax, strict word 00040h ; b8 40 00 2187 call 0166ch ; e8 b3 f62188 mov word [bp-02 4h], ax ; 89 46 dc2322 call 0166ch ; e8 1e f5 2323 mov word [bp-020h], ax ; 89 46 e0 2189 2324 mov di, 00122h ; bf 22 01 2190 2325 mov es, ax ; 8e c0 2191 mov word [bp-02 8h], di ; 89 7e d82192 mov word [bp-0 26h], ax ; 89 46 da2193 mov byte [es:di+00 1c0h], 000h ; 26 c6 85 c0 01002194 db 066h, 026h, 0c7h, 085h, 0 c2h, 001h, 0f0h, 001h, 0f0h, 003h2195 ; mov dword [es:di+00 1c2h], strict dword 003f001f0h ; 66 26 c7 85 c2 01f0 01 f0 032196 mov byte [es:di+00 1c1h], 00eh ; 26 c6 85 c1 010e2197 mov byte [es:di+00 1c6h], 000h ; 26 c6 85 c6 01002198 db 066h, 026h, 0c7h, 085h, 0 c8h, 001h, 070h, 001h, 070h, 003h2199 ; mov dword [es:di+00 1c8h], strict dword 003700170h ; 66 26 c7 85 c8 0170 01 70 032200 mov byte [es:di+00 1c7h], 00fh ; 26 c6 85 c7 010f2326 mov word [bp-022h], di ; 89 7e de 2327 mov word [bp-034h], ax ; 89 46 cc 2328 mov byte [es:di+00204h], 000h ; 26 c6 85 04 02 00 2329 db 066h, 026h, 0c7h, 085h, 006h, 002h, 0f0h, 001h, 0f0h, 003h 2330 ; mov dword [es:di+00206h], strict dword 003f001f0h ; 66 26 c7 85 06 02 f0 01 f0 03 2331 mov byte [es:di+00205h], 00eh ; 26 c6 85 05 02 0e 2332 mov byte [es:di+0020ah], 000h ; 26 c6 85 0a 02 00 2333 db 066h, 026h, 0c7h, 085h, 00ch, 002h, 070h, 001h, 070h, 003h 2334 ; mov dword [es:di+0020ch], strict dword 003700170h ; 66 26 c7 85 0c 02 70 01 70 03 2335 mov byte [es:di+0020bh], 00fh ; 26 c6 85 0b 02 0f 2201 2336 xor al, al ; 30 c0 2202 mov byte [bp-00ah], al ; 88 46 f62203 2337 mov byte [bp-006h], al ; 88 46 fa 2204 mov byte [bp-00eh], al ; 88 46 f2 2205 jmp near 02549h ; e9 48 05 2338 mov byte [bp-010h], al ; 88 46 f0 2339 mov byte [bp-016h], al ; 88 46 ea 2340 jmp near 0271ch ; e9 86 05 2206 2341 mov ax, 000a0h ; b8 a0 00 2207 2342 lea dx, [si+006h] ; 8d 54 06 … … 2235 2370 ; sub ah, ah ; 2a e4 2236 2371 cmp cl, 055h ; 80 f9 55 2237 jne near 02 0fbh ; 0f 85 c0002372 jne near 0229ah ; 0f 85 ca 00 2238 2373 cmp AL, strict byte 0aah ; 3c aa 2239 jne near 020fbh ; 0f 85 ba 00 2240 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 2241 imul ax, ax, strict byte 00018h ; 6b c0 18 2242 les bx, [bp-028h] ; c4 5e d8 2374 jne near 0229ah ; 0f 85 c4 00 2375 movzx ax, byte [bp-016h] ; 0f b6 46 ea 2376 imul ax, ax, strict byte 0001ch ; 6b c0 1c 2377 mov es, [bp-034h] ; 8e 46 cc 2378 mov bx, word [bp-022h] ; 8b 5e de 2243 2379 add bx, ax ; 01 c3 2244 mov byte [es:bx+0 1eh], 001h ; 26 c6 47 1e012245 movzx ax, byte [bp-0 0eh] ; 0f b6 46 f22246 call 01 c71h ; e8 18 fc2247 cmp byte [bp-00 8h], 000h ; 80 7e f8002248 je short 02 064h ; 74 052380 mov byte [es:bx+022h], 001h ; 26 c6 47 22 01 2381 movzx ax, byte [bp-016h] ; 0f b6 46 ea 2382 call 01d7ch ; e8 8b fb 2383 cmp byte [bp-00eh], 000h ; 80 7e f2 00 2384 je short 021fch ; 74 05 2249 2385 mov ax, 000b0h ; b8 b0 00 2250 jmp short 02 067h ; eb 032386 jmp short 021ffh ; eb 03 2251 2387 mov ax, 000a0h ; b8 a0 00 2252 2388 lea dx, [si+006h] ; 8d 54 06 … … 2262 2398 ; sub ah, ah ; 2a e4 2263 2399 cmp bl, 001h ; 80 fb 01 2264 jne near 02 0fbh ; 0f 85 7b002400 jne near 0229ah ; 0f 85 82 00 2265 2401 cmp al, bl ; 38 d8 2266 jne near 02 0fbh ; 0f 85 75002402 jne near 0229ah ; 0f 85 7c 00 2267 2403 lea dx, [si+004h] ; 8d 54 04 2268 2404 in AL, DX ; ec … … 2270 2406 ; sub ah, ah ; 2a e4 2271 2407 mov bx, ax ; 89 c3 2272 mov b h, al ; 88 c72408 mov byte [bp-018h], al ; 88 46 e8 2273 2409 lea dx, [si+005h] ; 8d 54 05 2274 2410 in AL, DX ; ec … … 2276 2412 ; sub ah, ah ; 2a e4 2277 2413 mov cx, ax ; 89 c1 2278 mov b yte [bp-00ch], al ; 88 46 f42414 mov bh, al ; 88 c7 2279 2415 lea dx, [si+007h] ; 8d 54 07 2280 2416 in AL, DX ; ec … … 2282 2418 ; sub ah, ah ; 2a e4 2283 2419 cmp bl, 014h ; 80 fb 14 2284 jne short 02 0beh ; 75 182420 jne short 02259h ; 75 1b 2285 2421 cmp cl, 0ebh ; 80 f9 eb 2286 jne short 020beh ; 75 13 2287 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 2288 imul ax, ax, strict byte 00018h ; 6b c0 18 2289 les bx, [bp-028h] ; c4 5e d8 2422 jne short 02259h ; 75 16 2423 movzx ax, byte [bp-016h] ; 0f b6 46 ea 2424 imul ax, ax, strict byte 0001ch ; 6b c0 1c 2425 mov es, [bp-034h] ; 8e 46 cc 2426 mov bx, word [bp-022h] ; 8b 5e de 2290 2427 add bx, ax ; 01 c3 2291 mov byte [es:bx+01eh], 003h ; 26 c6 47 1e 03 2292 jmp short 020fbh ; eb 3d 2428 mov byte [es:bx+022h], 003h ; 26 c6 47 22 03 2429 jmp short 0229ah ; eb 41 2430 cmp byte [bp-018h], 000h ; 80 7e e8 00 2431 jne short 0227bh ; 75 1c 2293 2432 test bh, bh ; 84 ff 2294 jne short 020e0h ; 75 1e 2295 cmp byte [bp-00ch], 000h ; 80 7e f4 00 2296 jne short 020e0h ; 75 18 2433 jne short 0227bh ; 75 18 2297 2434 test al, al ; 84 c0 2298 je short 020e0h ; 74 14 2299 movzx bx, byte [bp-00eh] ; 0f b6 5e f2 2300 imul bx, bx, strict byte 00018h ; 6b db 18 2301 mov es, [bp-026h] ; 8e 46 da 2302 add bx, word [bp-028h] ; 03 5e d8 2303 mov byte [es:bx+01eh], 002h ; 26 c6 47 1e 02 2304 jmp short 020fbh ; eb 1b 2305 cmp bh, 0ffh ; 80 ff ff 2306 jne short 020fbh ; 75 16 2307 cmp bh, byte [bp-00ch] ; 3a 7e f4 2308 jne short 020fbh ; 75 11 2309 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 2310 imul ax, ax, strict byte 00018h ; 6b c0 18 2311 les bx, [bp-028h] ; c4 5e d8 2435 je short 0227bh ; 74 14 2436 movzx bx, byte [bp-016h] ; 0f b6 5e ea 2437 imul bx, bx, strict byte 0001ch ; 6b db 1c 2438 mov es, [bp-034h] ; 8e 46 cc 2439 add bx, word [bp-022h] ; 03 5e de 2440 mov byte [es:bx+022h], 002h ; 26 c6 47 22 02 2441 jmp short 0229ah ; eb 1f 2442 mov al, byte [bp-018h] ; 8a 46 e8 2443 cmp AL, strict byte 0ffh ; 3c ff 2444 jne short 0229ah ; 75 18 2445 cmp bh, al ; 38 c7 2446 jne short 0229ah ; 75 14 2447 movzx ax, byte [bp-016h] ; 0f b6 46 ea 2448 imul ax, ax, strict byte 0001ch ; 6b c0 1c 2449 mov es, [bp-034h] ; 8e 46 cc 2450 mov bx, word [bp-022h] ; 8b 5e de 2312 2451 add bx, ax ; 01 c3 2313 mov byte [es:bx+0 1eh], 000h ; 26 c6 47 1e002314 mov dx, word [bp-02 ch] ; 8b 56 d42452 mov byte [es:bx+022h], 000h ; 26 c6 47 22 00 2453 mov dx, word [bp-024h] ; 8b 56 dc 2315 2454 add dx, strict byte 00006h ; 83 c2 06 2316 2455 mov AL, strict byte 008h ; b0 08 2317 2456 out DX, AL ; ee 2318 movzx si, byte [bp-0 0eh] ; 0f b6 76 f22319 imul si, si, strict byte 0001 8h ; 6b f6 182320 mov es, [bp-0 26h] ; 8e 46 da2321 add si, word [bp-02 8h] ; 03 76 d82322 mov al, byte [es:si+0 1eh] ; 26 8a 44 1e2323 mov byte [bp-0 10h], al ; 88 46 f02457 movzx si, byte [bp-016h] ; 0f b6 76 ea 2458 imul si, si, strict byte 0001ch ; 6b f6 1c 2459 mov es, [bp-034h] ; 8e 46 cc 2460 add si, word [bp-022h] ; 03 76 de 2461 mov al, byte [es:si+022h] ; 26 8a 44 22 2462 mov byte [bp-00ah], al ; 88 46 f6 2324 2463 cmp AL, strict byte 002h ; 3c 02 2325 jne near 02 321h ; 0f 85 03022326 mov byte [es:si+0 1fh], 0ffh ; 26 c6 44 1fff2327 mov byte [es:si+02 2h], 000h ; 26 c6 44 22002328 lea dx, [bp-0026 0h] ; 8d 96 a0fd2329 mov bx, word [bp-02 8h] ; 8b 5e d82330 mov word [es:bx+00 4h], dx ; 26 89 57 042331 mov [es:bx+00 6h], ss ; 26 8c 57 062332 mov al, byte [bp-0 0eh] ; 8a 46 f22333 mov byte [es:bx+00 8h], al ; 26 88 47 082464 jne near 024e9h ; 0f 85 2c 02 2465 mov byte [es:si+023h], 0ffh ; 26 c6 44 23 ff 2466 mov byte [es:si+026h], 000h ; 26 c6 44 26 00 2467 lea dx, [bp-00264h] ; 8d 96 9c fd 2468 mov bx, word [bp-022h] ; 8b 5e de 2469 mov word [es:bx+008h], dx ; 26 89 57 08 2470 mov [es:bx+00ah], ss ; 26 8c 57 0a 2471 mov al, byte [bp-016h] ; 8a 46 ea 2472 mov byte [es:bx+00ch], al ; 26 88 47 0c 2334 2473 mov cx, strict word 00001h ; b9 01 00 2335 2474 mov bx, 000ech ; bb ec 00 2336 mov ax, word [bp-02 8h] ; 8b 46 d82475 mov ax, word [bp-022h] ; 8b 46 de 2337 2476 mov dx, es ; 8c c2 2338 call 01 d4fh ; e8 03 fc2477 call 01e5ah ; e8 6f fb 2339 2478 test ax, ax ; 85 c0 2340 je short 02 15bh ; 74 0b2341 push 001 04h ; 68 04 012479 je short 022fah ; 74 0b 2480 push 00124h ; 68 24 01 2342 2481 push strict byte 00007h ; 6a 07 2343 call 01972h ; e8 1a f82482 call 01972h ; e8 7b f6 2344 2483 add sp, strict byte 00004h ; 83 c4 04 2345 test byte [bp-0026 0h], 080h ; f6 86 a0fd 802484 test byte [bp-00264h], 080h ; f6 86 9c fd 80 2346 2485 db 00fh, 095h, 0c0h 2347 2486 ; setne al ; 0f 95 c0 2348 2487 xor ah, ah ; 30 e4 2349 2488 mov byte [bp-014h], al ; 88 46 ec 2350 cmp byte [bp-0020 0h], 000h ; 80 be 00 fe002489 cmp byte [bp-00204h], 000h ; 80 be fc fd 00 2351 2490 db 00fh, 095h, 0c0h 2352 2491 ; setne al ; 0f 95 c0 2353 2492 xor ah, ah ; 30 e4 2354 mov byte [bp-016h], al ; 88 46 ea 2355 mov word [bp-022h], 00200h ; c7 46 de 00 02 2493 mov byte [bp-012h], al ; 88 46 ee 2494 mov word [bp-02ah], 00200h ; c7 46 d6 00 02 2495 mov ax, word [bp-00262h] ; 8b 86 9e fd 2496 mov word [bp-026h], ax ; 89 46 da 2356 2497 mov ax, word [bp-0025eh] ; 8b 86 a2 fd 2498 mov word [bp-01ch], ax ; 89 46 e4 2499 mov ax, word [bp-00258h] ; 8b 86 a8 fd 2357 2500 mov word [bp-01ah], ax ; 89 46 e6 2358 mov ax, word [bp-0025ah] ; 8b 86 a6 fd 2359 mov word [bp-01ch], ax ; 89 46 e4 2360 mov ax, word [bp-00254h] ; 8b 86 ac fd 2501 mov si, word [bp-001ech] ; 8b b6 14 fe 2502 mov ax, word [bp-001eah] ; 8b 86 16 fe 2503 mov word [bp-02ch], ax ; 89 46 d4 2504 xor ax, ax ; 31 c0 2505 mov word [bp-028h], ax ; 89 46 d8 2361 2506 mov word [bp-01eh], ax ; 89 46 e2 2362 mov ax, word [bp-001e8h] ; 8b 86 18 fe 2363 mov word [bp-020h], ax ; 89 46 e0 2364 mov si, word [bp-001e6h] ; 8b b6 1a fe 2365 cmp si, 00fffh ; 81 fe ff 0f 2366 jne short 021b0h ; 75 10 2367 cmp ax, strict word 0ffffh ; 3d ff ff 2368 jne short 021b0h ; 75 0b 2507 cmp word [bp-02ch], 00fffh ; 81 7e d4 ff 0f 2508 jne short 02366h ; 75 1e 2509 cmp si, strict byte 0ffffh ; 83 fe ff 2510 jne short 02366h ; 75 19 2511 mov ax, word [bp-00196h] ; 8b 86 6a fe 2512 mov word [bp-01eh], ax ; 89 46 e2 2369 2513 mov ax, word [bp-00198h] ; 8b 86 68 fe 2370 mov word [bp-020h], ax ; 89 46 e0 2371 mov si, word [bp-00196h] ; 8b b6 6a fe 2372 mov al, byte [bp-00eh] ; 8a 46 f2 2514 mov word [bp-028h], ax ; 89 46 d8 2515 mov ax, word [bp-0019ah] ; 8b 86 66 fe 2516 mov word [bp-02ch], ax ; 89 46 d4 2517 mov si, word [bp-0019ch] ; 8b b6 64 fe 2518 mov al, byte [bp-016h] ; 8a 46 ea 2373 2519 cmp AL, strict byte 001h ; 3c 01 2374 jc short 02 1c3h ; 72 0c2375 jbe short 02 1cbh ; 76 122520 jc short 02379h ; 72 0c 2521 jbe short 02381h ; 76 12 2376 2522 cmp AL, strict byte 003h ; 3c 03 2377 je short 02 1d3h ; 74 162523 je short 02389h ; 74 16 2378 2524 cmp AL, strict byte 002h ; 3c 02 2379 je short 02 1cfh ; 74 0e2380 jmp short 02 210h ; eb 4d2525 je short 02385h ; 74 0e 2526 jmp short 023c6h ; eb 4d 2381 2527 test al, al ; 84 c0 2382 jne short 02 210h ; 75 492528 jne short 023c6h ; 75 49 2383 2529 mov BL, strict byte 01eh ; b3 1e 2384 jmp short 02 1d5h ; eb 0a2530 jmp short 0238bh ; eb 0a 2385 2531 mov BL, strict byte 026h ; b3 26 2386 jmp short 02 1d5h ; eb 062532 jmp short 0238bh ; eb 06 2387 2533 mov BL, strict byte 067h ; b3 67 2388 jmp short 02 1d5h ; eb 022534 jmp short 0238bh ; eb 02 2389 2535 mov BL, strict byte 070h ; b3 70 2390 2536 mov al, bl ; 88 d8 … … 2392 2538 ; inc al ; fe c0 2393 2539 xor ah, ah ; 30 e4 2394 call 016ach ; e8 ce f42540 call 016ach ; e8 18 f3 2395 2541 xor ah, ah ; 30 e4 2396 2542 mov dx, ax ; 89 c2 2397 2543 sal dx, 008h ; c1 e2 08 2398 2544 movzx ax, bl ; 0f b6 c3 2399 call 016ach ; e8 c1 f42545 call 016ach ; e8 0b f3 2400 2546 xor ah, ah ; 30 e4 2401 2547 add ax, dx ; 01 d0 2402 mov word [bp-03 4h], ax ; 89 46 cc2548 mov word [bp-038h], ax ; 89 46 c8 2403 2549 mov al, bl ; 88 d8 2404 2550 add AL, strict byte 002h ; 04 02 2405 2551 xor ah, ah ; 30 e4 2406 call 016ach ; e8 b1 f42552 call 016ach ; e8 fb f2 2407 2553 xor ah, ah ; 30 e4 2408 mov word [bp-03 6h], ax ; 89 46 ca2554 mov word [bp-03ah], ax ; 89 46 c6 2409 2555 mov al, bl ; 88 d8 2410 2556 add AL, strict byte 007h ; 04 07 2411 2557 xor ah, ah ; 30 e4 2412 call 016ach ; e8 a3 f42558 call 016ach ; e8 ed f2 2413 2559 xor ah, ah ; 30 e4 2414 mov word [bp-032h], ax ; 89 46 ce 2415 jmp short 0221dh ; eb 0d 2416 mov bx, word [bp-020h] ; 8b 5e e0 2417 mov cx, si ; 89 f1 2560 mov word [bp-036h], ax ; 89 46 ca 2561 jmp short 023d8h ; eb 12 2562 push word [bp-01eh] ; ff 76 e2 2563 push word [bp-028h] ; ff 76 d8 2564 push word [bp-02ch] ; ff 76 d4 2565 push si ; 56 2418 2566 mov dx, ss ; 8c d2 2419 lea ax, [bp-03 6h] ; 8d 46 ca2420 call 05 5b6h ; e8 99 332421 mov bx, 00da 2h ; bb a20d2567 lea ax, [bp-03ah] ; 8d 46 c6 2568 call 0588bh ; e8 b3 34 2569 mov bx, 00da0h ; bb a0 0d 2422 2570 mov cx, ds ; 8c d9 2423 2571 mov ax, strict word 00004h ; b8 04 00 2424 call 01931h ; e8 09 f7 2425 mov ax, word [bp-032h] ; 8b 46 ce 2426 push ax ; 50 2572 call 01931h ; e8 4e f5 2427 2573 mov ax, word [bp-036h] ; 8b 46 ca 2428 2574 push ax ; 50 2429 mov ax, word [bp-03 4h] ; 8b 46 cc2575 mov ax, word [bp-03ah] ; 8b 46 c6 2430 2576 push ax ; 50 2431 push word [bp-01eh] ; ff 76 e2 2432 push word [bp-01ch] ; ff 76 e4 2433 push word [bp-01ah] ; ff 76 e6 2577 mov ax, word [bp-038h] ; 8b 46 c8 2578 push ax ; 50 2579 push dword [bp-01ch] ; 66 ff 76 e4 2580 push word [bp-026h] ; ff 76 da 2581 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 2582 push ax ; 50 2434 2583 movzx ax, byte [bp-008h] ; 0f b6 46 f8 2435 2584 push ax ; 50 2436 movzx ax, byte [bp-018h] ; 0f b6 46 e8 2437 push ax ; 50 2438 push 0012dh ; 68 2d 01 2585 push 0014dh ; 68 4d 01 2439 2586 push strict byte 00004h ; 6a 04 2440 call 01972h ; e8 23 f72587 call 01972h ; e8 6a f5 2441 2588 add sp, strict byte 00014h ; 83 c4 14 2442 movzx ax, byte [bp-00eh] ; 0f b6 46 f22443 imul ax, ax, strict byte 00018h ; 6b c0 182444 les di, [bp-028h] ; c4 7e d82445 add di, ax ; 01 c72446 mov byte [es:di+0 1fh], 0ffh ; 26 c6 45 1fff2589 movzx di, byte [bp-016h] ; 0f b6 7e ea 2590 imul di, di, strict byte 0001ch ; 6b ff 1c 2591 mov es, [bp-034h] ; 8e 46 cc 2592 add di, word [bp-022h] ; 03 7e de 2593 mov byte [es:di+023h], 0ffh ; 26 c6 45 23 ff 2447 2594 mov al, byte [bp-014h] ; 8a 46 ec 2448 mov byte [es:di+02 0h], al ; 26 88 45 202449 mov al, byte [bp-01 6h] ; 8a 46 ea2450 mov byte [es:di+02 2h], al ; 26 88 45 222451 mov ax, word [bp-02 2h] ; 8b 46 de2452 mov word [es:di+02 4h], ax ; 26 89 45 242595 mov byte [es:di+024h], al ; 26 88 45 24 2596 mov al, byte [bp-012h] ; 8a 46 ee 2597 mov byte [es:di+026h], al ; 26 88 45 26 2598 mov ax, word [bp-02ah] ; 8b 46 d6 2599 mov word [es:di+028h], ax ; 26 89 45 28 2453 2600 mov ax, word [bp-01ch] ; 8b 46 e4 2454 mov word [es:di+02ch], ax ; 26 89 45 2c 2601 mov word [es:di+030h], ax ; 26 89 45 30 2602 mov ax, word [bp-026h] ; 8b 46 da 2603 mov word [es:di+032h], ax ; 26 89 45 32 2455 2604 mov ax, word [bp-01ah] ; 8b 46 e6 2456 mov word [es:di+0 2eh], ax ; 26 89 45 2e2605 mov word [es:di+034h], ax ; 26 89 45 34 2457 2606 mov ax, word [bp-01eh] ; 8b 46 e2 2458 mov word [es:di+030h], ax ; 26 89 45 30 2459 mov ax, word [bp-020h] ; 8b 46 e0 2460 mov word [es:di+032h], ax ; 26 89 45 32 2461 mov word [es:di+034h], si ; 26 89 75 34 2462 lea di, [di+026h] ; 8d 7d 26 2607 mov word [es:di+03ch], ax ; 26 89 45 3c 2608 mov ax, word [bp-028h] ; 8b 46 d8 2609 mov word [es:di+03ah], ax ; 26 89 45 3a 2610 mov ax, word [bp-02ch] ; 8b 46 d4 2611 mov word [es:di+038h], ax ; 26 89 45 38 2612 mov word [es:di+036h], si ; 26 89 75 36 2613 lea di, [di+02ah] ; 8d 7d 2a 2463 2614 push DS ; 1e 2464 2615 push SS ; 16 2465 2616 pop DS ; 1f 2466 lea si, [bp-03 6h] ; 8d 76 ca2617 lea si, [bp-03ah] ; 8d 76 c6 2467 2618 movsw ; a5 2468 2619 movsw ; a5 2469 2620 movsw ; a5 2470 2621 pop DS ; 1f 2471 mov al, byte [bp-0 0eh] ; 8a 46 f22622 mov al, byte [bp-016h] ; 8a 46 ea 2472 2623 cmp AL, strict byte 002h ; 3c 02 2473 jnc short 02 30ch ; 73 602624 jnc short 024d4h ; 73 60 2474 2625 test al, al ; 84 c0 2475 jne short 02 2b5h ; 75 052626 jne short 0247dh ; 75 05 2476 2627 mov di, strict word 0003dh ; bf 3d 00 2477 jmp short 02 2b8h ; eb 032628 jmp short 02480h ; eb 03 2478 2629 mov di, strict word 0004dh ; bf 4d 00 2479 mov dx, word [bp-02 4h] ; 8b 56 dc2480 mov ax, word [bp-03 4h] ; 8b 46 cc2630 mov dx, word [bp-020h] ; 8b 56 e0 2631 mov ax, word [bp-038h] ; 8b 46 c8 2481 2632 mov es, dx ; 8e c2 2482 2633 mov word [es:di], ax ; 26 89 05 2483 mov al, byte [bp-03 6h] ; 8a 46 ca2634 mov al, byte [bp-03ah] ; 8a 46 c6 2484 2635 mov byte [es:di+002h], al ; 26 88 45 02 2485 2636 mov byte [es:di+003h], 0a0h ; 26 c6 45 03 a0 2486 mov al, byte [bp-01 eh] ; 8a 46 e22637 mov al, byte [bp-01ah] ; 8a 46 e6 2487 2638 mov byte [es:di+004h], al ; 26 88 45 04 2488 mov ax, word [bp-0 1ah] ; 8b 46 e62639 mov ax, word [bp-026h] ; 8b 46 da 2489 2640 mov word [es:di+009h], ax ; 26 89 45 09 2490 2641 mov al, byte [bp-01ch] ; 8a 46 e4 2491 2642 mov byte [es:di+00bh], al ; 26 88 45 0b 2492 mov al, byte [bp-01 eh] ; 8a 46 e22643 mov al, byte [bp-01ah] ; 8a 46 e6 2493 2644 mov byte [es:di+00eh], al ; 26 88 45 0e 2494 2645 xor al, al ; 30 c0 2495 2646 xor ah, ah ; 30 e4 2496 jmp short 02 2f6h ; eb 052647 jmp short 024beh ; eb 05 2497 2648 cmp ah, 00fh ; 80 fc 0f 2498 jnc short 02 304h ; 73 0e2649 jnc short 024cch ; 73 0e 2499 2650 movzx bx, ah ; 0f b6 dc 2500 2651 mov es, dx ; 8e c2 … … 2503 2654 db 0feh, 0c4h 2504 2655 ; inc ah ; fe c4 2505 jmp short 02 2f1h ; eb ed2656 jmp short 024b9h ; eb ed 2506 2657 neg al ; f6 d8 2507 2658 mov es, dx ; 8e c2 2508 2659 mov byte [es:di+00fh], al ; 26 88 45 0f 2509 movzx bx, byte [bp-006h] ; 0f b6 5e fa 2510 mov es, [bp-026h] ; 8e 46 da 2511 add bx, word [bp-028h] ; 03 5e d8 2512 mov al, byte [bp-00eh] ; 8a 46 f2 2513 mov byte [es:bx+0019fh], al ; 26 88 87 9f 01 2514 inc byte [bp-006h] ; fe 46 fa 2515 cmp byte [bp-010h], 003h ; 80 7e f0 03 2516 jne near 023c1h ; 0f 85 98 00 2517 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 2518 imul ax, ax, strict byte 00018h ; 6b c0 18 2519 les bx, [bp-028h] ; c4 5e d8 2660 movzx bx, byte [bp-010h] ; 0f b6 5e f0 2661 mov es, [bp-034h] ; 8e 46 cc 2662 add bx, word [bp-022h] ; 03 5e de 2663 mov al, byte [bp-016h] ; 8a 46 ea 2664 mov byte [es:bx+001e3h], al ; 26 88 87 e3 01 2665 inc byte [bp-010h] ; fe 46 f0 2666 cmp byte [bp-00ah], 003h ; 80 7e f6 03 2667 jne near 0258ch ; 0f 85 9b 00 2668 movzx ax, byte [bp-016h] ; 0f b6 46 ea 2669 imul ax, ax, strict byte 0001ch ; 6b c0 1c 2670 mov es, [bp-034h] ; 8e 46 cc 2671 mov bx, word [bp-022h] ; 8b 5e de 2520 2672 add bx, ax ; 01 c3 2521 mov byte [es:bx+0 1fh], 005h ; 26 c6 47 1f052522 mov byte [es:bx+02 2h], 000h ; 26 c6 47 22002523 lea dx, [bp-0026 0h] ; 8d 96 a0fd2524 mov bx, word [bp-02 8h] ; 8b 5e d82525 mov word [es:bx+00 4h], dx ; 26 89 57 042526 mov [es:bx+00 6h], ss ; 26 8c 57 062527 mov al, byte [bp-0 0eh] ; 8a 46 f22528 mov byte [es:bx+00 8h], al ; 26 88 47 082673 mov byte [es:bx+023h], 005h ; 26 c6 47 23 05 2674 mov byte [es:bx+026h], 000h ; 26 c6 47 26 00 2675 lea dx, [bp-00264h] ; 8d 96 9c fd 2676 mov bx, word [bp-022h] ; 8b 5e de 2677 mov word [es:bx+008h], dx ; 26 89 57 08 2678 mov [es:bx+00ah], ss ; 26 8c 57 0a 2679 mov al, byte [bp-016h] ; 8a 46 ea 2680 mov byte [es:bx+00ch], al ; 26 88 47 0c 2529 2681 mov cx, strict word 00001h ; b9 01 00 2530 2682 mov bx, 000a1h ; bb a1 00 2531 mov ax, word [bp-02 8h] ; 8b 46 d82683 mov ax, word [bp-022h] ; 8b 46 de 2532 2684 mov dx, es ; 8c c2 2533 call 01 d4fh ; e8 ec f92685 call 01e5ah ; e8 2c f9 2534 2686 test ax, ax ; 85 c0 2535 je short 02 372h ; 74 0b2536 push 001 54h ; 68 54 012687 je short 0253dh ; 74 0b 2688 push 00174h ; 68 74 01 2537 2689 push strict byte 00007h ; 6a 07 2538 call 01972h ; e8 03 f62690 call 01972h ; e8 38 f4 2539 2691 add sp, strict byte 00004h ; 83 c4 04 2540 mov cl, byte [bp-0025fh] ; 8a 8e a1 fd 2541 and cl, 01fh ; 80 e1 1f 2542 test byte [bp-00260h], 080h ; f6 86 a0 fd 80 2692 mov dl, byte [bp-00263h] ; 8a 96 9d fd 2693 and dl, 01fh ; 80 e2 1f 2694 test byte [bp-00264h], 080h ; f6 86 9c fd 80 2695 db 00fh, 095h, 0c0h 2696 ; setne al ; 0f 95 c0 2697 movzx bx, al ; 0f b6 d8 2698 cmp byte [bp-00204h], 000h ; 80 be fc fd 00 2543 2699 db 00fh, 095h, 0c0h 2544 2700 ; setne al ; 0f 95 c0 2545 2701 xor ah, ah ; 30 e4 2546 mov dx, ax ; 89 c2 2547 cmp byte [bp-00200h], 000h ; 80 be 00 fe 00 2548 db 00fh, 095h, 0c0h 2549 ; setne al ; 0f 95 c0 2550 xor ah, ah ; 30 e4 2551 mov bx, ax ; 89 c3 2552 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 2553 imul ax, ax, strict byte 00018h ; 6b c0 18 2554 les si, [bp-028h] ; c4 76 d8 2702 movzx cx, byte [bp-016h] ; 0f b6 4e ea 2703 imul cx, cx, strict byte 0001ch ; 6b c9 1c 2704 mov es, [bp-034h] ; 8e 46 cc 2705 mov si, word [bp-022h] ; 8b 76 de 2706 add si, cx ; 01 ce 2707 mov byte [es:si+023h], dl ; 26 88 54 23 2708 mov byte [es:si+024h], bl ; 26 88 5c 24 2709 mov byte [es:si+026h], al ; 26 88 44 26 2710 mov word [es:si+028h], 00800h ; 26 c7 44 28 00 08 2711 movzx bx, byte [bp-006h] ; 0f b6 5e fa 2712 add bx, word [bp-022h] ; 03 5e de 2713 mov al, byte [bp-016h] ; 8a 46 ea 2714 mov byte [es:bx+001f4h], al ; 26 88 87 f4 01 2715 inc byte [bp-006h] ; fe 46 fa 2716 mov al, byte [bp-00ah] ; 8a 46 f6 2717 cmp AL, strict byte 003h ; 3c 03 2718 je short 025c4h ; 74 31 2719 cmp AL, strict byte 002h ; 3c 02 2720 jne near 02627h ; 0f 85 8e 00 2721 movzx ax, byte [bp-016h] ; 0f b6 46 ea 2722 imul ax, ax, strict byte 0001ch ; 6b c0 1c 2723 mov es, [bp-034h] ; 8e 46 cc 2724 mov si, word [bp-022h] ; 8b 76 de 2555 2725 add si, ax ; 01 c6 2556 mov byte [es:si+01fh], cl ; 26 88 4c 1f 2557 mov byte [es:si+020h], dl ; 26 88 54 20 2558 mov byte [es:si+022h], bl ; 26 88 5c 22 2559 mov word [es:si+024h], 00800h ; 26 c7 44 24 00 08 2560 movzx bx, byte [bp-00ah] ; 0f b6 5e f6 2561 add bx, word [bp-028h] ; 03 5e d8 2562 mov al, byte [bp-00eh] ; 8a 46 f2 2563 mov byte [es:bx+001b0h], al ; 26 88 87 b0 01 2564 inc byte [bp-00ah] ; fe 46 f6 2565 mov al, byte [bp-010h] ; 8a 46 f0 2566 cmp AL, strict byte 003h ; 3c 03 2567 je short 023f4h ; 74 2c 2568 cmp AL, strict byte 002h ; 3c 02 2569 jne near 02457h ; 0f 85 89 00 2570 movzx bx, byte [bp-00eh] ; 0f b6 5e f2 2571 imul bx, bx, strict byte 00018h ; 6b db 18 2572 mov es, [bp-026h] ; 8e 46 da 2573 add bx, word [bp-028h] ; 03 5e d8 2574 mov ax, word [es:bx+032h] ; 26 8b 47 32 2575 mov word [bp-030h], ax ; 89 46 d0 2576 mov ax, word [es:bx+034h] ; 26 8b 47 34 2577 mov word [bp-02eh], ax ; 89 46 d2 2578 mov cx, strict word 0000bh ; b9 0b 00 2579 shr word [bp-02eh], 1 ; d1 6e d2 2580 rcr word [bp-030h], 1 ; d1 5e d0 2581 loop 023ech ; e2 f8 2582 movzx dx, byte [bp-001bfh] ; 0f b6 96 41 fe 2583 sal dx, 008h ; c1 e2 08 2584 movzx ax, byte [bp-001c0h] ; 0f b6 86 40 fe 2726 mov ax, word [es:si+03ch] ; 26 8b 44 3c 2727 mov bx, word [es:si+03ah] ; 26 8b 5c 3a 2728 mov cx, word [es:si+038h] ; 26 8b 4c 38 2729 mov dx, word [es:si+036h] ; 26 8b 54 36 2730 mov si, strict word 0000bh ; be 0b 00 2731 call 09d5ah ; e8 9c 77 2732 mov word [bp-030h], dx ; 89 56 d0 2733 mov word [bp-02eh], cx ; 89 4e d2 2734 movzx ax, byte [bp-001c3h] ; 0f b6 86 3d fe 2735 sal ax, 008h ; c1 e0 08 2736 movzx dx, byte [bp-001c4h] ; 0f b6 96 3c fe 2585 2737 or dx, ax ; 09 c2 2586 mov byte [bp-0 12h], 00fh ; c6 46 ee0f2587 jmp short 02 412h ; eb 092588 dec byte [bp-0 12h] ; fe 4e ee2589 cmp byte [bp-0 12h], 000h ; 80 7e ee002590 jbe short 02 41fh ; 76 0d2591 movzx cx, byte [bp-0 12h] ; 0f b6 4e ee2738 mov byte [bp-00ch], 00fh ; c6 46 f4 0f 2739 jmp short 025e2h ; eb 09 2740 dec byte [bp-00ch] ; fe 4e f4 2741 cmp byte [bp-00ch], 000h ; 80 7e f4 00 2742 jbe short 025efh ; 76 0d 2743 movzx cx, byte [bp-00ch] ; 0f b6 4e f4 2592 2744 mov ax, strict word 00001h ; b8 01 00 2593 2745 sal ax, CL ; d3 e0 2594 2746 test dx, ax ; 85 c2 2595 je short 02 409h ; 74 ea2747 je short 025d9h ; 74 ea 2596 2748 xor di, di ; 31 ff 2597 jmp short 02 428h ; eb 052749 jmp short 025f8h ; eb 05 2598 2750 cmp di, strict byte 00014h ; 83 ff 14 2599 jnl short 02 43dh ; 7d 152751 jnl short 0260dh ; 7d 15 2600 2752 mov si, di ; 89 fe 2601 2753 add si, di ; 01 fe 2602 mov al, byte [bp+si-0022 9h] ; 8a 82 d7fd2603 mov byte [bp+si-06 0h], al ; 88 42 a02604 mov al, byte [bp+si-0022 ah] ; 8a 82 d6fd2605 mov byte [bp+si-0 5fh], al ; 88 42 a12754 mov al, byte [bp+si-0022dh] ; 8a 82 d3 fd 2755 mov byte [bp+si-064h], al ; 88 42 9c 2756 mov al, byte [bp+si-0022eh] ; 8a 82 d2 fd 2757 mov byte [bp+si-063h], al ; 88 42 9d 2606 2758 inc di ; 47 2607 jmp short 02 423h ; eb e62608 mov byte [bp-03 8h], 000h ; c6 46 c8002759 jmp short 025f3h ; eb e6 2760 mov byte [bp-03ch], 000h ; c6 46 c4 00 2609 2761 mov di, strict word 00027h ; bf 27 00 2610 jmp short 02 44bh ; eb 052762 jmp short 0261bh ; eb 05 2611 2763 dec di ; 4f 2612 2764 test di, di ; 85 ff 2613 jle short 02 457h ; 7e 0c2614 cmp byte [bp+di-06 0h], 020h ; 80 7b a0202615 jne short 02 457h ; 75 062616 mov byte [bp+di-06 0h], 000h ; c6 43 a0002617 jmp short 02 446h ; eb ef2618 mov al, byte [bp-0 10h] ; 8a 46 f02765 jle short 02627h ; 7e 0c 2766 cmp byte [bp+di-064h], 020h ; 80 7b 9c 20 2767 jne short 02627h ; 75 06 2768 mov byte [bp+di-064h], 000h ; c6 43 9c 00 2769 jmp short 02616h ; eb ef 2770 mov al, byte [bp-00ah] ; 8a 46 f6 2619 2771 cmp AL, strict byte 003h ; 3c 03 2620 je short 02 4bah ; 74 5c2772 je short 0268ah ; 74 5c 2621 2773 cmp AL, strict byte 002h ; 3c 02 2622 je short 02 46bh ; 74 092774 je short 0263bh ; 74 09 2623 2775 cmp AL, strict byte 001h ; 3c 01 2624 je near 02 521h ; 0f 84 b9002625 jmp near 02 540h ; e9 d5002626 cmp byte [bp-00 8h], 000h ; 80 7e f8002627 je short 02 476h ; 74 052628 mov ax, 001 7fh ; b8 7f 012629 jmp short 02 479h ; eb 032630 mov ax, 001 86h ; b8 86 012776 je near 026f4h ; 0f 84 bc 00 2777 jmp near 02713h ; e9 d8 00 2778 cmp byte [bp-00eh], 000h ; 80 7e f2 00 2779 je short 02646h ; 74 05 2780 mov ax, 0019fh ; b8 9f 01 2781 jmp short 02649h ; eb 03 2782 mov ax, 001a6h ; b8 a6 01 2631 2783 push ax ; 50 2632 movzx ax, byte [bp-0 18h] ; 0f b6 46 e82784 movzx ax, byte [bp-008h] ; 0f b6 46 f8 2633 2785 push ax ; 50 2634 push 001 8dh ; 68 8d 012786 push 001adh ; 68 ad 01 2635 2787 push strict byte 00002h ; 6a 02 2636 call 01972h ; e8 eb f42788 call 01972h ; e8 1b f3 2637 2789 add sp, strict byte 00008h ; 83 c4 08 2638 2790 xor di, di ; 31 ff 2639 movzx ax, byte [bp+di-06 0h] ; 0f b6 43 a02791 movzx ax, byte [bp+di-064h] ; 0f b6 43 9c 2640 2792 inc di ; 47 2641 2793 test ax, ax ; 85 c0 2642 je short 02 4a3h ; 74 0e2794 je short 02673h ; 74 0e 2643 2795 push ax ; 50 2644 push 001 98h ; 68 98 012796 push 001b8h ; 68 b8 01 2645 2797 push strict byte 00002h ; 6a 02 2646 call 01972h ; e8 d4 f42798 call 01972h ; e8 04 f3 2647 2799 add sp, strict byte 00006h ; 83 c4 06 2648 jmp short 02 48ch ; eb e92800 jmp short 0265ch ; eb e9 2649 2801 push dword [bp-030h] ; 66 ff 76 d0 2650 movzx ax, byte [bp-0 12h] ; 0f b6 46 ee2802 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 2651 2803 push ax ; 50 2652 push 001 9bh ; 68 9b 012804 push 001bbh ; 68 bb 01 2653 2805 push strict byte 00002h ; 6a 02 2654 call 01972h ; e8 be f42806 call 01972h ; e8 ee f2 2655 2807 add sp, strict byte 0000ah ; 83 c4 0a 2656 jmp near 02 540h ; e9 86002657 cmp byte [bp-00 8h], 000h ; 80 7e f8002658 je short 02 4c5h ; 74 052659 mov ax, 001 7fh ; b8 7f 012660 jmp short 02 4c8h ; eb 032661 mov ax, 001 86h ; b8 86 012808 jmp near 02713h ; e9 89 00 2809 cmp byte [bp-00eh], 000h ; 80 7e f2 00 2810 je short 02695h ; 74 05 2811 mov ax, 0019fh ; b8 9f 01 2812 jmp short 02698h ; eb 03 2813 mov ax, 001a6h ; b8 a6 01 2662 2814 push ax ; 50 2663 movzx ax, byte [bp-0 18h] ; 0f b6 46 e82815 movzx ax, byte [bp-008h] ; 0f b6 46 f8 2664 2816 push ax ; 50 2665 push 001 8dh ; 68 8d 012817 push 001adh ; 68 ad 01 2666 2818 push strict byte 00002h ; 6a 02 2667 call 01972h ; e8 9c f42819 call 01972h ; e8 cc f2 2668 2820 add sp, strict byte 00008h ; 83 c4 08 2669 2821 xor di, di ; 31 ff 2670 movzx ax, byte [bp+di-06 0h] ; 0f b6 43 a02822 movzx ax, byte [bp+di-064h] ; 0f b6 43 9c 2671 2823 inc di ; 47 2672 2824 test ax, ax ; 85 c0 2673 je short 02 4f2h ; 74 0e2825 je short 026c2h ; 74 0e 2674 2826 push ax ; 50 2675 push 001 98h ; 68 98 012827 push 001b8h ; 68 b8 01 2676 2828 push strict byte 00002h ; 6a 02 2677 call 01972h ; e8 85 f42829 call 01972h ; e8 b5 f2 2678 2830 add sp, strict byte 00006h ; 83 c4 06 2679 jmp short 024dbh ; eb e9 2680 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 2681 imul ax, ax, strict byte 00018h ; 6b c0 18 2682 les bx, [bp-028h] ; c4 5e d8 2831 jmp short 026abh ; eb e9 2832 movzx ax, byte [bp-016h] ; 0f b6 46 ea 2833 imul ax, ax, strict byte 0001ch ; 6b c0 1c 2834 mov es, [bp-034h] ; 8e 46 cc 2835 mov bx, word [bp-022h] ; 8b 5e de 2683 2836 add bx, ax ; 01 c3 2684 cmp byte [es:bx+0 1fh], 005h ; 26 80 7f 1f052685 jne short 02 50fh ; 75 0a2686 movzx ax, byte [bp-0 12h] ; 0f b6 46 ee2837 cmp byte [es:bx+023h], 005h ; 26 80 7f 23 05 2838 jne short 026e2h ; 75 0a 2839 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 2687 2840 push ax ; 50 2688 push 001 bbh ; 68 bb 012689 jmp short 02 517h ; eb 082690 movzx ax, byte [bp-0 12h] ; 0f b6 46 ee2841 push 001dbh ; 68 db 01 2842 jmp short 026eah ; eb 08 2843 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 2691 2844 push ax ; 50 2692 push 001 d5h ; 68 d5 012845 push 001f5h ; 68 f5 01 2693 2846 push strict byte 00002h ; 6a 02 2694 call 01972h ; e8 56 f42847 call 01972h ; e8 83 f2 2695 2848 add sp, strict byte 00006h ; 83 c4 06 2696 jmp short 02 540h ; eb 1f2697 cmp byte [bp-00 8h], 000h ; 80 7e f8002698 je short 02 52ch ; 74 052699 mov ax, 001 7fh ; b8 7f 012700 jmp short 02 52fh ; eb 032701 mov ax, 001 86h ; b8 86 012849 jmp short 02713h ; eb 1f 2850 cmp byte [bp-00eh], 000h ; 80 7e f2 00 2851 je short 026ffh ; 74 05 2852 mov ax, 0019fh ; b8 9f 01 2853 jmp short 02702h ; eb 03 2854 mov ax, 001a6h ; b8 a6 01 2702 2855 push ax ; 50 2703 movzx ax, byte [bp-0 18h] ; 0f b6 46 e82856 movzx ax, byte [bp-008h] ; 0f b6 46 f8 2704 2857 push ax ; 50 2705 push 00 1e7h ; 68 e7 012858 push 00207h ; 68 07 02 2706 2859 push strict byte 00002h ; 6a 02 2707 call 01972h ; e8 35 f42860 call 01972h ; e8 62 f2 2708 2861 add sp, strict byte 00008h ; 83 c4 08 2709 inc byte [bp-0 0eh] ; fe 46 f22710 cmp byte [bp-0 0eh], 008h ; 80 7e f2082711 jnc short 02 597h ; 73 4e2712 movzx bx, byte [bp-0 0eh] ; 0f b6 5e f22862 inc byte [bp-016h] ; fe 46 ea 2863 cmp byte [bp-016h], 008h ; 80 7e ea 08 2864 jnc short 0276eh ; 73 52 2865 movzx bx, byte [bp-016h] ; 0f b6 5e ea 2713 2866 mov ax, bx ; 89 d8 2714 2867 cwd ; 99 … … 2716 2869 ; sub ax, dx ; 2b c2 2717 2870 sar ax, 1 ; d1 f8 2718 mov word [bp-02ah], ax ; 89 46 d6 2719 mov al, byte [bp-02ah] ; 8a 46 d6 2720 mov byte [bp-018h], al ; 88 46 e8 2871 mov cx, ax ; 89 c1 2872 mov byte [bp-008h], al ; 88 46 f8 2721 2873 mov ax, bx ; 89 d8 2722 2874 cwd ; 99 2723 2875 mov bx, strict word 00002h ; bb 02 00 2724 2876 idiv bx ; f7 fb 2725 mov cx, dx ; 89 d1 2726 mov byte [bp-008h], dl ; 88 56 f8 2727 movzx ax, byte [bp-02ah] ; 0f b6 46 d6 2877 mov word [bp-032h], dx ; 89 56 ce 2878 mov al, byte [bp-032h] ; 8a 46 ce 2879 mov byte [bp-00eh], al ; 88 46 f2 2880 movzx ax, cl ; 0f b6 c1 2728 2881 imul ax, ax, strict byte 00006h ; 6b c0 06 2729 les bx, [bp-028h] ; c4 5e d8 2882 mov es, [bp-034h] ; 8e 46 cc 2883 mov bx, word [bp-022h] ; 8b 5e de 2730 2884 add bx, ax ; 01 c3 2731 mov si, word [es:bx+00 1c2h] ; 26 8b b7 c2 012732 mov ax, word [es:bx+00 1c4h] ; 26 8b 87 c4 012733 mov word [bp-02 ch], ax ; 89 46 d42885 mov si, word [es:bx+00206h] ; 26 8b b7 06 02 2886 mov ax, word [es:bx+00208h] ; 26 8b 87 08 02 2887 mov word [bp-024h], ax ; 89 46 dc 2734 2888 mov dx, ax ; 89 c2 2735 2889 add dx, strict byte 00006h ; 83 c2 06 2736 2890 mov AL, strict byte 00ah ; b0 0a 2737 2891 out DX, AL ; ee 2738 test cl, cl ; 84 c92739 je near 02 001h ; 0f 84 70fa2892 cmp byte [bp-032h], 000h ; 80 7e ce 00 2893 je near 02196h ; 0f 84 2e fa 2740 2894 mov ax, 000b0h ; b8 b0 00 2741 jmp near 02004h ; e9 6d fa 2895 jmp near 02199h ; e9 2b fa 2896 mov al, byte [bp-010h] ; 8a 46 f0 2897 mov es, [bp-034h] ; 8e 46 cc 2898 mov bx, word [bp-022h] ; 8b 5e de 2899 mov byte [es:bx+001e2h], al ; 26 88 87 e2 01 2742 2900 mov al, byte [bp-006h] ; 8a 46 fa 2743 les bx, [bp-028h] ; c4 5e d8 2744 mov byte [es:bx+0019eh], al ; 26 88 87 9e 01 2745 mov al, byte [bp-00ah] ; 8a 46 f6 2746 mov byte [es:bx+001afh], al ; 26 88 87 af 01 2747 movzx bx, byte [bp-006h] ; 0f b6 5e fa 2901 mov byte [es:bx+001f3h], al ; 26 88 87 f3 01 2902 movzx bx, byte [bp-010h] ; 0f b6 5e f0 2748 2903 mov dx, strict word 00075h ; ba 75 00 2749 2904 mov ax, strict word 00040h ; b8 40 00 2750 call 0165eh ; e8 a7 f02905 call 0165eh ; e8 cd ee 2751 2906 lea sp, [bp-004h] ; 8d 66 fc 2752 2907 pop di ; 5f … … 2754 2909 pop bp ; 5d 2755 2910 retn ; c3 2756 ata_cmd_data_out_: ; 0xf2 5be LB 0x21a2911 ata_cmd_data_out_: ; 0xf2798 LB 0x2bc 2757 2912 push bp ; 55 2758 2913 mov bp, sp ; 89 e5 2759 2914 push si ; 56 2760 2915 push di ; 57 2761 sub sp, strict byte 000 1ah ; 83 ec 1a2916 sub sp, strict byte 00022h ; 83 ec 22 2762 2917 mov di, ax ; 89 c7 2763 mov word [bp-00 ah], dx ; 89 56 f62764 mov word [bp-0 1ah], bx ; 89 5e e62765 mov word [bp-0 0eh], cx ; 89 4e f22918 mov word [bp-00ch], dx ; 89 56 f4 2919 mov word [bp-024h], bx ; 89 5e dc 2920 mov word [bp-01ah], cx ; 89 4e e6 2766 2921 mov es, dx ; 8e c2 2767 movzx ax, byte [es:di+00 8h] ; 26 0f b6 45 082922 movzx ax, byte [es:di+00ch] ; 26 0f b6 45 0c 2768 2923 mov dx, ax ; 89 c2 2769 2924 shr dx, 1 ; d1 ea … … 2771 2926 and dh, 001h ; 80 e6 01 2772 2927 mov byte [bp-006h], dh ; 88 76 fa 2773 movzx si, dl ; 0f b6 f2 2774 imul si, si, strict byte 00006h ; 6b f6 06 2775 add si, di ; 01 fe 2776 mov bx, word [es:si+001c2h] ; 26 8b 9c c2 01 2777 mov dx, word [es:si+001c4h] ; 26 8b 94 c4 01 2778 mov word [bp-00ch], dx ; 89 56 f4 2779 imul ax, ax, strict byte 00018h ; 6b c0 18 2780 mov si, di ; 89 fe 2781 add si, ax ; 01 c6 2782 mov al, byte [es:si+022h] ; 26 8a 44 22 2928 xor dh, dh ; 30 f6 2929 imul dx, dx, strict byte 00006h ; 6b d2 06 2930 mov bx, di ; 89 fb 2931 add bx, dx ; 01 d3 2932 mov dx, word [es:bx+00206h] ; 26 8b 97 06 02 2933 mov word [bp-00ah], dx ; 89 56 f6 2934 mov dx, word [es:bx+00208h] ; 26 8b 97 08 02 2935 mov word [bp-012h], dx ; 89 56 ee 2936 imul ax, ax, strict byte 0001ch ; 6b c0 1c 2937 mov bx, di ; 89 fb 2938 add bx, ax ; 01 c3 2939 mov al, byte [es:bx+026h] ; 26 8a 47 26 2783 2940 mov byte [bp-008h], al ; 88 46 f8 2784 2941 cmp AL, strict byte 001h ; 3c 01 2785 jne short 02612h ; 75 07 2786 mov word [bp-012h], 00080h ; c7 46 ee 80 00 2787 jmp short 02617h ; eb 05 2788 mov word [bp-012h], 00100h ; c7 46 ee 00 01 2789 lea dx, [bx+007h] ; 8d 57 07 2942 jne short 027f0h ; 75 07 2943 mov word [bp-020h], 00080h ; c7 46 e0 80 00 2944 jmp short 027f5h ; eb 05 2945 mov word [bp-020h], 00100h ; c7 46 e0 00 01 2946 mov dx, word [bp-00ah] ; 8b 56 f6 2947 add dx, strict byte 00007h ; 83 c2 07 2790 2948 in AL, DX ; ec 2791 2949 db 02ah, 0e4h 2792 2950 ; sub ah, ah ; 2a e4 2793 2951 test AL, strict byte 080h ; a8 80 2794 je short 02 630h ; 74 0f2795 mov dx, word [bp-0 0ch] ; 8b 56 f42952 je short 02811h ; 74 0f 2953 mov dx, word [bp-012h] ; 8b 56 ee 2796 2954 add dx, strict byte 00006h ; 83 c2 06 2797 2955 mov AL, strict byte 008h ; b0 08 2798 2956 out DX, AL ; ee 2799 2957 mov dx, strict word 00001h ; ba 01 00 2800 jmp near 027cfh ; e9 9f 01 2801 mov es, [bp-00ah] ; 8e 46 f6 2958 jmp near 02a4bh ; e9 3a 02 2959 mov es, [bp-00ch] ; 8e 46 f4 2960 mov ax, word [es:di+006h] ; 26 8b 45 06 2961 mov word [bp-010h], ax ; 89 46 f0 2962 mov ax, word [es:di+004h] ; 26 8b 45 04 2963 mov word [bp-014h], ax ; 89 46 ec 2964 mov ax, word [es:di+002h] ; 26 8b 45 02 2965 mov word [bp-016h], ax ; 89 46 ea 2802 2966 mov ax, word [es:di] ; 26 8b 05 2803 2967 mov word [bp-01eh], ax ; 89 46 e2 2804 mov ax, word [es:di+002h] ; 26 8b 45 02 2968 mov ax, word [es:di+008h] ; 26 8b 45 08 2969 mov word [bp-00eh], ax ; 89 46 f2 2970 mov ax, word [es:di+00ah] ; 26 8b 45 0a 2971 mov word [bp-018h], ax ; 89 46 e8 2972 mov ax, word [es:di+016h] ; 26 8b 45 16 2805 2973 mov word [bp-01ch], ax ; 89 46 e4 2806 mov si, word [es:di+004h] ; 26 8b 75 042807 mov ax, word [es:di+006h] ; 26 8b 45 062808 mov word [bp-018h], ax ; 89 46 e82809 2974 mov ax, word [es:di+012h] ; 26 8b 45 12 2810 mov word [bp-010h], ax ; 89 46 f0 2811 mov ax, word [es:di+00eh] ; 26 8b 45 0e 2812 mov word [bp-016h], ax ; 89 46 ea 2813 mov ax, word [es:di+010h] ; 26 8b 45 10 2814 mov word [bp-014h], ax ; 89 46 ec 2975 mov word [bp-026h], ax ; 89 46 da 2976 mov ax, word [es:di+014h] ; 26 8b 45 14 2977 mov word [bp-022h], ax ; 89 46 de 2978 mov ax, word [bp-01ch] ; 8b 46 e4 2979 test ax, ax ; 85 c0 2980 jne near 02922h ; 0f 85 c7 00 2981 xor dx, dx ; 31 d2 2982 xor bx, bx ; 31 db 2983 mov si, word [bp-01eh] ; 8b 76 e2 2984 add si, word [bp-01ah] ; 03 76 e6 2985 adc dx, word [bp-016h] ; 13 56 ea 2986 adc bx, word [bp-014h] ; 13 5e ec 2987 adc ax, word [bp-010h] ; 13 46 f0 2988 test ax, ax ; 85 c0 2989 jnbe short 02882h ; 77 10 2990 jne short 028e5h ; 75 71 2991 test bx, bx ; 85 db 2992 jnbe short 02882h ; 77 0a 2993 jne short 028e5h ; 75 6b 2994 cmp dx, 01000h ; 81 fa 00 10 2995 jnbe short 02882h ; 77 02 2996 jne short 028e5h ; 75 63 2815 2997 mov ax, word [bp-010h] ; 8b 46 f0 2816 test ax, ax ; 85 c02817 jne short 026ceh ; 75 672998 mov bx, word [bp-014h] ; 8b 5e ec 2999 mov cx, word [bp-016h] ; 8b 4e ea 2818 3000 mov dx, word [bp-01eh] ; 8b 56 e2 2819 add dx, word [bp-00eh] ; 03 56 f2 2820 adc ax, word [bp-01ch] ; 13 46 e4 2821 cmp ax, 01000h ; 3d 00 10 2822 jnbe short 02677h ; 77 02 2823 jne short 026a2h ; 75 2b 2824 mov ax, word [bp-01ch] ; 8b 46 e4 3001 mov si, strict word 00018h ; be 18 00 3002 call 09d5ah ; e8 c6 74 3003 xor dh, dh ; 30 f6 3004 mov word [bp-01ch], dx ; 89 56 e4 3005 mov ax, word [bp-010h] ; 8b 46 f0 3006 mov bx, word [bp-014h] ; 8b 5e ec 3007 mov cx, word [bp-016h] ; 8b 4e ea 3008 mov dx, word [bp-01eh] ; 8b 56 e2 3009 mov si, strict word 00020h ; be 20 00 3010 call 09d5ah ; e8 af 74 3011 mov bx, dx ; 89 d3 3012 mov ax, word [bp-01ah] ; 8b 46 e6 2825 3013 xor al, al ; 30 c0 2826 3014 shr ax, 008h ; c1 e8 08 3015 mov dx, word [bp-00ah] ; 8b 56 f6 3016 inc dx ; 42 3017 inc dx ; 42 3018 out DX, AL ; ee 3019 mov dx, word [bp-00ah] ; 8b 56 f6 3020 add dx, strict byte 00003h ; 83 c2 03 3021 mov al, byte [bp-01ch] ; 8a 46 e4 3022 out DX, AL ; ee 3023 mov ax, bx ; 89 d8 3024 mov dx, word [bp-00ah] ; 8b 56 f6 3025 add dx, strict byte 00004h ; 83 c2 04 3026 out DX, AL ; ee 3027 shr ax, 008h ; c1 e8 08 3028 mov dx, word [bp-00ah] ; 8b 56 f6 3029 add dx, strict byte 00005h ; 83 c2 05 3030 out DX, AL ; ee 3031 xor al, al ; 30 c0 3032 mov byte [bp-015h], al ; 88 46 eb 3033 xor ah, ah ; 30 e4 3034 mov word [bp-014h], ax ; 89 46 ec 2827 3035 mov word [bp-010h], ax ; 89 46 f0 2828 mov ax, word [bp-00eh] ; 8b 46 f22829 xor al, al ; 30 c02830 shr ax, 008h ; c1 e8 082831 lea dx, [bx+002h] ; 8d 57 022832 out DX, AL ; ee2833 lea dx, [bx+003h] ; 8d 57 032834 mov al, byte [bp-010h] ; 8a 46 f02835 out DX, AL ; ee2836 lea dx, [bx+004h] ; 8d 57 042837 xor al, al ; 30 c02838 out DX, AL ; ee2839 lea dx, [bx+005h] ; 8d 57 052840 out DX, AL ; ee2841 mov byte [bp-01bh], al ; 88 46 e52842 3036 mov ax, word [bp-01eh] ; 8b 46 e2 2843 3037 xor ah, ah ; 30 e4 3038 mov word [bp-01ch], ax ; 89 46 e4 3039 mov ax, word [bp-010h] ; 8b 46 f0 3040 mov bx, word [bp-014h] ; 8b 5e ec 3041 mov cx, word [bp-016h] ; 8b 4e ea 3042 mov dx, word [bp-01eh] ; 8b 56 e2 3043 mov si, strict word 00008h ; be 08 00 3044 call 09d5ah ; e8 5b 74 2844 3045 mov word [bp-010h], ax ; 89 46 f0 2845 mov cx, strict word 00008h ; b9 08 002846 shr word [bp-01ch], 1 ; d1 6e e42847 rcr word [bp-01eh], 1 ; d1 5ee22848 loop 026adh ; e2 f82849 mov ax, word [bp-01eh] ; 8b 46 e22850 mov word [bp-016h], ax ; 89 46 ea2851 mov ax, word [bp-01ch] ; 8b 46 e42852 mov word [bp-01eh], ax ; 89 46 e22853 mov word [bp-01ch], strict word 00000h ; c7 46 e4 00 002854 and ax, strict word 0000fh ; 25 0f 003046 mov word [bp-014h], bx ; 89 5e ec 3047 mov word [bp-016h], cx ; 89 4e ea 3048 mov word [bp-01eh], dx ; 89 56 e2 3049 mov word [bp-026h], dx ; 89 56 da 3050 mov si, strict word 00010h ; be 10 00 3051 call 09d5ah ; e8 46 74 3052 mov word [bp-01eh], dx ; 89 56 e2 3053 mov ax, dx ; 89 d0 3054 xor ah, dh ; 30 f4 3055 and AL, strict byte 00fh ; 24 0f 2855 3056 or AL, strict byte 040h ; 0c 40 2856 mov word [bp-0 14h], ax ; 89 46 ec2857 mov dx, word [bp-0 0ch] ; 8b 56 f43057 mov word [bp-022h], ax ; 89 46 de 3058 mov dx, word [bp-012h] ; 8b 56 ee 2858 3059 add dx, strict byte 00006h ; 83 c2 06 2859 3060 mov AL, strict byte 00ah ; b0 0a 2860 3061 out DX, AL ; ee 2861 lea dx, [bx+001h] ; 8d 57 01 3062 mov dx, word [bp-00ah] ; 8b 56 f6 3063 inc dx ; 42 2862 3064 xor al, al ; 30 c0 2863 3065 out DX, AL ; ee 2864 lea dx, [bx+002h] ; 8d 57 02 2865 mov al, byte [bp-00eh] ; 8a 46 f2 2866 out DX, AL ; ee 2867 lea dx, [bx+003h] ; 8d 57 03 2868 mov al, byte [bp-010h] ; 8a 46 f0 2869 out DX, AL ; ee 2870 mov ax, word [bp-016h] ; 8b 46 ea 2871 lea dx, [bx+004h] ; 8d 57 04 3066 mov dx, word [bp-00ah] ; 8b 56 f6 3067 inc dx ; 42 3068 inc dx ; 42 3069 mov al, byte [bp-01ah] ; 8a 46 e6 3070 out DX, AL ; ee 3071 mov dx, word [bp-00ah] ; 8b 56 f6 3072 add dx, strict byte 00003h ; 83 c2 03 3073 mov al, byte [bp-01ch] ; 8a 46 e4 3074 out DX, AL ; ee 3075 mov ax, word [bp-026h] ; 8b 46 da 3076 mov dx, word [bp-00ah] ; 8b 56 f6 3077 add dx, strict byte 00004h ; 83 c2 04 2872 3078 out DX, AL ; ee 2873 3079 shr ax, 008h ; c1 e8 08 2874 lea dx, [bx+005h] ; 8d 57 05 3080 mov dx, word [bp-00ah] ; 8b 56 f6 3081 add dx, strict byte 00005h ; 83 c2 05 2875 3082 out DX, AL ; ee 2876 3083 cmp byte [bp-006h], 000h ; 80 7e fa 00 2877 je short 02 704h ; 74 053084 je short 02964h ; 74 05 2878 3085 mov ax, 000b0h ; b8 b0 00 2879 jmp short 02 707h ; eb 033086 jmp short 02967h ; eb 03 2880 3087 mov ax, 000a0h ; b8 a0 00 2881 movzx dx, byte [bp-0 14h] ; 0f b6 56 ec3088 movzx dx, byte [bp-022h] ; 0f b6 56 de 2882 3089 or ax, dx ; 09 d0 2883 lea dx, [bx+006h] ; 8d 57 06 2884 out DX, AL ; ee 2885 lea dx, [bx+007h] ; 8d 57 07 2886 mov al, byte [bp-01ah] ; 8a 46 e6 2887 out DX, AL ; ee 2888 lea dx, [bx+007h] ; 8d 57 07 3090 mov dx, word [bp-00ah] ; 8b 56 f6 3091 add dx, strict byte 00006h ; 83 c2 06 3092 out DX, AL ; ee 3093 mov dx, word [bp-00ah] ; 8b 56 f6 3094 add dx, strict byte 00007h ; 83 c2 07 3095 mov al, byte [bp-024h] ; 8a 46 dc 3096 out DX, AL ; ee 3097 mov dx, word [bp-00ah] ; 8b 56 f6 3098 add dx, strict byte 00007h ; 83 c2 07 2889 3099 in AL, DX ; ec 2890 3100 db 02ah, 0e4h … … 2892 3102 mov dl, al ; 88 c2 2893 3103 test AL, strict byte 080h ; a8 80 2894 jne short 02 718h ; 75 f43104 jne short 0297eh ; 75 f1 2895 3105 test AL, strict byte 001h ; a8 01 2896 je short 02 737h ; 74 0f2897 mov dx, word [bp-0 0ch] ; 8b 56 f43106 je short 029a0h ; 74 0f 3107 mov dx, word [bp-012h] ; 8b 56 ee 2898 3108 add dx, strict byte 00006h ; 83 c2 06 2899 3109 mov AL, strict byte 008h ; b0 08 2900 3110 out DX, AL ; ee 2901 3111 mov dx, strict word 00002h ; ba 02 00 2902 jmp near 02 7cfh ; e9 98003112 jmp near 02a4bh ; e9 ab 00 2903 3113 test dl, 008h ; f6 c2 08 2904 jne short 02 74bh ; 75 0f2905 mov dx, word [bp-0 0ch] ; 8b 56 f43114 jne short 029b4h ; 75 0f 3115 mov dx, word [bp-012h] ; 8b 56 ee 2906 3116 add dx, strict byte 00006h ; 83 c2 06 2907 3117 mov AL, strict byte 008h ; b0 08 2908 3118 out DX, AL ; ee 2909 3119 mov dx, strict word 00003h ; ba 03 00 2910 jmp near 02 7cfh ; e9 84003120 jmp near 02a4bh ; e9 97 00 2911 3121 sti ; fb 2912 cmp si, 0f800h ; 81 fe 00 f8 2913 jc short 0275fh ; 72 0d 2914 sub si, 00800h ; 81 ee 00 08 2915 mov ax, word [bp-018h] ; 8b 46 e8 2916 add ax, 00080h ; 05 80 00 2917 mov word [bp-018h], ax ; 89 46 e8 3122 mov ax, word [bp-00eh] ; 8b 46 f2 3123 cmp ax, 0f800h ; 3d 00 f8 3124 jc short 029cdh ; 72 10 3125 sub ax, 00800h ; 2d 00 08 3126 mov dx, word [bp-018h] ; 8b 56 e8 3127 add dx, 00080h ; 81 c2 80 00 3128 mov word [bp-00eh], ax ; 89 46 f2 3129 mov word [bp-018h], dx ; 89 56 e8 2918 3130 cmp byte [bp-008h], 001h ; 80 7e f8 01 2919 jne short 02773h ; 75 0e 2920 mov dx, bx ; 89 da 2921 mov cx, word [bp-012h] ; 8b 4e ee 3131 jne short 029e5h ; 75 12 3132 mov dx, word [bp-00ah] ; 8b 56 f6 3133 mov cx, word [bp-020h] ; 8b 4e e0 3134 mov si, word [bp-00eh] ; 8b 76 f2 2922 3135 mov es, [bp-018h] ; 8e 46 e8 2923 3136 db 0f3h, 066h, 026h, 06fh 2924 3137 ; rep es outsd ; f3 66 26 6f 2925 jmp short 0277eh ; eb 0b 2926 mov dx, bx ; 89 da 2927 mov cx, word [bp-012h] ; 8b 4e ee 3138 jmp short 029f4h ; eb 0f 3139 mov dx, word [bp-00ah] ; 8b 56 f6 3140 mov cx, word [bp-020h] ; 8b 4e e0 3141 mov si, word [bp-00eh] ; 8b 76 f2 2928 3142 mov es, [bp-018h] ; 8e 46 e8 2929 3143 db 0f3h, 026h, 06fh 2930 3144 ; rep es outsw ; f3 26 6f 2931 mov es, [bp-00ah] ; 8e 46 f6 2932 inc word [es:di+014h] ; 26 ff 45 14 2933 dec word [bp-00eh] ; ff 4e f2 2934 lea dx, [bx+007h] ; 8d 57 07 3145 mov word [bp-00eh], si ; 89 76 f2 3146 mov es, [bp-00ch] ; 8e 46 f4 3147 inc word [es:di+018h] ; 26 ff 45 18 3148 dec word [bp-01ah] ; ff 4e e6 3149 mov dx, word [bp-00ah] ; 8b 56 f6 3150 add dx, strict byte 00007h ; 83 c2 07 2935 3151 in AL, DX ; ec 2936 3152 db 02ah, 0e4h … … 2938 3154 mov dl, al ; 88 c2 2939 3155 test AL, strict byte 080h ; a8 80 2940 jne short 02 788h ; 75 f42941 cmp word [bp-0 0eh], strict byte 00000h ; 83 7e f2002942 jne short 02 7aeh ; 75 143156 jne short 02a01h ; 75 f1 3157 cmp word [bp-01ah], strict byte 00000h ; 83 7e e6 00 3158 jne short 02a2ah ; 75 14 2943 3159 and AL, strict byte 0e9h ; 24 e9 2944 3160 cmp AL, strict byte 040h ; 3c 40 2945 je short 02 7c4h ; 74 242946 mov dx, word [bp-0 0ch] ; 8b 56 f43161 je short 02a40h ; 74 24 3162 mov dx, word [bp-012h] ; 8b 56 ee 2947 3163 add dx, strict byte 00006h ; 83 c2 06 2948 3164 mov AL, strict byte 008h ; b0 08 2949 3165 out DX, AL ; ee 2950 3166 mov dx, strict word 00006h ; ba 06 00 2951 jmp short 02 7cfh ; eb 213167 jmp short 02a4bh ; eb 21 2952 3168 mov al, dl ; 88 d0 2953 3169 and AL, strict byte 0c9h ; 24 c9 2954 3170 cmp AL, strict byte 048h ; 3c 48 2955 je short 02 74ch ; 74 962956 mov dx, word [bp-0 0ch] ; 8b 56 f43171 je short 029b5h ; 74 83 3172 mov dx, word [bp-012h] ; 8b 56 ee 2957 3173 add dx, strict byte 00006h ; 83 c2 06 2958 3174 mov AL, strict byte 008h ; b0 08 2959 3175 out DX, AL ; ee 2960 3176 mov dx, strict word 00007h ; ba 07 00 2961 jmp short 02 7cfh ; eb 0b2962 mov dx, word [bp-0 0ch] ; 8b 56 f43177 jmp short 02a4bh ; eb 0b 3178 mov dx, word [bp-012h] ; 8b 56 ee 2963 3179 add dx, strict byte 00006h ; 83 c2 06 2964 3180 mov AL, strict byte 008h ; b0 08 … … 2971 3187 pop bp ; 5d 2972 3188 retn ; c3 2973 @ata_read_sectors: ; 0xf27d8 LB 0x7a 3189 @ata_read_sectors: ; 0xf2a54 LB 0xb5 3190 push bp ; 55 3191 mov bp, sp ; 89 e5 3192 push si ; 56 3193 push di ; 57 3194 sub sp, strict byte 00008h ; 83 ec 08 3195 mov si, word [bp+004h] ; 8b 76 04 3196 mov es, [bp+006h] ; 8e 46 06 3197 mov al, byte [es:si+00ch] ; 26 8a 44 0c 3198 mov cx, word [es:si+00eh] ; 26 8b 4c 0e 3199 mov dx, cx ; 89 ca 3200 sal dx, 009h ; c1 e2 09 3201 cmp word [es:si+016h], strict byte 00000h ; 26 83 7c 16 00 3202 je short 02a95h ; 74 1f 3203 xor ah, ah ; 30 e4 3204 imul ax, ax, strict byte 0001ch ; 6b c0 1c 3205 mov [bp-00ah], es ; 8c 46 f6 3206 mov di, si ; 89 f7 3207 add di, ax ; 01 c7 3208 mov word [es:di+028h], dx ; 26 89 55 28 3209 mov bx, 000c4h ; bb c4 00 3210 mov ax, si ; 89 f0 3211 mov dx, es ; 8c c2 3212 call 01e5ah ; e8 ca f3 3213 mov es, [bp-00ah] ; 8e 46 f6 3214 jmp short 02afah ; eb 65 3215 xor bx, bx ; 31 db 3216 mov word [bp-00ah], bx ; 89 5e f6 3217 mov word [bp-00ch], bx ; 89 5e f4 3218 mov di, word [es:si] ; 26 8b 3c 3219 add di, cx ; 01 cf 3220 mov word [bp-008h], di ; 89 7e f8 3221 mov di, word [es:si+002h] ; 26 8b 7c 02 3222 adc di, bx ; 11 df 3223 mov word [bp-006h], di ; 89 7e fa 3224 mov bx, word [es:si+004h] ; 26 8b 5c 04 3225 adc bx, word [bp-00ah] ; 13 5e f6 3226 mov di, word [es:si+006h] ; 26 8b 7c 06 3227 adc di, word [bp-00ch] ; 13 7e f4 3228 test di, di ; 85 ff 3229 jnbe short 02ad1h ; 77 11 3230 jne short 02addh ; 75 1b 3231 test bx, bx ; 85 db 3232 jnbe short 02ad1h ; 77 0b 3233 jne short 02addh ; 75 15 3234 cmp word [bp-006h], 01000h ; 81 7e fa 00 10 3235 jnbe short 02ad1h ; 77 02 3236 jne short 02addh ; 75 0c 3237 mov bx, strict word 00024h ; bb 24 00 3238 mov ax, si ; 89 f0 3239 mov dx, es ; 8c c2 3240 call 01e5ah ; e8 7f f3 3241 jmp short 02b00h ; eb 23 3242 xor ah, ah ; 30 e4 3243 imul ax, ax, strict byte 0001ch ; 6b c0 1c 3244 mov [bp-006h], es ; 8c 46 fa 3245 mov di, si ; 89 f7 3246 add di, ax ; 01 c7 3247 mov word [es:di+028h], dx ; 26 89 55 28 3248 mov bx, 000c4h ; bb c4 00 3249 mov ax, si ; 89 f0 3250 mov dx, es ; 8c c2 3251 call 01e5ah ; e8 63 f3 3252 mov es, [bp-006h] ; 8e 46 fa 3253 mov word [es:di+028h], 00200h ; 26 c7 45 28 00 02 3254 lea sp, [bp-004h] ; 8d 66 fc 3255 pop di ; 5f 3256 pop si ; 5e 3257 pop bp ; 5d 3258 retn 00004h ; c2 04 00 3259 @ata_write_sectors: ; 0xf2b09 LB 0x5b 2974 3260 push bp ; 55 2975 3261 mov bp, sp ; 89 e5 … … 2977 3263 push di ; 57 2978 3264 push ax ; 50 2979 mov si, word [bp+004h] ; 8b 76 04 2980 mov es, [bp+006h] ; 8e 46 06 2981 mov bl, byte [es:si+008h] ; 26 8a 5c 08 2982 mov cx, word [es:si+00ah] ; 26 8b 4c 0a 2983 mov dx, cx ; 89 ca 2984 sal dx, 009h ; c1 e2 09 2985 mov ax, word [es:si+012h] ; 26 8b 44 12 2986 test ax, ax ; 85 c0 2987 je short 02806h ; 74 0d 2988 movzx di, bl ; 0f b6 fb 2989 imul di, di, strict byte 00018h ; 6b ff 18 2990 mov [bp-006h], es ; 8c 46 fa 2991 add di, si ; 01 f7 2992 jmp short 02832h ; eb 2c 3265 les si, [bp+004h] ; c4 76 04 3266 mov cx, word [es:si+00eh] ; 26 8b 4c 0e 3267 cmp word [es:si+016h], strict byte 00000h ; 26 83 7c 16 00 3268 je short 02b29h ; 74 0c 3269 mov bx, strict word 00030h ; bb 30 00 3270 mov ax, si ; 89 f0 3271 mov dx, es ; 8c c2 3272 call 02798h ; e8 71 fc 3273 jmp short 02b5bh ; eb 32 3274 xor ax, ax ; 31 c0 3275 xor bx, bx ; 31 db 3276 xor dx, dx ; 31 d2 2993 3277 mov di, word [es:si] ; 26 8b 3c 2994 3278 add di, cx ; 01 cf 2995 3279 mov word [bp-006h], di ; 89 7e fa 2996 3280 adc ax, word [es:si+002h] ; 26 13 44 02 3281 adc bx, word [es:si+004h] ; 26 13 5c 04 3282 adc dx, word [es:si+006h] ; 26 13 54 06 3283 test dx, dx ; 85 d2 3284 jnbe short 02b56h ; 77 0f 3285 jne short 02b1dh ; 75 d4 3286 test bx, bx ; 85 db 3287 jnbe short 02b56h ; 77 09 3288 jne short 02b1dh ; 75 ce 2997 3289 cmp ax, 01000h ; 3d 00 10 2998 jnbe short 02819h ; 77 02 2999 jne short 02825h ; 75 0c 3000 mov bx, strict word 00024h ; bb 24 00 3001 mov ax, si ; 89 f0 3002 mov dx, es ; 8c c2 3003 call 01d4fh ; e8 2c f5 3004 jmp short 02849h ; eb 24 3005 movzx ax, bl ; 0f b6 c3 3006 imul ax, ax, strict byte 00018h ; 6b c0 18 3007 mov [bp-006h], es ; 8c 46 fa 3008 mov di, si ; 89 f7 3009 add di, ax ; 01 c7 3010 mov word [es:di+024h], dx ; 26 89 55 24 3011 mov bx, 000c4h ; bb c4 00 3012 mov ax, si ; 89 f0 3013 mov dx, es ; 8c c2 3014 call 01d4fh ; e8 0f f5 3015 mov es, [bp-006h] ; 8e 46 fa 3016 mov word [es:di+024h], 00200h ; 26 c7 45 24 00 02 3290 jnbe short 02b56h ; 77 02 3291 jne short 02b1dh ; 75 c7 3292 mov bx, strict word 00034h ; bb 34 00 3293 jmp short 02b20h ; eb c5 3017 3294 lea sp, [bp-004h] ; 8d 66 fc 3018 3295 pop di ; 5f … … 3020 3297 pop bp ; 5d 3021 3298 retn 00004h ; c2 04 00 3022 @ata_write_sectors: ; 0xf2852 LB 0x3d 3023 push bp ; 55 3024 mov bp, sp ; 89 e5 3025 push si ; 56 3026 les si, [bp+004h] ; c4 76 04 3027 mov cx, word [es:si+00ah] ; 26 8b 4c 0a 3028 cmp word [es:si+012h], strict byte 00000h ; 26 83 7c 12 00 3029 je short 02870h ; 74 0c 3030 mov bx, strict word 00030h ; bb 30 00 3031 mov ax, si ; 89 f0 3032 mov dx, es ; 8c c2 3033 call 025beh ; e8 50 fd 3034 jmp short 02887h ; eb 17 3035 xor ax, ax ; 31 c0 3036 mov dx, word [es:si] ; 26 8b 14 3037 add dx, cx ; 01 ca 3038 adc ax, word [es:si+002h] ; 26 13 44 02 3039 cmp ax, 01000h ; 3d 00 10 3040 jnbe short 02882h ; 77 02 3041 jne short 02864h ; 75 e2 3042 mov bx, strict word 00034h ; bb 34 00 3043 jmp short 02867h ; eb e0 3044 lea sp, [bp-002h] ; 8d 66 fe 3045 pop si ; 5e 3046 pop bp ; 5d 3047 retn 00004h ; c2 04 00 3048 ata_cmd_packet_: ; 0xf288f LB 0x2e8 3299 ata_cmd_packet_: ; 0xf2b64 LB 0x2e8 3049 3300 push bp ; 55 3050 3301 mov bp, sp ; 89 e5 … … 3057 3308 mov dx, strict word 0000eh ; ba 0e 00 3058 3309 mov ax, strict word 00040h ; b8 40 00 3059 call 0166ch ; e8 c6 ed3310 call 0166ch ; e8 f1 ea 3060 3311 mov word [bp-012h], 00122h ; c7 46 ee 22 01 3061 3312 mov word [bp-00eh], ax ; 89 46 f2 … … 3066 3317 mov byte [bp-006h], ah ; 88 66 fa 3067 3318 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 3068 jne short 02 8e1h ; 75 1f3069 mov bx, 00da 2h ; bb a20d3319 jne short 02bb6h ; 75 1f 3320 mov bx, 00da0h ; bb a0 0d 3070 3321 mov cx, ds ; 8c d9 3071 3322 mov ax, strict word 00004h ; b8 04 00 3072 call 01931h ; e8 64 f03073 push 002 01h ; 68 01 023074 push 002 10h ; 68 10 023323 call 01931h ; e8 8f ed 3324 push 00221h ; 68 21 02 3325 push 00230h ; 68 30 02 3075 3326 push strict byte 00004h ; 6a 04 3076 call 01972h ; e8 9a f03327 call 01972h ; e8 c5 ed 3077 3328 add sp, strict byte 00006h ; 83 c4 06 3078 3329 mov dx, strict word 00001h ; ba 01 00 3079 jmp near 02 b6ch ; e9 8b 023330 jmp near 02e41h ; e9 8b 02 3080 3331 test byte [bp+004h], 001h ; f6 46 04 01 3081 jne short 02 8dbh ; 75 f43332 jne short 02bb0h ; 75 f4 3082 3333 xor ah, ah ; 30 e4 3083 3334 imul ax, ax, strict byte 00006h ; 6b c0 06 … … 3085 3336 mov si, word [bp-012h] ; 8b 76 ee 3086 3337 add si, ax ; 01 c6 3087 mov bx, word [es:si+00 1c2h] ; 26 8b 9c c2 013088 mov ax, word [es:si+00 1c4h] ; 26 8b 84 c4 013338 mov bx, word [es:si+00206h] ; 26 8b 9c 06 02 3339 mov ax, word [es:si+00208h] ; 26 8b 84 08 02 3089 3340 mov word [bp-010h], ax ; 89 46 f0 3090 imul si, word [bp-01ah], strict byte 0001 8h ; 6b 76 e6 183341 imul si, word [bp-01ah], strict byte 0001ch ; 6b 76 e6 1c 3091 3342 add si, word [bp-012h] ; 03 76 ee 3092 mov al, byte [es:si+02 2h] ; 26 8a 44 223343 mov al, byte [es:si+026h] ; 26 8a 44 26 3093 3344 mov byte [bp-00ah], al ; 88 46 f6 3094 3345 xor ax, ax ; 31 c0 … … 3097 3348 mov al, byte [bp-008h] ; 8a 46 f8 3098 3349 cmp AL, strict byte 00ch ; 3c 0c 3099 jnc short 02 924h ; 73 063350 jnc short 02bf9h ; 73 06 3100 3351 mov byte [bp-008h], 00ch ; c6 46 f8 0c 3101 jmp short 02 92ah ; eb 063102 jbe short 02 92ah ; 76 043352 jmp short 02bffh ; eb 06 3353 jbe short 02bffh ; 76 04 3103 3354 mov byte [bp-008h], 010h ; c6 46 f8 10 3104 3355 shr byte [bp-008h], 1 ; d0 6e f8 3105 3356 mov es, [bp-00eh] ; 8e 46 f2 3106 3357 mov si, word [bp-012h] ; 8b 76 ee 3107 db 066h, 026h, 0c7h, 044h, 01 4h, 000h, 000h, 000h, 000h3108 ; mov dword [es:si+01 4h], strict dword 000000000h ; 66 26 c7 44 1400 00 00 003109 mov word [es:si+01 8h], strict word 00000h ; 26 c7 44 1800 003358 db 066h, 026h, 0c7h, 044h, 018h, 000h, 000h, 000h, 000h 3359 ; mov dword [es:si+018h], strict dword 000000000h ; 66 26 c7 44 18 00 00 00 00 3360 mov word [es:si+01ch], strict word 00000h ; 26 c7 44 1c 00 00 3110 3361 lea dx, [bx+007h] ; 8d 57 07 3111 3362 in AL, DX ; ec … … 3113 3364 ; sub ah, ah ; 2a e4 3114 3365 test AL, strict byte 080h ; a8 80 3115 je short 02 952h ; 74 063366 je short 02c27h ; 74 06 3116 3367 mov dx, strict word 00002h ; ba 02 00 3117 jmp near 02 b6ch ; e9 1a 023368 jmp near 02e41h ; e9 1a 02 3118 3369 mov dx, word [bp-010h] ; 8b 56 f0 3119 3370 add dx, strict byte 00006h ; 83 c2 06 … … 3127 3378 out DX, AL ; ee 3128 3379 cmp byte [bp-006h], 000h ; 80 7e fa 00 3129 je short 02 972h ; 74 053380 je short 02c47h ; 74 05 3130 3381 mov ax, 000b0h ; b8 b0 00 3131 jmp short 02 975h ; eb 033382 jmp short 02c4ah ; eb 03 3132 3383 mov ax, 000a0h ; b8 a0 00 3133 3384 lea dx, [bx+006h] ; 8d 57 06 … … 3142 3393 mov dl, al ; 88 c2 3143 3394 test AL, strict byte 080h ; a8 80 3144 jne short 02 97fh ; 75 f43395 jne short 02c54h ; 75 f4 3145 3396 test AL, strict byte 001h ; a8 01 3146 je short 02 99eh ; 74 0f3397 je short 02c73h ; 74 0f 3147 3398 mov dx, word [bp-010h] ; 8b 56 f0 3148 3399 add dx, strict byte 00006h ; 83 c2 06 … … 3150 3401 out DX, AL ; ee 3151 3402 mov dx, strict word 00003h ; ba 03 00 3152 jmp near 02 b6ch ; e9 ce 013403 jmp near 02e41h ; e9 ce 01 3153 3404 test dl, 008h ; f6 c2 08 3154 jne short 02 9b2h ; 75 0f3405 jne short 02c87h ; 75 0f 3155 3406 mov dx, word [bp-010h] ; 8b 56 f0 3156 3407 add dx, strict byte 00006h ; 83 c2 06 … … 3158 3409 out DX, AL ; ee 3159 3410 mov dx, strict word 00004h ; ba 04 00 3160 jmp near 02 b6ch ; e9 ba 013411 jmp near 02e41h ; e9 ba 01 3161 3412 sti ; fb 3162 3413 mov ax, di ; 89 f8 … … 3171 3422 ; rep es outsw ; f3 26 6f 3172 3423 cmp byte [bp+00ah], 000h ; 80 7e 0a 00 3173 jne short 02 9dbh ; 75 0b3424 jne short 02cb0h ; 75 0b 3174 3425 lea dx, [bx+007h] ; 8d 57 07 3175 3426 in AL, DX ; ec … … 3177 3428 ; sub ah, ah ; 2a e4 3178 3429 mov dl, al ; 88 c2 3179 jmp near 02 b4dh ; e9 72 013430 jmp near 02e22h ; e9 72 01 3180 3431 lea dx, [bx+007h] ; 8d 57 07 3181 3432 in AL, DX ; ec … … 3184 3435 mov dl, al ; 88 c2 3185 3436 test AL, strict byte 080h ; a8 80 3186 jne short 02 9dbh ; 75 f43437 jne short 02cb0h ; 75 f4 3187 3438 test AL, strict byte 088h ; a8 88 3188 je near 02 b4dh ; 0f 84 60 013439 je near 02e22h ; 0f 84 60 01 3189 3440 test AL, strict byte 001h ; a8 01 3190 je short 02 9fch ; 74 0b3441 je short 02cd1h ; 74 0b 3191 3442 mov dx, word [bp-010h] ; 8b 56 f0 3192 3443 add dx, strict byte 00006h ; 83 c2 06 3193 3444 mov AL, strict byte 008h ; b0 08 3194 3445 out DX, AL ; ee 3195 jmp short 02 998h ; eb 9c3446 jmp short 02c6dh ; eb 9c 3196 3447 mov al, dl ; 88 d0 3197 3448 and AL, strict byte 0c9h ; 24 c9 3198 3449 cmp AL, strict byte 048h ; 3c 48 3199 je short 02 a0fh ; 74 0b3450 je short 02ce4h ; 74 0b 3200 3451 mov dx, word [bp-010h] ; 8b 56 f0 3201 3452 add dx, strict byte 00006h ; 83 c2 06 3202 3453 mov AL, strict byte 008h ; b0 08 3203 3454 out DX, AL ; ee 3204 jmp short 02 9ach ; eb 9d3455 jmp short 02c81h ; eb 9d 3205 3456 mov ax, word [bp+00ch] ; 8b 46 0c 3206 3457 shr ax, 004h ; c1 e8 04 … … 3225 3476 mov ax, word [bp+004h] ; 8b 46 04 3226 3477 cmp ax, cx ; 39 c8 3227 jbe short 02 a4fh ; 76 0c3478 jbe short 02d24h ; 76 0c 3228 3479 mov ax, cx ; 89 c8 3229 3480 sub word [bp+004h], cx ; 29 4e 04 3230 3481 xor ax, cx ; 31 c8 3231 3482 mov word [bp-014h], ax ; 89 46 ec 3232 jmp short 02 a59h ; eb 0a3483 jmp short 02d2eh ; eb 0a 3233 3484 mov cx, ax ; 89 c1 3234 3485 mov word [bp+004h], strict word 00000h ; c7 46 04 00 00 … … 3236 3487 xor ax, ax ; 31 c0 3237 3488 cmp word [bp+008h], strict byte 00000h ; 83 7e 08 00 3238 jne short 02 a82h ; 75 213489 jne short 02d57h ; 75 21 3239 3490 mov dx, word [bp-014h] ; 8b 56 ec 3240 3491 cmp dx, word [bp+006h] ; 3b 56 06 3241 jbe short 02 a82h ; 76 193492 jbe short 02d57h ; 76 19 3242 3493 mov ax, word [bp-014h] ; 8b 46 ec 3243 3494 sub ax, word [bp+006h] ; 2b 46 06 … … 3248 3499 mov word [bp+006h], ax ; 89 46 06 3249 3500 mov word [bp+008h], ax ; 89 46 08 3250 jmp short 02 a8eh ; eb 0c3501 jmp short 02d63h ; eb 0c 3251 3502 mov word [bp-00ch], ax ; 89 46 f4 3252 3503 mov dx, word [bp-014h] ; 8b 56 ec … … 3256 3507 mov al, byte [bp-00ah] ; 8a 46 f6 3257 3508 test cl, 003h ; f6 c1 03 3258 je short 02 a9bh ; 74 023509 je short 02d70h ; 74 02 3259 3510 xor al, al ; 30 c0 3260 3511 test byte [bp-014h], 003h ; f6 46 ec 03 3261 je short 02 aa3h ; 74 023512 je short 02d78h ; 74 02 3262 3513 xor al, al ; 30 c0 3263 3514 test byte [bp-00ch], 003h ; f6 46 f4 03 3264 je short 02 aabh ; 74 023515 je short 02d80h ; 74 02 3265 3516 xor al, al ; 30 c0 3266 3517 test byte [bp-014h], 001h ; f6 46 ec 01 3267 je short 02 ac3h ; 74 123518 je short 02d98h ; 74 12 3268 3519 inc word [bp-014h] ; ff 46 ec 3269 3520 cmp word [bp-00ch], strict byte 00000h ; 83 7e f4 00 3270 jbe short 02 ac3h ; 76 093521 jbe short 02d98h ; 76 09 3271 3522 test byte [bp-00ch], 001h ; f6 46 f4 01 3272 je short 02 ac3h ; 74 033523 je short 02d98h ; 74 03 3273 3524 dec word [bp-00ch] ; ff 4e f4 3274 3525 cmp AL, strict byte 001h ; 3c 01 3275 jne short 02 ad4h ; 75 0d3526 jne short 02da9h ; 75 0d 3276 3527 shr word [bp-014h], 002h ; c1 6e ec 02 3277 3528 shr cx, 002h ; c1 e9 02 3278 3529 shr word [bp-00ch], 002h ; c1 6e f4 02 3279 jmp short 02 adch ; eb 083530 jmp short 02db1h ; eb 08 3280 3531 shr word [bp-014h], 1 ; d1 6e ec 3281 3532 shr cx, 1 ; d1 e9 3282 3533 shr word [bp-00ch], 1 ; d1 6e f4 3283 3534 cmp AL, strict byte 001h ; 3c 01 3284 jne short 02 b0ch ; 75 2c3535 jne short 02de1h ; 75 2c 3285 3536 test cx, cx ; 85 c9 3286 je short 02 aeeh ; 74 0a3537 je short 02dc3h ; 74 0a 3287 3538 mov dx, bx ; 89 da 3288 3539 push eax ; 66 50 3289 3540 in eax, DX ; 66 ed 3290 loop 02 ae8h ; e2 fc3541 loop 02dbdh ; e2 fc 3291 3542 pop eax ; 66 58 3292 3543 mov dx, bx ; 89 da … … 3297 3548 mov ax, word [bp-00ch] ; 8b 46 f4 3298 3549 test ax, ax ; 85 c0 3299 je short 02 b2bh ; 74 2b3550 je short 02e00h ; 74 2b 3300 3551 mov cx, ax ; 89 c1 3301 3552 push eax ; 66 50 3302 3553 in eax, DX ; 66 ed 3303 loop 02 b04h ; e2 fc3554 loop 02dd9h ; e2 fc 3304 3555 pop eax ; 66 58 3305 jmp short 02 b2bh ; eb 1f3556 jmp short 02e00h ; eb 1f 3306 3557 test cx, cx ; 85 c9 3307 je short 02 b15h ; 74 053558 je short 02deah ; 74 05 3308 3559 mov dx, bx ; 89 da 3309 3560 in ax, DX ; ed 3310 loop 02 b12h ; e2 fd3561 loop 02de7h ; e2 fd 3311 3562 mov dx, bx ; 89 da 3312 3563 mov cx, word [bp-014h] ; 8b 4e ec … … 3315 3566 mov ax, word [bp-00ch] ; 8b 46 f4 3316 3567 test ax, ax ; 85 c0 3317 je short 02 b2bh ; 74 053568 je short 02e00h ; 74 05 3318 3569 mov cx, ax ; 89 c1 3319 3570 in ax, DX ; ed 3320 loop 02 b28h ; e2 fd3571 loop 02dfdh ; e2 fd 3321 3572 add word [bp+00ch], si ; 01 76 0c 3322 3573 xor ax, ax ; 31 c0 … … 3326 3577 mov es, [bp-00eh] ; 8e 46 f2 3327 3578 mov si, word [bp-012h] ; 8b 76 ee 3328 mov word [es:si+01 6h], ax ; 26 89 44 163579 mov word [es:si+01ah], ax ; 26 89 44 1a 3329 3580 mov ax, word [bp-016h] ; 8b 46 ea 3330 mov word [es:si+01 8h], ax ; 26 89 44 183331 jmp near 02 9dbh ; e9 8e fe3581 mov word [es:si+01ch], ax ; 26 89 44 1c 3582 jmp near 02cb0h ; e9 8e fe 3332 3583 mov al, dl ; 88 d0 3333 3584 and AL, strict byte 0e9h ; 24 e9 3334 3585 cmp AL, strict byte 040h ; 3c 40 3335 je short 02 b61h ; 74 0c3586 je short 02e36h ; 74 0c 3336 3587 mov dx, word [bp-010h] ; 8b 56 f0 3337 3588 add dx, strict byte 00006h ; 83 c2 06 3338 3589 mov AL, strict byte 008h ; b0 08 3339 3590 out DX, AL ; ee 3340 jmp near 02 9ach ; e9 4b fe3591 jmp near 02c81h ; e9 4b fe 3341 3592 mov dx, word [bp-010h] ; 8b 56 f0 3342 3593 add dx, strict byte 00006h ; 83 c2 06 … … 3350 3601 pop bp ; 5d 3351 3602 retn 0000ch ; c2 0c 00 3352 ata_soft_reset_: ; 0xf2 b77LB 0x803603 ata_soft_reset_: ; 0xf2e4c LB 0x80 3353 3604 push bp ; 55 3354 3605 mov bp, sp ; 89 e5 … … 3360 3611 mov dx, strict word 0000eh ; ba 0e 00 3361 3612 mov ax, strict word 00040h ; b8 40 00 3362 call 0166ch ; e8 e3 ea3613 call 0166ch ; e8 0e e8 3363 3614 mov dx, bx ; 89 da 3364 3615 shr dx, 1 ; d1 ea … … 3369 3620 mov es, ax ; 8e c0 3370 3621 add bx, 00122h ; 81 c3 22 01 3371 mov cx, word [es:bx+00 1c2h] ; 26 8b 8f c2 013372 mov bx, word [es:bx+00 1c4h] ; 26 8b 9f c4 013622 mov cx, word [es:bx+00206h] ; 26 8b 8f 06 02 3623 mov bx, word [es:bx+00208h] ; 26 8b 9f 08 02 3373 3624 lea dx, [bx+006h] ; 8d 57 06 3374 3625 mov AL, strict byte 00ah ; b0 0a 3375 3626 out DX, AL ; ee 3376 3627 cmp byte [bp-008h], 000h ; 80 7e f8 00 3377 je short 02 bb9h ; 74 053628 je short 02e8eh ; 74 05 3378 3629 mov ax, 000b0h ; b8 b0 00 3379 jmp short 02 bbch ; eb 033630 jmp short 02e91h ; eb 03 3380 3631 mov ax, 000a0h ; b8 a0 00 3381 3632 mov dx, cx ; 89 ca … … 3392 3643 ; sub ah, ah ; 2a e4 3393 3644 test AL, strict byte 080h ; a8 80 3394 jne short 02 bcah ; 75 f43645 jne short 02e9fh ; 75 f4 3395 3646 and AL, strict byte 0e9h ; 24 e9 3396 3647 cmp AL, strict byte 040h ; 3c 40 3397 je short 02 be7h ; 74 0b3648 je short 02ebch ; 74 0b 3398 3649 lea dx, [bx+006h] ; 8d 57 06 3399 3650 mov AL, strict byte 008h ; b0 08 3400 3651 out DX, AL ; ee 3401 3652 mov ax, strict word 00001h ; b8 01 00 3402 jmp short 02 befh ; eb 083653 jmp short 02ec4h ; eb 08 3403 3654 lea dx, [bx+006h] ; 8d 57 06 3404 3655 mov AL, strict byte 008h ; b0 08 … … 3411 3662 pop bp ; 5d 3412 3663 retn ; c3 3413 set_diskette_ret_status_: ; 0xf2 bf7LB 0x183664 set_diskette_ret_status_: ; 0xf2ecc LB 0x18 3414 3665 push bp ; 55 3415 3666 mov bp, sp ; 89 e5 … … 3419 3670 mov dx, strict word 00041h ; ba 41 00 3420 3671 mov ax, strict word 00040h ; b8 40 00 3421 call 0165eh ; e8 56 ea3672 call 0165eh ; e8 81 e7 3422 3673 lea sp, [bp-004h] ; 8d 66 fc 3423 3674 pop dx ; 5a … … 3425 3676 pop bp ; 5d 3426 3677 retn ; c3 3427 set_diskette_current_cyl_: ; 0xf2 c0fLB 0x2d3678 set_diskette_current_cyl_: ; 0xf2ee4 LB 0x2d 3428 3679 push bp ; 55 3429 3680 mov bp, sp ; 89 e5 … … 3431 3682 mov bl, al ; 88 c3 3432 3683 cmp AL, strict byte 001h ; 3c 01 3433 jbe short 02 c24h ; 76 0b3434 push 002 30h ; 68 30 023684 jbe short 02ef9h ; 76 0b 3685 push 00250h ; 68 50 02 3435 3686 push strict byte 00007h ; 6a 07 3436 call 01972h ; e8 51 ed3687 call 01972h ; e8 7c ea 3437 3688 add sp, strict byte 00004h ; 83 c4 04 3438 3689 movzx ax, dl ; 0f b6 c2 … … 3441 3692 mov bx, ax ; 89 c3 3442 3693 mov ax, strict word 00040h ; b8 40 00 3443 call 0165eh ; e8 28 ea3694 call 0165eh ; e8 53 e7 3444 3695 lea sp, [bp-002h] ; 8d 66 fe 3445 3696 pop bx ; 5b 3446 3697 pop bp ; 5d 3447 3698 retn ; c3 3448 floppy_wait_for_interrupt_: ; 0xf2 c3cLB 0x213699 floppy_wait_for_interrupt_: ; 0xf2f11 LB 0x21 3449 3700 push bp ; 55 3450 3701 mov bp, sp ; 89 e5 … … 3453 3704 mov dx, strict word 0003eh ; ba 3e 00 3454 3705 mov ax, strict word 00040h ; b8 40 00 3455 call 01650h ; e8 06 ea3706 call 01650h ; e8 31 e7 3456 3707 test AL, strict byte 080h ; a8 80 3457 je short 02 c52h ; 74 043708 je short 02f27h ; 74 04 3458 3709 and AL, strict byte 080h ; 24 80 3459 jmp short 02 c57h ; eb 053710 jmp short 02f2ch ; eb 05 3460 3711 sti ; fb 3461 3712 hlt ; f4 3462 3713 cli ; fa 3463 jmp short 02 c41h ; eb ea3714 jmp short 02f16h ; eb ea 3464 3715 lea sp, [bp-002h] ; 8d 66 fe 3465 3716 pop dx ; 5a 3466 3717 pop bp ; 5d 3467 3718 retn ; c3 3468 floppy_wait_for_interrupt_or_timeout_: ; 0xf2 c5dLB 0x463719 floppy_wait_for_interrupt_or_timeout_: ; 0xf2f32 LB 0x46 3469 3720 push bp ; 55 3470 3721 mov bp, sp ; 89 e5 … … 3475 3726 mov dx, strict word 00040h ; ba 40 00 3476 3727 mov ax, dx ; 89 d0 3477 call 01650h ; e8 e4 e93728 call 01650h ; e8 0f e7 3478 3729 test al, al ; 84 c0 3479 jne short 02 c75h ; 75 053730 jne short 02f4ah ; 75 05 3480 3731 sti ; fb 3481 3732 xor cl, cl ; 30 c9 3482 jmp short 02 c99h ; eb 243733 jmp short 02f6eh ; eb 24 3483 3734 mov dx, strict word 0003eh ; ba 3e 00 3484 3735 mov ax, strict word 00040h ; b8 40 00 3485 call 01650h ; e8 d2 e93736 call 01650h ; e8 fd e6 3486 3737 mov cl, al ; 88 c1 3487 3738 test AL, strict byte 080h ; a8 80 3488 je short 02 c94h ; 74 103739 je short 02f69h ; 74 10 3489 3740 and AL, strict byte 07fh ; 24 7f 3490 3741 movzx bx, al ; 0f b6 d8 3491 3742 mov dx, strict word 0003eh ; ba 3e 00 3492 3743 mov ax, strict word 00040h ; b8 40 00 3493 call 0165eh ; e8 cc e93494 jmp short 02 c99h ; eb 053744 call 0165eh ; e8 f7 e6 3745 jmp short 02f6eh ; eb 05 3495 3746 sti ; fb 3496 3747 hlt ; f4 3497 3748 cli ; fa 3498 jmp short 02 c64h ; eb cb3749 jmp short 02f39h ; eb cb 3499 3750 mov al, cl ; 88 c8 3500 3751 lea sp, [bp-006h] ; 8d 66 fa … … 3504 3755 pop bp ; 5d 3505 3756 retn ; c3 3506 floppy_reset_controller_: ; 0xf2 ca3LB 0x2b3757 floppy_reset_controller_: ; 0xf2f78 LB 0x2b 3507 3758 push bp ; 55 3508 3759 mov bp, sp ; 89 e5 … … 3526 3777 and AL, strict byte 0c0h ; 24 c0 3527 3778 cmp AL, strict byte 080h ; 3c 80 3528 jne short 02 cbbh ; 75 f43779 jne short 02f90h ; 75 f4 3529 3780 lea sp, [bp-004h] ; 8d 66 fc 3530 3781 pop dx ; 5a … … 3532 3783 pop bp ; 5d 3533 3784 retn ; c3 3534 floppy_prepare_controller_: ; 0xf2 cceLB 0x813785 floppy_prepare_controller_: ; 0xf2fa3 LB 0x81 3535 3786 push bp ; 55 3536 3787 mov bp, sp ; 89 e5 … … 3542 3793 mov dx, strict word 0003eh ; ba 3e 00 3543 3794 mov ax, strict word 00040h ; b8 40 00 3544 call 01650h ; e8 70 e93795 call 01650h ; e8 9b e6 3545 3796 and AL, strict byte 07fh ; 24 7f 3546 3797 movzx bx, al ; 0f b6 d8 3547 3798 mov dx, strict word 0003eh ; ba 3e 00 3548 3799 mov ax, strict word 00040h ; b8 40 00 3549 call 0165eh ; e8 70 e93800 call 0165eh ; e8 9b e6 3550 3801 mov dx, 003f2h ; ba f2 03 3551 3802 in AL, DX ; ec … … 3555 3806 mov byte [bp-008h], al ; 88 46 f8 3556 3807 test cx, cx ; 85 c9 3557 je short 02 d01h ; 74 043808 je short 02fd6h ; 74 04 3558 3809 mov AL, strict byte 020h ; b0 20 3559 jmp short 02 d03h ; eb 023810 jmp short 02fd8h ; eb 02 3560 3811 mov AL, strict byte 010h ; b0 10 3561 3812 or AL, strict byte 00ch ; 0c 0c … … 3566 3817 mov dx, strict word 00040h ; ba 40 00 3567 3818 mov ax, dx ; 89 d0 3568 call 0165eh ; e8 48 e93819 call 0165eh ; e8 73 e6 3569 3820 mov dx, 0008bh ; ba 8b 00 3570 3821 mov ax, strict word 00040h ; b8 40 00 3571 call 01650h ; e8 31 e93822 call 01650h ; e8 5c e6 3572 3823 shr al, 006h ; c0 e8 06 3573 3824 mov dx, 003f7h ; ba f7 03 … … 3579 3830 and AL, strict byte 0c0h ; 24 c0 3580 3831 cmp AL, strict byte 080h ; 3c 80 3581 jne short 02 d26h ; 75 f43832 jne short 02ffbh ; 75 f4 3582 3833 cmp byte [bp-008h], 000h ; 80 7e f8 00 3583 jne short 0 2d47h ; 75 0f3584 call 02 c3ch ; e8 01 ff3834 jne short 0301ch ; 75 0f 3835 call 02f11h ; e8 01 ff 3585 3836 movzx bx, al ; 0f b6 d8 3586 3837 mov dx, strict word 0003eh ; ba 3e 00 3587 3838 mov ax, strict word 00040h ; b8 40 00 3588 call 0165eh ; e8 17 e93839 call 0165eh ; e8 42 e6 3589 3840 lea sp, [bp-006h] ; 8d 66 fa 3590 3841 pop dx ; 5a … … 3593 3844 pop bp ; 5d 3594 3845 retn ; c3 3595 floppy_media_known_: ; 0xf 2d4fLB 0x433846 floppy_media_known_: ; 0xf3024 LB 0x43 3596 3847 push bp ; 55 3597 3848 mov bp, sp ; 89 e5 … … 3601 3852 mov dx, strict word 0003eh ; ba 3e 00 3602 3853 mov ax, strict word 00040h ; b8 40 00 3603 call 01650h ; e8 f1 e83854 call 01650h ; e8 1c e6 3604 3855 mov ah, al ; 88 c4 3605 3856 test bx, bx ; 85 db 3606 je short 0 2d67h ; 74 023857 je short 0303ch ; 74 02 3607 3858 shr al, 1 ; d0 e8 3608 3859 and AL, strict byte 001h ; 24 01 3609 jne short 0 2d6fh ; 75 043860 jne short 03044h ; 75 04 3610 3861 xor ah, ah ; 30 e4 3611 jmp short 0 2d8bh ; eb 1c3862 jmp short 03060h ; eb 1c 3612 3863 mov dx, 00090h ; ba 90 00 3613 3864 test bx, bx ; 85 db 3614 je short 0 2d79h ; 74 033865 je short 0304eh ; 74 03 3615 3866 mov dx, 00091h ; ba 91 00 3616 3867 mov ax, strict word 00040h ; b8 40 00 3617 call 01650h ; e8 d1 e83868 call 01650h ; e8 fc e5 3618 3869 xor ah, ah ; 30 e4 3619 3870 sar ax, 004h ; c1 f8 04 3620 3871 and AL, strict byte 001h ; 24 01 3621 je short 0 2d6bh ; 74 e33872 je short 03040h ; 74 e3 3622 3873 mov ax, strict word 00001h ; b8 01 00 3623 3874 lea sp, [bp-004h] ; 8d 66 fc … … 3626 3877 pop bp ; 5d 3627 3878 retn ; c3 3628 floppy_read_id_: ; 0xf 2d92LB 0x403879 floppy_read_id_: ; 0xf3067 LB 0x40 3629 3880 push bp ; 55 3630 3881 mov bp, sp ; 89 e5 … … 3634 3885 sub sp, strict byte 00008h ; 83 ec 08 3635 3886 mov bx, ax ; 89 c3 3636 call 02 cceh ; e8 2e ff3887 call 02fa3h ; e8 2e ff 3637 3888 mov AL, strict byte 04ah ; b0 4a 3638 3889 mov dx, 003f5h ; ba f5 03 … … 3640 3891 mov al, bl ; 88 d8 3641 3892 out DX, AL ; ee 3642 call 02 c3ch ; e8 90 fe3893 call 02f11h ; e8 90 fe 3643 3894 xor si, si ; 31 f6 3644 jmp short 0 2db5h ; eb 053895 jmp short 0308ah ; eb 05 3645 3896 cmp si, strict byte 00007h ; 83 fe 07 3646 jnl short 0 2dc1h ; 7d 0c3897 jnl short 03096h ; 7d 0c 3647 3898 mov dx, 003f5h ; ba f5 03 3648 3899 in AL, DX ; ec … … 3651 3902 mov byte [bp+si-00eh], al ; 88 42 f2 3652 3903 inc si ; 46 3653 jmp short 0 2db0h ; eb ef3904 jmp short 03085h ; eb ef 3654 3905 test byte [bp-00eh], 0c0h ; f6 46 f2 c0 3655 3906 db 00fh, 094h, 0c0h … … 3662 3913 pop bp ; 5d 3663 3914 retn ; c3 3664 floppy_drive_recal_: ; 0xf 2dd2LB 0x483915 floppy_drive_recal_: ; 0xf30a7 LB 0x48 3665 3916 push bp ; 55 3666 3917 mov bp, sp ; 89 e5 … … 3669 3920 push dx ; 52 3670 3921 mov bx, ax ; 89 c3 3671 call 02 cceh ; e8 f1 fe3922 call 02fa3h ; e8 f1 fe 3672 3923 mov AL, strict byte 007h ; b0 07 3673 3924 mov dx, 003f5h ; ba f5 03 … … 3675 3926 mov al, bl ; 88 d8 3676 3927 out DX, AL ; ee 3677 call 02 c3ch ; e8 53 fe3928 call 02f11h ; e8 53 fe 3678 3929 test bx, bx ; 85 db 3679 je short 0 2df4h ; 74 073930 je short 030c9h ; 74 07 3680 3931 or AL, strict byte 002h ; 0c 02 3681 3932 mov cx, 00095h ; b9 95 00 3682 jmp short 0 2df9h ; eb 053933 jmp short 030ceh ; eb 05 3683 3934 or AL, strict byte 001h ; 0c 01 3684 3935 mov cx, 00094h ; b9 94 00 … … 3686 3937 mov dx, strict word 0003eh ; ba 3e 00 3687 3938 mov ax, strict word 00040h ; b8 40 00 3688 call 0165eh ; e8 59 e83939 call 0165eh ; e8 84 e5 3689 3940 xor bx, bx ; 31 db 3690 3941 mov dx, cx ; 89 ca 3691 3942 mov ax, strict word 00040h ; b8 40 00 3692 call 0165eh ; e8 4f e83943 call 0165eh ; e8 7a e5 3693 3944 mov ax, strict word 00001h ; b8 01 00 3694 3945 lea sp, [bp-006h] ; 8d 66 fa … … 3698 3949 pop bp ; 5d 3699 3950 retn ; c3 3700 floppy_media_sense_: ; 0xf 2e1aLB 0xf03951 floppy_media_sense_: ; 0xf30ef LB 0xf0 3701 3952 push bp ; 55 3702 3953 mov bp, sp ; 89 e5 … … 3707 3958 push di ; 57 3708 3959 mov di, ax ; 89 c7 3709 call 0 2dd2h ; e8 ab ff3960 call 030a7h ; e8 ab ff 3710 3961 test ax, ax ; 85 c0 3711 jne short 0 2e30h ; 75 053962 jne short 03105h ; 75 05 3712 3963 xor cx, cx ; 31 c9 3713 jmp near 0 2efeh ; e9 ce 003964 jmp near 031d3h ; e9 ce 00 3714 3965 mov ax, strict word 00010h ; b8 10 00 3715 call 016ach ; e8 76 e83966 call 016ach ; e8 a1 e5 3716 3967 test di, di ; 85 ff 3717 jne short 0 2e41h ; 75 073968 jne short 03116h ; 75 07 3718 3969 mov cl, al ; 88 c1 3719 3970 shr cl, 004h ; c0 e9 04 3720 jmp short 0 2e46h ; eb 053971 jmp short 0311bh ; eb 05 3721 3972 mov cl, al ; 88 c1 3722 3973 and cl, 00fh ; 80 e1 0f 3723 3974 cmp cl, 001h ; 80 f9 01 3724 jne short 0 2e54h ; 75 093975 jne short 03129h ; 75 09 3725 3976 xor cl, cl ; 30 c9 3726 3977 mov CH, strict byte 015h ; b5 15 3727 3978 mov si, strict word 00001h ; be 01 00 3728 jmp short 0 2e92h ; eb 3e3979 jmp short 03167h ; eb 3e 3729 3980 cmp cl, 002h ; 80 f9 02 3730 jne short 0 2e5fh ; 75 063981 jne short 03134h ; 75 06 3731 3982 xor cl, cl ; 30 c9 3732 3983 mov CH, strict byte 035h ; b5 35 3733 jmp short 0 2e4fh ; eb f03984 jmp short 03124h ; eb f0 3734 3985 cmp cl, 003h ; 80 f9 03 3735 jne short 0 2e6ah ; 75 063986 jne short 0313fh ; 75 06 3736 3987 xor cl, cl ; 30 c9 3737 3988 mov CH, strict byte 017h ; b5 17 3738 jmp short 0 2e4fh ; eb e53989 jmp short 03124h ; eb e5 3739 3990 cmp cl, 004h ; 80 f9 04 3740 jne short 0 2e75h ; 75 063991 jne short 0314ah ; 75 06 3741 3992 xor cl, cl ; 30 c9 3742 3993 mov CH, strict byte 017h ; b5 17 3743 jmp short 0 2e4fh ; eb da3994 jmp short 03124h ; eb da 3744 3995 cmp cl, 005h ; 80 f9 05 3745 jne short 0 2e80h ; 75 063996 jne short 03155h ; 75 06 3746 3997 mov CL, strict byte 0cch ; b1 cc 3747 3998 mov CH, strict byte 0d7h ; b5 d7 3748 jmp short 0 2e4fh ; eb cf3999 jmp short 03124h ; eb cf 3749 4000 cmp cl, 00eh ; 80 f9 0e 3750 je short 0 2e8ah ; 74 054001 je short 0315fh ; 74 05 3751 4002 cmp cl, 00fh ; 80 f9 0f 3752 jne short 0 2e8ch ; 75 023753 jmp short 0 2e7ah ; eb ee4003 jne short 03161h ; 75 02 4004 jmp short 0314fh ; eb ee 3754 4005 xor cl, cl ; 30 c9 3755 4006 xor ch, ch ; 30 ed … … 3758 4009 mov dx, 0008bh ; ba 8b 00 3759 4010 mov ax, strict word 00040h ; b8 40 00 3760 call 0165eh ; e8 c0 e74011 call 0165eh ; e8 eb e4 3761 4012 mov ax, di ; 89 f8 3762 call 0 2d92h ; e8 ef fe4013 call 03067h ; e8 ef fe 3763 4014 test ax, ax ; 85 c0 3764 jne short 0 2ed9h ; 75 324015 jne short 031aeh ; 75 32 3765 4016 mov al, cl ; 88 c8 3766 4017 and AL, strict byte 0c0h ; 24 c0 3767 4018 cmp AL, strict byte 080h ; 3c 80 3768 je short 0 2ed9h ; 74 2a4019 je short 031aeh ; 74 2a 3769 4020 mov al, cl ; 88 c8 3770 4021 and AL, strict byte 0c0h ; 24 c0 3771 4022 cmp AL, strict byte 0c0h ; 3c c0 3772 je short 0 2ec6h ; 74 0f4023 je short 0319bh ; 74 0f 3773 4024 mov ah, cl ; 88 cc 3774 4025 and ah, 03fh ; 80 e4 3f 3775 4026 cmp AL, strict byte 040h ; 3c 40 3776 je short 0 2ed2h ; 74 124027 je short 031a7h ; 74 12 3777 4028 test al, al ; 84 c0 3778 je short 0 2ecbh ; 74 073779 jmp short 0 2e92h ; eb cc4029 je short 031a0h ; 74 07 4030 jmp short 03167h ; eb cc 3780 4031 and cl, 03fh ; 80 e1 3f 3781 jmp short 0 2e92h ; eb c74032 jmp short 03167h ; eb c7 3782 4033 mov cl, ah ; 88 e1 3783 4034 or cl, 040h ; 80 c9 40 3784 jmp short 0 2e92h ; eb c04035 jmp short 03167h ; eb c0 3785 4036 mov cl, ah ; 88 e1 3786 4037 or cl, 080h ; 80 c9 80 3787 jmp short 0 2e92h ; eb b94038 jmp short 03167h ; eb b9 3788 4039 test di, di ; 85 ff 3789 4040 db 00fh, 095h, 0c0h … … 3794 4045 mov dx, 0008bh ; ba 8b 00 3795 4046 mov ax, strict word 00040h ; b8 40 00 3796 call 0165eh ; e8 6d e74047 call 0165eh ; e8 98 e4 3797 4048 movzx bx, ch ; 0f b6 dd 3798 4049 mov dx, di ; 89 fa 3799 4050 mov ax, strict word 00040h ; b8 40 00 3800 call 0165eh ; e8 62 e74051 call 0165eh ; e8 8d e4 3801 4052 mov cx, si ; 89 f1 3802 4053 mov ax, cx ; 89 c8 … … 3809 4060 pop bp ; 5d 3810 4061 retn ; c3 3811 floppy_drive_exists_: ; 0xf 2f0aLB 0x244062 floppy_drive_exists_: ; 0xf31df LB 0x24 3812 4063 push bp ; 55 3813 4064 mov bp, sp ; 89 e5 … … 3815 4066 mov dx, ax ; 89 c2 3816 4067 mov ax, strict word 00010h ; b8 10 00 3817 call 016ach ; e8 96 e74068 call 016ach ; e8 c1 e4 3818 4069 test dx, dx ; 85 d2 3819 jne short 0 2f1fh ; 75 054070 jne short 031f4h ; 75 05 3820 4071 shr al, 004h ; c0 e8 04 3821 jmp short 0 2f21h ; eb 024072 jmp short 031f6h ; eb 02 3822 4073 and AL, strict byte 00fh ; 24 0f 3823 4074 test al, al ; 84 c0 … … 3829 4080 pop bp ; 5d 3830 4081 retn ; c3 3831 _int13_diskette_function: ; 0xf 2f2eLB 0x8f74082 _int13_diskette_function: ; 0xf3203 LB 0x8f7 3832 4083 push bp ; 55 3833 4084 mov bp, sp ; 89 e5 … … 3847 4098 mov word [bp-010h], dx ; 89 56 f0 3848 4099 cmp bl, 008h ; 80 fb 08 3849 jc short 0 2f95h ; 72 384100 jc short 0326ah ; 72 38 3850 4101 mov dx, word [bp+01ch] ; 8b 56 1c 3851 4102 or dl, 001h ; 80 ca 01 3852 4103 cmp bl, 008h ; 80 fb 08 3853 jbe near 03 4ebh ; 0f 86 81 054104 jbe near 037c0h ; 0f 86 81 05 3854 4105 cmp bl, 016h ; 80 fb 16 3855 jc short 0 2f8bh ; 72 1c4106 jc short 03260h ; 72 1c 3856 4107 or si, 00100h ; 81 ce 00 01 3857 4108 cmp bl, 016h ; 80 fb 16 3858 jbe near 03 61fh ; 0f 86 a5 064109 jbe near 038f4h ; 0f 86 a5 06 3859 4110 cmp bl, 018h ; 80 fb 18 3860 je near 03 6b5h ; 0f 84 34 074111 je near 0398ah ; 0f 84 34 07 3861 4112 cmp bl, 017h ; 80 fb 17 3862 je near 03 643h ; 0f 84 bb 063863 jmp near 03 802h ; e9 77 084113 je near 03918h ; 0f 84 bb 06 4114 jmp near 03ad7h ; e9 77 08 3864 4115 cmp bl, 015h ; 80 fb 15 3865 je near 03 5dbh ; 0f 84 49 063866 jmp near 03 802h ; e9 6d 084116 je near 038b0h ; 0f 84 49 06 4117 jmp near 03ad7h ; e9 6d 08 3867 4118 cmp bl, 001h ; 80 fb 01 3868 jc short 0 2fafh ; 72 153869 jbe near 03 028h ; 0f 86 8a 004119 jc short 03284h ; 72 15 4120 jbe near 032fdh ; 0f 86 8a 00 3870 4121 cmp bl, 005h ; 80 fb 05 3871 je near 03 365h ; 0f 84 c0 034122 je near 0363ah ; 0f 84 c0 03 3872 4123 cmp bl, 004h ; 80 fb 04 3873 jbe near 03 046h ; 0f 86 9a 003874 jmp near 03 802h ; e9 53 084124 jbe near 0331bh ; 0f 86 9a 00 4125 jmp near 03ad7h ; e9 53 08 3875 4126 test bl, bl ; 84 db 3876 jne near 03 802h ; 0f 85 4d 084127 jne near 03ad7h ; 0f 85 4d 08 3877 4128 mov al, byte [bp+00eh] ; 8a 46 0e 3878 4129 mov byte [bp-008h], al ; 88 46 f8 3879 4130 cmp AL, strict byte 001h ; 3c 01 3880 jbe short 0 2fd3h ; 76 144131 jbe short 032a8h ; 76 14 3881 4132 mov ax, word [bp+016h] ; 8b 46 16 3882 4133 xor ah, ah ; 30 e4 … … 3884 4135 mov word [bp+016h], ax ; 89 46 16 3885 4136 mov ax, strict word 00001h ; b8 01 00 3886 call 02 bf7h ; e8 27 fc3887 jmp near 03 341h ; e9 6e 034137 call 02ecch ; e8 27 fc 4138 jmp near 03616h ; e9 6e 03 3888 4139 mov ax, strict word 00010h ; b8 10 00 3889 call 016ach ; e8 d3 e64140 call 016ach ; e8 fe e3 3890 4141 cmp byte [bp-008h], 000h ; 80 7e f8 00 3891 jne short 0 2fe6h ; 75 074142 jne short 032bbh ; 75 07 3892 4143 mov cl, al ; 88 c1 3893 4144 shr cl, 004h ; c0 e9 04 3894 jmp short 0 2febh ; eb 054145 jmp short 032c0h ; eb 05 3895 4146 mov cl, al ; 88 c1 3896 4147 and cl, 00fh ; 80 e1 0f 3897 4148 test cl, cl ; 84 c9 3898 jne short 0 2fffh ; 75 104149 jne short 032d4h ; 75 10 3899 4150 mov ax, word [bp+016h] ; 8b 46 16 3900 4151 xor ah, ah ; 30 e4 … … 3902 4153 mov word [bp+016h], ax ; 89 46 16 3903 4154 mov ax, 00080h ; b8 80 00 3904 jmp short 0 2fcdh ; eb ce4155 jmp short 032a2h ; eb ce 3905 4156 xor bx, bx ; 31 db 3906 4157 mov dx, strict word 0003eh ; ba 3e 00 3907 4158 mov ax, strict word 00040h ; b8 40 00 3908 call 0165eh ; e8 54 e64159 call 0165eh ; e8 7f e3 3909 4160 xor al, al ; 30 c0 3910 4161 mov byte [bp+017h], al ; 88 46 17 3911 4162 xor ah, ah ; 30 e4 3912 call 02 bf7h ; e8 e3 fb4163 call 02ecch ; e8 e3 fb 3913 4164 and byte [bp+01ch], 0feh ; 80 66 1c fe 3914 4165 movzx ax, byte [bp-008h] ; 0f b6 46 f8 3915 4166 xor dx, dx ; 31 d2 3916 call 02 c0fh ; e8 ee fb4167 call 02ee4h ; e8 ee fb 3917 4168 lea sp, [bp-004h] ; 8d 66 fc 3918 4169 pop di ; 5f … … 3923 4174 mov dx, 00441h ; ba 41 04 3924 4175 xor ax, ax ; 31 c0 3925 call 01650h ; e8 1c e64176 call 01650h ; e8 47 e3 3926 4177 movzx dx, al ; 0f b6 d0 3927 4178 sal dx, 008h ; c1 e2 08 … … 3929 4180 mov word [bp+016h], si ; 89 76 16 3930 4181 test al, al ; 84 c0 3931 je short 03 021h ; 74 de3932 jmp near 03 341h ; e9 fb 024182 je short 032f6h ; 74 de 4183 jmp near 03616h ; e9 fb 02 3933 4184 mov ch, cl ; 88 cd 3934 4185 mov dl, byte [bp-010h] ; 8a 56 f0 … … 3940 4191 mov byte [bp-008h], al ; 88 46 f8 3941 4192 cmp AL, strict byte 001h ; 3c 01 3942 jnbe short 03 06fh ; 77 0e4193 jnbe short 03344h ; 77 0e 3943 4194 cmp dl, 001h ; 80 fa 01 3944 jnbe short 03 06fh ; 77 094195 jnbe short 03344h ; 77 09 3945 4196 test cl, cl ; 84 c9 3946 je short 03 06fh ; 74 054197 je short 03344h ; 74 05 3947 4198 cmp cl, 048h ; 80 f9 48 3948 jbe short 03 099h ; 76 2a3949 mov bx, 00da 2h ; bb a20d4199 jbe short 0336eh ; 76 2a 4200 mov bx, 00da0h ; bb a0 0d 3950 4201 mov cx, ds ; 8c d9 3951 4202 mov ax, strict word 00004h ; b8 04 00 3952 call 01931h ; e8 b7 e83953 push 002 55h ; 68 55 023954 push 002 6dh ; 68 6d 024203 call 01931h ; e8 e2 e5 4204 push 00275h ; 68 75 02 4205 push 0028dh ; 68 8d 02 3955 4206 push strict byte 00004h ; 6a 04 3956 call 01972h ; e8 ed e84207 call 01972h ; e8 18 e6 3957 4208 add sp, strict byte 00006h ; 83 c4 06 3958 4209 mov ax, word [bp+016h] ; 8b 46 16 … … 3961 4212 mov word [bp+016h], ax ; 89 46 16 3962 4213 mov ax, strict word 00001h ; b8 01 00 3963 jmp near 03 10fh ; e9 76 004214 jmp near 033e4h ; e9 76 00 3964 4215 movzx ax, byte [bp-008h] ; 0f b6 46 f8 3965 call 0 2f0ah ; e8 6a fe4216 call 031dfh ; e8 6a fe 3966 4217 test ax, ax ; 85 c0 3967 je near 03 1a2h ; 0f 84 fc 004218 je near 03477h ; 0f 84 fc 00 3968 4219 movzx dx, byte [bp-008h] ; 0f b6 56 f8 3969 4220 mov ax, dx ; 89 d0 3970 call 0 2d4fh ; e8 a0 fc4221 call 03024h ; e8 a0 fc 3971 4222 test ax, ax ; 85 c0 3972 jne short 03 0cch ; 75 194223 jne short 033a1h ; 75 19 3973 4224 mov ax, dx ; 89 d0 3974 call 0 2e1ah ; e8 62 fd4225 call 030efh ; e8 62 fd 3975 4226 test ax, ax ; 85 c0 3976 jne short 03 0cch ; 75 104227 jne short 033a1h ; 75 10 3977 4228 mov ax, word [bp+016h] ; 8b 46 16 3978 4229 xor ah, ah ; 30 e4 … … 3980 4231 mov word [bp+016h], ax ; 89 46 16 3981 4232 mov ax, strict word 0000ch ; b8 0c 00 3982 jmp short 03 10fh ; eb 434233 jmp short 033e4h ; eb 43 3983 4234 cmp byte [bp-006h], 002h ; 80 7e fa 02 3984 jne near 03 234h ; 0f 85 60 014235 jne near 03509h ; 0f 85 60 01 3985 4236 mov ax, word [bp+006h] ; 8b 46 06 3986 4237 shr ax, 00ch ; c1 e8 0c … … 3992 4243 mov word [bp-012h], bx ; 89 5e ee 3993 4244 cmp dx, bx ; 39 da 3994 jbe short 03 0f0h ; 76 024245 jbe short 033c5h ; 76 02 3995 4246 db 0feh, 0c1h 3996 4247 ; inc cl ; fe c1 … … 4001 4252 add ax, bx ; 01 d8 4002 4253 cmp ax, word [bp-012h] ; 3b 46 ee 4003 jnc short 03 119h ; 73 184254 jnc short 033eeh ; 73 18 4004 4255 mov ax, word [bp+016h] ; 8b 46 16 4005 4256 xor ah, ah ; 30 e4 … … 4007 4258 mov word [bp+016h], ax ; 89 46 16 4008 4259 mov ax, strict word 00009h ; b8 09 00 4009 call 02 bf7h ; e8 e5 fa4260 call 02ecch ; e8 e5 fa 4010 4261 mov byte [bp+016h], 000h ; c6 46 16 00 4011 jmp near 03 341h ; e9 28 024262 jmp near 03616h ; e9 28 02 4012 4263 mov AL, strict byte 006h ; b0 06 4013 4264 mov dx, strict word 0000ah ; ba 0a 00 … … 4041 4292 out DX, AL ; ee 4042 4293 movzx ax, byte [bp-008h] ; 0f b6 46 f8 4043 call 02 cceh ; e8 70 fb4294 call 02fa3h ; e8 70 fb 4044 4295 mov AL, strict byte 0e6h ; b0 e6 4045 4296 mov dx, 003f5h ; ba f5 03 … … 4069 4320 mov AL, strict byte 0ffh ; b0 ff 4070 4321 out DX, AL ; ee 4071 call 02 c5dh ; e8 c2 fa4322 call 02f32h ; e8 c2 fa 4072 4323 test al, al ; 84 c0 4073 jne short 03 1b3h ; 75 144074 call 02 ca3h ; e8 01 fb4324 jne short 03488h ; 75 14 4325 call 02f78h ; e8 01 fb 4075 4326 mov ax, word [bp+016h] ; 8b 46 16 4076 4327 xor ah, ah ; 30 e4 … … 4078 4329 mov word [bp+016h], ax ; 89 46 16 4079 4330 mov ax, 00080h ; b8 80 00 4080 jmp near 03 10fh ; e9 5c ff4331 jmp near 033e4h ; e9 5c ff 4081 4332 mov dx, 003f4h ; ba f4 03 4082 4333 in AL, DX ; ec … … 4085 4336 and AL, strict byte 0c0h ; 24 c0 4086 4337 cmp AL, strict byte 0c0h ; 3c c0 4087 je short 03 1cdh ; 74 0e4088 push 002 55h ; 68 55 024089 push 002 88h ; 68 88 024338 je short 034a2h ; 74 0e 4339 push 00275h ; 68 75 02 4340 push 002a8h ; 68 a8 02 4090 4341 push strict byte 00007h ; 6a 07 4091 call 01972h ; e8 a8 e74342 call 01972h ; e8 d3 e4 4092 4343 add sp, strict byte 00006h ; 83 c4 06 4093 4344 xor si, si ; 31 f6 4094 jmp short 03 1d6h ; eb 054345 jmp short 034abh ; eb 05 4095 4346 cmp si, strict byte 00007h ; 83 fe 07 4096 jnl short 03 1eeh ; 7d 184347 jnl short 034c3h ; 7d 18 4097 4348 mov dx, 003f5h ; ba f5 03 4098 4349 in AL, DX ; ec … … 4103 4354 lea dx, [si+042h] ; 8d 54 42 4104 4355 mov ax, strict word 00040h ; b8 40 00 4105 call 0165eh ; e8 73 e44356 call 0165eh ; e8 9e e1 4106 4357 inc si ; 46 4107 jmp short 03 1d1h ; eb e34358 jmp short 034a6h ; eb e3 4108 4359 test byte [bp-01ah], 0c0h ; f6 46 e6 c0 4109 je short 03 205h ; 74 114360 je short 034dah ; 74 11 4110 4361 mov ax, word [bp+016h] ; 8b 46 16 4111 4362 xor ah, ah ; 30 e4 … … 4113 4364 mov word [bp+016h], ax ; 89 46 16 4114 4365 mov ax, strict word 00020h ; b8 20 00 4115 jmp near 03 10fh ; e9 0a ff4366 jmp near 033e4h ; e9 0a ff 4116 4367 movzx ax, ch ; 0f b6 c5 4117 4368 sal ax, 009h ; c1 e0 09 … … 4131 4382 movzx dx, byte [bp-00ch] ; 0f b6 56 f4 4132 4383 movzx ax, byte [bp-008h] ; 0f b6 46 f8 4133 call 02 c0fh ; e8 e2 f94384 call 02ee4h ; e8 e2 f9 4134 4385 mov byte [bp+017h], 000h ; c6 46 17 00 4135 jmp near 03 6aeh ; e9 7a 044386 jmp near 03983h ; e9 7a 04 4136 4387 cmp byte [bp-006h], 003h ; 80 7e fa 03 4137 jne near 03 34fh ; 0f 85 13 014388 jne near 03624h ; 0f 85 13 01 4138 4389 mov ax, word [bp+006h] ; 8b 46 06 4139 4390 shr ax, 00ch ; c1 e8 0c … … 4145 4396 mov word [bp-012h], bx ; 89 5e ee 4146 4397 cmp dx, bx ; 39 da 4147 jbe short 03 258h ; 76 024398 jbe short 0352dh ; 76 02 4148 4399 db 0feh, 0c1h 4149 4400 ; inc cl ; fe c1 … … 4154 4405 add ax, bx ; 01 d8 4155 4406 cmp ax, word [bp-012h] ; 3b 46 ee 4156 jc near 03 101h ; 0f 82 96 fe4407 jc near 033d6h ; 0f 82 96 fe 4157 4408 mov AL, strict byte 006h ; b0 06 4158 4409 mov dx, strict word 0000ah ; ba 0a 00 … … 4186 4437 out DX, AL ; ee 4187 4438 movzx ax, byte [bp-008h] ; 0f b6 46 f8 4188 call 02 cceh ; e8 1e fa4439 call 02fa3h ; e8 1e fa 4189 4440 mov AL, strict byte 0c5h ; b0 c5 4190 4441 mov dx, 003f5h ; ba f5 03 … … 4214 4465 mov AL, strict byte 0ffh ; b0 ff 4215 4466 out DX, AL ; ee 4216 call 02 c5dh ; e8 70 f94467 call 02f32h ; e8 70 f9 4217 4468 test al, al ; 84 c0 4218 je near 03 19fh ; 0f 84 ac fe4469 je near 03474h ; 0f 84 ac fe 4219 4470 mov dx, 003f4h ; ba f4 03 4220 4471 in AL, DX ; ec … … 4223 4474 and AL, strict byte 0c0h ; 24 c0 4224 4475 cmp AL, strict byte 0c0h ; 3c c0 4225 je short 03 30dh ; 74 0e4226 push 002 55h ; 68 55 024227 push 002 88h ; 68 88 024476 je short 035e2h ; 74 0e 4477 push 00275h ; 68 75 02 4478 push 002a8h ; 68 a8 02 4228 4479 push strict byte 00007h ; 6a 07 4229 call 01972h ; e8 68 e64480 call 01972h ; e8 93 e3 4230 4481 add sp, strict byte 00006h ; 83 c4 06 4231 4482 xor si, si ; 31 f6 4232 jmp short 03 316h ; eb 054483 jmp short 035ebh ; eb 05 4233 4484 cmp si, strict byte 00007h ; 83 fe 07 4234 jnl short 03 32eh ; 7d 184485 jnl short 03603h ; 7d 18 4235 4486 mov dx, 003f5h ; ba f5 03 4236 4487 in AL, DX ; ec … … 4241 4492 lea dx, [si+042h] ; 8d 54 42 4242 4493 mov ax, strict word 00040h ; b8 40 00 4243 call 0165eh ; e8 33 e34494 call 0165eh ; e8 5e e0 4244 4495 inc si ; 46 4245 jmp short 03 311h ; eb e34496 jmp short 035e6h ; eb e3 4246 4497 test byte [bp-01ah], 0c0h ; f6 46 e6 c0 4247 je near 03 222h ; 0f 84 ec fe4498 je near 034f7h ; 0f 84 ec fe 4248 4499 test byte [bp-019h], 002h ; f6 46 e7 02 4249 je short 03 348h ; 74 0c4500 je short 0361dh ; 74 0c 4250 4501 mov word [bp+016h], 00300h ; c7 46 16 00 03 4251 4502 or byte [bp+01ch], 001h ; 80 4e 1c 01 4252 jmp near 03 021h ; e9 d9 fc4503 jmp near 032f6h ; e9 d9 fc 4253 4504 mov word [bp+016h], 00100h ; c7 46 16 00 01 4254 jmp short 03 341h ; eb f24505 jmp short 03616h ; eb f2 4255 4506 movzx dx, byte [bp-00ch] ; 0f b6 56 f4 4256 4507 movzx ax, byte [bp-008h] ; 0f b6 46 f8 4257 call 02 c0fh ; e8 b5 f84508 call 02ee4h ; e8 b5 f8 4258 4509 and byte [bp+01ch], 0feh ; 80 66 1c fe 4259 4510 mov byte [bp+017h], 000h ; c6 46 17 00 4260 jmp near 03 021h ; e9 bc fc4511 jmp near 032f6h ; e9 bc fc 4261 4512 mov ch, byte [bp+016h] ; 8a 6e 16 4262 4513 mov ax, word [bp+014h] ; 8b 46 14 … … 4269 4520 mov byte [bp-008h], bl ; 88 5e f8 4270 4521 cmp bl, 001h ; 80 fb 01 4271 jnbe short 03 397h ; 77 124522 jnbe short 0366ch ; 77 12 4272 4523 cmp dl, 001h ; 80 fa 01 4273 jnbe short 03 397h ; 77 0d4524 jnbe short 0366ch ; 77 0d 4274 4525 cmp AL, strict byte 04fh ; 3c 4f 4275 jnbe short 03 397h ; 77 094526 jnbe short 0366ch ; 77 09 4276 4527 test ch, ch ; 84 ed 4277 je short 03 397h ; 74 054528 je short 0366ch ; 74 05 4278 4529 cmp ch, 012h ; 80 fd 12 4279 jbe short 03 3ach ; 76 154530 jbe short 03681h ; 76 15 4280 4531 mov ax, word [bp+016h] ; 8b 46 16 4281 4532 xor ah, ah ; 30 e4 … … 4283 4534 mov word [bp+016h], ax ; 89 46 16 4284 4535 mov ax, strict word 00001h ; b8 01 00 4285 call 02 bf7h ; e8 4f f84536 call 02ecch ; e8 4f f8 4286 4537 or byte [bp+01ch], 001h ; 80 4e 1c 01 4287 4538 movzx ax, byte [bp-008h] ; 0f b6 46 f8 4288 call 0 2f0ah ; e8 57 fb4539 call 031dfh ; e8 57 fb 4289 4540 test ax, ax ; 85 c0 4290 je near 0 2fefh ; 0f 84 36 fc4541 je near 032c4h ; 0f 84 36 fc 4291 4542 movzx dx, byte [bp-008h] ; 0f b6 56 f8 4292 4543 mov ax, dx ; 89 d0 4293 call 0 2d4fh ; e8 8d f94544 call 03024h ; e8 8d f9 4294 4545 test ax, ax ; 85 c0 4295 jne short 03 3d1h ; 75 0b4546 jne short 036a6h ; 75 0b 4296 4547 mov ax, dx ; 89 d0 4297 call 0 2e1ah ; e8 4f fa4548 call 030efh ; e8 4f fa 4298 4549 test ax, ax ; 85 c0 4299 je near 03 0bch ; 0f 84 eb fc4550 je near 03391h ; 0f 84 eb fc 4300 4551 mov ax, word [bp+006h] ; 8b 46 06 4301 4552 shr ax, 00ch ; c1 e8 0c … … 4307 4558 mov word [bp-012h], bx ; 89 5e ee 4308 4559 cmp dx, bx ; 39 da 4309 jbe short 03 3edh ; 76 024560 jbe short 036c2h ; 76 02 4310 4561 db 0feh, 0c1h 4311 4562 ; inc cl ; fe c1 … … 4316 4567 add ax, bx ; 01 d8 4317 4568 cmp ax, word [bp-012h] ; 3b 46 ee 4318 jc near 03 101h ; 0f 82 01 fd4569 jc near 033d6h ; 0f 82 01 fd 4319 4570 mov AL, strict byte 006h ; b0 06 4320 4571 mov dx, strict word 0000ah ; ba 0a 00 … … 4348 4599 out DX, AL ; ee 4349 4600 movzx ax, byte [bp-008h] ; 0f b6 46 f8 4350 call 02 cceh ; e8 89 f84601 call 02fa3h ; e8 89 f8 4351 4602 mov AL, strict byte 00fh ; b0 0f 4352 4603 mov dx, 003f5h ; ba f5 03 … … 4372 4623 mov AL, strict byte 0f6h ; b0 f6 4373 4624 out DX, AL ; ee 4374 call 02 c5dh ; e8 e9 f74625 call 02f32h ; e8 e9 f7 4375 4626 test al, al ; 84 c0 4376 jne short 03 47eh ; 75 064377 call 02 ca3h ; e8 28 f84378 jmp near 0 2fefh ; e9 71 fb4627 jne short 03753h ; 75 06 4628 call 02f78h ; e8 28 f8 4629 jmp near 032c4h ; e9 71 fb 4379 4630 mov dx, 003f4h ; ba f4 03 4380 4631 in AL, DX ; ec … … 4383 4634 and AL, strict byte 0c0h ; 24 c0 4384 4635 cmp AL, strict byte 0c0h ; 3c c0 4385 je short 03 498h ; 74 0e4386 push 002 55h ; 68 55 024387 push 002 88h ; 68 88 024636 je short 0376dh ; 74 0e 4637 push 00275h ; 68 75 02 4638 push 002a8h ; 68 a8 02 4388 4639 push strict byte 00007h ; 6a 07 4389 call 01972h ; e8 dd e44640 call 01972h ; e8 08 e2 4390 4641 add sp, strict byte 00006h ; 83 c4 06 4391 4642 xor si, si ; 31 f6 4392 jmp short 03 4a1h ; eb 054643 jmp short 03776h ; eb 05 4393 4644 cmp si, strict byte 00007h ; 83 fe 07 4394 jnl short 03 4b9h ; 7d 184645 jnl short 0378eh ; 7d 18 4395 4646 mov dx, 003f5h ; ba f5 03 4396 4647 in AL, DX ; ec … … 4401 4652 lea dx, [si+042h] ; 8d 54 42 4402 4653 mov ax, strict word 00040h ; b8 40 00 4403 call 0165eh ; e8 a8 e14654 call 0165eh ; e8 d3 de 4404 4655 inc si ; 46 4405 jmp short 03 49ch ; eb e34656 jmp short 03771h ; eb e3 4406 4657 test byte [bp-01ah], 0c0h ; f6 46 e6 c0 4407 je short 03 4d5h ; 74 164658 je short 037aah ; 74 16 4408 4659 test byte [bp-019h], 002h ; f6 46 e7 02 4409 jne near 03 33ch ; 0f 85 75 fe4410 push 002 55h ; 68 55 024411 push 002 9ch ; 68 9c 024660 jne near 03611h ; 0f 85 75 fe 4661 push 00275h ; 68 75 02 4662 push 002bch ; 68 bc 02 4412 4663 push strict byte 00007h ; 6a 07 4413 call 01972h ; e8 a0 e44664 call 01972h ; e8 cb e1 4414 4665 add sp, strict byte 00006h ; 83 c4 06 4415 4666 xor al, al ; 30 c0 4416 4667 mov byte [bp+017h], al ; 88 46 17 4417 4668 xor ah, ah ; 30 e4 4418 call 02 bf7h ; e8 18 f74669 call 02ecch ; e8 18 f7 4419 4670 movzx ax, byte [bp-008h] ; 0f b6 46 f8 4420 4671 xor dx, dx ; 31 d2 4421 call 02 c0fh ; e8 27 f74422 jmp near 03 6aeh ; e9 c3 014672 call 02ee4h ; e8 27 f7 4673 jmp near 03983h ; e9 c3 01 4423 4674 mov byte [bp-008h], al ; 88 46 f8 4424 4675 cmp AL, strict byte 001h ; 3c 01 4425 jbe short 03 50fh ; 76 1d4676 jbe short 037e4h ; 76 1d 4426 4677 xor ax, ax ; 31 c0 4427 4678 mov word [bp+016h], ax ; 89 46 16 … … 4433 4684 movzx ax, ch ; 0f b6 c5 4434 4685 mov word [bp+012h], ax ; 89 46 12 4435 jmp near 03 62ch ; e9 1d 014686 jmp near 03901h ; e9 1d 01 4436 4687 mov ax, strict word 00010h ; b8 10 00 4437 call 016ach ; e8 97 e14688 call 016ach ; e8 c2 de 4438 4689 mov cl, al ; 88 c1 4439 4690 xor ch, ch ; 30 ed 4440 4691 test AL, strict byte 0f0h ; a8 f0 4441 je short 03 51fh ; 74 024692 je short 037f4h ; 74 02 4442 4693 mov CH, strict byte 001h ; b5 01 4443 4694 test cl, 00fh ; f6 c1 0f 4444 je short 03 526h ; 74 024695 je short 037fbh ; 74 02 4445 4696 db 0feh, 0c5h 4446 4697 ; inc ch ; fe c5 4447 4698 cmp byte [bp-008h], 000h ; 80 7e f8 00 4448 jne short 03 531h ; 75 054699 jne short 03806h ; 75 05 4449 4700 shr cl, 004h ; c0 e9 04 4450 jmp short 03 534h ; eb 034701 jmp short 03809h ; eb 03 4451 4702 and cl, 00fh ; 80 e1 0f 4452 4703 mov byte [bp+011h], 000h ; c6 46 11 00 … … 4463 4714 mov word [bp+012h], ax ; 89 46 12 4464 4715 cmp cl, 003h ; 80 f9 03 4465 jc short 03 572h ; 72 154466 jbe short 03 599h ; 76 3a4716 jc short 03847h ; 72 15 4717 jbe short 0386eh ; 76 3a 4467 4718 cmp cl, 005h ; 80 f9 05 4468 jc short 03 5a0h ; 72 3c4469 jbe short 03 5a7h ; 76 414719 jc short 03875h ; 72 3c 4720 jbe short 0387ch ; 76 41 4470 4721 cmp cl, 00fh ; 80 f9 0f 4471 je short 03 5b5h ; 74 4a4722 je short 0388ah ; 74 4a 4472 4723 cmp cl, 00eh ; 80 f9 0e 4473 je short 03 5aeh ; 74 3e4474 jmp short 03 5bch ; eb 4a4724 je short 03883h ; 74 3e 4725 jmp short 03891h ; eb 4a 4475 4726 cmp cl, 002h ; 80 f9 02 4476 je short 03 592h ; 74 1b4727 je short 03867h ; 74 1b 4477 4728 cmp cl, 001h ; 80 f9 01 4478 je short 03 58bh ; 74 0f4729 je short 03860h ; 74 0f 4479 4730 test cl, cl ; 84 c9 4480 jne short 03 5bch ; 75 3c4731 jne short 03891h ; 75 3c 4481 4732 mov word [bp+014h], strict word 00000h ; c7 46 14 00 00 4482 4733 mov byte [bp+013h], 000h ; c6 46 13 00 4483 jmp short 03 5cah ; eb 3f4734 jmp short 0389fh ; eb 3f 4484 4735 mov word [bp+014h], 02709h ; c7 46 14 09 27 4485 jmp short 03 5cah ; eb 384736 jmp short 0389fh ; eb 38 4486 4737 mov word [bp+014h], 04f0fh ; c7 46 14 0f 4f 4487 jmp short 03 5cah ; eb 314738 jmp short 0389fh ; eb 31 4488 4739 mov word [bp+014h], 04f09h ; c7 46 14 09 4f 4489 jmp short 03 5cah ; eb 2a4740 jmp short 0389fh ; eb 2a 4490 4741 mov word [bp+014h], 04f12h ; c7 46 14 12 4f 4491 jmp short 03 5cah ; eb 234742 jmp short 0389fh ; eb 23 4492 4743 mov word [bp+014h], 04f24h ; c7 46 14 24 4f 4493 jmp short 03 5cah ; eb 1c4744 jmp short 0389fh ; eb 1c 4494 4745 mov word [bp+014h], 0fe3fh ; c7 46 14 3f fe 4495 jmp short 03 5cah ; eb 154746 jmp short 0389fh ; eb 15 4496 4747 mov word [bp+014h], 0feffh ; c7 46 14 ff fe 4497 jmp short 03 5cah ; eb 0e4498 push 002 55h ; 68 55 024499 push 002 adh ; 68 ad 024748 jmp short 0389fh ; eb 0e 4749 push 00275h ; 68 75 02 4750 push 002cdh ; 68 cd 02 4500 4751 push strict byte 00007h ; 6a 07 4501 call 01972h ; e8 ab e34752 call 01972h ; e8 d6 e0 4502 4753 add sp, strict byte 00006h ; 83 c4 06 4503 4754 mov word [bp+006h], 0f000h ; c7 46 06 00 f0 4504 4755 movzx ax, cl ; 0f b6 c1 4505 call 03 825h ; e8 50 024756 call 03afah ; e8 50 02 4506 4757 mov word [bp+008h], ax ; 89 46 08 4507 jmp near 03 6aeh ; e9 d3 004758 jmp near 03983h ; e9 d3 00 4508 4759 mov byte [bp-008h], al ; 88 46 f8 4509 4760 cmp AL, strict byte 001h ; 3c 01 4510 jbe short 03 5e7h ; 76 054761 jbe short 038bch ; 76 05 4511 4762 mov word [bp+016h], si ; 89 76 16 4512 jmp short 03 62ch ; eb 454763 jmp short 03901h ; eb 45 4513 4764 mov ax, strict word 00010h ; b8 10 00 4514 call 016ach ; e8 bf e04765 call 016ach ; e8 ea dd 4515 4766 cmp byte [bp-008h], 000h ; 80 7e f8 00 4516 jne short 03 5fah ; 75 074767 jne short 038cfh ; 75 07 4517 4768 mov cl, al ; 88 c1 4518 4769 shr cl, 004h ; c0 e9 04 4519 jmp short 03 5ffh ; eb 054770 jmp short 038d4h ; eb 05 4520 4771 mov cl, al ; 88 c1 4521 4772 and cl, 00fh ; 80 e1 0f … … 4524 4775 xor dh, dh ; 30 f6 4525 4776 test cl, cl ; 84 c9 4526 je short 03 619h ; 74 0d4777 je short 038eeh ; 74 0d 4527 4778 cmp cl, 001h ; 80 f9 01 4528 jbe short 03 616h ; 76 054779 jbe short 038ebh ; 76 05 4529 4780 or dh, 002h ; 80 ce 02 4530 jmp short 03 619h ; eb 034781 jmp short 038eeh ; eb 03 4531 4782 or dh, 001h ; 80 ce 01 4532 4783 mov word [bp+016h], dx ; 89 56 16 4533 jmp near 03 021h ; e9 02 fa4784 jmp near 032f6h ; e9 02 fa 4534 4785 cmp AL, strict byte 001h ; 3c 01 4535 jbe short 03 632h ; 76 0f4786 jbe short 03907h ; 76 0f 4536 4787 mov word [bp+016h], si ; 89 76 16 4537 4788 mov ax, strict word 00001h ; b8 01 00 4538 call 02 bf7h ; e8 cb f54789 call 02ecch ; e8 cb f5 4539 4790 mov word [bp+01ch], dx ; 89 56 1c 4540 jmp near 03 021h ; e9 ef f94791 jmp near 032f6h ; e9 ef f9 4541 4792 mov ax, word [bp+016h] ; 8b 46 16 4542 4793 xor ah, ah ; 30 e4 … … 4544 4795 mov word [bp+016h], ax ; 89 46 16 4545 4796 mov ax, strict word 00006h ; b8 06 00 4546 jmp near 0 2fcdh ; e9 8a f94797 jmp near 032a2h ; e9 8a f9 4547 4798 mov byte [bp-008h], al ; 88 46 f8 4548 4799 mov bl, cl ; 88 cb 4549 4800 cmp AL, strict byte 001h ; 3c 01 4550 jnbe short 03 623h ; 77 d74801 jnbe short 038f8h ; 77 d7 4551 4802 movzx ax, byte [bp-008h] ; 0f b6 46 f8 4552 call 0 2f0ah ; e8 b7 f84803 call 031dfh ; e8 b7 f8 4553 4804 test ax, ax ; 85 c0 4554 je near 0 2fefh ; 0f 84 96 f94805 je near 032c4h ; 0f 84 96 f9 4555 4806 cmp byte [bp-008h], 000h ; 80 7e f8 00 4556 4807 db 00fh, 095h, 0c0h … … 4560 4811 mov word [bp-012h], dx ; 89 56 ee 4561 4812 mov ax, strict word 00040h ; b8 40 00 4562 call 01650h ; e8 e0 df4813 call 01650h ; e8 0b dd 4563 4814 and AL, strict byte 00fh ; 24 0f 4564 4815 cmp bl, 002h ; 80 fb 02 4565 jc short 03 686h ; 72 0f4566 jbe short 03 692h ; 76 194816 jc short 0395bh ; 72 0f 4817 jbe short 03967h ; 76 19 4567 4818 cmp bl, 004h ; 80 fb 04 4568 je short 03 68eh ; 74 104819 je short 03963h ; 74 10 4569 4820 cmp bl, 003h ; 80 fb 03 4570 je short 03 696h ; 74 134571 jmp near 0 2fbfh ; e9 39 f94821 je short 0396bh ; 74 13 4822 jmp near 03294h ; e9 39 f9 4572 4823 cmp bl, 001h ; 80 fb 01 4573 je short 03 68eh ; 74 034574 jmp near 0 2fbfh ; e9 31 f94824 je short 03963h ; 74 03 4825 jmp near 03294h ; e9 31 f9 4575 4826 or AL, strict byte 090h ; 0c 90 4576 jmp short 03 698h ; eb 064827 jmp short 0396dh ; eb 06 4577 4828 or AL, strict byte 070h ; 0c 70 4578 jmp short 03 698h ; eb 024829 jmp short 0396dh ; eb 02 4579 4830 or AL, strict byte 010h ; 0c 10 4580 4831 movzx bx, al ; 0f b6 d8 4581 4832 mov dx, word [bp-012h] ; 8b 56 ee 4582 4833 mov ax, strict word 00040h ; b8 40 00 4583 call 0165eh ; e8 ba df4834 call 0165eh ; e8 e5 dc 4584 4835 xor al, al ; 30 c0 4585 4836 mov byte [bp+017h], al ; 88 46 17 4586 4837 xor ah, ah ; 30 e4 4587 call 02 bf7h ; e8 49 f54838 call 02ecch ; e8 49 f5 4588 4839 and byte [bp+01ch], 0feh ; 80 66 1c fe 4589 jmp near 03 021h ; e9 6c f94840 jmp near 032f6h ; e9 6c f9 4590 4841 mov byte [bp-008h], al ; 88 46 f8 4591 4842 mov ch, ah ; 88 e5 … … 4597 4848 mov byte [bp-00ch], bl ; 88 5e f4 4598 4849 cmp AL, strict byte 001h ; 3c 01 4599 jnbe near 03 623h ; 0f 87 51 ff4850 jnbe near 038f8h ; 0f 87 51 ff 4600 4851 movzx ax, byte [bp-008h] ; 0f b6 46 f8 4601 call 0 2f0ah ; e8 31 f84852 call 031dfh ; e8 31 f8 4602 4853 test ax, ax ; 85 c0 4603 je near 0 2fefh ; 0f 84 10 f94854 je near 032c4h ; 0f 84 10 f9 4604 4855 movzx dx, byte [bp-008h] ; 0f b6 56 f8 4605 4856 mov ax, dx ; 89 d0 4606 call 0 2d4fh ; e8 67 f64857 call 03024h ; e8 67 f6 4607 4858 test ax, ax ; 85 c0 4608 jne short 03 706h ; 75 1a4859 jne short 039dbh ; 75 1a 4609 4860 mov ax, dx ; 89 d0 4610 call 0 2e1ah ; e8 29 f74861 call 030efh ; e8 29 f7 4611 4862 test ax, ax ; 85 c0 4612 jne short 03 706h ; 75 114863 jne short 039dbh ; 75 11 4613 4864 mov ax, word [bp+016h] ; 8b 46 16 4614 4865 xor ah, ah ; 30 e4 … … 4616 4867 mov word [bp+016h], ax ; 89 46 16 4617 4868 mov ax, strict word 0000ch ; b8 0c 00 4618 jmp near 0 2fcdh ; e9 c7 f84869 jmp near 032a2h ; e9 c7 f8 4619 4870 mov ax, strict word 00010h ; b8 10 00 4620 call 016ach ; e8 a0 df4871 call 016ach ; e8 cb dc 4621 4872 cmp byte [bp-008h], 000h ; 80 7e f8 00 4622 jne short 03 719h ; 75 074873 jne short 039eeh ; 75 07 4623 4874 mov cl, al ; 88 c1 4624 4875 shr cl, 004h ; c0 e9 04 4625 jmp short 03 71eh ; eb 054876 jmp short 039f3h ; eb 05 4626 4877 mov cl, al ; 88 c1 4627 4878 and cl, 00fh ; 80 e1 0f … … 4633 4884 mov word [bp-012h], dx ; 89 56 ee 4634 4885 mov ax, strict word 00040h ; b8 40 00 4635 call 01650h ; e8 1b df4886 call 01650h ; e8 46 dc 4636 4887 and AL, strict byte 00fh ; 24 0f 4637 4888 cmp cl, 003h ; 80 f9 03 4638 jc short 03 75ah ; 72 1e4889 jc short 03a2fh ; 72 1e 4639 4890 mov dl, al ; 88 c2 4640 4891 or dl, 090h ; 80 ca 90 4641 4892 cmp cl, 003h ; 80 f9 03 4642 jbe short 03 798h ; 76 524893 jbe short 03a6dh ; 76 52 4643 4894 mov ah, al ; 88 c4 4644 4895 or ah, 010h ; 80 cc 10 4645 4896 cmp cl, 005h ; 80 f9 05 4646 je near 03 7bdh ; 0f 84 6b 004897 je near 03a92h ; 0f 84 6b 00 4647 4898 cmp cl, 004h ; 80 f9 04 4648 je short 03 7a7h ; 74 504649 jmp near 03 7d8h ; e9 7e 004899 je short 03a7ch ; 74 50 4900 jmp near 03aadh ; e9 7e 00 4650 4901 cmp cl, 002h ; 80 f9 02 4651 je short 03 77ah ; 74 1b4902 je short 03a4fh ; 74 1b 4652 4903 cmp cl, 001h ; 80 f9 01 4653 jne near 03 7d8h ; 0f 85 72 004904 jne near 03aadh ; 0f 85 72 00 4654 4905 cmp byte [bp-00ch], 027h ; 80 7e f4 27 4655 jne near 03 7d8h ; 0f 85 6a 004906 jne near 03aadh ; 0f 85 6a 00 4656 4907 cmp ch, 009h ; 80 fd 09 4657 jne near 03 7d8h ; 0f 85 63 004908 jne near 03aadh ; 0f 85 63 00 4658 4909 or AL, strict byte 090h ; 0c 90 4659 jmp near 03 7d8h ; e9 5e 004910 jmp near 03aadh ; e9 5e 00 4660 4911 cmp byte [bp-00ch], 027h ; 80 7e f4 27 4661 jne short 03 789h ; 75 094912 jne short 03a5eh ; 75 09 4662 4913 cmp ch, 009h ; 80 fd 09 4663 jne short 03 789h ; 75 044914 jne short 03a5eh ; 75 04 4664 4915 or AL, strict byte 070h ; 0c 70 4665 jmp short 03 7d8h ; eb 4f4916 jmp short 03aadh ; eb 4f 4666 4917 cmp byte [bp-00ch], 04fh ; 80 7e f4 4f 4667 jne short 03 7d8h ; 75 494918 jne short 03aadh ; 75 49 4668 4919 cmp ch, 00fh ; 80 fd 0f 4669 jne short 03 7d8h ; 75 444920 jne short 03aadh ; 75 44 4670 4921 or AL, strict byte 010h ; 0c 10 4671 jmp short 03 7d8h ; eb 404922 jmp short 03aadh ; eb 40 4672 4923 cmp byte [bp-00ch], 04fh ; 80 7e f4 4f 4673 jne short 03 7d8h ; 75 3a4924 jne short 03aadh ; 75 3a 4674 4925 cmp ch, 009h ; 80 fd 09 4675 jne short 03 7d8h ; 75 354926 jne short 03aadh ; 75 35 4676 4927 mov al, dl ; 88 d0 4677 jmp short 03 7d8h ; eb 314928 jmp short 03aadh ; eb 31 4678 4929 cmp byte [bp-00ch], 04fh ; 80 7e f4 4f 4679 jne short 03 7d8h ; 75 2b4930 jne short 03aadh ; 75 2b 4680 4931 cmp ch, 009h ; 80 fd 09 4681 jne short 03 7b4h ; 75 024682 jmp short 03 7a3h ; eb ef4932 jne short 03a89h ; 75 02 4933 jmp short 03a78h ; eb ef 4683 4934 cmp ch, 012h ; 80 fd 12 4684 jne short 03 7d8h ; 75 1f4935 jne short 03aadh ; 75 1f 4685 4936 mov al, ah ; 88 e0 4686 jmp short 03 7d8h ; eb 1b4937 jmp short 03aadh ; eb 1b 4687 4938 cmp byte [bp-00ch], 04fh ; 80 7e f4 4f 4688 jne short 03 7d8h ; 75 154939 jne short 03aadh ; 75 15 4689 4940 cmp ch, 009h ; 80 fd 09 4690 jne short 03 7cah ; 75 024691 jmp short 03 7a3h ; eb d94941 jne short 03a9fh ; 75 02 4942 jmp short 03a78h ; eb d9 4692 4943 cmp ch, 012h ; 80 fd 12 4693 jne short 03 7d1h ; 75 024694 jmp short 03 7b9h ; eb e84944 jne short 03aa6h ; 75 02 4945 jmp short 03a8eh ; eb e8 4695 4946 cmp ch, 024h ; 80 fd 24 4696 jne short 03 7d8h ; 75 024947 jne short 03aadh ; 75 02 4697 4948 or AL, strict byte 0d0h ; 0c d0 4698 4949 movzx dx, al ; 0f b6 d0 4699 4950 sar dx, 004h ; c1 fa 04 4700 4951 test dl, 001h ; f6 c2 01 4701 je near 03 6f5h ; 0f 84 10 ff4952 je near 039cah ; 0f 84 10 ff 4702 4953 movzx bx, al ; 0f b6 d8 4703 4954 mov dx, word [bp-012h] ; 8b 56 ee 4704 4955 mov ax, strict word 00040h ; b8 40 00 4705 call 0165eh ; e8 6d de4956 call 0165eh ; e8 98 db 4706 4957 mov word [bp+006h], 0f000h ; c7 46 06 00 f0 4707 4958 movzx ax, cl ; 0f b6 c1 4708 call 03 825h ; e8 29 004959 call 03afah ; e8 29 00 4709 4960 mov word [bp+008h], ax ; 89 46 08 4710 jmp near 03 6a4h ; e9 a2 fe4711 mov bx, 00da 2h ; bb a20d4961 jmp near 03979h ; e9 a2 fe 4962 mov bx, 00da0h ; bb a0 0d 4712 4963 mov cx, ds ; 8c d9 4713 4964 mov ax, strict word 00004h ; b8 04 00 4714 call 01931h ; e8 24 e14965 call 01931h ; e8 4f de 4715 4966 mov ax, word [bp+016h] ; 8b 46 16 4716 4967 shr ax, 008h ; c1 e8 08 4717 4968 push ax ; 50 4718 push 002 55h ; 68 55 024719 push 002 c2h ; 68 c2 024969 push 00275h ; 68 75 02 4970 push 002e2h ; 68 e2 02 4720 4971 push strict byte 00004h ; 6a 04 4721 call 01972h ; e8 53 e14972 call 01972h ; e8 7e de 4722 4973 add sp, strict byte 00008h ; 83 c4 08 4723 jmp near 0 2fbfh ; e9 9a f74724 get_floppy_dpt_: ; 0xf3 825LB 0x2f4974 jmp near 03294h ; e9 9a f7 4975 get_floppy_dpt_: ; 0xf3afa LB 0x2f 4725 4976 push bx ; 53 4726 4977 push dx ; 52 … … 4729 4980 mov dl, al ; 88 c2 4730 4981 xor ax, ax ; 31 c0 4731 jmp short 03 836h ; eb 064982 jmp short 03b0bh ; eb 06 4732 4983 inc ax ; 40 4733 4984 cmp ax, strict word 00007h ; 3d 07 00 4734 jnc short 03 84dh ; 73 174985 jnc short 03b22h ; 73 17 4735 4986 mov bx, ax ; 89 c3 4736 4987 add bx, ax ; 01 c3 4737 4988 cmp dl, byte [word bx+0005bh] ; 3a 97 5b 00 4738 jne short 03 830h ; 75 f04989 jne short 03b05h ; 75 f0 4739 4990 movzx ax, byte [word bx+0005ch] ; 0f b6 87 5c 00 4740 4991 imul ax, ax, strict byte 0000dh ; 6b c0 0d 4741 4992 add ax, strict word 00000h ; 05 00 00 4742 jmp short 03 850h ; eb 034993 jmp short 03b25h ; eb 03 4743 4994 mov ax, strict word 00041h ; b8 41 00 4744 4995 pop bp ; 5d … … 4746 4997 pop bx ; 5b 4747 4998 retn ; c3 4748 dummy_soft_reset_: ; 0xf3 854LB 0x74999 dummy_soft_reset_: ; 0xf3b29 LB 0x7 4749 5000 push bp ; 55 4750 5001 mov bp, sp ; 89 e5 … … 4752 5003 pop bp ; 5d 4753 5004 retn ; c3 4754 _cdemu_init: ; 0xf3 85bLB 0x185005 _cdemu_init: ; 0xf3b30 LB 0x18 4755 5006 push bp ; 55 4756 5007 mov bp, sp ; 89 e5 4757 5008 mov dx, strict word 0000eh ; ba 0e 00 4758 5009 mov ax, strict word 00040h ; b8 40 00 4759 call 0166ch ; e8 05 de5010 call 0166ch ; e8 30 db 4760 5011 xor bx, bx ; 31 db 4761 mov dx, 003 22h ; ba 22034762 call 0165eh ; e8 ef dd5012 mov dx, 00366h ; ba 66 03 5013 call 0165eh ; e8 1a db 4763 5014 mov sp, bp ; 89 ec 4764 5015 pop bp ; 5d 4765 5016 retn ; c3 4766 _cdemu_isactive: ; 0xf3 873LB 0x165017 _cdemu_isactive: ; 0xf3b48 LB 0x16 4767 5018 push bp ; 55 4768 5019 mov bp, sp ; 89 e5 4769 5020 mov dx, strict word 0000eh ; ba 0e 00 4770 5021 mov ax, strict word 00040h ; b8 40 00 4771 call 0166ch ; e8 ed dd4772 mov dx, 003 22h ; ba 22034773 call 01650h ; e8 cb dd5022 call 0166ch ; e8 18 db 5023 mov dx, 00366h ; ba 66 03 5024 call 01650h ; e8 f6 da 4774 5025 mov sp, bp ; 89 ec 4775 5026 pop bp ; 5d 4776 5027 retn ; c3 4777 _cdemu_emulated_drive: ; 0xf3 889LB 0x165028 _cdemu_emulated_drive: ; 0xf3b5e LB 0x16 4778 5029 push bp ; 55 4779 5030 mov bp, sp ; 89 e5 4780 5031 mov dx, strict word 0000eh ; ba 0e 00 4781 5032 mov ax, strict word 00040h ; b8 40 00 4782 call 0166ch ; e8 d7 dd4783 mov dx, 003 24h ; ba 24034784 call 01650h ; e8 b5 dd5033 call 0166ch ; e8 02 db 5034 mov dx, 00368h ; ba 68 03 5035 call 01650h ; e8 e0 da 4785 5036 mov sp, bp ; 89 ec 4786 5037 pop bp ; 5d 4787 5038 retn ; c3 4788 _int13_eltorito: ; 0xf3 89fLB 0x1895039 _int13_eltorito: ; 0xf3b74 LB 0x189 4789 5040 push bp ; 55 4790 5041 mov bp, sp ; 89 e5 … … 4793 5044 mov dx, strict word 0000eh ; ba 0e 00 4794 5045 mov ax, strict word 00040h ; b8 40 00 4795 call 0166ch ; e8 bf dd4796 mov si, 003 22h ; be 22035046 call 0166ch ; e8 ea da 5047 mov si, 00366h ; be 66 03 4797 5048 mov di, ax ; 89 c7 4798 5049 mov ax, word [bp+016h] ; 8b 46 16 4799 5050 shr ax, 008h ; c1 e8 08 4800 5051 cmp ax, strict word 0004bh ; 3d 4b 00 4801 jc short 03 8c7h ; 72 0a4802 jbe short 03 8edh ; 76 2e5052 jc short 03b9ch ; 72 0a 5053 jbe short 03bc2h ; 76 2e 4803 5054 cmp ax, strict word 0004dh ; 3d 4d 00 4804 jbe short 03 8ceh ; 76 0a4805 jmp near 03 9ech ; e9 25 015055 jbe short 03ba3h ; 76 0a 5056 jmp near 03cc1h ; e9 25 01 4806 5057 cmp ax, strict word 0004ah ; 3d 4a 00 4807 jne near 03 9ech ; 0f 85 1e 014808 mov bx, 00da 2h ; bb a20d5058 jne near 03cc1h ; 0f 85 1e 01 5059 mov bx, 00da0h ; bb a0 0d 4809 5060 mov cx, ds ; 8c d9 4810 5061 mov ax, strict word 00004h ; b8 04 00 4811 call 01931h ; e8 58 e05062 call 01931h ; e8 83 dd 4812 5063 push word [bp+016h] ; ff 76 16 4813 push 002 dch ; 68 dc 024814 push 00 2ebh ; 68 eb 025064 push 002fch ; 68 fc 02 5065 push 0030bh ; 68 0b 03 4815 5066 push strict byte 00004h ; 6a 04 4816 call 01972h ; e8 8b e05067 call 01972h ; e8 b6 dd 4817 5068 add sp, strict byte 00008h ; 83 c4 08 4818 jmp near 03 a07h ; e9 1a 015069 jmp near 03cdch ; e9 1a 01 4819 5070 mov dx, word [bp+00ah] ; 8b 56 0a 4820 5071 mov ax, word [bp+004h] ; 8b 46 04 4821 5072 mov bx, strict word 00013h ; bb 13 00 4822 call 0165eh ; e8 65 dd5073 call 0165eh ; e8 90 da 4823 5074 mov es, di ; 8e c7 4824 5075 movzx bx, byte [es:si+001h] ; 26 0f b6 5c 01 … … 4826 5077 inc dx ; 42 4827 5078 mov ax, word [bp+004h] ; 8b 46 04 4828 call 0165eh ; e8 54 dd5079 call 0165eh ; e8 7f da 4829 5080 mov es, di ; 8e c7 4830 5081 movzx bx, byte [es:si+002h] ; 26 0f b6 5c 02 … … 4833 5084 inc dx ; 42 4834 5085 mov ax, word [bp+004h] ; 8b 46 04 4835 call 0165eh ; e8 42 dd5086 call 0165eh ; e8 6d da 4836 5087 mov es, di ; 8e c7 4837 5088 movzx bx, byte [es:si+003h] ; 26 0f b6 5c 03 … … 4839 5090 add dx, strict byte 00003h ; 83 c2 03 4840 5091 mov ax, word [bp+004h] ; 8b 46 04 4841 call 0165eh ; e8 2f dd5092 call 0165eh ; e8 5a da 4842 5093 mov es, di ; 8e c7 4843 5094 mov bx, word [es:si+008h] ; 26 8b 5c 08 … … 4846 5097 add dx, strict byte 00004h ; 83 c2 04 4847 5098 mov ax, word [bp+004h] ; 8b 46 04 4848 call 0169ah ; e8 55 dd5099 call 0169ah ; e8 80 da 4849 5100 mov es, di ; 8e c7 4850 5101 mov bx, word [es:si+004h] ; 26 8b 5c 04 … … 4852 5103 add dx, strict byte 00008h ; 83 c2 08 4853 5104 mov ax, word [bp+004h] ; 8b 46 04 4854 call 0167ah ; e8 23 dd5105 call 0167ah ; e8 4e da 4855 5106 mov es, di ; 8e c7 4856 5107 mov bx, word [es:si+006h] ; 26 8b 5c 06 … … 4858 5109 add dx, strict byte 0000ah ; 83 c2 0a 4859 5110 mov ax, word [bp+004h] ; 8b 46 04 4860 call 0167ah ; e8 11 dd5111 call 0167ah ; e8 3c da 4861 5112 mov es, di ; 8e c7 4862 5113 mov bx, word [es:si+00ch] ; 26 8b 5c 0c … … 4864 5115 add dx, strict byte 0000ch ; 83 c2 0c 4865 5116 mov ax, word [bp+004h] ; 8b 46 04 4866 call 0167ah ; e8 ff dc5117 call 0167ah ; e8 2a da 4867 5118 mov es, di ; 8e c7 4868 5119 mov bx, word [es:si+00eh] ; 26 8b 5c 0e … … 4870 5121 add dx, strict byte 0000eh ; 83 c2 0e 4871 5122 mov ax, word [bp+004h] ; 8b 46 04 4872 call 0167ah ; e8 ed dc5123 call 0167ah ; e8 18 da 4873 5124 mov es, di ; 8e c7 4874 5125 movzx bx, byte [es:si+012h] ; 26 0f b6 5c 12 … … 4876 5127 add dx, strict byte 00010h ; 83 c2 10 4877 5128 mov ax, word [bp+004h] ; 8b 46 04 4878 call 0165eh ; e8 be dc5129 call 0165eh ; e8 e9 d9 4879 5130 mov es, di ; 8e c7 4880 5131 movzx bx, byte [es:si+014h] ; 26 0f b6 5c 14 … … 4882 5133 add dx, strict byte 00011h ; 83 c2 11 4883 5134 mov ax, word [bp+004h] ; 8b 46 04 4884 call 0165eh ; e8 ab dc5135 call 0165eh ; e8 d6 d9 4885 5136 mov es, di ; 8e c7 4886 5137 movzx bx, byte [es:si+010h] ; 26 0f b6 5c 10 … … 4888 5139 add dx, strict byte 00012h ; 83 c2 12 4889 5140 mov ax, word [bp+004h] ; 8b 46 04 4890 call 0165eh ; e8 98 dc5141 call 0165eh ; e8 c3 d9 4891 5142 test byte [bp+016h], 0ffh ; f6 46 16 ff 4892 jne short 03 9d2h ; 75 065143 jne short 03ca7h ; 75 06 4893 5144 mov es, di ; 8e c7 4894 5145 mov byte [es:si], 000h ; 26 c6 04 00 … … 4897 5148 mov dx, strict word 00074h ; ba 74 00 4898 5149 mov ax, strict word 00040h ; b8 40 00 4899 call 0165eh ; e8 7d dc5150 call 0165eh ; e8 a8 d9 4900 5151 and byte [bp+01ch], 0feh ; 80 66 1c fe 4901 5152 lea sp, [bp-004h] ; 8d 66 fc … … 4904 5155 pop bp ; 5d 4905 5156 retn ; c3 4906 mov bx, 00da 2h ; bb a20d5157 mov bx, 00da0h ; bb a0 0d 4907 5158 mov cx, ds ; 8c d9 4908 5159 mov ax, strict word 00004h ; b8 04 00 4909 call 01931h ; e8 3a df5160 call 01931h ; e8 65 dc 4910 5161 mov ax, word [bp+016h] ; 8b 46 16 4911 5162 shr ax, 008h ; c1 e8 08 4912 5163 push ax ; 50 4913 push 002 dch ; 68 dc 024914 push 003 13h ; 68 13 034915 jmp near 03 8e2h ; e9 db fe5164 push 002fch ; 68 fc 02 5165 push 00333h ; 68 33 03 5166 jmp near 03bb7h ; e9 db fe 4916 5167 mov ax, word [bp+016h] ; 8b 46 16 4917 5168 xor ah, ah ; 30 e4 … … 4923 5174 mov dx, strict word 00074h ; ba 74 00 4924 5175 mov ax, strict word 00040h ; b8 40 00 4925 call 0165eh ; e8 3c dc5176 call 0165eh ; e8 67 d9 4926 5177 or byte [bp+01ch], 001h ; 80 4e 1c 01 4927 jmp short 03 9e5h ; eb bd4928 device_is_cdrom_: ; 0xf3 a28LB 0x355178 jmp short 03cbah ; eb bd 5179 device_is_cdrom_: ; 0xf3cfd LB 0x35 4929 5180 push bp ; 55 4930 5181 mov bp, sp ; 89 e5 … … 4934 5185 mov dx, strict word 0000eh ; ba 0e 00 4935 5186 mov ax, strict word 00040h ; b8 40 00 4936 call 0166ch ; e8 34 dc5187 call 0166ch ; e8 5f d9 4937 5188 cmp bl, 010h ; 80 fb 10 4938 jc short 03 a41h ; 72 045189 jc short 03d16h ; 72 04 4939 5190 xor ax, ax ; 31 c0 4940 jmp short 03 a56h ; eb 155191 jmp short 03d2bh ; eb 15 4941 5192 xor bh, bh ; 30 ff 4942 imul bx, bx, strict byte 0001 8h ; 6b db 185193 imul bx, bx, strict byte 0001ch ; 6b db 1c 4943 5194 mov es, ax ; 8e c0 4944 5195 add bx, 00122h ; 81 c3 22 01 4945 cmp byte [es:bx+0 1fh], 005h ; 26 80 7f 1f054946 jne short 03 a3dh ; 75 ea5196 cmp byte [es:bx+023h], 005h ; 26 80 7f 23 05 5197 jne short 03d12h ; 75 ea 4947 5198 mov ax, strict word 00001h ; b8 01 00 4948 5199 lea sp, [bp-004h] ; 8d 66 fc … … 4951 5202 pop bp ; 5d 4952 5203 retn ; c3 4953 cdrom_boot_: ; 0xf3 a5dLB 0x4165204 cdrom_boot_: ; 0xf3d32 LB 0x416 4954 5205 push bp ; 55 4955 5206 mov bp, sp ; 89 e5 … … 4962 5213 mov dx, strict word 0000eh ; ba 0e 00 4963 5214 mov ax, strict word 00040h ; b8 40 00 4964 call 0166ch ; e8 fa db5215 call 0166ch ; e8 25 d9 4965 5216 mov word [bp-018h], ax ; 89 46 e8 4966 mov si, 003 22h ; be 22035217 mov si, 00366h ; be 66 03 4967 5218 mov word [bp-010h], ax ; 89 46 f0 4968 5219 mov word [bp-014h], 00122h ; c7 46 ec 22 01 4969 5220 mov word [bp-012h], ax ; 89 46 ee 4970 5221 mov byte [bp-00ch], 000h ; c6 46 f4 00 4971 jmp short 03 a92h ; eb 095222 jmp short 03d67h ; eb 09 4972 5223 inc byte [bp-00ch] ; fe 46 f4 4973 5224 cmp byte [bp-00ch], 010h ; 80 7e f4 10 4974 jnc short 03 a9dh ; 73 0b5225 jnc short 03d72h ; 73 0b 4975 5226 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 4976 call 03 a28h ; e8 8f ff5227 call 03cfdh ; e8 8f ff 4977 5228 test ax, ax ; 85 c0 4978 je short 03 a89h ; 74 ec5229 je short 03d5eh ; 74 ec 4979 5230 cmp byte [bp-00ch], 010h ; 80 7e f4 10 4980 jc short 03 aa9h ; 72 065231 jc short 03d7eh ; 72 06 4981 5232 mov ax, strict word 00002h ; b8 02 00 4982 jmp near 0 3e10h ; e9 67 035233 jmp near 040e5h ; e9 67 03 4983 5234 mov cx, strict word 0000ch ; b9 0c 00 4984 5235 xor bx, bx ; 31 db 4985 5236 mov dx, ss ; 8c d2 4986 5237 lea ax, [bp-026h] ; 8d 46 da 4987 call 09 7aah ; e8 f4 5c5238 call 09d6ah ; e8 df 5f 4988 5239 mov word [bp-026h], strict word 00028h ; c7 46 da 28 00 4989 5240 mov ax, strict word 00011h ; b8 11 00 … … 4998 5249 mov word [bp-01fh], ax ; 89 46 e1 4999 5250 les bx, [bp-014h] ; c4 5e ec 5000 db 066h, 026h, 0c7h, 047h, 00 ah, 001h, 000h, 000h, 008h5001 ; mov dword [es:bx+00 ah], strict dword 008000001h ; 66 26 c7 47 0a01 00 00 085251 db 066h, 026h, 0c7h, 047h, 00eh, 001h, 000h, 000h, 008h 5252 ; mov dword [es:bx+00eh], strict dword 008000001h ; 66 26 c7 47 0e 01 00 00 08 5002 5253 mov byte [bp-00eh], 000h ; c6 46 f2 00 5003 jmp short 03 aeeh ; eb 095254 jmp short 03dc3h ; eb 09 5004 5255 inc byte [bp-00eh] ; fe 46 f2 5005 5256 cmp byte [bp-00eh], 004h ; 80 7e f2 04 5006 jnbe short 03 b25h ; 77 375257 jnbe short 03dfah ; 77 37 5007 5258 movzx di, byte [bp-00ch] ; 0f b6 7e f4 5008 imul di, di, strict byte 0001 8h ; 6b ff 185259 imul di, di, strict byte 0001ch ; 6b ff 1c 5009 5260 mov es, [bp-012h] ; 8e 46 ee 5010 5261 add di, word [bp-014h] ; 03 7e ec 5011 movzx di, byte [es:di+0 1eh] ; 26 0f b6 7d 1e5262 movzx di, byte [es:di+022h] ; 26 0f b6 7d 22 5012 5263 add di, di ; 01 ff 5013 5264 lea dx, [bp-00826h] ; 8d 96 da f7 … … 5024 5275 call word [word di+0006ah] ; ff 95 6a 00 5025 5276 test ax, ax ; 85 c0 5026 jne short 03 ae5h ; 75 c05277 jne short 03dbah ; 75 c0 5027 5278 test ax, ax ; 85 c0 5028 je short 03 b2fh ; 74 065279 je short 03e04h ; 74 06 5029 5280 mov ax, strict word 00003h ; b8 03 00 5030 jmp near 0 3e10h ; e9 e1 025281 jmp near 040e5h ; e9 e1 02 5031 5282 cmp byte [bp-00826h], 000h ; 80 be da f7 00 5032 je short 03 b3ch ; 74 065283 je short 03e11h ; 74 06 5033 5284 mov ax, strict word 00004h ; b8 04 00 5034 jmp near 0 3e10h ; e9 d4 025285 jmp near 040e5h ; e9 d4 02 5035 5286 xor di, di ; 31 ff 5036 jmp short 03 b46h ; eb 065287 jmp short 03e1bh ; eb 06 5037 5288 inc di ; 47 5038 5289 cmp di, strict byte 00005h ; 83 ff 05 5039 jnc short 03 b56h ; 73 105290 jnc short 03e2bh ; 73 10 5040 5291 mov al, byte [bp+di-00825h] ; 8a 83 db f7 5041 cmp al, byte [di+00da ah] ; 3a 85 aa0d5042 je short 03 b40h ; 74 f05292 cmp al, byte [di+00da8h] ; 3a 85 a8 0d 5293 je short 03e15h ; 74 f0 5043 5294 mov ax, strict word 00005h ; b8 05 00 5044 jmp near 0 3e10h ; e9 ba 025295 jmp near 040e5h ; e9 ba 02 5045 5296 xor di, di ; 31 ff 5046 jmp short 03 b60h ; eb 065297 jmp short 03e35h ; eb 06 5047 5298 inc di ; 47 5048 5299 cmp di, strict byte 00017h ; 83 ff 17 5049 jnc short 03 b70h ; 73 105300 jnc short 03e45h ; 73 10 5050 5301 mov al, byte [bp+di-0081fh] ; 8a 83 e1 f7 5051 cmp al, byte [di+00d b0h] ; 3a 85 b00d5052 je short 03 b5ah ; 74 f05302 cmp al, byte [di+00daeh] ; 3a 85 ae 0d 5303 je short 03e2fh ; 74 f0 5053 5304 mov ax, strict word 00006h ; b8 06 00 5054 jmp near 0 3e10h ; e9 a0 025305 jmp near 040e5h ; e9 a0 02 5055 5306 mov ax, word [bp-007dfh] ; 8b 86 21 f8 5056 5307 mov dx, word [bp-007ddh] ; 8b 96 23 f8 … … 5065 5316 mov word [bp-01fh], ax ; 89 46 e1 5066 5317 movzx di, byte [bp-00ch] ; 0f b6 7e f4 5067 imul di, di, strict byte 0001 8h ; 6b ff 185318 imul di, di, strict byte 0001ch ; 6b ff 1c 5068 5319 mov es, [bp-012h] ; 8e 46 ee 5069 5320 add di, word [bp-014h] ; 03 7e ec 5070 movzx di, byte [es:di+0 1eh] ; 26 0f b6 7d 1e5321 movzx di, byte [es:di+022h] ; 26 0f b6 7d 22 5071 5322 add di, di ; 01 ff 5072 5323 lea dx, [bp-00826h] ; 8d 96 da f7 … … 5083 5334 call word [word di+0006ah] ; ff 95 6a 00 5084 5335 test ax, ax ; 85 c0 5085 je short 03 bcdh ; 74 065336 je short 03ea2h ; 74 06 5086 5337 mov ax, strict word 00007h ; b8 07 00 5087 jmp near 0 3e10h ; e9 43 025338 jmp near 040e5h ; e9 43 02 5088 5339 cmp byte [bp-00826h], 001h ; 80 be da f7 01 5089 je short 03 bdah ; 74 065340 je short 03eafh ; 74 06 5090 5341 mov ax, strict word 00008h ; b8 08 00 5091 jmp near 0 3e10h ; e9 36 025342 jmp near 040e5h ; e9 36 02 5092 5343 cmp byte [bp-00825h], 000h ; 80 be db f7 00 5093 je short 03 be7h ; 74 065344 je short 03ebch ; 74 06 5094 5345 mov ax, strict word 00009h ; b8 09 00 5095 jmp near 0 3e10h ; e9 29 025346 jmp near 040e5h ; e9 29 02 5096 5347 cmp byte [bp-00808h], 055h ; 80 be f8 f7 55 5097 je short 03 bf4h ; 74 065348 je short 03ec9h ; 74 06 5098 5349 mov ax, strict word 0000ah ; b8 0a 00 5099 jmp near 0 3e10h ; e9 1c 025350 jmp near 040e5h ; e9 1c 02 5100 5351 cmp byte [bp-00807h], 0aah ; 80 be f9 f7 aa 5101 jne short 03 beeh ; 75 f35352 jne short 03ec3h ; 75 f3 5102 5353 cmp byte [bp-00806h], 088h ; 80 be fa f7 88 5103 je short 03 c08h ; 74 065354 je short 03eddh ; 74 06 5104 5355 mov ax, strict word 0000bh ; b8 0b 00 5105 jmp near 0 3e10h ; e9 08 025356 jmp near 040e5h ; e9 08 02 5106 5357 mov al, byte [bp-00805h] ; 8a 86 fb f7 5107 5358 mov es, [bp-010h] ; 8e 46 f0 5108 5359 mov byte [es:si+001h], al ; 26 88 44 01 5109 5360 cmp byte [bp-00805h], 000h ; 80 be fb f7 00 5110 jne short 03 c21h ; 75 075361 jne short 03ef6h ; 75 07 5111 5362 mov byte [es:si+002h], 0e0h ; 26 c6 44 02 e0 5112 jmp short 03 c34h ; eb 135363 jmp short 03f09h ; eb 13 5113 5364 cmp byte [bp-00805h], 004h ; 80 be fb f7 04 5114 jnc short 03 c2fh ; 73 075365 jnc short 03f04h ; 73 07 5115 5366 mov byte [es:si+002h], 000h ; 26 c6 44 02 00 5116 jmp short 03 c34h ; eb 055367 jmp short 03f09h ; eb 05 5117 5368 mov byte [es:si+002h], 080h ; 26 c6 44 02 80 5118 5369 movzx di, byte [bp-00ch] ; 0f b6 7e f4 … … 5132 5383 mov word [bp-016h], ax ; 89 46 ea 5133 5384 test ax, ax ; 85 c0 5134 jne short 03 c62h ; 75 055385 jne short 03f37h ; 75 05 5135 5386 mov word [bp-016h], 007c0h ; c7 46 ea c0 07 5136 5387 mov ax, word [bp-016h] ; 8b 46 ea … … 5141 5392 mov word [es:si+00eh], di ; 26 89 7c 0e 5142 5393 test di, di ; 85 ff 5143 je short 03 c84h ; 74 065394 je short 03f59h ; 74 06 5144 5395 cmp di, 00400h ; 81 ff 00 04 5145 jbe short 03 c8ah ; 76 065396 jbe short 03f5fh ; 76 06 5146 5397 mov ax, strict word 0000ch ; b8 0c 00 5147 jmp near 0 3e10h ; e9 86 015398 jmp near 040e5h ; e9 86 01 5148 5399 mov ax, word [bp-007feh] ; 8b 86 02 f8 5149 5400 mov dx, word [bp-007fch] ; 8b 96 04 f8 … … 5163 5414 mov word [bp-01fh], ax ; 89 46 e1 5164 5415 les bx, [bp-014h] ; c4 5e ec 5165 mov word [es:bx+00 ah], dx ; 26 89 57 0a5166 mov word [es:bx+0 0ch], 00200h ; 26 c7 47 0c00 025416 mov word [es:bx+00eh], dx ; 26 89 57 0e 5417 mov word [es:bx+010h], 00200h ; 26 c7 47 10 00 02 5167 5418 mov ax, di ; 89 f8 5168 5419 sal ax, 009h ; c1 e0 09 … … 5171 5422 mov ax, dx ; 89 d0 5172 5423 and ah, 007h ; 80 e4 07 5173 mov word [es:bx+0 1ch], ax ; 26 89 47 1c5424 mov word [es:bx+020h], ax ; 26 89 47 20 5174 5425 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 5175 imul ax, ax, strict byte 0001 8h ; 6b c0 185426 imul ax, ax, strict byte 0001ch ; 6b c0 1c 5176 5427 add bx, ax ; 01 c3 5177 movzx ax, byte [es:bx+0 1eh] ; 26 0f b6 47 1e5428 movzx ax, byte [es:bx+022h] ; 26 0f b6 47 22 5178 5429 add ax, ax ; 01 c0 5179 5430 mov word [bp-01ah], ax ; 89 46 e6 … … 5185 5436 sal ax, 1 ; d1 e0 5186 5437 rcl di, 1 ; d1 d7 5187 loop 03 cf8h ; e2 fa5438 loop 03fcdh ; e2 fa 5188 5439 push di ; 57 5189 5440 push ax ; 50 … … 5196 5447 call word [word di+0006ah] ; ff 95 6a 00 5197 5448 les bx, [bp-014h] ; c4 5e ec 5198 mov word [es:bx+0 1ch], strict word 00000h ; 26 c7 47 1c00 005449 mov word [es:bx+020h], strict word 00000h ; 26 c7 47 20 00 00 5199 5450 test ax, ax ; 85 c0 5200 je short 03 d28h ; 74 065451 je short 03ffdh ; 74 06 5201 5452 mov ax, strict word 0000dh ; b8 0d 00 5202 jmp near 0 3e10h ; e9 e8 005453 jmp near 040e5h ; e9 e8 00 5203 5454 mov es, [bp-010h] ; 8e 46 f0 5204 5455 mov al, byte [es:si+001h] ; 26 8a 44 01 5205 5456 cmp AL, strict byte 002h ; 3c 02 5206 jc short 0 3d40h ; 72 0d5207 jbe short 0 3d58h ; 76 235457 jc short 04015h ; 72 0d 5458 jbe short 0402dh ; 76 23 5208 5459 cmp AL, strict byte 004h ; 3c 04 5209 je short 0 3d6eh ; 74 355460 je short 04043h ; 74 35 5210 5461 cmp AL, strict byte 003h ; 3c 03 5211 je short 0 3d63h ; 74 265212 jmp near 0 3db9h ; e9 79 005462 je short 04038h ; 74 26 5463 jmp near 0408eh ; e9 79 00 5213 5464 cmp AL, strict byte 001h ; 3c 01 5214 jne short 0 3db9h ; 75 755465 jne short 0408eh ; 75 75 5215 5466 mov es, [bp-010h] ; 8e 46 f0 5216 5467 db 066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 00fh, 000h 5217 5468 ; mov dword [es:si+012h], strict dword 0000f0050h ; 66 26 c7 44 12 50 00 0f 00 5218 5469 mov word [es:si+010h], strict word 00002h ; 26 c7 44 10 02 00 5219 jmp short 0 3db9h ; eb 615470 jmp short 0408eh ; eb 61 5220 5471 db 066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 012h, 000h 5221 5472 ; mov dword [es:si+012h], strict dword 000120050h ; 66 26 c7 44 12 50 00 12 00 5222 jmp short 0 3d50h ; eb ed5473 jmp short 04025h ; eb ed 5223 5474 db 066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 024h, 000h 5224 5475 ; mov dword [es:si+012h], strict dword 000240050h ; 66 26 c7 44 12 50 00 24 00 5225 jmp short 0 3d50h ; eb e25476 jmp short 04025h ; eb e2 5226 5477 mov dx, 001c4h ; ba c4 01 5227 5478 mov ax, word [bp-016h] ; 8b 46 ea 5228 call 01650h ; e8 d9 d85479 call 01650h ; e8 04 d6 5229 5480 and AL, strict byte 03fh ; 24 3f 5230 5481 xor ah, ah ; 30 e4 … … 5233 5484 mov dx, 001c4h ; ba c4 01 5234 5485 mov ax, word [bp-016h] ; 8b 46 ea 5235 call 01650h ; e8 c5 d85486 call 01650h ; e8 f0 d5 5236 5487 movzx bx, al ; 0f b6 d8 5237 5488 sal bx, 002h ; c1 e3 02 5238 5489 mov dx, 001c5h ; ba c5 01 5239 5490 mov ax, word [bp-016h] ; 8b 46 ea 5240 call 01650h ; e8 b6 d85491 call 01650h ; e8 e1 d5 5241 5492 xor ah, ah ; 30 e4 5242 5493 add ax, bx ; 01 d8 … … 5246 5497 mov dx, 001c3h ; ba c3 01 5247 5498 mov ax, word [bp-016h] ; 8b 46 ea 5248 call 01650h ; e8 a1 d85499 call 01650h ; e8 cc d5 5249 5500 xor ah, ah ; 30 e4 5250 5501 inc ax ; 40 … … 5253 5504 mov es, [bp-010h] ; 8e 46 f0 5254 5505 cmp byte [es:si+001h], 000h ; 26 80 7c 01 00 5255 je short 0 3df7h ; 74 345506 je short 040cch ; 74 34 5256 5507 cmp byte [es:si+002h], 000h ; 26 80 7c 02 00 5257 jne short 0 3de0h ; 75 165508 jne short 040b5h ; 75 16 5258 5509 mov dx, strict word 00010h ; ba 10 00 5259 5510 mov ax, strict word 00040h ; b8 40 00 5260 call 01650h ; e8 7d d85511 call 01650h ; e8 a8 d5 5261 5512 or AL, strict byte 041h ; 0c 41 5262 5513 movzx bx, al ; 0f b6 d8 5263 5514 mov dx, strict word 00010h ; ba 10 00 5264 5515 mov ax, strict word 00040h ; b8 40 00 5265 jmp short 0 3df4h ; eb 145266 mov dx, 00 2c0h ; ba c0 025516 jmp short 040c9h ; eb 14 5517 mov dx, 00304h ; ba 04 03 5267 5518 mov ax, word [bp-018h] ; 8b 46 e8 5268 call 01650h ; e8 67 d85519 call 01650h ; e8 92 d5 5269 5520 db 0feh, 0c0h 5270 5521 ; inc al ; fe c0 5271 5522 movzx bx, al ; 0f b6 d8 5272 mov dx, 00 2c0h ; ba c0 025523 mov dx, 00304h ; ba 04 03 5273 5524 mov ax, word [bp-018h] ; 8b 46 e8 5274 call 0165eh ; e8 67 d85525 call 0165eh ; e8 92 d5 5275 5526 mov es, [bp-010h] ; 8e 46 f0 5276 5527 cmp byte [es:si+001h], 000h ; 26 80 7c 01 00 5277 je short 0 3e05h ; 74 045528 je short 040dah ; 74 04 5278 5529 mov byte [es:si], 001h ; 26 c6 04 01 5279 5530 mov es, [bp-010h] ; 8e 46 f0 … … 5289 5540 retn ; c3 5290 5541 db 050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h 5291 db 010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0 0bh, 042h, 019h5292 db 0 3fh, 063h, 03fh, 08bh, 03fh, 058h, 03fh, 08bh, 03fh, 058h, 03fh, 061h, 041h, 03eh, 03fh, 00bh5293 db 04 2h, 00bh, 042h, 03eh, 03fh, 03eh, 03fh, 03eh, 03fh, 03eh, 03fh, 03eh, 03fh, 002h, 042h, 03eh5294 db 0 3fh, 00bh, 042h, 00bh, 042h, 00bh, 042h, 00bh, 042h, 00bh, 042h, 00bh, 042h, 00bh, 042h, 00bh5295 db 04 2h, 00bh, 042h, 00bh, 042h, 00bh, 042h, 00bh, 042h5296 _int13_cdemu: ; 0xf 3e73LB 0x4345542 db 010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0e0h, 044h, 0eeh 5543 db 041h, 038h, 042h, 060h, 042h, 02dh, 042h, 060h, 042h, 02dh, 042h, 036h, 044h, 013h, 042h, 0e0h 5544 db 044h, 0e0h, 044h, 013h, 042h, 013h, 042h, 013h, 042h, 013h, 042h, 013h, 042h, 0d7h, 044h, 013h 5545 db 042h, 0e0h, 044h, 0e0h, 044h, 0e0h, 044h, 0e0h, 044h, 0e0h, 044h, 0e0h, 044h, 0e0h, 044h, 0e0h 5546 db 044h, 0e0h, 044h, 0e0h, 044h, 0e0h, 044h, 0e0h, 044h 5547 _int13_cdemu: ; 0xf4148 LB 0x434 5297 5548 push bp ; 55 5298 5549 mov bp, sp ; 89 e5 … … 5302 5553 mov dx, strict word 0000eh ; ba 0e 00 5303 5554 mov ax, strict word 00040h ; b8 40 00 5304 call 0166ch ; e8 e8 d75305 mov di, 003 22h ; bf 22035555 call 0166ch ; e8 13 d5 5556 mov di, 00366h ; bf 66 03 5306 5557 mov cx, ax ; 89 c1 5307 5558 mov si, di ; 89 fe … … 5318 5569 mov dx, strict word 00074h ; ba 74 00 5319 5570 mov ax, strict word 00040h ; b8 40 00 5320 call 0165eh ; e8 ab d75571 call 0165eh ; e8 d6 d4 5321 5572 mov es, cx ; 8e c1 5322 5573 cmp byte [es:di], 000h ; 26 80 3d 00 5323 je short 0 3ec9h ; 74 0e5574 je short 0419eh ; 74 0e 5324 5575 movzx dx, byte [es:di+002h] ; 26 0f b6 55 02 5325 5576 mov ax, word [bp+012h] ; 8b 46 12 5326 5577 xor ah, ah ; 30 e4 5327 5578 cmp dx, ax ; 39 c2 5328 je short 0 3ef2h ; 74 295329 mov bx, 00da 2h ; bb a20d5579 je short 041c7h ; 74 29 5580 mov bx, 00da0h ; bb a0 0d 5330 5581 mov cx, ds ; 8c d9 5331 5582 mov ax, strict word 00004h ; b8 04 00 5332 call 01931h ; e8 5d da5583 call 01931h ; e8 88 d7 5333 5584 mov ax, word [bp+012h] ; 8b 46 12 5334 5585 xor ah, ah ; 30 e4 … … 5337 5588 shr ax, 008h ; c1 e8 08 5338 5589 push ax ; 50 5339 push 003 2ch ; 68 2c 035340 push 003 38h ; 68 38 035590 push 0034ch ; 68 4c 03 5591 push 00358h ; 68 58 03 5341 5592 push strict byte 00004h ; 6a 04 5342 call 01972h ; e8 86 da5593 call 01972h ; e8 b1 d7 5343 5594 add sp, strict byte 0000ah ; 83 c4 0a 5344 jmp near 04 22bh ; e9 39 035595 jmp near 04500h ; e9 39 03 5345 5596 mov ax, word [bp+016h] ; 8b 46 16 5346 5597 shr ax, 008h ; c1 e8 08 5347 5598 cmp ax, strict word 00050h ; 3d 50 00 5348 jnbe near 04 20bh ; 0f 87 0c 035599 jnbe near 044e0h ; 0f 87 0c 03 5349 5600 push CS ; 0e 5350 5601 pop ES ; 07 5351 5602 mov cx, strict word 0001eh ; b9 1e 00 5352 mov di, 0 3e1ah ; bf 1a 3e5603 mov di, 040efh ; bf ef 40 5353 5604 repne scasb ; f2 ae 5354 5605 sal cx, 1 ; d1 e1 5355 5606 mov di, cx ; 89 cf 5356 mov ax, word [cs:di+0 3e37h] ; 2e 8b 85 37 3e5607 mov ax, word [cs:di+0410ch] ; 2e 8b 85 0c 41 5357 5608 mov bx, word [bp+016h] ; 8b 5e 16 5358 5609 xor bh, bh ; 30 ff 5359 5610 jmp ax ; ff e0 5360 5611 movzx bx, byte [bp-006h] ; 0f b6 5e fa 5361 imul bx, bx, strict byte 0001 8h ; 6b db 185612 imul bx, bx, strict byte 0001ch ; 6b db 1c 5362 5613 mov es, [bp-00ch] ; 8e 46 f4 5363 5614 add bx, word [bp-00eh] ; 03 5e f2 5364 movzx bx, byte [es:bx+0 1eh] ; 26 0f b6 5f 1e5615 movzx bx, byte [es:bx+022h] ; 26 0f b6 5f 22 5365 5616 add bx, bx ; 01 db 5366 5617 cmp word [word bx+0006ah], strict byte 00000h ; 83 bf 6a 00 00 5367 je near 0 3f3eh ; 0f 84 08 005618 je near 04213h ; 0f 84 08 00 5368 5619 movzx ax, byte [bp-006h] ; 0f b6 46 fa 5369 5620 call word [word bx+00076h] ; ff 97 76 00 … … 5372 5623 mov dx, strict word 00074h ; ba 74 00 5373 5624 mov ax, strict word 00040h ; b8 40 00 5374 call 0165eh ; e8 11 d75625 call 0165eh ; e8 3c d4 5375 5626 and byte [bp+01ch], 0feh ; 80 66 1c fe 5376 5627 lea sp, [bp-004h] ; 8d 66 fc … … 5382 5633 xor ah, ah ; 30 e4 5383 5634 or ah, 003h ; 80 cc 03 5384 jmp near 04 233h ; e9 d0 025635 jmp near 04508h ; e9 d0 02 5385 5636 mov dx, strict word 00074h ; ba 74 00 5386 5637 mov ax, strict word 00040h ; b8 40 00 5387 call 01650h ; e8 e4 d65638 call 01650h ; e8 0f d4 5388 5639 mov cl, al ; 88 c1 5389 5640 movzx ax, cl ; 0f b6 c1 … … 5394 5645 mov dx, strict word 00074h ; ba 74 00 5395 5646 mov ax, strict word 00040h ; b8 40 00 5396 call 0165eh ; e8 da d65647 call 0165eh ; e8 05 d4 5397 5648 test cl, cl ; 84 c9 5398 je short 0 3f42h ; 74 ba5399 jmp near 04 247h ; e9 bc 025649 je short 04217h ; 74 ba 5650 jmp near 0451ch ; e9 bc 02 5400 5651 mov es, [bp-008h] ; 8e 46 f8 5401 5652 mov di, word [es:si+014h] ; 26 8b 7c 14 … … 5421 5672 mov word [bp-00ah], cx ; 89 4e f6 5422 5673 test cx, cx ; 85 c9 5423 jne short 0 3fd8h ; 75 035424 jmp near 0 3f3eh ; e9 66 ff5674 jne short 042adh ; 75 03 5675 jmp near 04213h ; e9 66 ff 5425 5676 cmp di, word [bp-010h] ; 3b 7e f0 5426 jc near 04 22bh ; 0f 82 4c 025677 jc near 04500h ; 0f 82 4c 02 5427 5678 cmp ax, dx ; 39 d0 5428 jnc near 04 22bh ; 0f 83 46 025679 jnc near 04500h ; 0f 83 46 02 5429 5680 cmp si, bx ; 39 de 5430 jnc near 04 22bh ; 0f 83 40 025681 jnc near 04500h ; 0f 83 40 02 5431 5682 mov dx, word [bp+016h] ; 8b 56 16 5432 5683 shr dx, 008h ; c1 ea 08 5433 5684 cmp dx, strict byte 00004h ; 83 fa 04 5434 jne short 0 3ff9h ; 75 035435 jmp near 0 3f3eh ; e9 45 ff5685 jne short 042ceh ; 75 03 5686 jmp near 04213h ; e9 45 ff 5436 5687 mov dx, word [bp+010h] ; 8b 56 10 5437 5688 shr dx, 004h ; c1 ea 04 … … 5444 5695 xor dl, dl ; 30 d2 5445 5696 xor cx, cx ; 31 c9 5446 call 09 779h ; e8 62 575697 call 09d19h ; e8 2d 5a 5447 5698 xor bx, bx ; 31 db 5448 5699 add ax, si ; 01 f0 … … 5450 5701 mov bx, di ; 89 fb 5451 5702 xor cx, cx ; 31 c9 5452 call 09 779h ; e8 55 575703 call 09d19h ; e8 20 5a 5453 5704 mov bx, ax ; 89 c3 5454 5705 mov ax, word [bp-010h] ; 8b 46 f0 … … 5485 5736 mov dx, ss ; 8c d2 5486 5737 lea ax, [bp-02eh] ; 8d 46 d2 5487 call 09 7aah ; e8 2f 575738 call 09d6ah ; e8 1a 5a 5488 5739 mov word [bp-02eh], strict word 00028h ; c7 46 d2 28 00 5489 5740 mov ax, word [bp-014h] ; 8b 46 ec … … 5503 5754 mov ax, word [bp-00ah] ; 8b 46 f6 5504 5755 les bx, [bp-00eh] ; c4 5e f2 5505 mov word [es:bx+00 ah], ax ; 26 89 47 0a5506 mov word [es:bx+0 0ch], 00200h ; 26 c7 47 0c00 025756 mov word [es:bx+00eh], ax ; 26 89 47 0e 5757 mov word [es:bx+010h], 00200h ; 26 c7 47 10 00 02 5507 5758 mov ax, di ; 89 f8 5508 5759 sal ax, 009h ; c1 e0 09 5509 mov word [es:bx+01 ah], ax ; 26 89 47 1a5760 mov word [es:bx+01eh], ax ; 26 89 47 1e 5510 5761 mov dx, word [bp-00ah] ; 8b 56 f6 5511 5762 xor dh, dh ; 30 f6 … … 5518 5769 and dh, 007h ; 80 e6 07 5519 5770 mov bx, word [bp-00eh] ; 8b 5e f2 5520 mov word [es:bx+0 1ch], dx ; 26 89 57 1c5771 mov word [es:bx+020h], dx ; 26 89 57 20 5521 5772 movzx dx, byte [bp-006h] ; 0f b6 56 fa 5522 imul dx, dx, strict byte 0001 8h ; 6b d2 185773 imul dx, dx, strict byte 0001ch ; 6b d2 1c 5523 5774 add bx, dx ; 01 d3 5524 movzx dx, byte [es:bx+0 1eh] ; 26 0f b6 57 1e5775 movzx dx, byte [es:bx+022h] ; 26 0f b6 57 22 5525 5776 add dx, dx ; 01 d2 5526 5777 mov word [bp-01ah], dx ; 89 56 e6 … … 5533 5784 sal si, 1 ; d1 e6 5534 5785 rcl di, 1 ; d1 d7 5535 loop 04 0fbh ; e2 fa5786 loop 043d0h ; e2 fa 5536 5787 push di ; 57 5537 5788 push si ; 56 … … 5545 5796 mov dx, ax ; 89 c2 5546 5797 les bx, [bp-00eh] ; c4 5e f2 5547 db 066h, 026h, 0c7h, 047h, 01 ah, 000h, 000h, 000h, 000h5548 ; mov dword [es:bx+01 ah], strict dword 000000000h ; 66 26 c7 47 1a00 00 00 005798 db 066h, 026h, 0c7h, 047h, 01eh, 000h, 000h, 000h, 000h 5799 ; mov dword [es:bx+01eh], strict dword 000000000h ; 66 26 c7 47 1e 00 00 00 00 5549 5800 test al, al ; 84 c0 5550 je near 0 3f3eh ; 0f 84 13 fe5551 mov bx, 00da 2h ; bb a20d5801 je near 04213h ; 0f 84 13 fe 5802 mov bx, 00da0h ; bb a0 0d 5552 5803 mov cx, ds ; 8c d9 5553 5804 mov ax, strict word 00004h ; b8 04 00 5554 call 01931h ; e8 fb d75805 call 01931h ; e8 26 d5 5555 5806 movzx ax, dl ; 0f b6 c2 5556 5807 push ax ; 50 … … 5558 5809 shr ax, 008h ; c1 e8 08 5559 5810 push ax ; 50 5560 push 003 2ch ; 68 2c 035561 push 003 6eh ; 68 6e 035811 push 0034ch ; 68 4c 03 5812 push 0038eh ; 68 8e 03 5562 5813 push strict byte 00004h ; 6a 04 5563 call 01972h ; e8 26 d85814 call 01972h ; e8 51 d5 5564 5815 add sp, strict byte 0000ah ; 83 c4 0a 5565 5816 mov ax, word [bp+016h] ; 8b 46 16 … … 5568 5819 mov word [bp+016h], ax ; 89 46 16 5569 5820 mov byte [bp+016h], 000h ; c6 46 16 00 5570 jmp near 04 236h ; e9 d5 005821 jmp near 0450bh ; e9 d5 00 5571 5822 mov es, [bp-008h] ; 8e 46 f8 5572 5823 mov di, word [es:si+014h] ; 26 8b 7c 14 … … 5607 5858 mov word [bp+010h], ax ; 89 46 10 5608 5859 cmp dl, 003h ; 80 fa 03 5609 je short 04 1e5h ; 74 1a5860 je short 044bah ; 74 1a 5610 5861 cmp dl, 002h ; 80 fa 02 5611 je short 04 1e1h ; 74 115862 je short 044b6h ; 74 11 5612 5863 cmp dl, 001h ; 80 fa 01 5613 jne short 04 1e9h ; 75 145864 jne short 044beh ; 75 14 5614 5865 mov ax, word [bp+010h] ; 8b 46 10 5615 5866 xor al, al ; 30 c0 5616 5867 or AL, strict byte 002h ; 0c 02 5617 5868 mov word [bp+010h], ax ; 89 46 10 5618 jmp short 04 1e9h ; eb 085869 jmp short 044beh ; eb 08 5619 5870 or AL, strict byte 004h ; 0c 04 5620 jmp short 04 1dch ; eb f75871 jmp short 044b1h ; eb f7 5621 5872 or AL, strict byte 005h ; 0c 05 5622 jmp short 04 1dch ; eb f35873 jmp short 044b1h ; eb f3 5623 5874 mov es, [bp-008h] ; 8e 46 f8 5624 5875 cmp byte [es:si+001h], 004h ; 26 80 7c 01 04 5625 jnc near 0 3f3eh ; 0f 83 49 fd5876 jnc near 04213h ; 0f 83 49 fd 5626 5877 mov word [bp+008h], 0efc7h ; c7 46 08 c7 ef 5627 5878 mov word [bp+006h], 0f000h ; c7 46 06 00 f0 5628 jmp near 0 3f3eh ; e9 3c fd5879 jmp near 04213h ; e9 3c fd 5629 5880 or bh, 003h ; 80 cf 03 5630 5881 mov word [bp+016h], bx ; 89 5e 16 5631 jmp near 0 3f42h ; e9 37 fd5632 mov bx, 00da 2h ; bb a20d5882 jmp near 04217h ; e9 37 fd 5883 mov bx, 00da0h ; bb a0 0d 5633 5884 mov cx, ds ; 8c d9 5634 5885 mov ax, strict word 00004h ; b8 04 00 5635 call 01931h ; e8 1b d75886 call 01931h ; e8 46 d4 5636 5887 mov ax, word [bp+016h] ; 8b 46 16 5637 5888 shr ax, 008h ; c1 e8 08 5638 5889 push ax ; 50 5639 push 003 2ch ; 68 2c 035640 push 003 8fh ; 68 8f 035890 push 0034ch ; 68 4c 03 5891 push 003afh ; 68 af 03 5641 5892 push strict byte 00004h ; 6a 04 5642 call 01972h ; e8 4a d75893 call 01972h ; e8 75 d4 5643 5894 add sp, strict byte 00008h ; 83 c4 08 5644 5895 mov ax, word [bp+016h] ; 8b 46 16 … … 5651 5902 mov dx, strict word 00074h ; ba 74 00 5652 5903 mov ax, strict word 00040h ; b8 40 00 5653 call 0165eh ; e8 17 d45904 call 0165eh ; e8 42 d1 5654 5905 or byte [bp+01ch], 001h ; 80 4e 1c 01 5655 jmp near 0 3f51h ; e9 03 fd5906 jmp near 04226h ; e9 03 fd 5656 5907 db 050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h 5657 db 010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0 ech, 047h, 068h5658 db 04 5h, 054h, 043h, 0ech, 047h, 049h, 043h, 0ech, 047h, 049h, 043h, 0ech, 047h, 068h, 045h, 0ech5659 db 04 7h, 0ech, 047h, 068h, 045h, 068h, 045h, 068h, 045h, 068h, 045h, 068h, 045h, 07eh, 043h, 068h5660 db 04 5h, 0ech, 047h, 087h, 043h, 09ah, 043h, 049h, 043h, 09ah, 043h, 0c8h, 044h, 082h, 045h, 09ah5661 db 04 3h, 0a9h, 045h, 0a5h, 047h, 0adh, 047h, 0ech, 047h5662 _int13_cdrom: ; 0xf4 2a7LB 0x5625908 db 010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0c1h, 04ah, 03dh 5909 db 048h, 029h, 046h, 0c1h, 04ah, 01eh, 046h, 0c1h, 04ah, 01eh, 046h, 0c1h, 04ah, 03dh, 048h, 0c1h 5910 db 04ah, 0c1h, 04ah, 03dh, 048h, 03dh, 048h, 03dh, 048h, 03dh, 048h, 03dh, 048h, 053h, 046h, 03dh 5911 db 048h, 0c1h, 04ah, 05ch, 046h, 06fh, 046h, 01eh, 046h, 06fh, 046h, 09dh, 047h, 057h, 048h, 06fh 5912 db 046h, 07eh, 048h, 07ah, 04ah, 082h, 04ah, 0c1h, 04ah 5913 _int13_cdrom: ; 0xf457c LB 0x562 5663 5914 push bp ; 55 5664 5915 mov bp, sp ; 89 e5 … … 5668 5919 mov dx, strict word 0000eh ; ba 0e 00 5669 5920 mov ax, strict word 00040h ; b8 40 00 5670 call 0166ch ; e8 b4 d35921 call 0166ch ; e8 df d0 5671 5922 mov word [bp-01ah], ax ; 89 46 e6 5672 5923 mov si, 00122h ; be 22 01 … … 5675 5926 mov dx, strict word 00074h ; ba 74 00 5676 5927 mov ax, strict word 00040h ; b8 40 00 5677 call 0165eh ; e8 92 d35928 call 0165eh ; e8 bd d0 5678 5929 mov ax, word [bp+010h] ; 8b 46 10 5679 5930 xor ah, ah ; 30 e4 5680 5931 cmp ax, 000e0h ; 3d e0 00 5681 jc short 04 2dbh ; 72 055932 jc short 045b0h ; 72 05 5682 5933 cmp ax, 000f0h ; 3d f0 00 5683 jc short 04 2f9h ; 72 1e5934 jc short 045ceh ; 72 1e 5684 5935 mov ax, word [bp+010h] ; 8b 46 10 5685 5936 xor ah, ah ; 30 e4 … … 5688 5939 shr ax, 008h ; c1 e8 08 5689 5940 push ax ; 50 5690 push 003 bfh ; 68 bf 035691 push 003 cbh ; 68 cb 035941 push 003dfh ; 68 df 03 5942 push 003ebh ; 68 eb 03 5692 5943 push strict byte 00004h ; 6a 04 5693 call 01972h ; e8 7f d65944 call 01972h ; e8 aa d3 5694 5945 add sp, strict byte 0000ah ; 83 c4 0a 5695 jmp near 04 7c9h ; e9 d0 045946 jmp near 04a9eh ; e9 d0 04 5696 5947 mov ax, word [bp+010h] ; 8b 46 10 5697 5948 xor ah, ah ; 30 e4 … … 5699 5950 mov bx, si ; 89 f3 5700 5951 add bx, ax ; 01 c3 5701 mov dl, byte [es:bx+00 0d0h] ; 26 8a 97 d0 005952 mov dl, byte [es:bx+00114h] ; 26 8a 97 14 01 5702 5953 mov byte [bp-008h], dl ; 88 56 f8 5703 5954 cmp dl, 010h ; 80 fa 10 5704 jc short 04 322h ; 72 105955 jc short 045f7h ; 72 10 5705 5956 push ax ; 50 5706 5957 mov ax, word [bp+018h] ; 8b 46 18 5707 5958 shr ax, 008h ; c1 e8 08 5708 5959 push ax ; 50 5709 push 003 bfh ; 68 bf 035710 push 00 3f6h ; 68 f6 035711 jmp short 04 2eeh ; eb cc5960 push 003dfh ; 68 df 03 5961 push 00416h ; 68 16 04 5962 jmp short 045c3h ; eb cc 5712 5963 mov ax, word [bp+018h] ; 8b 46 18 5713 5964 shr ax, 008h ; c1 e8 08 5714 5965 cmp ax, strict word 00050h ; 3d 50 00 5715 jnbe near 04 7ech ; 0f 87 bd 045966 jnbe near 04ac1h ; 0f 87 bd 04 5716 5967 push CS ; 0e 5717 5968 pop ES ; 07 5718 5969 mov cx, strict word 0001eh ; b9 1e 00 5719 mov di, 04 24eh ; bf 4e 425970 mov di, 04523h ; bf 23 45 5720 5971 repne scasb ; f2 ae 5721 5972 sal cx, 1 ; d1 e1 5722 5973 mov di, cx ; 89 cf 5723 mov ax, word [cs:di+04 26bh] ; 2e 8b 85 6b 425974 mov ax, word [cs:di+04540h] ; 2e 8b 85 40 45 5724 5975 mov bx, word [bp+018h] ; 8b 5e 18 5725 5976 xor bh, bh ; 30 ff … … 5728 5979 xor ah, ah ; 30 e4 5729 5980 or ah, 003h ; 80 cc 03 5730 jmp near 04 7d1h ; e9 7d 045981 jmp near 04aa6h ; e9 7d 04 5731 5982 mov dx, strict word 00074h ; ba 74 00 5732 5983 mov ax, strict word 00040h ; b8 40 00 5733 call 01650h ; e8 f3 d25984 call 01650h ; e8 1e d0 5734 5985 mov cl, al ; 88 c1 5735 5986 movzx ax, cl ; 0f b6 c1 … … 5740 5991 mov dx, strict word 00074h ; ba 74 00 5741 5992 mov ax, strict word 00040h ; b8 40 00 5742 call 0165eh ; e8 e9 d25993 call 0165eh ; e8 14 d0 5743 5994 test cl, cl ; 84 c9 5744 je near 04 56ch ; 0f 84 f1 015745 jmp near 04 7e5h ; e9 67 045995 je near 04841h ; 0f 84 f1 01 5996 jmp near 04abah ; e9 67 04 5746 5997 or bh, 002h ; 80 cf 02 5747 5998 mov word [bp+018h], bx ; 89 5e 18 5748 jmp near 04 7d4h ; e9 4d 045999 jmp near 04aa9h ; e9 4d 04 5749 6000 mov word [bp+012h], 0aa55h ; c7 46 12 55 aa 5750 6001 or bh, 030h ; 80 cf 30 5751 6002 mov word [bp+018h], bx ; 89 5e 18 5752 6003 mov word [bp+016h], strict word 00007h ; c7 46 16 07 00 5753 jmp near 04 56ch ; e9 d2 016004 jmp near 04841h ; e9 d2 01 5754 6005 mov bx, word [bp+00ch] ; 8b 5e 0c 5755 6006 mov es, [bp+006h] ; 8e 46 06 … … 5766 6017 mov di, word [es:bx+00eh] ; 26 8b 7f 0e 5767 6018 or di, ax ; 09 c7 5768 je short 04 3e2h ; 74 186019 je short 046b7h ; 74 18 5769 6020 mov ax, word [bp+018h] ; 8b 46 18 5770 6021 shr ax, 008h ; c1 e8 08 5771 6022 push ax ; 50 5772 push 003 bfh ; 68 bf 035773 push 004 28h ; 68 28 046023 push 003dfh ; 68 df 03 6024 push 00448h ; 68 48 04 5774 6025 push strict byte 00007h ; 6a 07 5775 call 01972h ; e8 96 d56026 call 01972h ; e8 c1 d2 5776 6027 add sp, strict byte 00008h ; 83 c4 08 5777 jmp near 04 7c9h ; e9 e7 036028 jmp near 04a9eh ; e9 e7 03 5778 6029 les bx, [bp-014h] ; c4 5e ec 5779 6030 mov ax, word [es:bx+008h] ; 26 8b 47 08 … … 5785 6036 mov word [bp-016h], ax ; 89 46 ea 5786 6037 cmp ax, strict word 00044h ; 3d 44 00 5787 je near 04 568h ; 0f 84 66 016038 je near 0483dh ; 0f 84 66 01 5788 6039 cmp ax, strict word 00047h ; 3d 47 00 5789 je near 04 568h ; 0f 84 5f 016040 je near 0483dh ; 0f 84 5f 01 5790 6041 mov cx, strict word 0000ch ; b9 0c 00 5791 6042 xor bx, bx ; 31 db 5792 6043 mov dx, ss ; 8c d2 5793 6044 lea ax, [bp-02ch] ; 8d 46 d4 5794 call 09 7aah ; e8 94 536045 call 09d6ah ; e8 7f 56 5795 6046 mov word [bp-02ch], strict word 00028h ; c7 46 d4 28 00 5796 6047 mov ax, word [bp-018h] ; 8b 46 e8 … … 5806 6057 mov ax, word [bp-010h] ; 8b 46 f0 5807 6058 mov es, [bp-00ch] ; 8e 46 f4 5808 mov word [es:si+00 ah], ax ; 26 89 44 0a5809 mov word [es:si+0 0ch], 00800h ; 26 c7 44 0c00 086059 mov word [es:si+00eh], ax ; 26 89 44 0e 6060 mov word [es:si+010h], 00800h ; 26 c7 44 10 00 08 5810 6061 movzx bx, byte [bp-008h] ; 0f b6 5e f8 5811 imul bx, bx, strict byte 0001 8h ; 6b db 186062 imul bx, bx, strict byte 0001ch ; 6b db 1c 5812 6063 add bx, si ; 01 f3 5813 movzx di, byte [es:bx+0 1eh] ; 26 0f b6 7f 1e6064 movzx di, byte [es:bx+022h] ; 26 0f b6 7f 22 5814 6065 add di, di ; 01 ff 5815 6066 push word [bp-01ch] ; ff 76 e4 … … 5820 6071 sal ax, 1 ; d1 e0 5821 6072 rcl bx, 1 ; d1 d3 5822 loop 04 460h ; e2 fa6073 loop 04735h ; e2 fa 5823 6074 push bx ; 53 5824 6075 push ax ; 50 … … 5831 6082 mov dx, ax ; 89 c2 5832 6083 mov es, [bp-00ch] ; 8e 46 f4 5833 mov ax, word [es:si+01 6h] ; 26 8b 44 165834 mov di, word [es:si+01 8h] ; 26 8b 7c 186084 mov ax, word [es:si+01ah] ; 26 8b 44 1a 6085 mov di, word [es:si+01ch] ; 26 8b 7c 1c 5835 6086 mov cx, strict word 0000bh ; b9 0b 00 5836 6087 shr di, 1 ; d1 ef 5837 6088 rcr ax, 1 ; d1 d8 5838 loop 04 48ah ; e2 fa6089 loop 0475fh ; e2 fa 5839 6090 les bx, [bp-014h] ; c4 5e ec 5840 6091 mov word [es:bx+002h], ax ; 26 89 47 02 5841 6092 test dl, dl ; 84 d2 5842 je near 04 568h ; 0f 84 cb 005843 mov bx, 00da 2h ; bb a20d6093 je near 0483dh ; 0f 84 cb 00 6094 mov bx, 00da0h ; bb a0 0d 5844 6095 mov cx, ds ; 8c d9 5845 6096 mov ax, strict word 00004h ; b8 04 00 5846 call 01931h ; e8 89 d46097 call 01931h ; e8 b4 d1 5847 6098 movzx ax, dl ; 0f b6 c2 5848 6099 push ax ; 50 5849 6100 push word [bp-016h] ; ff 76 ea 5850 push 003 bfh ; 68 bf 035851 push 004 51h ; 68 51 046101 push 003dfh ; 68 df 03 6102 push 00471h ; 68 71 04 5852 6103 push strict byte 00004h ; 6a 04 5853 call 01972h ; e8 b8 d46104 call 01972h ; e8 e3 d1 5854 6105 add sp, strict byte 0000ah ; 83 c4 0a 5855 6106 mov ax, word [bp+018h] ; 8b 46 18 5856 6107 xor ah, ah ; 30 e4 5857 6108 or ah, 00ch ; 80 cc 0c 5858 jmp near 04 7d1h ; e9 09 036109 jmp near 04aa6h ; e9 09 03 5859 6110 cmp bx, strict byte 00002h ; 83 fb 02 5860 jnbe near 04 7c9h ; 0f 87 fa 026111 jnbe near 04a9eh ; 0f 87 fa 02 5861 6112 movzx ax, byte [bp-008h] ; 0f b6 46 f8 5862 imul ax, ax, strict byte 0001 8h ; 6b c0 186113 imul ax, ax, strict byte 0001ch ; 6b c0 1c 5863 6114 mov es, [bp-00ch] ; 8e 46 f4 5864 6115 mov di, si ; 89 f7 5865 6116 add di, ax ; 01 c7 5866 mov al, byte [es:di+02 1h] ; 26 8a 45 216117 mov al, byte [es:di+025h] ; 26 8a 45 25 5867 6118 cmp bx, strict byte 00002h ; 83 fb 02 5868 je short 04 559h ; 74 736119 je short 0482eh ; 74 73 5869 6120 cmp bx, strict byte 00001h ; 83 fb 01 5870 je short 04 526h ; 74 3b6121 je short 047fbh ; 74 3b 5871 6122 test bx, bx ; 85 db 5872 jne near 04 568h ; 0f 85 77 006123 jne near 0483dh ; 0f 85 77 00 5873 6124 cmp AL, strict byte 0ffh ; 3c ff 5874 jne short 04 507h ; 75 126125 jne short 047dch ; 75 12 5875 6126 mov ax, word [bp+018h] ; 8b 46 18 5876 6127 xor ah, ah ; 30 e4 … … 5879 6130 xor al, al ; 30 c0 5880 6131 or AL, strict byte 001h ; 0c 01 5881 jmp near 04 7d1h ; e9 ca 026132 jmp near 04aa6h ; e9 ca 02 5882 6133 movzx dx, byte [bp-008h] ; 0f b6 56 f8 5883 imul dx, dx, strict byte 0001 8h ; 6b d2 186134 imul dx, dx, strict byte 0001ch ; 6b d2 1c 5884 6135 db 0feh, 0c0h 5885 6136 ; inc al ; fe c0 5886 6137 mov es, [bp-00ch] ; 8e 46 f4 5887 6138 add si, dx ; 01 d6 5888 mov byte [es:si+02 1h], al ; 26 88 44 216139 mov byte [es:si+025h], al ; 26 88 44 25 5889 6140 mov ax, word [bp+018h] ; 8b 46 18 5890 6141 xor al, al ; 30 c0 5891 6142 or AL, strict byte 001h ; 0c 01 5892 6143 mov word [bp+018h], ax ; 89 46 18 5893 jmp near 04 568h ; e9 42 006144 jmp near 0483dh ; e9 42 00 5894 6145 test al, al ; 84 c0 5895 jne short 04 536h ; 75 0c6146 jne short 0480bh ; 75 0c 5896 6147 or bh, 0b0h ; 80 cf b0 5897 6148 mov word [bp+018h], bx ; 89 5e 18 5898 6149 mov byte [bp+018h], al ; 88 46 18 5899 jmp near 04 7d4h ; e9 9e 026150 jmp near 04aa9h ; e9 9e 02 5900 6151 movzx dx, byte [bp-008h] ; 0f b6 56 f8 5901 imul dx, dx, strict byte 0001 8h ; 6b d2 186152 imul dx, dx, strict byte 0001ch ; 6b d2 1c 5902 6153 db 0feh, 0c8h 5903 6154 ; dec al ; fe c8 5904 6155 mov es, [bp-00ch] ; 8e 46 f4 5905 6156 add si, dx ; 01 d6 5906 mov byte [es:si+02 1h], al ; 26 88 44 216157 mov byte [es:si+025h], al ; 26 88 44 25 5907 6158 test al, al ; 84 c0 5908 6159 db 00fh, 095h, 0c0h … … 5912 6163 xor al, al ; 30 c0 5913 6164 or ax, dx ; 09 d0 5914 jmp short 04 520h ; eb c76165 jmp short 047f5h ; eb c7 5915 6166 test al, al ; 84 c0 5916 6167 db 00fh, 095h, 0c0h … … 5924 6175 mov dx, strict word 00074h ; ba 74 00 5925 6176 mov ax, strict word 00040h ; b8 40 00 5926 call 0165eh ; e8 e7 d06177 call 0165eh ; e8 12 ce 5927 6178 and byte [bp+01eh], 0feh ; 80 66 1e fe 5928 6179 lea sp, [bp-004h] ; 8d 66 fc … … 5932 6183 retn ; c3 5933 6184 movzx ax, byte [bp-008h] ; 0f b6 46 f8 5934 imul ax, ax, strict byte 0001 8h ; 6b c0 186185 imul ax, ax, strict byte 0001ch ; 6b c0 1c 5935 6186 mov es, [bp-00ch] ; 8e 46 f4 5936 6187 add si, ax ; 01 c6 5937 mov al, byte [es:si+02 1h] ; 26 8a 44 216188 mov al, byte [es:si+025h] ; 26 8a 44 25 5938 6189 test al, al ; 84 c0 5939 je short 04 59ch ; 74 066190 je short 04871h ; 74 06 5940 6191 or bh, 0b1h ; 80 cf b1 5941 jmp near 04 381h ; e9 e5 fd5942 je short 04 568h ; 74 ca6192 jmp near 04656h ; e9 e5 fd 6193 je short 0483dh ; 74 ca 5943 6194 mov ax, word [bp+018h] ; 8b 46 18 5944 6195 xor ah, ah ; 30 e4 5945 6196 or ah, 0b1h ; 80 cc b1 5946 jmp near 04 7d1h ; e9 28 026197 jmp near 04aa6h ; e9 28 02 5947 6198 mov dx, word [bp+00ch] ; 8b 56 0c 5948 6199 mov cx, word [bp+006h] ; 8b 4e 06 … … 5954 6205 mov word [bp-00eh], ax ; 89 46 f2 5955 6206 cmp ax, strict word 0001ah ; 3d 1a 00 5956 jc near 04 7c9h ; 0f 82 04 025957 jc short 04 616h ; 72 4f6207 jc near 04a9eh ; 0f 82 04 02 6208 jc short 048ebh ; 72 4f 5958 6209 movzx ax, byte [bp-008h] ; 0f b6 46 f8 5959 imul ax, ax, strict byte 0001 8h ; 6b c0 186210 imul ax, ax, strict byte 0001ch ; 6b c0 1c 5960 6211 mov es, [bp-00ch] ; 8e 46 f4 5961 6212 mov di, si ; 89 f7 5962 6213 add di, ax ; 01 c7 5963 mov ax, word [es:di+02 4h] ; 26 8b 45 246214 mov ax, word [es:di+028h] ; 26 8b 45 28 5964 6215 mov es, cx ; 8e c1 5965 6216 mov di, dx ; 89 d7 … … 5978 6229 ; mov dword [es:di+014h], strict dword 0ffffffffh ; 66 26 c7 45 14 ff ff ff ff 5979 6230 cmp word [bp-00eh], strict byte 0001eh ; 83 7e f2 1e 5980 jc near 04 6edh ; 0f 82 cf 006231 jc near 049c2h ; 0f 82 cf 00 5981 6232 mov es, [bp-00ah] ; 8e 46 f6 5982 6233 mov word [es:bx], strict word 0001eh ; 26 c7 07 1e 00 5983 6234 mov ax, word [bp-01ah] ; 8b 46 e6 5984 6235 mov word [es:bx+01ch], ax ; 26 89 47 1c 5985 mov word [es:bx+01ah], 003 12h ; 26 c7 47 1a 12036236 mov word [es:bx+01ah], 00356h ; 26 c7 47 1a 56 03 5986 6237 movzx cx, byte [bp-008h] ; 0f b6 4e f8 5987 6238 mov ax, cx ; 89 c8 … … 5994 6245 mov es, [bp-00ch] ; 8e 46 f4 5995 6246 add di, si ; 01 f7 5996 mov ax, word [es:di+00 1c2h] ; 26 8b 85 c2 016247 mov ax, word [es:di+00206h] ; 26 8b 85 06 02 5997 6248 mov word [bp-01eh], ax ; 89 46 e2 5998 mov dx, word [es:di+00 1c4h] ; 26 8b 95 c4 015999 mov al, byte [es:di+00 1c1h] ; 26 8a 85 c1 016249 mov dx, word [es:di+00208h] ; 26 8b 95 08 02 6250 mov al, byte [es:di+00205h] ; 26 8a 85 05 02 6000 6251 mov byte [bp-006h], al ; 88 46 fa 6001 imul cx, cx, strict byte 0001 8h ; 6b c9 186252 imul cx, cx, strict byte 0001ch ; 6b c9 1c 6002 6253 mov di, si ; 89 f7 6003 6254 add di, cx ; 01 cf 6004 mov al, byte [es:di+02 2h] ; 26 8a 45 226255 mov al, byte [es:di+026h] ; 26 8a 45 26 6005 6256 cmp AL, strict byte 001h ; 3c 01 6006 6257 db 00fh, 094h, 0c0h … … 6010 6261 mov di, ax ; 89 c7 6011 6262 mov ax, word [bp-01eh] ; 8b 46 e2 6012 mov word [es:si+00 1f0h], ax ; 26 89 84 f0 016013 mov word [es:si+00 1f2h], dx ; 26 89 94 f2 016263 mov word [es:si+00234h], ax ; 26 89 84 34 02 6264 mov word [es:si+00236h], dx ; 26 89 94 36 02 6014 6265 movzx ax, byte [bp-008h] ; 0f b6 46 f8 6015 6266 cwd ; 99 … … 6019 6270 mov ax, dx ; 89 d0 6020 6271 sal ax, 004h ; c1 e0 04 6021 mov byte [es:si+00 1f4h], al ; 26 88 84 f4 016022 mov byte [es:si+00 1f5h], 0cbh ; 26 c6 84 f5 01cb6272 mov byte [es:si+00238h], al ; 26 88 84 38 02 6273 mov byte [es:si+00239h], 0cbh ; 26 c6 84 39 02 cb 6023 6274 mov al, byte [bp-006h] ; 8a 46 fa 6024 mov byte [es:si+00 1f6h], al ; 26 88 84 f6 016025 mov word [es:si+00 1f7h], strict word 00001h ; 26 c7 84 f7 0101 006026 mov byte [es:si+00 1f9h], 000h ; 26 c6 84 f9 01006027 mov word [es:si+00 1fah], di ; 26 89 bc fa 016028 mov word [es:si+00 1fch], strict word 00000h ; 26 c7 84 fc 0100 006029 mov byte [es:si+00 1feh], 011h ; 26 c6 84 fe 01116275 mov byte [es:si+0023ah], al ; 26 88 84 3a 02 6276 mov word [es:si+0023bh], strict word 00001h ; 26 c7 84 3b 02 01 00 6277 mov byte [es:si+0023dh], 000h ; 26 c6 84 3d 02 00 6278 mov word [es:si+0023eh], di ; 26 89 bc 3e 02 6279 mov word [es:si+00240h], strict word 00000h ; 26 c7 84 40 02 00 00 6280 mov byte [es:si+00242h], 011h ; 26 c6 84 42 02 11 6030 6281 xor cl, cl ; 30 c9 6031 6282 xor ch, ch ; 30 ed 6032 jmp short 04 6d0h ; eb 056283 jmp short 049a5h ; eb 05 6033 6284 cmp ch, 00fh ; 80 fd 0f 6034 jnc short 04 6e3h ; 73 136285 jnc short 049b8h ; 73 13 6035 6286 movzx dx, ch ; 0f b6 d5 6036 add dx, 003 12h ; 81 c2 12036287 add dx, 00356h ; 81 c2 56 03 6037 6288 mov ax, word [bp-01ah] ; 8b 46 e6 6038 call 01650h ; e8 73 cf6289 call 01650h ; e8 9e cc 6039 6290 add cl, al ; 00 c1 6040 6291 db 0feh, 0c5h 6041 6292 ; inc ch ; fe c5 6042 jmp short 04 6cbh ; eb e86293 jmp short 049a0h ; eb e8 6043 6294 neg cl ; f6 d9 6044 6295 mov es, [bp-00ch] ; 8e 46 f4 6045 mov byte [es:si+00 1ffh], cl ; 26 88 8c ff 016296 mov byte [es:si+00243h], cl ; 26 88 8c 43 02 6046 6297 cmp word [bp-00eh], strict byte 00042h ; 83 7e f2 42 6047 jc near 04 568h ; 0f 82 73 fe6298 jc near 0483dh ; 0f 82 73 fe 6048 6299 movzx ax, byte [bp-008h] ; 0f b6 46 f8 6049 6300 cwd ; 99 … … 6055 6306 mov es, [bp-00ch] ; 8e 46 f4 6056 6307 add si, ax ; 01 c6 6057 mov al, byte [es:si+00 1c0h] ; 26 8a 84 c0 016058 mov dx, word [es:si+00 1c2h] ; 26 8b 94 c2 016308 mov al, byte [es:si+00204h] ; 26 8a 84 04 02 6309 mov dx, word [es:si+00206h] ; 26 8b 94 06 02 6059 6310 mov es, [bp-00ah] ; 8e 46 f6 6060 6311 mov word [es:bx], strict word 00042h ; 26 c7 07 42 00 … … 6063 6314 mov word [es:bx+022h], strict word 00000h ; 26 c7 47 22 00 00 6064 6315 test al, al ; 84 c0 6065 jne short 04 736h ; 75 096316 jne short 04a0bh ; 75 09 6066 6317 db 066h, 026h, 0c7h, 047h, 024h, 049h, 053h, 041h, 020h 6067 6318 ; mov dword [es:bx+024h], strict dword 020415349h ; 66 26 c7 47 24 49 53 41 20 … … 6072 6323 ; mov dword [es:bx+02ch], strict dword 020202020h ; 66 26 c7 47 2c 20 20 20 20 6073 6324 test al, al ; 84 c0 6074 jne short 04 762h ; 75 136325 jne short 04a37h ; 75 13 6075 6326 mov word [es:bx+030h], dx ; 26 89 57 30 6076 6327 db 066h, 026h, 0c7h, 047h, 032h, 000h, 000h, 000h, 000h … … 6087 6338 xor al, al ; 30 c0 6088 6339 mov AH, strict byte 01eh ; b4 1e 6089 jmp short 04 78ah ; eb 056340 jmp short 04a5fh ; eb 05 6090 6341 cmp ah, 040h ; 80 fc 40 6091 jnc short 04 799h ; 73 0f6342 jnc short 04a6eh ; 73 0f 6092 6343 movzx si, ah ; 0f b6 f4 6093 6344 mov es, [bp-00ah] ; 8e 46 f6 … … 6096 6347 db 0feh, 0c4h 6097 6348 ; inc ah ; fe c4 6098 jmp short 04 785h ; eb ec6349 jmp short 04a5ah ; eb ec 6099 6350 neg al ; f6 d8 6100 6351 mov es, [bp-00ah] ; 8e 46 f6 6101 6352 mov byte [es:bx+041h], al ; 26 88 47 41 6102 jmp near 04 568h ; e9 c3 fd6353 jmp near 0483dh ; e9 c3 fd 6103 6354 or bh, 006h ; 80 cf 06 6104 6355 mov word [bp+018h], bx ; 89 5e 18 6105 jmp short 04 7e5h ; eb 386356 jmp short 04abah ; eb 38 6106 6357 cmp bx, strict byte 00006h ; 83 fb 06 6107 je near 04 568h ; 0f 84 b4 fd6358 je near 0483dh ; 0f 84 b4 fd 6108 6359 cmp bx, strict byte 00001h ; 83 fb 01 6109 jc short 04 7c9h ; 72 106110 jbe near 04 568h ; 0f 86 ab fd6360 jc short 04a9eh ; 72 10 6361 jbe near 0483dh ; 0f 86 ab fd 6111 6362 cmp bx, strict byte 00003h ; 83 fb 03 6112 jc short 04 7c9h ; 72 076363 jc short 04a9eh ; 72 07 6113 6364 cmp bx, strict byte 00004h ; 83 fb 04 6114 jbe near 04 568h ; 0f 86 9f fd6365 jbe near 0483dh ; 0f 86 9f fd 6115 6366 mov ax, word [bp+018h] ; 8b 46 18 6116 6367 xor ah, ah ; 30 e4 … … 6122 6373 mov dx, strict word 00074h ; ba 74 00 6123 6374 mov ax, strict word 00040h ; b8 40 00 6124 call 0165eh ; e8 79 ce6375 call 0165eh ; e8 a4 cb 6125 6376 or byte [bp+01eh], 001h ; 80 4e 1e 01 6126 jmp near 04 57bh ; e9 8f fd6127 mov bx, 00da 2h ; bb a20d6377 jmp near 04850h ; e9 8f fd 6378 mov bx, 00da0h ; bb a0 0d 6128 6379 mov cx, ds ; 8c d9 6129 6380 mov ax, strict word 00004h ; b8 04 00 6130 call 01931h ; e8 3a d16381 call 01931h ; e8 65 ce 6131 6382 mov ax, word [bp+018h] ; 8b 46 18 6132 6383 shr ax, 008h ; c1 e8 08 6133 6384 push ax ; 50 6134 push 003 bfh ; 68 bf 036135 push 003 13h ; 68 13 036385 push 003dfh ; 68 df 03 6386 push 00333h ; 68 33 03 6136 6387 push strict byte 00004h ; 6a 04 6137 jmp near 04 3d9h ; e9 d0 fb6138 print_boot_device_: ; 0xf4 809LB 0x4b6388 jmp near 046aeh ; e9 d0 fb 6389 print_boot_device_: ; 0xf4ade LB 0x4b 6139 6390 push bp ; 55 6140 6391 mov bp, sp ; 89 e5 6141 6392 push cx ; 51 6142 6393 test al, al ; 84 c0 6143 je short 04 816h ; 74 056394 je short 04aebh ; 74 05 6144 6395 mov dx, strict word 00002h ; ba 02 00 6145 jmp short 04 830h ; eb 1a6396 jmp short 04b05h ; eb 1a 6146 6397 test dl, dl ; 84 d2 6147 je short 04 81fh ; 74 056398 je short 04af4h ; 74 05 6148 6399 mov dx, strict word 00003h ; ba 03 00 6149 jmp short 04 830h ; eb 116400 jmp short 04b05h ; eb 11 6150 6401 test bl, 080h ; f6 c3 80 6151 jne short 04 828h ; 75 046402 jne short 04afdh ; 75 04 6152 6403 xor dh, dh ; 30 f6 6153 jmp short 04 830h ; eb 086404 jmp short 04b05h ; eb 08 6154 6405 test bl, 080h ; f6 c3 80 6155 je short 04 84eh ; 74 216406 je short 04b23h ; 74 21 6156 6407 mov dx, strict word 00001h ; ba 01 00 6157 mov bx, 00da 2h ; bb a20d6408 mov bx, 00da0h ; bb a0 0d 6158 6409 mov cx, ds ; 8c d9 6159 6410 mov ax, strict word 00004h ; b8 04 00 6160 call 01931h ; e8 f6 d06411 call 01931h ; e8 21 ce 6161 6412 imul dx, dx, strict byte 0000ah ; 6b d2 0a 6162 add dx, 00dc 8h ; 81 c2 c80d6413 add dx, 00dc6h ; 81 c2 c6 0d 6163 6414 push dx ; 52 6164 push 004 74h ; 68 74 046415 push 00494h ; 68 94 04 6165 6416 push strict byte 00004h ; 6a 04 6166 call 01972h ; e8 27 d16417 call 01972h ; e8 52 ce 6167 6418 add sp, strict byte 00006h ; 83 c4 06 6168 6419 lea sp, [bp-002h] ; 8d 66 fe … … 6170 6421 pop bp ; 5d 6171 6422 retn ; c3 6172 print_boot_failure_: ; 0xf4 854LB 0x936423 print_boot_failure_: ; 0xf4b29 LB 0x93 6173 6424 push bp ; 55 6174 6425 mov bp, sp ; 89 e5 … … 6179 6430 movzx si, ah ; 0f b6 f4 6180 6431 test al, al ; 84 c0 6181 je short 04 881h ; 74 1b6182 mov bx, 00da 2h ; bb a20d6432 je short 04b56h ; 74 1b 6433 mov bx, 00da0h ; bb a0 0d 6183 6434 mov cx, ds ; 8c d9 6184 6435 mov ax, strict word 00004h ; b8 04 00 6185 call 01931h ; e8 c0 d06186 push 00dd ch ; 68 dc0d6187 push 004 88h ; 68 88 046436 call 01931h ; e8 eb cd 6437 push 00ddah ; 68 da 0d 6438 push 004a8h ; 68 a8 04 6188 6439 push strict byte 00004h ; 6a 04 6189 call 01972h ; e8 f6 d06440 call 01972h ; e8 21 ce 6190 6441 add sp, strict byte 00006h ; 83 c4 06 6191 jmp short 04 8c5h ; eb 446442 jmp short 04b9ah ; eb 44 6192 6443 test dl, dl ; 84 d2 6193 je short 04 895h ; 74 106194 mov bx, 00da 2h ; bb a20d6444 je short 04b6ah ; 74 10 6445 mov bx, 00da0h ; bb a0 0d 6195 6446 mov cx, ds ; 8c d9 6196 6447 mov ax, strict word 00004h ; b8 04 00 6197 call 01931h ; e8 a1 d06198 push 00de 6h ; 68 e60d6199 jmp short 04 874h ; eb df6448 call 01931h ; e8 cc cd 6449 push 00de4h ; 68 e4 0d 6450 jmp short 04b49h ; eb df 6200 6451 test bl, 080h ; f6 c3 80 6201 je short 04 8abh ; 74 116202 mov bx, 00da 2h ; bb a20d6452 je short 04b80h ; 74 11 6453 mov bx, 00da0h ; bb a0 0d 6203 6454 mov cx, ds ; 8c d9 6204 6455 mov ax, strict word 00004h ; b8 04 00 6205 call 01931h ; e8 8c d06456 call 01931h ; e8 b7 cd 6206 6457 push si ; 56 6207 push 00dd 2h ; 68 d20d6208 jmp short 04 8bah ; eb 0f6209 mov bx, 00da 2h ; bb a20d6458 push 00dd0h ; 68 d0 0d 6459 jmp short 04b8fh ; eb 0f 6460 mov bx, 00da0h ; bb a0 0d 6210 6461 mov cx, ds ; 8c d9 6211 6462 mov ax, strict word 00004h ; b8 04 00 6212 call 01931h ; e8 7b d06463 call 01931h ; e8 a6 cd 6213 6464 push si ; 56 6214 push 00dc 8h ; 68 c80d6215 push 004 9dh ; 68 9d 046465 push 00dc6h ; 68 c6 0d 6466 push 004bdh ; 68 bd 04 6216 6467 push strict byte 00004h ; 6a 04 6217 call 01972h ; e8 b0 d06468 call 01972h ; e8 db cd 6218 6469 add sp, strict byte 00008h ; 83 c4 08 6219 6470 cmp byte [bp+004h], 001h ; 80 7e 04 01 6220 jne short 04 8dfh ; 75 146471 jne short 04bb4h ; 75 14 6221 6472 test dh, dh ; 84 f6 6222 jne short 04 8d4h ; 75 056223 push 004 b5h ; 68 b5 046224 jmp short 04 8d7h ; eb 036225 push 004 dfh ; 68 df 046473 jne short 04ba9h ; 75 05 6474 push 004d5h ; 68 d5 04 6475 jmp short 04bach ; eb 03 6476 push 004ffh ; 68 ff 04 6226 6477 push strict byte 00007h ; 6a 07 6227 call 01972h ; e8 96 d06478 call 01972h ; e8 c1 cd 6228 6479 add sp, strict byte 00004h ; 83 c4 04 6229 6480 lea sp, [bp-002h] ; 8d 66 fe … … 6231 6482 pop bp ; 5d 6232 6483 retn 00002h ; c2 02 00 6233 print_cdromboot_failure_: ; 0xf4 8e7LB 0x276484 print_cdromboot_failure_: ; 0xf4bbc LB 0x27 6234 6485 push bp ; 55 6235 6486 mov bp, sp ; 89 e5 … … 6238 6489 push dx ; 52 6239 6490 mov dx, ax ; 89 c2 6240 mov bx, 00da 2h ; bb a20d6491 mov bx, 00da0h ; bb a0 0d 6241 6492 mov cx, ds ; 8c d9 6242 6493 mov ax, strict word 00004h ; b8 04 00 6243 call 01931h ; e8 37 d06494 call 01931h ; e8 62 cd 6244 6495 push dx ; 52 6245 push 005 14h ; 68 14 056496 push 00534h ; 68 34 05 6246 6497 push strict byte 00004h ; 6a 04 6247 call 01972h ; e8 6f d06498 call 01972h ; e8 9a cd 6248 6499 add sp, strict byte 00006h ; 83 c4 06 6249 6500 lea sp, [bp-006h] ; 8d 66 fa … … 6253 6504 pop bp ; 5d 6254 6505 retn ; c3 6255 _int19_function: ; 0xf4 90eLB 0x2566506 _int19_function: ; 0xf4be3 LB 0x256 6256 6507 push bp ; 55 6257 6508 mov bp, sp ; 89 e5 … … 6261 6512 mov dx, strict word 0000eh ; ba 0e 00 6262 6513 mov ax, strict word 00040h ; b8 40 00 6263 call 0166ch ; e8 4d cd6514 call 0166ch ; e8 78 ca 6264 6515 mov bx, ax ; 89 c3 6265 6516 mov word [bp-00eh], ax ; 89 46 f2 6266 6517 mov byte [bp-008h], 000h ; c6 46 f8 00 6267 6518 mov ax, strict word 0003dh ; b8 3d 00 6268 call 016ach ; e8 7e cd6519 call 016ach ; e8 a9 ca 6269 6520 movzx si, al ; 0f b6 f0 6270 6521 mov ax, strict word 00038h ; b8 38 00 6271 call 016ach ; e8 75 cd6522 call 016ach ; e8 a0 ca 6272 6523 and AL, strict byte 0f0h ; 24 f0 6273 6524 xor ah, ah ; 30 e4 … … 6275 6526 or si, ax ; 09 c6 6276 6527 mov ax, strict word 0003ch ; b8 3c 00 6277 call 016ach ; e8 66 cd6528 call 016ach ; e8 91 ca 6278 6529 and AL, strict byte 00fh ; 24 0f 6279 6530 xor ah, ah ; 30 e4 6280 6531 sal ax, 00ch ; c1 e0 0c 6281 6532 or si, ax ; 09 c6 6282 mov dx, 003 39h ; ba 39036533 mov dx, 0037dh ; ba 7d 03 6283 6534 mov ax, bx ; 89 d8 6284 call 01650h ; e8 f9 cc6535 call 01650h ; e8 24 ca 6285 6536 test al, al ; 84 c0 6286 je short 04 966h ; 74 0b6287 mov dx, 003 39h ; ba 39036537 je short 04c3bh ; 74 0b 6538 mov dx, 0037dh ; ba 7d 03 6288 6539 mov ax, bx ; 89 d8 6289 call 01650h ; e8 ed cc6540 call 01650h ; e8 18 ca 6290 6541 movzx si, al ; 0f b6 f0 6291 6542 cmp byte [bp+004h], 001h ; 80 7e 04 01 6292 jne short 04 97ch ; 75 106543 jne short 04c51h ; 75 10 6293 6544 mov ax, strict word 0003ch ; b8 3c 00 6294 call 016ach ; e8 3a cd6545 call 016ach ; e8 65 ca 6295 6546 and AL, strict byte 0f0h ; 24 f0 6296 6547 xor ah, ah ; 30 e4 6297 6548 sar ax, 004h ; c1 f8 04 6298 call 07 81eh ; e8 a2 2e6549 call 07b6bh ; e8 1a 2f 6299 6550 cmp byte [bp+004h], 002h ; 80 7e 04 02 6300 jne short 04 985h ; 75 036551 jne short 04c5ah ; 75 03 6301 6552 shr si, 004h ; c1 ee 04 6302 6553 cmp byte [bp+004h], 003h ; 80 7e 04 03 6303 jne short 04 98eh ; 75 036554 jne short 04c63h ; 75 03 6304 6555 shr si, 008h ; c1 ee 08 6305 6556 cmp byte [bp+004h], 004h ; 80 7e 04 04 6306 jne short 04 997h ; 75 036557 jne short 04c6ch ; 75 03 6307 6558 shr si, 00ch ; c1 ee 0c 6308 6559 cmp si, strict byte 00010h ; 83 fe 10 6309 jnc short 04 9a0h ; 73 046560 jnc short 04c75h ; 73 04 6310 6561 mov byte [bp-008h], 001h ; c6 46 f8 01 6311 6562 xor al, al ; 30 c0 … … 6313 6564 mov byte [bp-00ah], al ; 88 46 f6 6314 6565 mov byte [bp-00ch], al ; 88 46 f4 6315 mov bx, 00da 2h ; bb a20d6566 mov bx, 00da0h ; bb a0 0d 6316 6567 mov cx, ds ; 8c d9 6317 6568 mov ax, strict word 00004h ; b8 04 00 6318 call 01931h ; e8 7b cf6569 call 01931h ; e8 a6 cc 6319 6570 push si ; 56 6320 6571 movzx ax, byte [bp+004h] ; 0f b6 46 04 6321 6572 push ax ; 50 6322 push 005 34h ; 68 34 056573 push 00554h ; 68 54 05 6323 6574 push strict byte 00004h ; 6a 04 6324 call 01972h ; e8 ae cf6575 call 01972h ; e8 d9 cc 6325 6576 add sp, strict byte 00008h ; 83 c4 08 6326 6577 and si, strict byte 0000fh ; 83 e6 0f 6327 6578 cmp si, strict byte 00002h ; 83 fe 02 6328 jc short 04 9ddh ; 72 0e6329 jbe short 04 9ech ; 76 1b6579 jc short 04cb2h ; 72 0e 6580 jbe short 04cc1h ; 76 1b 6330 6581 cmp si, strict byte 00004h ; 83 fe 04 6331 je short 04 a0ah ; 74 346582 je short 04cdfh ; 74 34 6332 6583 cmp si, strict byte 00003h ; 83 fe 03 6333 je short 04 a00h ; 74 256334 jmp short 04 a37h ; eb 5a6584 je short 04cd5h ; 74 25 6585 jmp short 04d0ch ; eb 5a 6335 6586 cmp si, strict byte 00001h ; 83 fe 01 6336 jne short 04 a37h ; 75 556587 jne short 04d0ch ; 75 55 6337 6588 xor al, al ; 30 c0 6338 6589 mov byte [bp-006h], al ; 88 46 fa 6339 6590 mov byte [bp-00ah], al ; 88 46 f6 6340 jmp short 04 a4fh ; eb 636341 mov dx, 003 38h ; ba 38036591 jmp short 04d24h ; eb 63 6592 mov dx, 0037ch ; ba 7c 03 6342 6593 mov ax, word [bp-00eh] ; 8b 46 f2 6343 call 01650h ; e8 5b cc6594 call 01650h ; e8 86 c9 6344 6595 add AL, strict byte 080h ; 04 80 6345 6596 mov byte [bp-006h], al ; 88 46 fa 6346 6597 mov byte [bp-00ah], 000h ; c6 46 f6 00 6347 jmp short 04 a4fh ; eb 4f6598 jmp short 04d24h ; eb 4f 6348 6599 mov byte [bp-006h], 000h ; c6 46 fa 00 6349 6600 mov byte [bp-00ah], 001h ; c6 46 f6 01 6350 jmp short 04 a14h ; eb 0a6601 jmp short 04ce9h ; eb 0a 6351 6602 mov byte [bp-00ch], 001h ; c6 46 f4 01 6352 6603 cmp byte [bp-00ah], 000h ; 80 7e f6 00 6353 je short 04 a4fh ; 74 3b6354 call 03 a5dh ; e8 46 f06604 je short 04d24h ; 74 3b 6605 call 03d32h ; e8 46 f0 6355 6606 mov bx, ax ; 89 c3 6356 6607 test AL, strict byte 0ffh ; a8 ff 6357 je short 04 a3eh ; 74 216358 call 04 8e7h ; e8 c7 fe6608 je short 04d13h ; 74 21 6609 call 04bbch ; e8 c7 fe 6359 6610 movzx ax, byte [bp-008h] ; 0f b6 46 f8 6360 6611 push ax ; 50 … … 6363 6614 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 6364 6615 mov cx, strict word 00001h ; b9 01 00 6365 call 04 854h ; e8 1d fe6616 call 04b29h ; e8 1d fe 6366 6617 xor ax, ax ; 31 c0 6367 6618 xor dx, dx ; 31 d2 6368 jmp near 04 b5dh ; e9 1f 016369 mov dx, 003 2eh ; ba 2e036619 jmp near 04e32h ; e9 1f 01 6620 mov dx, 00372h ; ba 72 03 6370 6621 mov ax, word [bp-00eh] ; 8b 46 f2 6371 call 0166ch ; e8 25 cc6622 call 0166ch ; e8 50 c9 6372 6623 mov di, ax ; 89 c7 6373 6624 shr bx, 008h ; c1 eb 08 6374 6625 mov byte [bp-006h], bl ; 88 5e fa 6375 6626 cmp byte [bp-00ch], 001h ; 80 7e f4 01 6376 jne near 04 acbh ; 0f 85 74 006627 jne near 04da0h ; 0f 85 74 00 6377 6628 xor si, si ; 31 f6 6378 6629 mov ax, 0e200h ; b8 00 e2 6379 6630 mov es, ax ; 8e c0 6380 6631 cmp word [es:si], 0aa55h ; 26 81 3c 55 aa 6381 jne short 04 a20h ; 75 bb6632 jne short 04cf5h ; 75 bb 6382 6633 mov cx, ax ; 89 c1 6383 6634 mov si, word [es:si+01ah] ; 26 8b 74 1a 6384 6635 cmp word [es:si+002h], 0506eh ; 26 81 7c 02 6e 50 6385 jne short 04 a20h ; 75 ad6636 jne short 04cf5h ; 75 ad 6386 6637 cmp word [es:si], 05024h ; 26 81 3c 24 50 6387 jne short 04 a20h ; 75 a66638 jne short 04cf5h ; 75 a6 6388 6639 mov di, word [es:si+00eh] ; 26 8b 7c 0e 6389 6640 mov dx, word [es:di] ; 26 8b 15 6390 6641 mov ax, word [es:di+002h] ; 26 8b 45 02 6391 6642 cmp ax, 06568h ; 3d 68 65 6392 jne short 04 aa9h ; 75 1f6643 jne short 04d7eh ; 75 1f 6393 6644 cmp dx, 07445h ; 81 fa 45 74 6394 jne short 04 aa9h ; 75 196645 jne short 04d7eh ; 75 19 6395 6646 movzx bx, byte [bp-006h] ; 0f b6 5e fa 6396 6647 movzx dx, byte [bp-00ch] ; 0f b6 56 f4 6397 6648 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 6398 call 04 809h ; e8 6a fd6649 call 04adeh ; e8 6a fd 6399 6650 mov word [bp-012h], strict word 00006h ; c7 46 ee 06 00 6400 6651 mov word [bp-010h], cx ; 89 4e f0 6401 jmp short 04 ac5h ; eb 1c6652 jmp short 04d9ah ; eb 1c 6402 6653 movzx bx, byte [bp-006h] ; 0f b6 5e fa 6403 6654 movzx dx, byte [bp-00ch] ; 0f b6 56 f4 6404 6655 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 6405 call 04 809h ; e8 51 fd6656 call 04adeh ; e8 51 fd 6406 6657 sti ; fb 6407 6658 mov word [bp-010h], cx ; 89 4e f0 … … 6410 6661 mov word [bp-012h], ax ; 89 46 ee 6411 6662 call far [bp-012h] ; ff 5e ee 6412 jmp near 04 a20h ; e9 55 ff6663 jmp near 04cf5h ; e9 55 ff 6413 6664 cmp byte [bp-00ah], 000h ; 80 7e f6 00 6414 jne short 04 af7h ; 75 266665 jne short 04dcch ; 75 26 6415 6666 cmp byte [bp-00ch], 000h ; 80 7e f4 00 6416 jne short 04 af7h ; 75 206667 jne short 04dcch ; 75 20 6417 6668 mov di, 007c0h ; bf c0 07 6418 6669 mov es, di ; 8e c7 … … 6427 6678 sbb ax, strict byte 00000h ; 83 d8 00 6428 6679 test ax, ax ; 85 c0 6429 jne near 04 a20h ; 0f 85 29 ff6680 jne near 04cf5h ; 0f 85 29 ff 6430 6681 cmp byte [bp-006h], 000h ; 80 7e fa 00 6431 6682 db 00fh, 094h, 0c1h 6432 6683 ; sete cl ; 0f 94 c1 6433 6684 cmp byte [bp-00ah], 000h ; 80 7e f6 00 6434 je short 04 b06h ; 74 026685 je short 04ddbh ; 74 02 6435 6686 mov CL, strict byte 001h ; b1 01 6436 6687 xor dx, dx ; 31 d2 6437 6688 mov ax, di ; 89 f8 6438 call 0166ch ; e8 5f cb6689 call 0166ch ; e8 8a c8 6439 6690 mov bx, ax ; 89 c3 6440 6691 mov dx, strict word 00002h ; ba 02 00 6441 6692 mov ax, di ; 89 f8 6442 call 0166ch ; e8 55 cb6693 call 0166ch ; e8 80 c8 6443 6694 cmp bx, ax ; 39 c3 6444 je short 04 b2ch ; 74 116695 je short 04e01h ; 74 11 6445 6696 test cl, cl ; 84 c9 6446 jne short 04 b42h ; 75 236697 jne short 04e17h ; 75 23 6447 6698 mov dx, 001feh ; ba fe 01 6448 6699 mov ax, di ; 89 f8 6449 call 0166ch ; e8 45 cb6700 call 0166ch ; e8 70 c8 6450 6701 cmp ax, 0aa55h ; 3d 55 aa 6451 je short 04 b42h ; 74 166702 je short 04e17h ; 74 16 6452 6703 movzx ax, byte [bp-008h] ; 0f b6 46 f8 6453 6704 push ax ; 50 … … 6456 6707 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 6457 6708 xor cx, cx ; 31 c9 6458 jmp near 04 a34h ; e9 f2 fe6709 jmp near 04d09h ; e9 f2 fe 6459 6710 movzx bx, byte [bp-006h] ; 0f b6 5e fa 6460 6711 movzx dx, byte [bp-00ch] ; 0f b6 56 f4 6461 6712 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 6462 call 04 809h ; e8 b8 fc6713 call 04adeh ; e8 b8 fc 6463 6714 movzx bx, byte [bp-006h] ; 0f b6 5e fa 6464 6715 xor dx, dx ; 31 d2 … … 6471 6722 pop bp ; 5d 6472 6723 retn ; c3 6473 keyboard_panic_: ; 0xf4 b64LB 0x136724 keyboard_panic_: ; 0xf4e39 LB 0x13 6474 6725 push bp ; 55 6475 6726 mov bp, sp ; 89 e5 6476 6727 push ax ; 50 6477 push 005 54h ; 68 54 056728 push 00574h ; 68 74 05 6478 6729 push strict byte 00007h ; 6a 07 6479 call 01972h ; e8 02 ce6730 call 01972h ; e8 2d cb 6480 6731 add sp, strict byte 00006h ; 83 c4 06 6481 6732 mov sp, bp ; 89 ec 6482 6733 pop bp ; 5d 6483 6734 retn ; c3 6484 _keyboard_init: ; 0xf4 b77LB 0x26a6735 _keyboard_init: ; 0xf4e4c LB 0x26a 6485 6736 push bp ; 55 6486 6737 mov bp, sp ; 89 e5 … … 6494 6745 ; sub ah, ah ; 2a e4 6495 6746 test AL, strict byte 002h ; a8 02 6496 je short 04 b9ah ; 74 0d6747 je short 04e6fh ; 74 0d 6497 6748 dec bx ; 4b 6498 6749 test bx, bx ; 85 db 6499 jbe short 04 b9ah ; 76 086750 jbe short 04e6fh ; 76 08 6500 6751 xor al, al ; 30 c0 6501 6752 mov dx, 00080h ; ba 80 00 6502 6753 out DX, AL ; ee 6503 jmp short 04 b83h ; eb e96754 jmp short 04e58h ; eb e9 6504 6755 test bx, bx ; 85 db 6505 jne short 04 ba3h ; 75 056756 jne short 04e78h ; 75 05 6506 6757 xor ax, ax ; 31 c0 6507 call 04 b64h ; e8 c1 ff6758 call 04e39h ; e8 c1 ff 6508 6759 mov bx, strict word 0ffffh ; bb ff ff 6509 6760 mov dx, strict word 00064h ; ba 64 00 … … 6512 6763 ; sub ah, ah ; 2a e4 6513 6764 test AL, strict byte 001h ; a8 01 6514 jne short 04 bbdh ; 75 0d6765 jne short 04e92h ; 75 0d 6515 6766 dec bx ; 4b 6516 6767 test bx, bx ; 85 db 6517 jbe short 04 bbdh ; 76 086768 jbe short 04e92h ; 76 08 6518 6769 mov AL, strict byte 001h ; b0 01 6519 6770 mov dx, 00080h ; ba 80 00 6520 6771 out DX, AL ; ee 6521 jmp short 04 ba6h ; eb e96772 jmp short 04e7bh ; eb e9 6522 6773 test bx, bx ; 85 db 6523 jne short 04 bc7h ; 75 066774 jne short 04e9ch ; 75 06 6524 6775 mov ax, strict word 00001h ; b8 01 00 6525 call 04 b64h ; e8 9d ff6776 call 04e39h ; e8 9d ff 6526 6777 mov dx, strict word 00060h ; ba 60 00 6527 6778 in AL, DX ; ec … … 6529 6780 ; sub ah, ah ; 2a e4 6530 6781 cmp ax, strict word 00055h ; 3d 55 00 6531 je short 04 bd8h ; 74 066782 je short 04eadh ; 74 06 6532 6783 mov ax, 003dfh ; b8 df 03 6533 call 04 b64h ; e8 8c ff6784 call 04e39h ; e8 8c ff 6534 6785 mov AL, strict byte 0abh ; b0 ab 6535 6786 mov dx, strict word 00064h ; ba 64 00 … … 6541 6792 ; sub ah, ah ; 2a e4 6542 6793 test AL, strict byte 002h ; a8 02 6543 je short 04 bf8h ; 74 0d6794 je short 04ecdh ; 74 0d 6544 6795 dec bx ; 4b 6545 6796 test bx, bx ; 85 db 6546 jbe short 04 bf8h ; 76 086797 jbe short 04ecdh ; 76 08 6547 6798 mov AL, strict byte 010h ; b0 10 6548 6799 mov dx, 00080h ; ba 80 00 6549 6800 out DX, AL ; ee 6550 jmp short 04 be1h ; eb e96801 jmp short 04eb6h ; eb e9 6551 6802 test bx, bx ; 85 db 6552 jne short 04 c02h ; 75 066803 jne short 04ed7h ; 75 06 6553 6804 mov ax, strict word 0000ah ; b8 0a 00 6554 call 04 b64h ; e8 62 ff6805 call 04e39h ; e8 62 ff 6555 6806 mov bx, strict word 0ffffh ; bb ff ff 6556 6807 mov dx, strict word 00064h ; ba 64 00 … … 6559 6810 ; sub ah, ah ; 2a e4 6560 6811 test AL, strict byte 001h ; a8 01 6561 jne short 04 c1ch ; 75 0d6812 jne short 04ef1h ; 75 0d 6562 6813 dec bx ; 4b 6563 6814 test bx, bx ; 85 db 6564 jbe short 04 c1ch ; 76 086815 jbe short 04ef1h ; 76 08 6565 6816 mov AL, strict byte 011h ; b0 11 6566 6817 mov dx, 00080h ; ba 80 00 6567 6818 out DX, AL ; ee 6568 jmp short 04 c05h ; eb e96819 jmp short 04edah ; eb e9 6569 6820 test bx, bx ; 85 db 6570 jne short 04 c26h ; 75 066821 jne short 04efbh ; 75 06 6571 6822 mov ax, strict word 0000bh ; b8 0b 00 6572 call 04 b64h ; e8 3e ff6823 call 04e39h ; e8 3e ff 6573 6824 mov dx, strict word 00060h ; ba 60 00 6574 6825 in AL, DX ; ec … … 6576 6827 ; sub ah, ah ; 2a e4 6577 6828 test ax, ax ; 85 c0 6578 je short 04 c36h ; 74 066829 je short 04f0bh ; 74 06 6579 6830 mov ax, 003e0h ; b8 e0 03 6580 call 04 b64h ; e8 2e ff6831 call 04e39h ; e8 2e ff 6581 6832 mov AL, strict byte 0ffh ; b0 ff 6582 6833 mov dx, strict word 00060h ; ba 60 00 … … 6588 6839 ; sub ah, ah ; 2a e4 6589 6840 test AL, strict byte 002h ; a8 02 6590 je short 04 c56h ; 74 0d6841 je short 04f2bh ; 74 0d 6591 6842 dec bx ; 4b 6592 6843 test bx, bx ; 85 db 6593 jbe short 04 c56h ; 76 086844 jbe short 04f2bh ; 76 08 6594 6845 mov AL, strict byte 020h ; b0 20 6595 6846 mov dx, 00080h ; ba 80 00 6596 6847 out DX, AL ; ee 6597 jmp short 04 c3fh ; eb e96848 jmp short 04f14h ; eb e9 6598 6849 test bx, bx ; 85 db 6599 jne short 04 c60h ; 75 066850 jne short 04f35h ; 75 06 6600 6851 mov ax, strict word 00014h ; b8 14 00 6601 call 04 b64h ; e8 04 ff6852 call 04e39h ; e8 04 ff 6602 6853 mov bx, strict word 0ffffh ; bb ff ff 6603 6854 mov dx, strict word 00064h ; ba 64 00 … … 6606 6857 ; sub ah, ah ; 2a e4 6607 6858 test AL, strict byte 001h ; a8 01 6608 jne short 04 c7ah ; 75 0d6859 jne short 04f4fh ; 75 0d 6609 6860 dec bx ; 4b 6610 6861 test bx, bx ; 85 db 6611 jbe short 04 c7ah ; 76 086862 jbe short 04f4fh ; 76 08 6612 6863 mov AL, strict byte 021h ; b0 21 6613 6864 mov dx, 00080h ; ba 80 00 6614 6865 out DX, AL ; ee 6615 jmp short 04 c63h ; eb e96866 jmp short 04f38h ; eb e9 6616 6867 test bx, bx ; 85 db 6617 jne short 04 c84h ; 75 066868 jne short 04f59h ; 75 06 6618 6869 mov ax, strict word 00015h ; b8 15 00 6619 call 04 b64h ; e8 e0 fe6870 call 04e39h ; e8 e0 fe 6620 6871 mov dx, strict word 00060h ; ba 60 00 6621 6872 in AL, DX ; ec … … 6623 6874 ; sub ah, ah ; 2a e4 6624 6875 cmp ax, 000fah ; 3d fa 00 6625 je short 04 c95h ; 74 066876 je short 04f6ah ; 74 06 6626 6877 mov ax, 003e1h ; b8 e1 03 6627 call 04 b64h ; e8 cf fe6878 call 04e39h ; e8 cf fe 6628 6879 mov dx, strict word 00064h ; ba 64 00 6629 6880 in AL, DX ; ec … … 6631 6882 ; sub ah, ah ; 2a e4 6632 6883 test AL, strict byte 001h ; a8 01 6633 jne short 04 ca7h ; 75 086884 jne short 04f7ch ; 75 08 6634 6885 mov AL, strict byte 031h ; b0 31 6635 6886 mov dx, 00080h ; ba 80 00 6636 6887 out DX, AL ; ee 6637 jmp short 04 c95h ; eb ee6888 jmp short 04f6ah ; eb ee 6638 6889 mov dx, strict word 00060h ; ba 60 00 6639 6890 in AL, DX ; ec … … 6641 6892 ; sub ah, ah ; 2a e4 6642 6893 cmp ax, 000aah ; 3d aa 00 6643 je short 04 cc0h ; 74 0e6894 je short 04f95h ; 74 0e 6644 6895 in AL, DX ; ec 6645 6896 db 02ah, 0e4h 6646 6897 ; sub ah, ah ; 2a e4 6647 6898 cmp ax, 000aah ; 3d aa 00 6648 je short 04 cc0h ; 74 066899 je short 04f95h ; 74 06 6649 6900 mov ax, 003e2h ; b8 e2 03 6650 call 04 b64h ; e8 a4 fe6901 call 04e39h ; e8 a4 fe 6651 6902 mov AL, strict byte 0f5h ; b0 f5 6652 6903 mov dx, strict word 00060h ; ba 60 00 … … 6658 6909 ; sub ah, ah ; 2a e4 6659 6910 test AL, strict byte 002h ; a8 02 6660 je short 04 ce0h ; 74 0d6911 je short 04fb5h ; 74 0d 6661 6912 dec bx ; 4b 6662 6913 test bx, bx ; 85 db 6663 jbe short 04 ce0h ; 76 086914 jbe short 04fb5h ; 76 08 6664 6915 mov AL, strict byte 040h ; b0 40 6665 6916 mov dx, 00080h ; ba 80 00 6666 6917 out DX, AL ; ee 6667 jmp short 04 cc9h ; eb e96918 jmp short 04f9eh ; eb e9 6668 6919 test bx, bx ; 85 db 6669 jne short 04 ceah ; 75 066920 jne short 04fbfh ; 75 06 6670 6921 mov ax, strict word 00028h ; b8 28 00 6671 call 04 b64h ; e8 7a fe6922 call 04e39h ; e8 7a fe 6672 6923 mov bx, strict word 0ffffh ; bb ff ff 6673 6924 mov dx, strict word 00064h ; ba 64 00 … … 6676 6927 ; sub ah, ah ; 2a e4 6677 6928 test AL, strict byte 001h ; a8 01 6678 jne short 04 d04h ; 75 0d6929 jne short 04fd9h ; 75 0d 6679 6930 dec bx ; 4b 6680 6931 test bx, bx ; 85 db 6681 jbe short 04 d04h ; 76 086932 jbe short 04fd9h ; 76 08 6682 6933 mov AL, strict byte 041h ; b0 41 6683 6934 mov dx, 00080h ; ba 80 00 6684 6935 out DX, AL ; ee 6685 jmp short 04 cedh ; eb e96936 jmp short 04fc2h ; eb e9 6686 6937 test bx, bx ; 85 db 6687 jne short 04 d0eh ; 75 066938 jne short 04fe3h ; 75 06 6688 6939 mov ax, strict word 00029h ; b8 29 00 6689 call 04 b64h ; e8 56 fe6940 call 04e39h ; e8 56 fe 6690 6941 mov dx, strict word 00060h ; ba 60 00 6691 6942 in AL, DX ; ec … … 6693 6944 ; sub ah, ah ; 2a e4 6694 6945 cmp ax, 000fah ; 3d fa 00 6695 je short 04 d1fh ; 74 066946 je short 04ff4h ; 74 06 6696 6947 mov ax, 003e3h ; b8 e3 03 6697 call 04 b64h ; e8 45 fe6948 call 04e39h ; e8 45 fe 6698 6949 mov AL, strict byte 060h ; b0 60 6699 6950 mov dx, strict word 00064h ; ba 64 00 … … 6705 6956 ; sub ah, ah ; 2a e4 6706 6957 test AL, strict byte 002h ; a8 02 6707 je short 0 4d3fh ; 74 0d6958 je short 05014h ; 74 0d 6708 6959 dec bx ; 4b 6709 6960 test bx, bx ; 85 db 6710 jbe short 0 4d3fh ; 76 086961 jbe short 05014h ; 76 08 6711 6962 mov AL, strict byte 050h ; b0 50 6712 6963 mov dx, 00080h ; ba 80 00 6713 6964 out DX, AL ; ee 6714 jmp short 04 d28h ; eb e96965 jmp short 04ffdh ; eb e9 6715 6966 test bx, bx ; 85 db 6716 jne short 0 4d49h ; 75 066967 jne short 0501eh ; 75 06 6717 6968 mov ax, strict word 00032h ; b8 32 00 6718 call 04 b64h ; e8 1b fe6969 call 04e39h ; e8 1b fe 6719 6970 mov AL, strict byte 065h ; b0 65 6720 6971 mov dx, strict word 00060h ; ba 60 00 … … 6726 6977 ; sub ah, ah ; 2a e4 6727 6978 test AL, strict byte 002h ; a8 02 6728 je short 0 4d69h ; 74 0d6979 je short 0503eh ; 74 0d 6729 6980 dec bx ; 4b 6730 6981 test bx, bx ; 85 db 6731 jbe short 0 4d69h ; 76 086982 jbe short 0503eh ; 76 08 6732 6983 mov AL, strict byte 060h ; b0 60 6733 6984 mov dx, 00080h ; ba 80 00 6734 6985 out DX, AL ; ee 6735 jmp short 0 4d52h ; eb e96986 jmp short 05027h ; eb e9 6736 6987 test bx, bx ; 85 db 6737 jne short 0 4d73h ; 75 066988 jne short 05048h ; 75 06 6738 6989 mov ax, strict word 0003ch ; b8 3c 00 6739 call 04 b64h ; e8 f1 fd6990 call 04e39h ; e8 f1 fd 6740 6991 mov AL, strict byte 0f4h ; b0 f4 6741 6992 mov dx, strict word 00060h ; ba 60 00 … … 6747 6998 ; sub ah, ah ; 2a e4 6748 6999 test AL, strict byte 002h ; a8 02 6749 je short 0 4d93h ; 74 0d7000 je short 05068h ; 74 0d 6750 7001 dec bx ; 4b 6751 7002 test bx, bx ; 85 db 6752 jbe short 0 4d93h ; 76 087003 jbe short 05068h ; 76 08 6753 7004 mov AL, strict byte 070h ; b0 70 6754 7005 mov dx, 00080h ; ba 80 00 6755 7006 out DX, AL ; ee 6756 jmp short 0 4d7ch ; eb e97007 jmp short 05051h ; eb e9 6757 7008 test bx, bx ; 85 db 6758 jne short 0 4d9dh ; 75 067009 jne short 05072h ; 75 06 6759 7010 mov ax, strict word 00046h ; b8 46 00 6760 call 04 b64h ; e8 c7 fd7011 call 04e39h ; e8 c7 fd 6761 7012 mov bx, strict word 0ffffh ; bb ff ff 6762 7013 mov dx, strict word 00064h ; ba 64 00 … … 6765 7016 ; sub ah, ah ; 2a e4 6766 7017 test AL, strict byte 001h ; a8 01 6767 jne short 0 4db7h ; 75 0d7018 jne short 0508ch ; 75 0d 6768 7019 dec bx ; 4b 6769 7020 test bx, bx ; 85 db 6770 jbe short 0 4db7h ; 76 087021 jbe short 0508ch ; 76 08 6771 7022 mov AL, strict byte 071h ; b0 71 6772 7023 mov dx, 00080h ; ba 80 00 6773 7024 out DX, AL ; ee 6774 jmp short 0 4da0h ; eb e97025 jmp short 05075h ; eb e9 6775 7026 test bx, bx ; 85 db 6776 jne short 0 4dc1h ; 75 067027 jne short 05096h ; 75 06 6777 7028 mov ax, strict word 00046h ; b8 46 00 6778 call 04 b64h ; e8 a3 fd7029 call 04e39h ; e8 a3 fd 6779 7030 mov dx, strict word 00060h ; ba 60 00 6780 7031 in AL, DX ; ec … … 6782 7033 ; sub ah, ah ; 2a e4 6783 7034 cmp ax, 000fah ; 3d fa 00 6784 je short 0 4dd2h ; 74 067035 je short 050a7h ; 74 06 6785 7036 mov ax, 003e4h ; b8 e4 03 6786 call 04 b64h ; e8 92 fd7037 call 04e39h ; e8 92 fd 6787 7038 mov AL, strict byte 0a8h ; b0 a8 6788 7039 mov dx, strict word 00064h ; ba 64 00 6789 7040 out DX, AL ; ee 6790 7041 xor ax, ax ; 31 c0 6791 call 06 0b6h ; e8 d9 127042 call 06403h ; e8 51 13 6792 7043 mov sp, bp ; 89 ec 6793 7044 pop bp ; 5d 6794 7045 retn ; c3 6795 enqueue_key_: ; 0xf 4de1LB 0x937046 enqueue_key_: ; 0xf50b6 LB 0x93 6796 7047 push bp ; 55 6797 7048 mov bp, sp ; 89 e5 … … 6805 7056 mov dx, strict word 0001ah ; ba 1a 00 6806 7057 mov ax, strict word 00040h ; b8 40 00 6807 call 0166ch ; e8 75 c87058 call 0166ch ; e8 a0 c5 6808 7059 mov di, ax ; 89 c7 6809 7060 mov dx, strict word 0001ch ; ba 1c 00 6810 7061 mov ax, strict word 00040h ; b8 40 00 6811 call 0166ch ; e8 6a c87062 call 0166ch ; e8 95 c5 6812 7063 mov si, ax ; 89 c6 6813 7064 lea cx, [si+002h] ; 8d 4c 02 6814 7065 cmp cx, strict byte 0003eh ; 83 f9 3e 6815 jc short 0 4e0fh ; 72 037066 jc short 050e4h ; 72 03 6816 7067 mov cx, strict word 0001eh ; b9 1e 00 6817 7068 cmp cx, di ; 39 f9 6818 jne short 0 4e17h ; 75 047069 jne short 050ech ; 75 04 6819 7070 xor ax, ax ; 31 c0 6820 jmp short 0 4e3ch ; eb 257071 jmp short 05111h ; eb 25 6821 7072 xor bh, bh ; 30 ff 6822 7073 mov dx, si ; 89 f2 6823 7074 mov ax, strict word 00040h ; b8 40 00 6824 call 0165eh ; e8 3d c87075 call 0165eh ; e8 68 c5 6825 7076 movzx bx, byte [bp-00ah] ; 0f b6 5e f6 6826 7077 lea dx, [si+001h] ; 8d 54 01 6827 7078 mov ax, strict word 00040h ; b8 40 00 6828 call 0165eh ; e8 30 c87079 call 0165eh ; e8 5b c5 6829 7080 mov bx, cx ; 89 cb 6830 7081 mov dx, strict word 0001ch ; ba 1c 00 6831 7082 mov ax, strict word 00040h ; b8 40 00 6832 call 0167ah ; e8 41 c87083 call 0167ah ; e8 6c c5 6833 7084 mov ax, strict word 00001h ; b8 01 00 6834 7085 lea sp, [bp-008h] ; 8d 66 f8 … … 6848 7099 cmp bh, byte [bx+si] ; 3a 38 6849 7100 sub bl, byte [ss:di] ; 36 2a 1d 6850 fist word [bx+si+045h] ; df 50 45 6851 dec di ; 4f 6852 or ax, 00d4fh ; 0d 4f 0d 6853 dec di ; 4f 6854 ror word [bx-01dh], CL ; d3 4f e3 6855 dec si ; 4e 7101 mov AH, strict byte 053h ; b4 53 7102 sbb dl, byte [bp+si-01eh] ; 1a 52 e2 6856 7103 push cx ; 51 6857 push ax ; 50 6858 mov word [0c550h], ax ; a3 50 c5 6859 push ax ; 50 6860 mov [bx+00dh], cs ; 8c 4f 0d 6861 dec di ; 4f 6862 or ax, 0124fh ; 0d 4f 12 6863 push ax ; 50 6864 dec word [bp-07ch] ; ff 4e 84 6865 push ax ; 50 6866 db 0beh 6867 push ax ; 50 6868 _int09_function: ; 0xf4e74 LB 0x3c7 7104 loop 05182h ; e2 51 7105 test AL, strict byte 052h ; a8 52 7106 mov ax, 02651h ; b8 51 26 7107 push bx ; 53 7108 js short 0518ch ; 78 53 7109 call far 0e252h:06153h ; 9a 53 61 52 e2 7110 push cx ; 51 7111 loop 05192h ; e2 51 7112 out 052h, ax ; e7 52 7113 aam 051h ; d4 51 7114 pop cx ; 59 7115 push bx ; 53 7116 xchg bx, ax ; 93 7117 push bx ; 53 7118 _int09_function: ; 0xf5149 LB 0x3c7 6869 7119 push bp ; 55 6870 7120 mov bp, sp ; 89 e5 … … 6874 7124 mov byte [bp-008h], al ; 88 46 f8 6875 7125 test al, al ; 84 c0 6876 jne short 0 4e9eh ; 75 196877 mov bx, 00da 2h ; bb a20d7126 jne short 05173h ; 75 19 7127 mov bx, 00da0h ; bb a0 0d 6878 7128 mov cx, ds ; 8c d9 6879 7129 mov ax, strict word 00004h ; b8 04 00 6880 call 01931h ; e8 a1 ca6881 push 005 67h ; 68 67 057130 call 01931h ; e8 cc c7 7131 push 00587h ; 68 87 05 6882 7132 push strict byte 00004h ; 6a 04 6883 call 01972h ; e8 da ca7133 call 01972h ; e8 05 c8 6884 7134 add sp, strict byte 00004h ; 83 c4 04 6885 jmp near 05 235h ; e9 97 037135 jmp near 0550ah ; e9 97 03 6886 7136 mov dx, strict word 00017h ; ba 17 00 6887 7137 mov ax, strict word 00040h ; b8 40 00 6888 call 01650h ; e8 a9 c77138 call 01650h ; e8 d4 c4 6889 7139 mov byte [bp-010h], al ; 88 46 f0 6890 7140 mov byte [bp-00ah], al ; 88 46 f6 6891 7141 mov dx, strict word 00018h ; ba 18 00 6892 7142 mov ax, strict word 00040h ; b8 40 00 6893 call 01650h ; e8 9a c77143 call 01650h ; e8 c5 c4 6894 7144 mov byte [bp-00eh], al ; 88 46 f2 6895 7145 mov byte [bp-004h], al ; 88 46 fc 6896 7146 mov dx, 00096h ; ba 96 00 6897 7147 mov ax, strict word 00040h ; b8 40 00 6898 call 01650h ; e8 8b c77148 call 01650h ; e8 b6 c4 6899 7149 mov byte [bp-006h], al ; 88 46 fa 6900 7150 mov byte [bp-00ch], al ; 88 46 f4 … … 6903 7153 pop ES ; 07 6904 7154 mov cx, strict word 00010h ; b9 10 00 6905 mov di, 0 4e45h ; bf 45 4e7155 mov di, 0511ah ; bf 1a 51 6906 7156 repne scasb ; f2 ae 6907 7157 sal cx, 1 ; d1 e1 6908 7158 mov di, cx ; 89 cf 6909 mov ax, word [cs:di+0 4e54h] ; 2e 8b 85 54 4e7159 mov ax, word [cs:di+05129h] ; 2e 8b 85 29 51 6910 7160 jmp ax ; ff e0 6911 7161 xor byte [bp-00ah], 040h ; 80 76 f6 40 … … 6913 7163 mov dx, strict word 00017h ; ba 17 00 6914 7164 mov ax, strict word 00040h ; b8 40 00 6915 call 0165eh ; e8 6a c77165 call 0165eh ; e8 95 c4 6916 7166 or byte [bp-004h], 040h ; 80 4e fc 40 6917 7167 movzx bx, byte [bp-004h] ; 0f b6 5e fc 6918 jmp near 05 097h ; e9 98 017168 jmp near 0536ch ; e9 98 01 6919 7169 mov al, byte [bp-00eh] ; 8a 46 f2 6920 7170 and AL, strict byte 0bfh ; 24 bf 6921 7171 mov byte [bp-004h], al ; 88 46 fc 6922 7172 movzx bx, al ; 0f b6 d8 6923 jmp near 05 097h ; e9 8a 017173 jmp near 0536ch ; e9 8a 01 6924 7174 test byte [bp-00ch], 002h ; f6 46 f4 02 6925 jne near 05 217h ; 0f 85 02 037175 jne near 054ech ; 0f 85 02 03 6926 7176 mov al, byte [bp-008h] ; 8a 46 f8 6927 7177 and AL, strict byte 07fh ; 24 7f … … 6932 7182 inc dx ; 42 6933 7183 test byte [bp-008h], 080h ; f6 46 f8 80 6934 je short 0 4f32h ; 74 097184 je short 05207h ; 74 09 6935 7185 mov al, dl ; 88 d0 6936 7186 not al ; f6 d0 6937 7187 and byte [bp-00ah], al ; 20 46 f6 6938 jmp short 0 4f35h ; eb 037188 jmp short 0520ah ; eb 03 6939 7189 or byte [bp-00ah], dl ; 08 56 f6 6940 7190 movzx bx, byte [bp-00ah] ; 0f b6 5e f6 6941 7191 mov dx, strict word 00017h ; ba 17 00 6942 7192 mov ax, strict word 00040h ; b8 40 00 6943 call 0165eh ; e8 1c c76944 jmp near 05 217h ; e9 d2 027193 call 0165eh ; e8 47 c4 7194 jmp near 054ech ; e9 d2 02 6945 7195 test byte [bp-006h], 001h ; f6 46 fa 01 6946 jne near 05 217h ; 0f 85 ca 027196 jne near 054ech ; 0f 85 ca 02 6947 7197 mov al, byte [bp-010h] ; 8a 46 f0 6948 7198 or AL, strict byte 004h ; 0c 04 … … 6951 7201 mov dx, strict word 00017h ; ba 17 00 6952 7202 mov ax, strict word 00040h ; b8 40 00 6953 call 0165eh ; e8 fd c67203 call 0165eh ; e8 28 c4 6954 7204 mov al, byte [bp-006h] ; 8a 46 fa 6955 7205 test AL, strict byte 002h ; a8 02 6956 je short 0 4f75h ; 74 0d7206 je short 0524ah ; 74 0d 6957 7207 or AL, strict byte 004h ; 0c 04 6958 7208 mov byte [bp-00ch], al ; 88 46 f4 6959 7209 movzx bx, al ; 0f b6 d8 6960 7210 mov dx, 00096h ; ba 96 00 6961 jmp short 0 4f83h ; eb 0e7211 jmp short 05258h ; eb 0e 6962 7212 mov al, byte [bp-00eh] ; 8a 46 f2 6963 7213 or AL, strict byte 001h ; 0c 01 … … 6966 7216 mov dx, strict word 00018h ; ba 18 00 6967 7217 mov ax, strict word 00040h ; b8 40 00 6968 call 0165eh ; e8 d5 c66969 jmp near 05 217h ; e9 8b 027218 call 0165eh ; e8 00 c4 7219 jmp near 054ech ; e9 8b 02 6970 7220 test byte [bp-006h], 001h ; f6 46 fa 01 6971 jne near 05 217h ; 0f 85 83 027221 jne near 054ech ; 0f 85 83 02 6972 7222 mov al, byte [bp-010h] ; 8a 46 f0 6973 7223 and AL, strict byte 0fbh ; 24 fb … … 6976 7226 mov dx, strict word 00017h ; ba 17 00 6977 7227 mov ax, strict word 00040h ; b8 40 00 6978 call 0165eh ; e8 b6 c67228 call 0165eh ; e8 e1 c3 6979 7229 mov al, byte [bp-006h] ; 8a 46 fa 6980 7230 test AL, strict byte 002h ; a8 02 6981 je short 0 4fbch ; 74 0d7231 je short 05291h ; 74 0d 6982 7232 and AL, strict byte 0fbh ; 24 fb 6983 7233 mov byte [bp-00ch], al ; 88 46 f4 6984 7234 movzx bx, al ; 0f b6 d8 6985 7235 mov dx, 00096h ; ba 96 00 6986 jmp short 0 4fcah ; eb 0e7236 jmp short 0529fh ; eb 0e 6987 7237 mov al, byte [bp-00eh] ; 8a 46 f2 6988 7238 and AL, strict byte 0feh ; 24 fe … … 6991 7241 mov dx, strict word 00018h ; ba 18 00 6992 7242 mov ax, strict word 00040h ; b8 40 00 6993 call 0165eh ; e8 8e c66994 jmp near 05 217h ; e9 44 027243 call 0165eh ; e8 b9 c3 7244 jmp near 054ech ; e9 44 02 6995 7245 mov al, byte [bp-010h] ; 8a 46 f0 6996 7246 or AL, strict byte 008h ; 0c 08 … … 6999 7249 mov dx, strict word 00017h ; ba 17 00 7000 7250 mov ax, strict word 00040h ; b8 40 00 7001 call 0165eh ; e8 77 c67251 call 0165eh ; e8 a2 c3 7002 7252 mov al, byte [bp-006h] ; 8a 46 fa 7003 7253 test AL, strict byte 002h ; a8 02 7004 je short 0 4ffbh ; 74 0d7254 je short 052d0h ; 74 0d 7005 7255 or AL, strict byte 008h ; 0c 08 7006 7256 mov byte [bp-00ch], al ; 88 46 f4 7007 7257 movzx bx, al ; 0f b6 d8 7008 7258 mov dx, 00096h ; ba 96 00 7009 jmp short 05 009h ; eb 0e7259 jmp short 052deh ; eb 0e 7010 7260 mov al, byte [bp-00eh] ; 8a 46 f2 7011 7261 or AL, strict byte 002h ; 0c 02 … … 7014 7264 mov dx, strict word 00018h ; ba 18 00 7015 7265 mov ax, strict word 00040h ; b8 40 00 7016 call 0165eh ; e8 4f c67017 jmp near 05 217h ; e9 05 027266 call 0165eh ; e8 7a c3 7267 jmp near 054ech ; e9 05 02 7018 7268 mov al, byte [bp-010h] ; 8a 46 f0 7019 7269 and AL, strict byte 0f7h ; 24 f7 … … 7022 7272 mov dx, strict word 00017h ; ba 17 00 7023 7273 mov ax, strict word 00040h ; b8 40 00 7024 call 0165eh ; e8 38 c67274 call 0165eh ; e8 63 c3 7025 7275 mov al, byte [bp-006h] ; 8a 46 fa 7026 7276 test AL, strict byte 002h ; a8 02 7027 je short 05 03ah ; 74 0d7277 je short 0530fh ; 74 0d 7028 7278 and AL, strict byte 0f7h ; 24 f7 7029 7279 mov byte [bp-00ch], al ; 88 46 f4 7030 7280 movzx bx, al ; 0f b6 d8 7031 7281 mov dx, 00096h ; ba 96 00 7032 jmp short 05 048h ; eb 0e7282 jmp short 0531dh ; eb 0e 7033 7283 mov al, byte [bp-00eh] ; 8a 46 f2 7034 7284 and AL, strict byte 0fdh ; 24 fd … … 7037 7287 mov dx, strict word 00018h ; ba 18 00 7038 7288 mov ax, strict word 00040h ; b8 40 00 7039 call 0165eh ; e8 10 c67040 jmp near 05 217h ; e9 c6 017289 call 0165eh ; e8 3b c3 7290 jmp near 054ech ; e9 c6 01 7041 7291 test byte [bp-006h], 003h ; f6 46 fa 03 7042 jne near 05 217h ; 0f 85 be 017292 jne near 054ech ; 0f 85 be 01 7043 7293 mov al, byte [bp-00eh] ; 8a 46 f2 7044 7294 or AL, strict byte 020h ; 0c 20 … … 7047 7297 mov dx, strict word 00018h ; ba 18 00 7048 7298 mov ax, strict word 00040h ; b8 40 00 7049 call 0165eh ; e8 f1 c57299 call 0165eh ; e8 1c c3 7050 7300 mov al, byte [bp-010h] ; 8a 46 f0 7051 7301 xor AL, strict byte 020h ; 34 20 … … 7054 7304 mov dx, strict word 00017h ; ba 17 00 7055 7305 mov ax, strict word 00040h ; b8 40 00 7056 call 0165eh ; e8 dd c57057 jmp near 05 217h ; e9 93 017306 call 0165eh ; e8 08 c3 7307 jmp near 054ech ; e9 93 01 7058 7308 test byte [bp-006h], 003h ; f6 46 fa 03 7059 jne near 05 217h ; 0f 85 8b 017309 jne near 054ech ; 0f 85 8b 01 7060 7310 mov al, byte [bp-00eh] ; 8a 46 f2 7061 7311 and AL, strict byte 0dfh ; 24 df … … 7064 7314 mov dx, strict word 00018h ; ba 18 00 7065 7315 mov ax, strict word 00040h ; b8 40 00 7066 call 0165eh ; e8 be c57067 jmp near 05 217h ; e9 74 017316 call 0165eh ; e8 e9 c2 7317 jmp near 054ech ; e9 74 01 7068 7318 mov al, byte [bp-00eh] ; 8a 46 f2 7069 7319 or AL, strict byte 010h ; 0c 10 … … 7072 7322 mov dx, strict word 00018h ; ba 18 00 7073 7323 mov ax, strict word 00040h ; b8 40 00 7074 call 0165eh ; e8 a7 c57324 call 0165eh ; e8 d2 c2 7075 7325 mov al, byte [bp-010h] ; 8a 46 f0 7076 7326 xor AL, strict byte 010h ; 34 10 7077 jmp short 05 072h ; eb b47327 jmp short 05347h ; eb b4 7078 7328 mov al, byte [bp-00eh] ; 8a 46 f2 7079 7329 and AL, strict byte 0efh ; 24 ef 7080 jmp short 05 091h ; eb cc7330 jmp short 05366h ; eb cc 7081 7331 mov al, byte [bp-010h] ; 8a 46 f0 7082 7332 and AL, strict byte 00ch ; 24 0c 7083 7333 cmp AL, strict byte 00ch ; 3c 0c 7084 jne short 05 0dfh ; 75 117334 jne short 053b4h ; 75 11 7085 7335 mov bx, 01234h ; bb 34 12 7086 7336 mov dx, strict word 00072h ; ba 72 00 7087 7337 mov ax, strict word 00040h ; b8 40 00 7088 call 0167ah ; e8 a0 c57338 call 0167ah ; e8 cb c2 7089 7339 jmp far 0f000h:0e05bh ; ea 5b e0 00 f0 7090 7340 mov al, byte [bp-008h] ; 8a 46 f8 7091 7341 test AL, strict byte 080h ; a8 80 7092 je short 05 11dh ; 74 377342 je short 053f2h ; 74 37 7093 7343 cmp AL, strict byte 0fah ; 3c fa 7094 jne short 05 0fah ; 75 107344 jne short 053cfh ; 75 10 7095 7345 mov dx, 00097h ; ba 97 00 7096 7346 mov ax, strict word 00040h ; b8 40 00 7097 call 01650h ; e8 5d c57347 call 01650h ; e8 88 c2 7098 7348 mov dl, al ; 88 c2 7099 7349 or dl, 010h ; 80 ca 10 7100 jmp short 05 10eh ; eb 147350 jmp short 053e3h ; eb 14 7101 7351 cmp AL, strict byte 0feh ; 3c fe 7102 jne near 05 217h ; 0f 85 17 017352 jne near 054ech ; 0f 85 17 01 7103 7353 mov dx, 00097h ; ba 97 00 7104 7354 mov ax, strict word 00040h ; b8 40 00 7105 call 01650h ; e8 47 c57355 call 01650h ; e8 72 c2 7106 7356 mov dl, al ; 88 c2 7107 7357 or dl, 020h ; 80 ca 20 … … 7109 7359 mov dx, 00097h ; ba 97 00 7110 7360 mov ax, strict word 00040h ; b8 40 00 7111 call 0165eh ; e8 44 c57112 jmp near 05 217h ; e9 fa 007361 call 0165eh ; e8 6f c2 7362 jmp near 054ech ; e9 fa 00 7113 7363 cmp byte [bp-008h], 058h ; 80 7e f8 58 7114 jbe short 05 141h ; 76 1e7115 mov bx, 00da 2h ; bb a20d7364 jbe short 05416h ; 76 1e 7365 mov bx, 00da0h ; bb a0 0d 7116 7366 mov cx, ds ; 8c d9 7117 7367 mov ax, strict word 00004h ; b8 04 00 7118 call 01931h ; e8 03 c87368 call 01931h ; e8 2e c5 7119 7369 movzx ax, byte [bp-008h] ; 0f b6 46 f8 7120 7370 push ax ; 50 7121 push 005 81h ; 68 81 057371 push 005a1h ; 68 a1 05 7122 7372 push strict byte 00004h ; 6a 04 7123 call 01972h ; e8 37 c87373 call 01972h ; e8 62 c5 7124 7374 add sp, strict byte 00006h ; 83 c4 06 7125 jmp near 05 235h ; e9 f4 007375 jmp near 0550ah ; e9 f4 00 7126 7376 mov al, byte [bp-00ah] ; 8a 46 f6 7127 7377 test AL, strict byte 008h ; a8 08 7128 je short 0515ah ; 74 12 7129 movzx bx, byte [bp-008h] ; 0f b6 5e f8 7130 imul bx, bx, strict byte 0000ah ; 6b db 0a 7131 mov dl, byte [bx+00df6h] ; 8a 97 f6 0d 7132 mov ax, word [bx+00df6h] ; 8b 87 f6 0d 7133 jmp near 051e8h ; e9 8e 00 7134 test AL, strict byte 004h ; a8 04 7135 je short 05170h ; 74 12 7378 je short 0542fh ; 74 12 7136 7379 movzx bx, byte [bp-008h] ; 0f b6 5e f8 7137 7380 imul bx, bx, strict byte 0000ah ; 6b db 0a 7138 7381 mov dl, byte [bx+00df4h] ; 8a 97 f4 0d 7139 7382 mov ax, word [bx+00df4h] ; 8b 87 f4 0d 7140 jmp near 051e8h ; e9 78 00 7383 jmp near 054bdh ; e9 8e 00 7384 test AL, strict byte 004h ; a8 04 7385 je short 05445h ; 74 12 7386 movzx bx, byte [bp-008h] ; 0f b6 5e f8 7387 imul bx, bx, strict byte 0000ah ; 6b db 0a 7388 mov dl, byte [bx+00df2h] ; 8a 97 f2 0d 7389 mov ax, word [bx+00df2h] ; 8b 87 f2 0d 7390 jmp near 054bdh ; e9 78 00 7141 7391 mov al, byte [bp-00ch] ; 8a 46 f4 7142 7392 and AL, strict byte 002h ; 24 02 7143 7393 test al, al ; 84 c0 7144 jbe short 05 18eh ; 76 157394 jbe short 05463h ; 76 15 7145 7395 mov al, byte [bp-008h] ; 8a 46 f8 7146 7396 cmp AL, strict byte 047h ; 3c 47 7147 jc short 05 18eh ; 72 0e7397 jc short 05463h ; 72 0e 7148 7398 cmp AL, strict byte 053h ; 3c 53 7149 jnbe short 05 18eh ; 77 0a7399 jnbe short 05463h ; 77 0a 7150 7400 mov DL, strict byte 0e0h ; b2 e0 7151 7401 movzx bx, al ; 0f b6 d8 7152 7402 imul bx, bx, strict byte 0000ah ; 6b db 0a 7153 jmp short 05 1e4h ; eb 567403 jmp short 054b9h ; eb 56 7154 7404 test byte [bp-00ah], 003h ; f6 46 f6 03 7155 je short 05 1c2h ; 74 2e7405 je short 05497h ; 74 2e 7156 7406 movzx bx, byte [bp-008h] ; 0f b6 5e f8 7157 7407 imul bx, bx, strict byte 0000ah ; 6b db 0a 7158 movzx ax, byte [bx+00df 8h] ; 0f b6 87 f80d7408 movzx ax, byte [bx+00df6h] ; 0f b6 87 f6 0d 7159 7409 movzx dx, byte [bp-00ah] ; 0f b6 56 f6 7160 7410 test dx, ax ; 85 c2 7161 je short 051b2h ; 74 0a 7162 mov dl, byte [bx+00df0h] ; 8a 97 f0 0d 7163 mov ax, word [bx+00df0h] ; 8b 87 f0 0d 7164 jmp short 051bah ; eb 08 7165 mov dl, byte [bx+00df2h] ; 8a 97 f2 0d 7166 mov ax, word [bx+00df2h] ; 8b 87 f2 0d 7167 shr ax, 008h ; c1 e8 08 7168 mov byte [bp-008h], al ; 88 46 f8 7169 jmp short 051eeh ; eb 2c 7170 movzx bx, byte [bp-008h] ; 0f b6 5e f8 7171 imul bx, bx, strict byte 0000ah ; 6b db 0a 7172 movzx ax, byte [bx+00df8h] ; 0f b6 87 f8 0d 7173 movzx dx, byte [bp-00ah] ; 0f b6 56 f6 7174 test dx, ax ; 85 c2 7175 je short 051e0h ; 74 0a 7176 mov dl, byte [bx+00df2h] ; 8a 97 f2 0d 7177 mov ax, word [bx+00df2h] ; 8b 87 f2 0d 7178 jmp short 051e8h ; eb 08 7411 je short 05487h ; 74 0a 7412 mov dl, byte [bx+00deeh] ; 8a 97 ee 0d 7413 mov ax, word [bx+00deeh] ; 8b 87 ee 0d 7414 jmp short 0548fh ; eb 08 7179 7415 mov dl, byte [bx+00df0h] ; 8a 97 f0 0d 7180 7416 mov ax, word [bx+00df0h] ; 8b 87 f0 0d 7181 7417 shr ax, 008h ; c1 e8 08 7182 7418 mov byte [bp-008h], al ; 88 46 f8 7419 jmp short 054c3h ; eb 2c 7420 movzx bx, byte [bp-008h] ; 0f b6 5e f8 7421 imul bx, bx, strict byte 0000ah ; 6b db 0a 7422 movzx ax, byte [bx+00df6h] ; 0f b6 87 f6 0d 7423 movzx dx, byte [bp-00ah] ; 0f b6 56 f6 7424 test dx, ax ; 85 c2 7425 je short 054b5h ; 74 0a 7426 mov dl, byte [bx+00df0h] ; 8a 97 f0 0d 7427 mov ax, word [bx+00df0h] ; 8b 87 f0 0d 7428 jmp short 054bdh ; eb 08 7429 mov dl, byte [bx+00deeh] ; 8a 97 ee 0d 7430 mov ax, word [bx+00deeh] ; 8b 87 ee 0d 7431 shr ax, 008h ; c1 e8 08 7432 mov byte [bp-008h], al ; 88 46 f8 7183 7433 cmp byte [bp-008h], 000h ; 80 7e f8 00 7184 jne short 05 20eh ; 75 1a7434 jne short 054e3h ; 75 1a 7185 7435 test dl, dl ; 84 d2 7186 jne short 05 20eh ; 75 167187 mov bx, 00da 2h ; bb a20d7436 jne short 054e3h ; 75 16 7437 mov bx, 00da0h ; bb a0 0d 7188 7438 mov cx, ds ; 8c d9 7189 7439 mov ax, strict word 00004h ; b8 04 00 7190 call 01931h ; e8 2e c77191 push 005 b8h ; 68 b8 057440 call 01931h ; e8 59 c4 7441 push 005d8h ; 68 d8 05 7192 7442 push strict byte 00004h ; 6a 04 7193 call 01972h ; e8 67 c77443 call 01972h ; e8 92 c4 7194 7444 add sp, strict byte 00004h ; 83 c4 04 7195 7445 xor dh, dh ; 30 f6 7196 7446 movzx ax, byte [bp-008h] ; 0f b6 46 f8 7197 call 0 4de1h ; e8 ca fb7447 call 050b6h ; e8 ca fb 7198 7448 mov al, byte [bp-008h] ; 8a 46 f8 7199 7449 and AL, strict byte 07fh ; 24 7f 7200 7450 cmp AL, strict byte 01dh ; 3c 1d 7201 je short 05 224h ; 74 047451 je short 054f9h ; 74 04 7202 7452 and byte [bp-00ch], 0feh ; 80 66 f4 fe 7203 7453 and byte [bp-00ch], 0fdh ; 80 66 f4 fd … … 7205 7455 mov dx, 00096h ; ba 96 00 7206 7456 mov ax, strict word 00040h ; b8 40 00 7207 call 0165eh ; e8 29 c47457 call 0165eh ; e8 54 c1 7208 7458 lea sp, [bp-002h] ; 8d 66 fe 7209 7459 pop di ; 5f 7210 7460 pop bp ; 5d 7211 7461 retn ; c3 7212 dequeue_key_: ; 0xf5 23bLB 0x947462 dequeue_key_: ; 0xf5510 LB 0x94 7213 7463 push bp ; 55 7214 7464 mov bp, sp ; 89 e5 … … 7223 7473 mov dx, strict word 0001ah ; ba 1a 00 7224 7474 mov ax, strict word 00040h ; b8 40 00 7225 call 0166ch ; e8 17 c47475 call 0166ch ; e8 42 c1 7226 7476 mov bx, ax ; 89 c3 7227 7477 mov dx, strict word 0001ch ; ba 1c 00 7228 7478 mov ax, strict word 00040h ; b8 40 00 7229 call 0166ch ; e8 0c c47479 call 0166ch ; e8 37 c1 7230 7480 cmp bx, ax ; 39 c3 7231 je short 05 2a1h ; 74 3d7481 je short 05576h ; 74 3d 7232 7482 mov dx, bx ; 89 da 7233 7483 mov ax, strict word 00040h ; b8 40 00 7234 call 01650h ; e8 e4 c37484 call 01650h ; e8 0f c1 7235 7485 mov cl, al ; 88 c1 7236 7486 lea dx, [bx+001h] ; 8d 57 01 7237 7487 mov ax, strict word 00040h ; b8 40 00 7238 call 01650h ; e8 d9 c37488 call 01650h ; e8 04 c1 7239 7489 mov es, [bp-008h] ; 8e 46 f8 7240 7490 mov byte [es:si], cl ; 26 88 0c … … 7242 7492 mov byte [es:di], al ; 26 88 05 7243 7493 cmp word [bp+004h], strict byte 00000h ; 83 7e 04 00 7244 je short 05 29ch ; 74 137494 je short 05571h ; 74 13 7245 7495 inc bx ; 43 7246 7496 inc bx ; 43 7247 7497 cmp bx, strict byte 0003eh ; 83 fb 3e 7248 jc short 05 293h ; 72 037498 jc short 05568h ; 72 03 7249 7499 mov bx, strict word 0001eh ; bb 1e 00 7250 7500 mov dx, strict word 0001ah ; ba 1a 00 7251 7501 mov ax, strict word 00040h ; b8 40 00 7252 call 0167ah ; e8 de c37502 call 0167ah ; e8 09 c1 7253 7503 mov ax, strict word 00001h ; b8 01 00 7254 jmp short 05 2a3h ; eb 027504 jmp short 05578h ; eb 02 7255 7505 xor ax, ax ; 31 c0 7256 7506 lea sp, [bp-004h] ; 8d 66 fc … … 7263 7513 or cl, byte [bx+di] ; 0a 09 7264 7514 add ax, 00102h ; 05 02 01 7265 add byte [di+055h], ch ; 00 6d 55 7266 adc word [bp+di-036h], strict byte 00053h ; 83 53 ca 53 7267 push SS ; 16 7268 push sp ; 54 7269 db 026h, 054h 7270 ; es push sp ; 26 54 7271 push ax ; 50 7272 push sp ; 54 7273 pop cx ; 59 7274 push sp ; 54 7275 retf 0fb54h ; ca 54 fb 7276 push sp ; 54 7277 sub byte [di+062h], dl ; 28 55 62 7278 push bp ; 55 7279 mov AL, strict byte 055h ; b0 55 7280 _int16_function: ; 0xf52cf LB 0x2e7 7515 add byte [bp+si+058h], al ; 00 42 58 7516 pop ax ; 58 7517 push si ; 56 7518 lahf ; 9f 7519 push si ; 56 7520 jmp short 055eah ; eb 56 7521 sti ; fb 7522 push si ; 56 7523 and ax, 02e57h ; 25 57 2e 7524 push di ; 57 7525 lahf ; 9f 7526 push di ; 57 7527 rcl byte [bx-003h], 1 ; d0 57 fd 7528 push di ; 57 7529 aaa ; 37 7530 pop ax ; 58 7531 db 085h 7532 pop ax ; 58 7533 _int16_function: ; 0xf55a4 LB 0x2e7 7281 7534 push bp ; 55 7282 7535 mov bp, sp ; 89 e5 … … 7285 7538 mov dx, strict word 00017h ; ba 17 00 7286 7539 mov ax, strict word 00040h ; b8 40 00 7287 call 01650h ; e8 71 c37540 call 01650h ; e8 9c c0 7288 7541 mov cl, al ; 88 c1 7289 7542 mov bh, al ; 88 c7 7290 7543 mov dx, 00097h ; ba 97 00 7291 7544 mov ax, strict word 00040h ; b8 40 00 7292 call 01650h ; e8 64 c37545 call 01650h ; e8 8f c0 7293 7546 mov bl, al ; 88 c3 7294 7547 movzx dx, cl ; 0f b6 d1 … … 7299 7552 xor al, dl ; 30 d0 7300 7553 test ax, ax ; 85 c0 7301 je short 05 361h ; 74 607554 je short 05636h ; 74 60 7302 7555 cli ; fa 7303 7556 mov AL, strict byte 0edh ; b0 ed … … 7309 7562 ; sub ah, ah ; 2a e4 7310 7563 test AL, strict byte 001h ; a8 01 7311 jne short 05 31ah ; 75 087564 jne short 055efh ; 75 08 7312 7565 mov AL, strict byte 021h ; b0 21 7313 7566 mov dx, 00080h ; ba 80 00 7314 7567 out DX, AL ; ee 7315 jmp short 05 308h ; eb ee7568 jmp short 055ddh ; eb ee 7316 7569 mov dx, strict word 00060h ; ba 60 00 7317 7570 in AL, DX ; ec … … 7319 7572 ; sub ah, ah ; 2a e4 7320 7573 cmp ax, 000fah ; 3d fa 00 7321 jne short 05 360h ; 75 3b7574 jne short 05635h ; 75 3b 7322 7575 and bl, 0c8h ; 80 e3 c8 7323 7576 movzx ax, bh ; 0f b6 c7 … … 7335 7588 ; sub ah, ah ; 2a e4 7336 7589 test AL, strict byte 001h ; a8 01 7337 jne short 05 34fh ; 75 087590 jne short 05624h ; 75 08 7338 7591 mov AL, strict byte 021h ; b0 21 7339 7592 mov dx, 00080h ; ba 80 00 7340 7593 out DX, AL ; ee 7341 jmp short 05 33dh ; eb ee7594 jmp short 05612h ; eb ee 7342 7595 mov dx, strict word 00060h ; ba 60 00 7343 7596 in AL, DX ; ec … … 7347 7600 mov dx, 00097h ; ba 97 00 7348 7601 mov ax, strict word 00040h ; b8 40 00 7349 call 0165eh ; e8 fe c27602 call 0165eh ; e8 29 c0 7350 7603 sti ; fb 7351 7604 mov ax, word [bp+012h] ; 8b 46 12 7352 7605 shr ax, 008h ; c1 e8 08 7353 7606 cmp ax, 000a2h ; 3d a2 00 7354 jnbe near 05 56dh ; 0f 87 ff 017607 jnbe near 05842h ; 0f 87 ff 01 7355 7608 push CS ; 0e 7356 7609 pop ES ; 07 7357 7610 mov cx, strict word 0000ch ; b9 0c 00 7358 mov di, 05 2ach ; bf ac 527611 mov di, 05581h ; bf 81 55 7359 7612 repne scasb ; f2 ae 7360 7613 sal cx, 1 ; d1 e1 7361 7614 mov di, cx ; 89 cf 7362 mov ax, word [cs:di+05 2b7h] ; 2e 8b 85 b7 527615 mov ax, word [cs:di+0558ch] ; 2e 8b 85 8c 55 7363 7616 jmp ax ; ff e0 7364 7617 push strict byte 00001h ; 6a 01 … … 7367 7620 mov dx, ss ; 8c d2 7368 7621 lea ax, [bp-006h] ; 8d 46 fa 7369 call 05 23bh ; e8 a9 fe7622 call 05510h ; e8 a9 fe 7370 7623 test ax, ax ; 85 c0 7371 jne short 05 3a1h ; 75 0b7372 push 00 5efh ; 68 ef 057624 jne short 05676h ; 75 0b 7625 push 0060fh ; 68 0f 06 7373 7626 push strict byte 00007h ; 6a 07 7374 call 01972h ; e8 d4 c57627 call 01972h ; e8 ff c2 7375 7628 add sp, strict byte 00004h ; 83 c4 04 7376 7629 cmp byte [bp-006h], 000h ; 80 7e fa 00 7377 je short 05 3adh ; 74 067630 je short 05682h ; 74 06 7378 7631 cmp byte [bp-008h], 0f0h ; 80 7e f8 f0 7379 je short 05 3b3h ; 74 067632 je short 05688h ; 74 06 7380 7633 cmp byte [bp-008h], 0e0h ; 80 7e f8 e0 7381 jne short 05 3b7h ; 75 047634 jne short 0568ch ; 75 04 7382 7635 mov byte [bp-008h], 000h ; c6 46 f8 00 7383 7636 movzx dx, byte [bp-006h] ; 0f b6 56 fa … … 7386 7639 or dx, ax ; 09 c2 7387 7640 mov word [bp+012h], dx ; 89 56 12 7388 jmp near 05 5b0h ; e9 e6 017641 jmp near 05885h ; e9 e6 01 7389 7642 or word [bp+01ch], 00200h ; 81 4e 1c 00 02 7390 7643 push strict byte 00000h ; 6a 00 … … 7393 7646 mov dx, ss ; 8c d2 7394 7647 lea ax, [bp-006h] ; 8d 46 fa 7395 call 05 23bh ; e8 5d fe7648 call 05510h ; e8 5d fe 7396 7649 test ax, ax ; 85 c0 7397 jne short 05 3e9h ; 75 077650 jne short 056beh ; 75 07 7398 7651 or word [bp+01ch], strict byte 00040h ; 83 4e 1c 40 7399 jmp near 05 5b0h ; e9 c7 017652 jmp near 05885h ; e9 c7 01 7400 7653 cmp byte [bp-006h], 000h ; 80 7e fa 00 7401 je short 05 3f5h ; 74 067654 je short 056cah ; 74 06 7402 7655 cmp byte [bp-008h], 0f0h ; 80 7e f8 f0 7403 je short 05 3fbh ; 74 067656 je short 056d0h ; 74 06 7404 7657 cmp byte [bp-008h], 0e0h ; 80 7e f8 e0 7405 jne short 05 3ffh ; 75 047658 jne short 056d4h ; 75 04 7406 7659 mov byte [bp-008h], 000h ; c6 46 f8 00 7407 7660 movzx dx, byte [bp-006h] ; 0f b6 56 fa … … 7411 7664 mov word [bp+012h], dx ; 89 56 12 7412 7665 and word [bp+01ch], strict byte 0ffbfh ; 83 66 1c bf 7413 jmp near 05 5b0h ; e9 9a 017666 jmp near 05885h ; e9 9a 01 7414 7667 mov dx, strict word 00017h ; ba 17 00 7415 7668 mov ax, strict word 00040h ; b8 40 00 7416 call 01650h ; e8 31 c27669 call 01650h ; e8 5c bf 7417 7670 mov dx, word [bp+012h] ; 8b 56 12 7418 7671 mov dl, al ; 88 c2 7419 jmp short 05 3c4h ; eb 9e7672 jmp short 05699h ; eb 9e 7420 7673 mov al, byte [bp+010h] ; 8a 46 10 7421 7674 movzx dx, al ; 0f b6 d0 … … 7423 7676 shr ax, 008h ; c1 e8 08 7424 7677 xor ah, ah ; 30 e4 7425 call 0 4de1h ; e8 aa f97678 call 050b6h ; e8 aa f9 7426 7679 test ax, ax ; 85 c0 7427 jne short 05 448h ; 75 0d7680 jne short 0571dh ; 75 0d 7428 7681 mov ax, word [bp+012h] ; 8b 46 12 7429 7682 xor al, al ; 30 c0 7430 7683 or AL, strict byte 001h ; 0c 01 7431 7684 mov word [bp+012h], ax ; 89 46 12 7432 jmp near 05 5b0h ; e9 68 017685 jmp near 05885h ; e9 68 01 7433 7686 and word [bp+012h], 0ff00h ; 81 66 12 00 ff 7434 jmp near 05 5b0h ; e9 60 017687 jmp near 05885h ; e9 60 01 7435 7688 mov ax, word [bp+012h] ; 8b 46 12 7436 7689 xor al, al ; 30 c0 7437 7690 or AL, strict byte 030h ; 0c 30 7438 jmp short 05 442h ; eb e97691 jmp short 05717h ; eb e9 7439 7692 mov byte [bp-004h], 002h ; c6 46 fc 02 7440 7693 xor cx, cx ; 31 c9 … … 7449 7702 ; sub ah, ah ; 2a e4 7450 7703 test AL, strict byte 001h ; a8 01 7451 jne short 05 480h ; 75 0d7704 jne short 05755h ; 75 0d 7452 7705 dec bx ; 4b 7453 7706 test bx, bx ; 85 db 7454 jbe short 05 480h ; 76 087707 jbe short 05755h ; 76 08 7455 7708 mov dx, 00080h ; ba 80 00 7456 7709 in AL, DX ; ec 7457 7710 db 02ah, 0e4h 7458 7711 ; sub ah, ah ; 2a e4 7459 jmp short 05 469h ; eb e97712 jmp short 0573eh ; eb e9 7460 7713 test bx, bx ; 85 db 7461 jbe short 05 4c4h ; 76 407714 jbe short 05799h ; 76 40 7462 7715 mov dx, strict word 00060h ; ba 60 00 7463 7716 in AL, DX ; ec … … 7465 7718 ; sub ah, ah ; 2a e4 7466 7719 cmp ax, 000fah ; 3d fa 00 7467 jne short 05 4c4h ; 75 357720 jne short 05799h ; 75 35 7468 7721 mov bx, strict word 0ffffh ; bb ff ff 7469 7722 mov dx, strict word 00064h ; ba 64 00 … … 7472 7725 ; sub ah, ah ; 2a e4 7473 7726 test AL, strict byte 001h ; a8 01 7474 jne short 05 4a9h ; 75 0d7727 jne short 0577eh ; 75 0d 7475 7728 dec bx ; 4b 7476 7729 test bx, bx ; 85 db 7477 jbe short 05 4a9h ; 76 087730 jbe short 0577eh ; 76 08 7478 7731 mov dx, 00080h ; ba 80 00 7479 7732 in AL, DX ; ec 7480 7733 db 02ah, 0e4h 7481 7734 ; sub ah, ah ; 2a e4 7482 jmp short 05 492h ; eb e97735 jmp short 05767h ; eb e9 7483 7736 test bx, bx ; 85 db 7484 jbe short 05 4bbh ; 76 0e7737 jbe short 05790h ; 76 0e 7485 7738 shr cx, 008h ; c1 e9 08 7486 7739 mov dx, strict word 00060h ; ba 60 00 … … 7492 7745 dec byte [bp-004h] ; fe 4e fc 7493 7746 cmp byte [bp-004h], 000h ; 80 7e fc 00 7494 jnbe short 05 48fh ; 77 cb7747 jnbe short 05764h ; 77 cb 7495 7748 mov word [bp+00ch], cx ; 89 4e 0c 7496 jmp near 05 5b0h ; e9 e6 007749 jmp near 05885h ; e9 e6 00 7497 7750 push strict byte 00001h ; 6a 01 7498 7751 mov cx, ss ; 8c d1 … … 7500 7753 mov dx, ss ; 8c d2 7501 7754 lea ax, [bp-006h] ; 8d 46 fa 7502 call 05 23bh ; e8 62 fd7755 call 05510h ; e8 62 fd 7503 7756 test ax, ax ; 85 c0 7504 jne short 05 4e8h ; 75 0b7505 push 00 5efh ; 68 ef 057757 jne short 057bdh ; 75 0b 7758 push 0060fh ; 68 0f 06 7506 7759 push strict byte 00007h ; 6a 07 7507 call 01972h ; e8 8d c47760 call 01972h ; e8 b8 c1 7508 7761 add sp, strict byte 00004h ; 83 c4 04 7509 7762 cmp byte [bp-006h], 000h ; 80 7e fa 00 7510 je near 05 3b7h ; 0f 84 c7 fe7763 je near 0568ch ; 0f 84 c7 fe 7511 7764 cmp byte [bp-008h], 0f0h ; 80 7e f8 f0 7512 je near 05 3b3h ; 0f 84 bb fe7513 jmp near 05 3b7h ; e9 bc fe7765 je near 05688h ; 0f 84 bb fe 7766 jmp near 0568ch ; e9 bc fe 7514 7767 or word [bp+01ch], 00200h ; 81 4e 1c 00 02 7515 7768 push strict byte 00000h ; 6a 00 … … 7518 7771 mov dx, ss ; 8c d2 7519 7772 lea ax, [bp-006h] ; 8d 46 fa 7520 call 05 23bh ; e8 2c fd7773 call 05510h ; e8 2c fd 7521 7774 test ax, ax ; 85 c0 7522 je near 05 3e2h ; 0f 84 cd fe7775 je near 056b7h ; 0f 84 cd fe 7523 7776 cmp byte [bp-006h], 000h ; 80 7e fa 00 7524 je near 05 3ffh ; 0f 84 e2 fe7777 je near 056d4h ; 0f 84 e2 fe 7525 7778 cmp byte [bp-008h], 0f0h ; 80 7e f8 f0 7526 je near 05 3fbh ; 0f 84 d6 fe7527 jmp near 05 3ffh ; e9 d7 fe7779 je near 056d0h ; 0f 84 d6 fe 7780 jmp near 056d4h ; e9 d7 fe 7528 7781 mov dx, strict word 00017h ; ba 17 00 7529 7782 mov ax, strict word 00040h ; b8 40 00 7530 call 01650h ; e8 1f c17783 call 01650h ; e8 4a be 7531 7784 mov dx, word [bp+012h] ; 8b 56 12 7532 7785 mov dl, al ; 88 c2 … … 7534 7787 mov dx, strict word 00018h ; ba 18 00 7535 7788 mov ax, strict word 00040h ; b8 40 00 7536 call 01650h ; e8 0e c17789 call 01650h ; e8 39 be 7537 7790 mov bh, al ; 88 c7 7538 7791 and bh, 073h ; 80 e7 73 7539 7792 mov dx, 00096h ; ba 96 00 7540 7793 mov ax, strict word 00040h ; b8 40 00 7541 call 01650h ; e8 00 c17794 call 01650h ; e8 2b be 7542 7795 and AL, strict byte 00ch ; 24 0c 7543 7796 or bh, al ; 08 c7 … … 7546 7799 movzx ax, bh ; 0f b6 c7 7547 7800 sal ax, 008h ; c1 e0 08 7548 jmp near 05 3c2h ; e9 60 fe7801 jmp near 05697h ; e9 60 fe 7549 7802 mov ax, word [bp+012h] ; 8b 46 12 7550 7803 xor ah, ah ; 30 e4 7551 7804 or ah, 080h ; 80 cc 80 7552 jmp near 05 442h ; e9 d5 fe7553 mov bx, 00da 2h ; bb a20d7805 jmp near 05717h ; e9 d5 fe 7806 mov bx, 00da0h ; bb a0 0d 7554 7807 mov cx, ds ; 8c d9 7555 7808 mov ax, strict word 00004h ; b8 04 00 7556 call 01931h ; e8 b9 c37809 call 01931h ; e8 e4 c0 7557 7810 mov ax, word [bp+012h] ; 8b 46 12 7558 7811 shr ax, 008h ; c1 e8 08 7559 7812 push ax ; 50 7560 push 006 13h ; 68 13 067813 push 00633h ; 68 33 06 7561 7814 push strict byte 00004h ; 6a 04 7562 call 01972h ; e8 eb c37815 call 01972h ; e8 16 c1 7563 7816 add sp, strict byte 00006h ; 83 c4 06 7564 mov bx, 00da 2h ; bb a20d7817 mov bx, 00da0h ; bb a0 0d 7565 7818 mov cx, ds ; 8c d9 7566 7819 mov ax, strict word 00004h ; b8 04 00 7567 call 01931h ; e8 9c c37820 call 01931h ; e8 c7 c0 7568 7821 mov ax, word [bp+00eh] ; 8b 46 0e 7569 7822 push ax ; 50 … … 7574 7827 mov ax, word [bp+012h] ; 8b 46 12 7575 7828 push ax ; 50 7576 push 006 3bh ; 68 3b 067829 push 0065bh ; 68 5b 06 7577 7830 push strict byte 00004h ; 6a 04 7578 call 01972h ; e8 c5 c37831 call 01972h ; e8 f0 c0 7579 7832 add sp, strict byte 0000ch ; 83 c4 0c 7580 7833 lea sp, [bp-002h] ; 8d 66 fe … … 7582 7835 pop bp ; 5d 7583 7836 retn ; c3 7584 set_geom_lba_: ; 0xf55b6 LB 0x9e 7837 set_geom_lba_: ; 0xf588b LB 0xe5 7838 push bx ; 53 7839 push cx ; 51 7585 7840 push si ; 56 7586 7841 push di ; 57 7587 enter 0000 4h, 000h ; c8 0400 007588 mov si, ax ; 89 c67842 enter 00008h, 000h ; c8 08 00 00 7843 mov di, ax ; 89 c7 7589 7844 mov es, dx ; 8e c2 7845 mov dword [bp-008h], strict dword 0007e0000h ; 66 c7 46 f8 00 00 7e 00 7846 mov word [bp-002h], 000ffh ; c7 46 fe ff 00 7847 mov ax, word [bp+012h] ; 8b 46 12 7848 mov bx, word [bp+010h] ; 8b 5e 10 7849 mov cx, word [bp+00eh] ; 8b 4e 0e 7850 mov dx, word [bp+00ch] ; 8b 56 0c 7851 mov si, strict word 00020h ; be 20 00 7852 call 09d5ah ; e8 a4 44 7853 test ax, ax ; 85 c0 7854 jne short 058c6h ; 75 0c 7855 test bx, bx ; 85 db 7856 jne short 058c6h ; 75 08 7857 test cx, cx ; 85 c9 7858 jne short 058c6h ; 75 04 7859 test dx, dx ; 85 d2 7860 je short 058cdh ; 74 07 7861 mov bx, strict word 0ffffh ; bb ff ff 7862 mov si, bx ; 89 de 7863 jmp short 058d3h ; eb 06 7864 mov bx, word [bp+00ch] ; 8b 5e 0c 7865 mov si, word [bp+00eh] ; 8b 76 0e 7590 7866 mov word [bp-004h], bx ; 89 5e fc 7591 mov word [bp-002h], cx ; 89 4e fe7592 xor ax, ax ; 31 c07593 mov dx, strict word 0007eh ; ba 7e 007594 mov di, 000ffh ; bf ff 007595 7867 xor bx, bx ; 31 db 7596 jmp short 05 5d7h ; eb 057868 jmp short 058dfh ; eb 05 7597 7869 cmp bx, strict byte 00004h ; 83 fb 04 7598 jnl short 055edh ; 7d 16 7599 cmp dx, word [bp-002h] ; 3b 56 fe 7600 jnbe short 055e3h ; 77 07 7601 jne short 055e6h ; 75 08 7602 cmp ax, word [bp-004h] ; 3b 46 fc 7603 jc short 055e6h ; 72 03 7604 inc di ; 47 7605 shr di, 1 ; d1 ef 7606 shr dx, 1 ; d1 ea 7607 rcr ax, 1 ; d1 d8 7870 jnl short 05902h ; 7d 23 7871 mov ax, word [bp-006h] ; 8b 46 fa 7872 cmp si, ax ; 39 c6 7873 jc short 058f0h ; 72 0a 7874 jne short 058f9h ; 75 11 7875 mov ax, word [bp-004h] ; 8b 46 fc 7876 cmp ax, word [bp-008h] ; 3b 46 f8 7877 jnbe short 058f9h ; 77 09 7878 mov ax, word [bp-002h] ; 8b 46 fe 7879 inc ax ; 40 7880 shr ax, 1 ; d1 e8 7881 mov word [bp-002h], ax ; 89 46 fe 7882 shr word [bp-006h], 1 ; d1 6e fa 7883 rcr word [bp-008h], 1 ; d1 5e f8 7608 7884 inc bx ; 43 7609 jmp short 05 5d2h ; eb e57610 mov ax, di ; 89 f87885 jmp short 058dah ; eb d8 7886 mov ax, word [bp-002h] ; 8b 46 fe 7611 7887 xor dx, dx ; 31 d2 7612 7888 mov bx, strict word 0003fh ; bb 3f 00 7613 7889 xor cx, cx ; 31 c9 7614 call 09 779h ; e8 80 417890 call 09d19h ; e8 0a 44 7615 7891 mov bx, ax ; 89 c3 7616 7892 mov cx, dx ; 89 d1 7617 7893 mov ax, word [bp-004h] ; 8b 46 fc 7618 mov dx, word [bp-002h] ; 8b 56 fe7619 call 09 740h ; e8 3a 417620 mov word [es: si+002h], ax ; 26 89 44027894 mov dx, si ; 89 f2 7895 call 09ce0h ; e8 c5 43 7896 mov word [es:di+002h], ax ; 26 89 45 02 7621 7897 cmp ax, 00400h ; 3d 00 04 7622 jbe short 05615h ; 76 06 7623 mov word [es:si+002h], 00400h ; 26 c7 44 02 00 04 7624 mov word [es:si], di ; 26 89 3c 7625 mov word [es:si+004h], strict word 0003fh ; 26 c7 44 04 3f 00 7898 jbe short 0592ah ; 76 06 7899 mov word [es:di+002h], 00400h ; 26 c7 45 02 00 04 7900 mov ax, word [bp-002h] ; 8b 46 fe 7901 mov word [es:di], ax ; 26 89 05 7902 mov word [es:di+004h], strict word 0003fh ; 26 c7 45 04 3f 00 7626 7903 leave ; c9 7627 7904 pop di ; 5f 7628 7905 pop si ; 5e 7629 retn ; c37630 ficom word [bp+004h] ; de 56 047631 push di ; 577632 xor word [bx+031h], dx ; 31 57 317633 push di ; 577634 xor word [bx+009h], dx ; 31 57 097635 7906 pop cx ; 59 7636 aaa ; 37 7907 pop bx ; 5b 7908 retn 00008h ; c2 08 00 7909 cli ; fa 7910 pop cx ; 59 7911 and byte [bp+si+04dh], bl ; 20 5a 4d 7637 7912 pop dx ; 5a 7638 aaa ; 377913 dec bp ; 4d 7639 7914 pop dx ; 5a 7640 and bl, byte [bx+di+014h] ; 22 59 147915 dec bp ; 4d 7641 7916 pop dx ; 5a 7642 aaa ; 37 7643 pop dx ; 5a 7644 aaa ; 37 7645 pop dx ; 5a 7646 adc AL, strict byte 05ah ; 14 5a 7647 adc AL, strict byte 05ah ; 14 5a 7648 aaa ; 37 7649 pop dx ; 5a 7650 aaa ; 37 7651 pop dx ; 5a 7652 cbw ; 98 7653 pop cx ; 59 7654 adc AL, strict byte 05ah ; 14 5a 7655 aaa ; 37 7656 pop dx ; 5a 7657 aaa ; 37 7658 pop dx ; 5a 7659 adc AL, strict byte 05ah ; 14 5a 7660 enter 03759h, 05ah ; c8 59 37 5a 7661 aaa ; 37 7662 pop dx ; 5a 7663 aaa ; 37 7664 pop dx ; 5a 7665 _int13_harddisk: ; 0xf5654 LB 0x441 7917 db 02eh, 05ch 7918 ; cs pop sp ; 2e 5c 7919 pop sp ; 5c 7920 pop bp ; 5d 7921 pop sp ; 5c 7922 pop bp ; 5d 7923 inc di ; 47 7924 pop sp ; 5c 7925 cmp word [di+05ch], bx ; 39 5d 5c 7926 pop bp ; 5d 7927 pop sp ; 5c 7928 pop bp ; 5d 7929 cmp word [di+039h], bx ; 39 5d 39 7930 pop bp ; 5d 7931 pop sp ; 5c 7932 pop bp ; 5d 7933 pop sp ; 5c 7934 pop bp ; 5d 7935 mov bp, 0395ch ; bd 5c 39 7936 pop bp ; 5d 7937 pop sp ; 5c 7938 pop bp ; 5d 7939 pop sp ; 5c 7940 pop bp ; 5d 7941 cmp word [di-013h], bx ; 39 5d ed 7942 pop sp ; 5c 7943 pop sp ; 5c 7944 pop bp ; 5d 7945 pop sp ; 5c 7946 pop bp ; 5d 7947 pop sp ; 5c 7948 pop bp ; 5d 7949 _int13_harddisk: ; 0xf5970 LB 0x44a 7666 7950 push bp ; 55 7667 7951 mov bp, sp ; 89 e5 … … 7669 7953 mov dx, strict word 0000eh ; ba 0e 00 7670 7954 mov ax, strict word 00040h ; b8 40 00 7671 call 0166ch ; e8 09 c07955 call 0166ch ; e8 ed bc 7672 7956 mov si, 00122h ; be 22 01 7673 7957 mov word [bp-004h], ax ; 89 46 fc … … 7675 7959 mov dx, 0008eh ; ba 8e 00 7676 7960 mov ax, strict word 00040h ; b8 40 00 7677 call 0165eh ; e8 ea bf7961 call 0165eh ; e8 ce bc 7678 7962 mov ax, word [bp+00eh] ; 8b 46 0e 7679 7963 xor ah, ah ; 30 e4 7680 7964 cmp ax, 00080h ; 3d 80 00 7681 jc short 05 683h ; 72 057965 jc short 0599fh ; 72 05 7682 7966 cmp ax, 00090h ; 3d 90 00 7683 jc short 05 6a1h ; 72 1e7967 jc short 059bdh ; 72 1e 7684 7968 mov ax, word [bp+00eh] ; 8b 46 0e 7685 7969 xor ah, ah ; 30 e4 … … 7688 7972 shr ax, 008h ; c1 e8 08 7689 7973 push ax ; 50 7690 push 006 5eh ; 68 5e 067691 push 006 6dh ; 68 6d 067974 push 0067eh ; 68 7e 06 7975 push 0068dh ; 68 8d 06 7692 7976 push strict byte 00004h ; 6a 04 7693 call 01972h ; e8 d7 c27977 call 01972h ; e8 bb bf 7694 7978 add sp, strict byte 0000ah ; 83 c4 0a 7695 jmp near 05 a52h ; e9 b1037979 jmp near 05d77h ; e9 ba 03 7696 7980 mov ax, word [bp+00eh] ; 8b 46 0e 7697 7981 xor ah, ah ; 30 e4 … … 7699 7983 mov bx, si ; 89 f3 7700 7984 add bx, ax ; 01 c3 7701 mov dl, byte [es:bx+001 1fh] ; 26 8a 97 1f017985 mov dl, byte [es:bx+00163h] ; 26 8a 97 63 01 7702 7986 mov byte [bp-002h], dl ; 88 56 fe 7703 7987 cmp dl, 010h ; 80 fa 10 7704 jc short 05 6cah ; 72 107988 jc short 059e6h ; 72 10 7705 7989 push ax ; 50 7706 7990 mov ax, word [bp+016h] ; 8b 46 16 7707 7991 shr ax, 008h ; c1 e8 08 7708 7992 push ax ; 50 7709 push 006 5eh ; 68 5e 067710 push 006 98h ; 68 98 067711 jmp short 05 696h ; eb cc7993 push 0067eh ; 68 7e 06 7994 push 006b8h ; 68 b8 06 7995 jmp short 059b2h ; eb cc 7712 7996 mov bx, word [bp+016h] ; 8b 5e 16 7713 7997 shr bx, 008h ; c1 eb 08 7714 7998 cmp bx, strict byte 00018h ; 83 fb 18 7715 jnbe near 05 a37h ; 0f 87 60037999 jnbe near 05d5ch ; 0f 87 69 03 7716 8000 add bx, bx ; 01 db 7717 jmp word [cs:bx+05 622h] ; 2e ff a7 22 568001 jmp word [cs:bx+0593eh] ; 2e ff a7 3e 59 7718 8002 cmp byte [bp-002h], 008h ; 80 7e fe 08 7719 jnc near 05 6edh ; 0f 83 07 008003 jnc near 05a09h ; 0f 83 07 00 7720 8004 movzx ax, byte [bp-002h] ; 0f b6 46 fe 7721 call 01 c71h ; e8 84 c58005 call 01d7ch ; e8 73 c3 7722 8006 mov byte [bp+017h], 000h ; c6 46 17 00 7723 8007 xor bx, bx ; 31 db 7724 8008 mov dx, strict word 00074h ; ba 74 00 7725 8009 mov ax, strict word 00040h ; b8 40 00 7726 call 0165eh ; e8 62 bf8010 call 0165eh ; e8 46 bc 7727 8011 and byte [bp+01ch], 0feh ; 80 66 1c fe 7728 8012 mov sp, bp ; 89 ec … … 7731 8015 mov dx, strict word 00074h ; ba 74 00 7732 8016 mov ax, strict word 00040h ; b8 40 00 7733 call 01650h ; e8 43 bf8017 call 01650h ; e8 27 bc 7734 8018 mov cl, al ; 88 c1 7735 8019 mov dx, word [bp+016h] ; 8b 56 16 … … 7742 8026 mov dx, strict word 00074h ; ba 74 00 7743 8027 mov ax, strict word 00040h ; b8 40 00 7744 call 0165eh ; e8 34 bf8028 call 0165eh ; e8 18 bc 7745 8029 test cl, cl ; 84 c9 7746 je short 05 6f1h ; 74 c37747 jmp near 05 a6eh ; e9 3d038030 je short 05a0dh ; 74 c3 8031 jmp near 05d93h ; e9 46 03 7748 8032 mov ax, word [bp+016h] ; 8b 46 16 7749 8033 xor ah, ah ; 30 e4 … … 7765 8049 mov ax, word [bp-00ch] ; 8b 46 f4 7766 8050 cmp ax, 00080h ; 3d 80 00 7767 jnbe short 05 76ch ; 77 048051 jnbe short 05a88h ; 77 04 7768 8052 test ax, ax ; 85 c0 7769 jne short 05 78fh ; 75 237770 mov bx, 00da 2h ; bb a20d8053 jne short 05aabh ; 75 23 8054 mov bx, 00da0h ; bb a0 0d 7771 8055 mov cx, ds ; 8c d9 7772 8056 mov ax, strict word 00004h ; b8 04 00 7773 call 01931h ; e8 ba c18057 call 01931h ; e8 9e be 7774 8058 mov ax, word [bp+016h] ; 8b 46 16 7775 8059 shr ax, 008h ; c1 e8 08 7776 8060 push ax ; 50 7777 push 006 5eh ; 68 5e 067778 push 006 cah ; 68 ca 068061 push 0067eh ; 68 7e 06 8062 push 006eah ; 68 ea 06 7779 8063 push strict byte 00004h ; 6a 04 7780 call 01972h ; e8 e9 c18064 call 01972h ; e8 cd be 7781 8065 add sp, strict byte 00008h ; 83 c4 08 7782 jmp near 05 a52h ; e9 c3028066 jmp near 05d77h ; e9 cc 02 7783 8067 movzx ax, byte [bp-002h] ; 0f b6 46 fe 7784 imul ax, ax, strict byte 0001 8h ; 6b c0 188068 imul ax, ax, strict byte 0001ch ; 6b c0 1c 7785 8069 mov es, [bp-004h] ; 8e 46 fc 7786 8070 mov bx, si ; 89 f3 7787 8071 add bx, ax ; 01 c3 7788 mov ax, word [es:bx+02 8h] ; 26 8b 47 287789 mov cx, word [es:bx+02 6h] ; 26 8b 4f 267790 mov dx, word [es:bx+02 ah] ; 26 8b 57 2a8072 mov ax, word [es:bx+02ch] ; 26 8b 47 2c 8073 mov cx, word [es:bx+02ah] ; 26 8b 4f 2a 8074 mov dx, word [es:bx+02eh] ; 26 8b 57 2e 7791 8075 mov word [bp-00ah], dx ; 89 56 f6 7792 8076 cmp di, ax ; 39 c7 7793 jnc short 05 7bch ; 73 0c8077 jnc short 05ad8h ; 73 0c 7794 8078 cmp cx, word [bp-008h] ; 3b 4e f8 7795 jbe short 05 7bch ; 76 078079 jbe short 05ad8h ; 76 07 7796 8080 mov ax, word [bp-006h] ; 8b 46 fa 7797 8081 cmp ax, dx ; 39 d0 7798 jbe short 05 7eah ; 76 2e7799 mov bx, 00da 2h ; bb a20d8082 jbe short 05b06h ; 76 2e 8083 mov bx, 00da0h ; bb a0 0d 7800 8084 mov cx, ds ; 8c d9 7801 8085 mov ax, strict word 00004h ; b8 04 00 7802 call 01931h ; e8 6a c18086 call 01931h ; e8 4e be 7803 8087 push dword [bp-008h] ; 66 ff 76 f8 7804 8088 push di ; 57 … … 7809 8093 shr ax, 008h ; c1 e8 08 7810 8094 push ax ; 50 7811 push 006 5eh ; 68 5e 067812 push 00 6f2h ; 68 f2 068095 push 0067eh ; 68 7e 06 8096 push 00712h ; 68 12 07 7813 8097 push strict byte 00004h ; 6a 04 7814 call 01972h ; e8 8e c18098 call 01972h ; e8 72 be 7815 8099 add sp, strict byte 00010h ; 83 c4 10 7816 jmp near 05 a52h ; e9 68028100 jmp near 05d77h ; e9 71 02 7817 8101 mov ax, word [bp+016h] ; 8b 46 16 7818 8102 shr ax, 008h ; c1 e8 08 7819 8103 cmp ax, strict word 00004h ; 3d 04 00 7820 jne short 05 7f8h ; 75 037821 jmp near 05 6edh ; e9 f5 fe8104 jne short 05b14h ; 75 03 8105 jmp near 05a09h ; e9 f5 fe 7822 8106 movzx bx, byte [bp-002h] ; 0f b6 5e fe 7823 imul bx, bx, strict byte 0001 8h ; 6b db 188107 imul bx, bx, strict byte 0001ch ; 6b db 1c 7824 8108 mov es, [bp-004h] ; 8e 46 fc 7825 8109 add bx, si ; 01 f3 7826 cmp cx, word [es:bx+0 2ch] ; 26 3b 4f 2c7827 jne short 05 819h ; 75 0f7828 mov ax, word [es:bx+03 0h] ; 26 8b 47 308110 cmp cx, word [es:bx+030h] ; 26 3b 4f 30 8111 jne short 05b35h ; 75 0f 8112 mov ax, word [es:bx+034h] ; 26 8b 47 34 7829 8113 cmp ax, word [bp-00ah] ; 3b 46 f6 7830 jne short 05 819h ; 75 068114 jne short 05b35h ; 75 06 7831 8115 cmp byte [bp-002h], 008h ; 80 7e fe 08 7832 jc short 05 849h ; 72 308116 jc short 05b65h ; 72 30 7833 8117 mov ax, di ; 89 f8 7834 8118 xor dx, dx ; 31 d2 7835 8119 mov bx, cx ; 89 cb 7836 8120 xor cx, cx ; 31 c9 7837 call 09 779h ; e8 55 3f8121 call 09d19h ; e8 d9 41 7838 8122 xor bx, bx ; 31 db 7839 8123 add ax, word [bp-008h] ; 03 46 f8 … … 7841 8125 mov bx, word [bp-00ah] ; 8b 5e f6 7842 8126 xor cx, cx ; 31 c9 7843 call 09 779h ; e8 46 3f8127 call 09d19h ; e8 ca 41 7844 8128 xor bx, bx ; 31 db 7845 8129 add ax, word [bp-006h] ; 03 46 fa … … 7851 8135 mov word [bp-006h], bx ; 89 5e fa 7852 8136 mov es, [bp-004h] ; 8e 46 fc 7853 db 066h, 026h, 0c7h, 044h, 01 4h, 000h, 000h, 000h, 000h7854 ; mov dword [es:si+01 4h], strict dword 000000000h ; 66 26 c7 44 1400 00 00 007855 mov word [es:si+01 8h], strict word 00000h ; 26 c7 44 1800 008137 db 066h, 026h, 0c7h, 044h, 018h, 000h, 000h, 000h, 000h 8138 ; mov dword [es:si+018h], strict dword 000000000h ; 66 26 c7 44 18 00 00 00 00 8139 mov word [es:si+01ch], strict word 00000h ; 26 c7 44 1c 00 00 7856 8140 mov ax, word [bp-010h] ; 8b 46 f0 7857 8141 mov word [es:si], ax ; 26 89 04 7858 8142 mov ax, word [bp-00eh] ; 8b 46 f2 7859 8143 mov word [es:si+002h], ax ; 26 89 44 02 8144 db 066h, 026h, 0c7h, 044h, 004h, 000h, 000h, 000h, 000h 8145 ; mov dword [es:si+004h], strict dword 000000000h ; 66 26 c7 44 04 00 00 00 00 7860 8146 mov ax, word [bp+010h] ; 8b 46 10 7861 8147 mov dx, word [bp+006h] ; 8b 56 06 7862 mov word [es:si+00 4h], ax ; 26 89 44 047863 mov word [es:si+00 6h], dx ; 26 89 54 068148 mov word [es:si+008h], ax ; 26 89 44 08 8149 mov word [es:si+00ah], dx ; 26 89 54 0a 7864 8150 mov ax, word [bp-00ch] ; 8b 46 f4 7865 mov word [es:si+00 ah], ax ; 26 89 44 0a7866 mov word [es:si+0 0ch], 00200h ; 26 c7 44 0c00 027867 mov word [es:si+0 0eh], di ; 26 89 7c 0e8151 mov word [es:si+00eh], ax ; 26 89 44 0e 8152 mov word [es:si+010h], 00200h ; 26 c7 44 10 00 02 8153 mov word [es:si+012h], di ; 26 89 7c 12 7868 8154 mov ax, word [bp-008h] ; 8b 46 f8 7869 mov word [es:si+01 0h], ax ; 26 89 44 108155 mov word [es:si+014h], ax ; 26 89 44 14 7870 8156 mov ax, word [bp-006h] ; 8b 46 fa 7871 mov word [es:si+01 2h], ax ; 26 89 44 128157 mov word [es:si+016h], ax ; 26 89 44 16 7872 8158 mov al, byte [bp-002h] ; 8a 46 fe 7873 mov byte [es:si+00 8h], al ; 26 88 44 088159 mov byte [es:si+00ch], al ; 26 88 44 0c 7874 8160 movzx ax, byte [bp-002h] ; 0f b6 46 fe 7875 imul ax, ax, strict byte 0001 8h ; 6b c0 188161 imul ax, ax, strict byte 0001ch ; 6b c0 1c 7876 8162 mov bx, si ; 89 f3 7877 8163 add bx, ax ; 01 c3 7878 movzx ax, byte [es:bx+0 1eh] ; 26 0f b6 47 1e8164 movzx ax, byte [es:bx+022h] ; 26 0f b6 47 22 7879 8165 mov bx, ax ; 89 c3 7880 8166 sal bx, 002h ; c1 e3 02 … … 7890 8176 xor al, al ; 30 c0 7891 8177 mov es, [bp-004h] ; 8e 46 fc 7892 mov bx, word [es:si+01 4h] ; 26 8b 5c 148178 mov bx, word [es:si+018h] ; 26 8b 5c 18 7893 8179 or bx, ax ; 09 c3 7894 8180 mov word [bp+016h], bx ; 89 5e 16 7895 8181 test dl, dl ; 84 d2 7896 je near 05 6edh ; 0f 84 13fe7897 mov bx, 00da 2h ; bb a20d8182 je near 05a09h ; 0f 84 0a fe 8183 mov bx, 00da0h ; bb a0 0d 7898 8184 mov cx, ds ; 8c d9 7899 8185 mov ax, strict word 00004h ; b8 04 00 7900 call 01931h ; e8 4c c08186 call 01931h ; e8 27 bd 7901 8187 movzx ax, dl ; 0f b6 c2 7902 8188 push ax ; 50 … … 7904 8190 shr ax, 008h ; c1 e8 08 7905 8191 push ax ; 50 7906 push 006 5eh ; 68 5e 067907 push 007 39h ; 68 39 078192 push 0067eh ; 68 7e 06 8193 push 00759h ; 68 59 07 7908 8194 push strict byte 00004h ; 6a 04 7909 call 01972h ; e8 77 c08195 call 01972h ; e8 52 bd 7910 8196 add sp, strict byte 0000ah ; 83 c4 0a 7911 8197 mov ax, word [bp+016h] ; 8b 46 16 7912 8198 xor ah, ah ; 30 e4 7913 8199 or ah, 00ch ; 80 cc 0c 7914 jmp near 05 a5ah ; e9 51 017915 mov bx, 00da 2h ; bb a20d8200 jmp near 05d7fh ; e9 51 01 8201 mov bx, 00da0h ; bb a0 0d 7916 8202 mov cx, ds ; 8c d9 7917 8203 mov ax, strict word 00004h ; b8 04 00 7918 call 01931h ; e8 1d c07919 push 007 5ah ; 68 5a 078204 call 01931h ; e8 f8 bc 8205 push 0077ah ; 68 7a 07 7920 8206 push strict byte 00004h ; 6a 04 7921 call 01972h ; e8 56 c08207 call 01972h ; e8 31 bd 7922 8208 add sp, strict byte 00004h ; 83 c4 04 7923 jmp near 05 6edh ; e9 cbfd8209 jmp near 05a09h ; e9 c2 fd 7924 8210 movzx ax, byte [bp-002h] ; 0f b6 46 fe 7925 imul ax, ax, strict byte 0001 8h ; 6b c0 188211 imul ax, ax, strict byte 0001ch ; 6b c0 1c 7926 8212 mov es, [bp-004h] ; 8e 46 fc 7927 8213 mov bx, si ; 89 f3 7928 8214 add bx, ax ; 01 c3 7929 mov di, word [es:bx+02 8h] ; 26 8b 7f 287930 mov cx, word [es:bx+02 6h] ; 26 8b 4f 267931 mov ax, word [es:bx+02 ah] ; 26 8b 47 2a8215 mov di, word [es:bx+02ch] ; 26 8b 7f 2c 8216 mov cx, word [es:bx+02ah] ; 26 8b 4f 2a 8217 mov ax, word [es:bx+02eh] ; 26 8b 47 2e 7932 8218 mov word [bp-00ah], ax ; 89 46 f6 7933 movzx ax, byte [es:si+001 9eh] ; 26 0f b6 84 9e018219 movzx ax, byte [es:si+001e2h] ; 26 0f b6 84 e2 01 7934 8220 mov word [bp-00ch], ax ; 89 46 f4 7935 8221 mov byte [bp+016h], 000h ; c6 46 16 00 … … 7964 8250 or dx, ax ; 09 c2 7965 8251 mov word [bp+012h], dx ; 89 56 12 7966 jmp near 05 6edh ; e9 55fd8252 jmp near 05a09h ; e9 4c fd 7967 8253 movzx ax, byte [bp-002h] ; 0f b6 46 fe 7968 8254 cwd ; 99 … … 7973 8259 mov es, [bp-004h] ; 8e 46 fc 7974 8260 add si, ax ; 01 c6 7975 mov dx, word [es:si+00 1c2h] ; 26 8b 94 c2 018261 mov dx, word [es:si+00206h] ; 26 8b 94 06 02 7976 8262 add dx, strict byte 00007h ; 83 c2 07 7977 8263 in AL, DX ; ec … … 7980 8266 and AL, strict byte 0c0h ; 24 c0 7981 8267 cmp AL, strict byte 040h ; 3c 40 7982 jne short 05 9bdh ; 75 037983 jmp near 05 6edh ; e9 30fd8268 jne short 05ce2h ; 75 03 8269 jmp near 05a09h ; e9 27 fd 7984 8270 mov ax, word [bp+016h] ; 8b 46 16 7985 8271 xor ah, ah ; 30 e4 7986 8272 or ah, 0aah ; 80 cc aa 7987 jmp near 05 a5ah ; e9 92 008273 jmp near 05d7fh ; e9 92 00 7988 8274 movzx ax, byte [bp-002h] ; 0f b6 46 fe 7989 imul ax, ax, strict byte 0001 8h ; 6b c0 188275 imul ax, ax, strict byte 0001ch ; 6b c0 1c 7990 8276 mov es, [bp-004h] ; 8e 46 fc 7991 8277 add si, ax ; 01 c6 7992 mov di, word [es:si+0 2eh] ; 26 8b 7c 2e7993 mov ax, word [es:si+0 2ch] ; 26 8b 44 2c8278 mov di, word [es:si+032h] ; 26 8b 7c 32 8279 mov ax, word [es:si+030h] ; 26 8b 44 30 7994 8280 mov word [bp-008h], ax ; 89 46 f8 7995 mov ax, word [es:si+03 0h] ; 26 8b 44 308281 mov ax, word [es:si+034h] ; 26 8b 44 34 7996 8282 mov word [bp-006h], ax ; 89 46 fa 7997 8283 mov ax, di ; 89 f8 … … 7999 8285 mov bx, word [bp-008h] ; 8b 5e f8 8000 8286 xor cx, cx ; 31 c9 8001 call 09 779h ; e8 87 3d8287 call 09d19h ; e8 02 40 8002 8288 mov bx, word [bp-006h] ; 8b 5e fa 8003 8289 xor cx, cx ; 31 c9 8004 call 09 779h ; e8 7f 3d8290 call 09d19h ; e8 fa 3f 8005 8291 mov word [bp-010h], ax ; 89 46 f0 8006 8292 mov word [bp-00eh], dx ; 89 56 f2 … … 8011 8297 or ah, 003h ; 80 cc 03 8012 8298 mov word [bp+016h], ax ; 89 46 16 8013 jmp near 05 6f1h ; e9 ddfc8014 mov bx, 00da 2h ; bb a20d8299 jmp near 05a0dh ; e9 d4 fc 8300 mov bx, 00da0h ; bb a0 0d 8015 8301 mov cx, ds ; 8c d9 8016 8302 mov ax, strict word 00004h ; b8 04 00 8017 call 01931h ; e8 12 bf8303 call 01931h ; e8 ed bb 8018 8304 mov ax, word [bp+016h] ; 8b 46 16 8019 8305 shr ax, 008h ; c1 e8 08 8020 8306 push ax ; 50 8021 push 006 5eh ; 68 5e 068022 push 007 74h ; 68 74 078307 push 0067eh ; 68 7e 06 8308 push 00794h ; 68 94 07 8023 8309 push strict byte 00004h ; 6a 04 8024 call 01972h ; e8 41 bf8310 call 01972h ; e8 1c bc 8025 8311 add sp, strict byte 00008h ; 83 c4 08 8026 jmp near 05 6edh ; e9 b6fc8027 mov bx, 00da 2h ; bb a20d8312 jmp near 05a09h ; e9 ad fc 8313 mov bx, 00da0h ; bb a0 0d 8028 8314 mov cx, ds ; 8c d9 8029 8315 mov ax, strict word 00004h ; b8 04 00 8030 call 01931h ; e8 ef be8316 call 01931h ; e8 ca bb 8031 8317 mov ax, word [bp+016h] ; 8b 46 16 8032 8318 shr ax, 008h ; c1 e8 08 8033 8319 push ax ; 50 8034 push 006 5eh ; 68 5e 068035 push 007 a7h ; 68 a7 078036 jmp near 05 784h ; e9 32fd8320 push 0067eh ; 68 7e 06 8321 push 007c7h ; 68 c7 07 8322 jmp near 05aa0h ; e9 29 fd 8037 8323 mov ax, word [bp+016h] ; 8b 46 16 8038 8324 xor ah, ah ; 30 e4 … … 8044 8330 mov dx, strict word 00074h ; ba 74 00 8045 8331 mov ax, strict word 00040h ; b8 40 00 8046 call 0165eh ; e8 f0 bb8332 call 0165eh ; e8 cb b8 8047 8333 or byte [bp+01ch], 001h ; 80 4e 1c 01 8048 jmp near 05700h ; e9 8b fc 8049 xor byte [bp+di+048h], bl ; 30 5b 48 8050 pop bx ; 5b 8051 dec ax ; 48 8052 pop bx ; 5b 8053 dec ax ; 48 8054 pop bx ; 5b 8055 neg word [bp-075h] ; f7 5e 8b 8056 pop sp ; 5c 8057 dec ax ; 48 8058 pop bx ; 5b 8059 xchg cx, ax ; 91 8060 pop sp ; 5c 8061 neg word [bp+046h] ; f7 5e 46 8334 jmp near 05a1ch ; e9 82 fc 8335 pop ax ; 58 8336 pop si ; 5e 8337 jo short 05dfch ; 70 5e 8338 jo short 05dfeh ; 70 5e 8339 jo short 05e00h ; 70 5e 8340 inc sp ; 44 8341 db 062h 8342 lds bx, [bx+070h] ; c5 5f 70 8343 pop si ; 5e 8344 retf ; cb 8062 8345 pop di ; 5f 8063 inc si ; 46 8064 pop di ; 5f 8065 inc si ; 46 8066 pop di ; 5f 8067 inc si ; 46 8068 pop di ; 5f 8069 push CS ; 0e 8070 pop di ; 5f 8071 inc si ; 46 8072 pop di ; 5f 8073 inc si ; 46 8074 pop di ; 5f 8075 _int13_harddisk_ext: ; 0xf5a95 LB 0x4cc 8346 inc sp ; 44 8347 bound dx, [bp+di-06c9eh] ; 62 93 62 93 8348 bound dx, [bp+di-06c9eh] ; 62 93 62 93 8349 bound bx, [bp+di+062h] ; 62 5b 62 8350 xchg bx, ax ; 93 8351 db 062h 8352 xchg bx, ax ; 93 8353 db 062h 8354 _int13_harddisk_ext: ; 0xf5dba LB 0x4f4 8076 8355 push bp ; 55 8077 8356 mov bp, sp ; 89 e5 8078 sub sp, strict byte 0002 8h ; 83 ec 288357 sub sp, strict byte 00026h ; 83 ec 26 8079 8358 mov dx, strict word 0000eh ; ba 0e 00 8080 8359 mov ax, strict word 00040h ; b8 40 00 8081 call 0166ch ; e8 c8 bb8360 call 0166ch ; e8 a3 b8 8082 8361 mov word [bp-014h], ax ; 89 46 ec 8083 8362 mov dx, strict word 0000eh ; ba 0e 00 8084 8363 mov ax, strict word 00040h ; b8 40 00 8085 call 0166ch ; e8 bc bb8086 mov si, 00122h ; be22 018087 mov word [bp-0 26h], ax ; 89 46 da8364 call 0166ch ; e8 97 b8 8365 mov word [bp-008h], 00122h ; c7 46 f8 22 01 8366 mov word [bp-006h], ax ; 89 46 fa 8088 8367 xor bx, bx ; 31 db 8089 8368 mov dx, 0008eh ; ba 8e 00 8090 8369 mov ax, strict word 00040h ; b8 40 00 8091 call 0165eh ; e8 9d bb8370 call 0165eh ; e8 76 b8 8092 8371 mov ax, word [bp+00eh] ; 8b 46 0e 8093 8372 xor ah, ah ; 30 e4 8094 8373 cmp ax, 00080h ; 3d 80 00 8095 jc short 05 ad0h ; 72 058374 jc short 05df7h ; 72 05 8096 8375 cmp ax, 00090h ; 3d 90 00 8097 jc short 05 aeeh ; 72 1e8376 jc short 05e15h ; 72 1e 8098 8377 mov ax, word [bp+00eh] ; 8b 46 0e 8099 8378 xor ah, ah ; 30 e4 … … 8102 8381 shr ax, 008h ; c1 e8 08 8103 8382 push ax ; 50 8104 push 007 d5h ; 68 d5 078105 push 006 6dh ; 68 6d 068383 push 007f5h ; 68 f5 07 8384 push 0068dh ; 68 8d 06 8106 8385 push strict byte 00004h ; 6a 04 8107 call 01972h ; e8 8a be8386 call 01972h ; e8 63 bb 8108 8387 add sp, strict byte 0000ah ; 83 c4 0a 8109 jmp near 0 5f24h ; e9 36048388 jmp near 06271h ; e9 5c 04 8110 8389 mov ax, word [bp+00eh] ; 8b 46 0e 8111 8390 xor ah, ah ; 30 e4 8112 mov es, [bp-026h] ; 8e 46 da 8113 mov bx, si ; 89 f3 8391 les bx, [bp-008h] ; c4 5e f8 8114 8392 add bx, ax ; 01 c3 8115 mov cl, byte [es:bx+0011fh] ; 26 8a 8f 1f 01 8116 cmp cl, 010h ; 80 f9 10 8117 jc short 05b14h ; 72 10 8393 mov dl, byte [es:bx+00163h] ; 26 8a 97 63 01 8394 mov byte [bp-004h], dl ; 88 56 fc 8395 cmp dl, 010h ; 80 fa 10 8396 jc short 05e3ch ; 72 10 8118 8397 push ax ; 50 8119 8398 mov ax, word [bp+016h] ; 8b 46 16 8120 8399 shr ax, 008h ; c1 e8 08 8121 8400 push ax ; 50 8122 push 007 d5h ; 68 d5 078123 push 006 98h ; 68 98 068124 jmp short 05 ae3h ; eb cf8401 push 007f5h ; 68 f5 07 8402 push 006b8h ; 68 b8 06 8403 jmp short 05e0ah ; eb ce 8125 8404 mov bx, word [bp+016h] ; 8b 5e 16 8126 8405 shr bx, 008h ; c1 eb 08 8127 8406 sub bx, strict byte 00041h ; 83 eb 41 8128 8407 cmp bx, strict byte 0000fh ; 83 fb 0f 8129 jnbe near 0 5f46h ; 0f 87 22048408 jnbe near 06293h ; 0f 87 47 04 8130 8409 add bx, bx ; 01 db 8131 8410 mov ax, word [bp+016h] ; 8b 46 16 8132 8411 xor ah, ah ; 30 e4 8133 jmp word [cs:bx+05 a75h] ; 2e ff a7 75 5a8412 jmp word [cs:bx+05d9ah] ; 2e ff a7 9a 5d 8134 8413 mov word [bp+010h], 0aa55h ; c7 46 10 55 aa 8135 8414 mov ax, word [bp+016h] ; 8b 46 16 … … 8138 8417 mov word [bp+016h], ax ; 89 46 16 8139 8418 mov word [bp+014h], strict word 00007h ; c7 46 14 07 00 8140 jmp near 0 5efbh ; e9 b3038141 mov bx, word [bp+00ah] ; 8b 5e 0a8419 jmp near 06248h ; e9 d8 03 8420 mov di, word [bp+00ah] ; 8b 7e 0a 8142 8421 mov es, [bp+004h] ; 8e 46 04 8143 mov di, bx ; 89 df8144 mov [bp-01 0h], es ; 8c 46 f08145 mov ax, word [es: bx+002h] ; 26 8b 47028422 mov word [bp-01ch], di ; 89 7e e4 8423 mov [bp-01ah], es ; 8c 46 e6 8424 mov ax, word [es:di+002h] ; 26 8b 45 02 8146 8425 mov word [bp-012h], ax ; 89 46 ee 8147 mov ax, word [es:bx+006h] ; 26 8b 47 06 8426 mov ax, word [es:di+006h] ; 26 8b 45 06 8427 mov word [bp-016h], ax ; 89 46 ea 8428 mov ax, word [es:di+004h] ; 26 8b 45 04 8148 8429 mov word [bp-018h], ax ; 89 46 e8 8149 mov ax, word [es:bx+004h] ; 26 8b 47 04 8150 mov word [bp-016h], ax ; 89 46 ea 8151 mov ax, word [es:bx+00ch] ; 26 8b 47 0c 8152 mov word [bp-00ah], ax ; 89 46 f6 8153 mov ax, word [es:bx+00eh] ; 26 8b 47 0e 8154 or ax, word [bp-00ah] ; 0b 46 f6 8155 je short 05b89h ; 74 11 8430 mov dx, word [es:di+00ch] ; 26 8b 55 0c 8431 mov cx, word [es:di+00eh] ; 26 8b 4d 0e 8432 xor ax, ax ; 31 c0 8433 xor bx, bx ; 31 db 8434 mov si, strict word 00020h ; be 20 00 8435 call 09d4ah ; e8 a7 3e 8436 mov word [bp-00eh], bx ; 89 5e f2 8437 mov bx, word [es:di+008h] ; 26 8b 5d 08 8438 mov di, word [es:di+00ah] ; 26 8b 7d 0a 8439 or dx, bx ; 09 da 8440 or cx, di ; 09 f9 8441 movzx bx, byte [bp-004h] ; 0f b6 5e fc 8442 imul bx, bx, strict byte 0001ch ; 6b db 1c 8443 les di, [bp-008h] ; c4 7e f8 8444 add di, bx ; 01 df 8445 mov bl, byte [es:di+022h] ; 26 8a 5d 22 8446 cmp ax, word [es:di+03ch] ; 26 3b 45 3c 8447 jnbe short 05eeah ; 77 22 8448 jne short 05f0dh ; 75 43 8449 mov si, word [bp-00eh] ; 8b 76 f2 8450 cmp si, word [es:di+03ah] ; 26 3b 75 3a 8451 jnbe short 05eeah ; 77 17 8452 mov si, word [bp-00eh] ; 8b 76 f2 8453 cmp si, word [es:di+03ah] ; 26 3b 75 3a 8454 jne short 05f0dh ; 75 31 8455 cmp cx, word [es:di+038h] ; 26 3b 4d 38 8456 jnbe short 05eeah ; 77 08 8457 jne short 05f0dh ; 75 29 8458 cmp dx, word [es:di+036h] ; 26 3b 55 36 8459 jc short 05f0dh ; 72 23 8460 mov bx, 00da0h ; bb a0 0d 8461 mov cx, ds ; 8c d9 8462 mov ax, strict word 00004h ; b8 04 00 8463 call 01931h ; e8 3c ba 8156 8464 mov ax, word [bp+016h] ; 8b 46 16 8157 8465 shr ax, 008h ; c1 e8 08 8158 8466 push ax ; 50 8159 push 007d5h ; 68 d5 07 8160 push 007e8h ; 68 e8 07 8161 push strict byte 00007h ; 6a 07 8162 jmp short 05bd3h ; eb 4a 8163 mov es, [bp-010h] ; 8e 46 f0 8164 mov ax, word [es:di+008h] ; 26 8b 45 08 8165 mov word [bp-00ah], ax ; 89 46 f6 8166 mov ax, word [es:di+00ah] ; 26 8b 45 0a 8167 movzx dx, cl ; 0f b6 d1 8168 imul dx, dx, strict byte 00018h ; 6b d2 18 8169 mov es, [bp-026h] ; 8e 46 da 8170 mov bx, si ; 89 f3 8467 push 007f5h ; 68 f5 07 8468 push 00808h ; 68 08 08 8469 push strict byte 00004h ; 6a 04 8470 call 01972h ; e8 6b ba 8471 add sp, strict byte 00008h ; 83 c4 08 8472 jmp near 06271h ; e9 64 03 8473 mov di, word [bp+016h] ; 8b 7e 16 8474 shr di, 008h ; c1 ef 08 8475 cmp di, strict byte 00044h ; 83 ff 44 8476 je near 06244h ; 0f 84 2a 03 8477 cmp di, strict byte 00047h ; 83 ff 47 8478 je near 06244h ; 0f 84 23 03 8479 les si, [bp-008h] ; c4 76 f8 8480 db 066h, 026h, 0c7h, 044h, 018h, 000h, 000h, 000h, 000h 8481 ; mov dword [es:si+018h], strict dword 000000000h ; 66 26 c7 44 18 00 00 00 00 8482 mov word [es:si+01ch], strict word 00000h ; 26 c7 44 1c 00 00 8483 mov word [es:si+006h], ax ; 26 89 44 06 8484 mov ax, word [bp-00eh] ; 8b 46 f2 8485 mov word [es:si+004h], ax ; 26 89 44 04 8486 mov word [es:si+002h], cx ; 26 89 4c 02 8487 mov word [es:si], dx ; 26 89 14 8488 mov ax, word [bp-018h] ; 8b 46 e8 8489 mov word [es:si+008h], ax ; 26 89 44 08 8490 mov ax, word [bp-016h] ; 8b 46 ea 8491 mov word [es:si+00ah], ax ; 26 89 44 0a 8492 mov ax, word [bp-012h] ; 8b 46 ee 8493 mov word [es:si+00eh], ax ; 26 89 44 0e 8494 mov word [es:si+010h], 00200h ; 26 c7 44 10 00 02 8495 mov word [es:si+016h], strict word 00000h ; 26 c7 44 16 00 00 8496 mov al, byte [bp-004h] ; 8a 46 fc 8497 mov byte [es:si+00ch], al ; 26 88 44 0c 8498 mov dx, di ; 89 fa 8499 add dx, di ; 01 fa 8500 movzx ax, bl ; 0f b6 c3 8501 mov bx, ax ; 89 c3 8502 sal bx, 002h ; c1 e3 02 8171 8503 add bx, dx ; 01 d3 8172 mov ch, byte [es:bx+01eh] ; 26 8a 6f 1e8173 cmp ax, word [es:bx+034h] ; 26 3b 47 348174 jnbe short 05bb9h ; 77 0b8175 jne short 05bdch ; 75 2c8176 mov dx, word [bp-00ah] ; 8b 56 f68177 cmp dx, word [es:bx+032h] ; 26 3b 57 328178 jc short 05bdch ; 72 238179 mov bx, 00da2h ; bb a2 0d8180 mov cx, ds ; 8c d98181 mov ax, strict word 00004h ; b8 04 008182 call 01931h ; e8 6d bd8183 mov ax, word [bp+016h] ; 8b 46 168184 shr ax, 008h ; c1 e8 088185 push ax ; 508186 push 007d5h ; 68 d5 078187 push 00811h ; 68 11 088188 push strict byte 00004h ; 6a 048189 call 01972h ; e8 9c bd8190 add sp, strict byte 00008h ; 83 c4 088191 jmp near 05f24h ; e9 48 038192 mov dx, word [bp+016h] ; 8b 56 168193 shr dx, 008h ; c1 ea 088194 mov word [bp-00ch], dx ; 89 56 f48195 cmp dx, strict byte 00044h ; 83 fa 448196 je near 05ef7h ; 0f 84 0b 038197 cmp dx, strict byte 00047h ; 83 fa 478198 je near 05ef7h ; 0f 84 04 038199 mov es, [bp-026h] ; 8e 46 da8200 db 066h, 026h, 0c7h, 044h, 014h, 000h, 000h, 000h, 000h8201 ; mov dword [es:si+014h], strict dword 000000000h ; 66 26 c7 44 14 00 00 00 008202 mov word [es:si+018h], strict word 00000h ; 26 c7 44 18 00 008203 mov dx, word [bp-00ah] ; 8b 56 f68204 mov word [es:si], dx ; 26 89 148205 mov word [es:si+002h], ax ; 26 89 44 028206 mov ax, word [bp-016h] ; 8b 46 ea8207 mov word [es:si+004h], ax ; 26 89 44 048208 mov ax, word [bp-018h] ; 8b 46 e88209 mov word [es:si+006h], ax ; 26 89 44 068210 mov ax, word [bp-012h] ; 8b 46 ee8211 mov word [es:si+00ah], ax ; 26 89 44 0a8212 mov word [es:si+00ch], 00200h ; 26 c7 44 0c 00 028213 mov word [es:si+012h], strict word 00000h ; 26 c7 44 12 00 008214 mov byte [es:si+008h], cl ; 26 88 4c 088215 mov bx, word [bp-00ch] ; 8b 5e f48216 add bx, bx ; 01 db8217 movzx ax, ch ; 0f b6 c58218 sal ax, 002h ; c1 e0 028219 add bx, ax ; 01 c38220 8504 push ES ; 06 8221 8505 push si ; 56 8222 8506 call word [word bx-00002h] ; ff 97 fe ff 8223 8507 mov dx, ax ; 89 c2 8224 mov es, [bp-026h] ; 8e 46 da 8225 mov ax, word [es:si+014h] ; 26 8b 44 14 8508 mov es, [bp-006h] ; 8e 46 fa 8509 mov bx, si ; 89 f3 8510 mov ax, word [es:bx+018h] ; 26 8b 47 18 8226 8511 mov word [bp-012h], ax ; 89 46 ee 8227 mov es, [bp-010h] ; 8e 46 f08228 mov word [es: di+002h], ax ; 26 89 45028512 les bx, [bp-01ch] ; c4 5e e4 8513 mov word [es:bx+002h], ax ; 26 89 47 02 8229 8514 test dl, dl ; 84 d2 8230 je near 0 5ef7h ; 0f 84 97028231 mov bx, 00da 2h ; bb a20d8515 je near 06244h ; 0f 84 a8 02 8516 mov bx, 00da0h ; bb a0 0d 8232 8517 mov cx, ds ; 8c d9 8233 8518 mov ax, strict word 00004h ; b8 04 00 8234 call 01931h ; e8 c6 bc8519 call 01931h ; e8 8a b9 8235 8520 movzx ax, dl ; 0f b6 c2 8236 8521 push ax ; 50 8237 push word [bp-00ch] ; ff 76 f48238 push 007 d5h ; 68 d5 078239 push 007 39h ; 68 39 078522 push di ; 57 8523 push 007f5h ; 68 f5 07 8524 push 00759h ; 68 59 07 8240 8525 push strict byte 00004h ; 6a 04 8241 call 01972h ; e8 f5 bc8526 call 01972h ; e8 bb b9 8242 8527 add sp, strict byte 0000ah ; 83 c4 0a 8243 8528 mov ax, word [bp+016h] ; 8b 46 16 8244 8529 xor ah, ah ; 30 e4 8245 8530 or ah, 00ch ; 80 cc 0c 8246 jmp near 0 5f2ch ; e9 a1028531 jmp near 06279h ; e9 b4 02 8247 8532 or ah, 0b2h ; 80 cc b2 8248 jmp near 0 5f2ch ; e9 9b028533 jmp near 06279h ; e9 ae 02 8249 8534 mov bx, word [bp+00ah] ; 8b 5e 0a 8250 8535 mov ax, word [bp+004h] ; 8b 46 04 8251 mov word [bp-006h], ax ; 89 46 fa 8252 mov word [bp-004h], ax ; 89 46 fc 8536 mov word [bp-00ch], ax ; 89 46 f4 8537 mov di, bx ; 89 df 8538 mov word [bp-00ah], ax ; 89 46 f6 8253 8539 mov es, ax ; 8e c0 8254 mov di, bx ; 89 df 8255 mov ax, word [es:di] ; 26 8b 05 8256 mov word [bp-00eh], ax ; 89 46 f2 8540 mov ax, word [es:bx] ; 26 8b 07 8541 mov word [bp-010h], ax ; 89 46 f0 8257 8542 cmp ax, strict word 0001ah ; 3d 1a 00 8258 jc near 05f24h ; 0f 82 76 02 8259 jc near 05d35h ; 0f 82 83 00 8260 movzx ax, cl ; 0f b6 c1 8261 imul ax, ax, strict byte 00018h ; 6b c0 18 8262 mov es, [bp-026h] ; 8e 46 da 8263 mov di, si ; 89 f7 8264 add di, ax ; 01 c7 8265 mov ax, word [es:di+02eh] ; 26 8b 45 2e 8266 mov word [bp-028h], ax ; 89 46 d8 8267 mov ax, word [es:di+02ch] ; 26 8b 45 2c 8268 mov word [bp-01eh], ax ; 89 46 e2 8269 mov ax, word [es:di+030h] ; 26 8b 45 30 8543 jc near 06271h ; 0f 82 89 02 8544 jc near 06087h ; 0f 82 9b 00 8545 movzx ax, byte [bp-004h] ; 0f b6 46 fc 8546 imul ax, ax, strict byte 0001ch ; 6b c0 1c 8547 les bx, [bp-008h] ; c4 5e f8 8548 add bx, ax ; 01 c3 8549 mov ax, word [es:bx+032h] ; 26 8b 47 32 8550 mov word [bp-026h], ax ; 89 46 da 8551 mov ax, word [es:bx+030h] ; 26 8b 47 30 8552 mov word [bp-020h], ax ; 89 46 e0 8553 mov ax, word [es:bx+034h] ; 26 8b 47 34 8270 8554 mov word [bp-024h], ax ; 89 46 dc 8271 mov ax, word [es:di+032h] ; 26 8b 45 32 8272 mov word [bp-00ah], ax ; 89 46 f6 8273 mov ax, word [es:di+034h] ; 26 8b 45 34 8274 mov dx, word [es:di+024h] ; 26 8b 55 24 8275 mov word [bp-022h], dx ; 89 56 de 8276 mov es, [bp-006h] ; 8e 46 fa 8277 mov di, bx ; 89 df 8278 db 066h, 026h, 0c7h, 005h, 01ah, 000h, 002h, 000h 8279 ; mov dword [es:di], strict dword 00002001ah ; 66 26 c7 05 1a 00 02 00 8280 mov dx, word [bp-028h] ; 8b 56 d8 8281 mov word [es:di+004h], dx ; 26 89 55 04 8282 mov word [es:di+006h], strict word 00000h ; 26 c7 45 06 00 00 8283 mov dx, word [bp-01eh] ; 8b 56 e2 8284 mov word [es:di+008h], dx ; 26 89 55 08 8285 mov word [es:di+00ah], strict word 00000h ; 26 c7 45 0a 00 00 8286 mov dx, word [bp-024h] ; 8b 56 dc 8287 mov word [es:di+00ch], dx ; 26 89 55 0c 8288 mov word [es:di+00eh], strict word 00000h ; 26 c7 45 0e 00 00 8289 mov dx, word [bp-022h] ; 8b 56 de 8290 mov word [es:di+018h], dx ; 26 89 55 18 8291 mov dx, word [bp-00ah] ; 8b 56 f6 8292 mov word [es:di+010h], dx ; 26 89 55 10 8293 mov word [es:di+012h], ax ; 26 89 45 12 8294 db 066h, 026h, 0c7h, 045h, 014h, 000h, 000h, 000h, 000h 8295 ; mov dword [es:di+014h], strict dword 000000000h ; 66 26 c7 45 14 00 00 00 00 8296 cmp word [bp-00eh], strict byte 0001eh ; 83 7e f2 1e 8297 jc near 05e41h ; 0f 82 04 01 8298 mov es, [bp-004h] ; 8e 46 fc 8299 mov word [es:bx], strict word 0001eh ; 26 c7 07 1e 00 8555 mov ax, word [es:bx+03ch] ; 26 8b 47 3c 8556 mov dx, word [es:bx+03ah] ; 26 8b 57 3a 8557 mov word [bp-00eh], dx ; 89 56 f2 8558 mov cx, word [es:bx+038h] ; 26 8b 4f 38 8559 mov dx, word [es:bx+036h] ; 26 8b 57 36 8560 mov bx, word [es:bx+028h] ; 26 8b 5f 28 8561 mov word [bp-022h], bx ; 89 5e de 8562 mov es, [bp-00ch] ; 8e 46 f4 8563 mov bx, di ; 89 fb 8564 db 066h, 026h, 0c7h, 007h, 01ah, 000h, 002h, 000h 8565 ; mov dword [es:bx], strict dword 00002001ah ; 66 26 c7 07 1a 00 02 00 8566 mov bx, word [bp-026h] ; 8b 5e da 8567 mov si, di ; 89 fe 8568 mov word [es:si+004h], bx ; 26 89 5c 04 8569 mov bx, si ; 89 f3 8570 mov word [es:bx+006h], strict word 00000h ; 26 c7 47 06 00 00 8571 mov bx, word [bp-020h] ; 8b 5e e0 8572 mov word [es:si+008h], bx ; 26 89 5c 08 8573 mov bx, si ; 89 f3 8574 mov word [es:bx+00ah], strict word 00000h ; 26 c7 47 0a 00 00 8575 mov bx, word [bp-024h] ; 8b 5e dc 8576 mov word [es:si+00ch], bx ; 26 89 5c 0c 8577 mov bx, si ; 89 f3 8578 mov word [es:bx+00eh], strict word 00000h ; 26 c7 47 0e 00 00 8579 mov bx, word [bp-022h] ; 8b 5e de 8580 mov word [es:si+018h], bx ; 26 89 5c 18 8581 mov bx, si ; 89 f3 8582 mov word [es:bx+010h], dx ; 26 89 57 10 8583 mov word [es:bx+012h], cx ; 26 89 4f 12 8584 mov bx, word [bp-00eh] ; 8b 5e f2 8585 mov si, strict word 00020h ; be 20 00 8586 call 09d5ah ; e8 dd 3c 8587 mov bx, di ; 89 fb 8588 mov word [es:bx+014h], dx ; 26 89 57 14 8589 mov word [es:bx+016h], cx ; 26 89 4f 16 8590 cmp word [bp-010h], strict byte 0001eh ; 83 7e f0 1e 8591 jc near 0618ch ; 0f 82 fd 00 8592 mov es, [bp-00ah] ; 8e 46 f6 8593 mov word [es:di], strict word 0001eh ; 26 c7 05 1e 00 8300 8594 mov ax, word [bp-014h] ; 8b 46 ec 8301 mov word [es: bx+01ch], ax ; 26 89 471c8302 mov word [es: bx+01ah], 00312h ; 26 c7 47 1a 12038303 movzx ax, cl ; 0f b6 c18304 mov word [bp-020h], ax ; 89 46 e08595 mov word [es:di+01ch], ax ; 26 89 45 1c 8596 mov word [es:di+01ah], 00356h ; 26 c7 45 1a 56 03 8597 movzx cx, byte [bp-004h] ; 0f b6 4e fc 8598 mov ax, cx ; 89 c8 8305 8599 cwd ; 99 8306 8600 db 02bh, 0c2h 8307 8601 ; sub ax, dx ; 2b c2 8308 8602 sar ax, 1 ; d1 f8 8309 movzx di, al ; 0f b6 f88310 imul di, di, strict byte 00006h ; 6b ff068311 mov es, [bp-0 26h] ; 8e 46 da8312 add di, si ; 01 f78313 mov ax, word [es: di+001c2h] ; 26 8b 85 c2 018314 mov word [bp-01 ah], ax ; 89 46 e68315 mov ax, word [es:di+001c4h] ; 26 8b 85 c4 018316 mov word [bp-01ch], ax ; 89 46 e48317 mov ch, byte [es:di+001c1h] ; 26 8a ad c1 018318 imul di, word [bp-020h], strict byte 00018h ; 6b 7e e0 188319 add di, si ; 01 f78320 mov ah, byte [es: di+022h] ; 26 8a 65 228321 mov al, byte [es: di+023h] ; 26 8a 45 238603 movzx bx, al ; 0f b6 d8 8604 imul bx, bx, strict byte 00006h ; 6b db 06 8605 mov es, [bp-006h] ; 8e 46 fa 8606 add bx, word [bp-008h] ; 03 5e f8 8607 mov ax, word [es:bx+00206h] ; 26 8b 87 06 02 8608 mov word [bp-01eh], ax ; 89 46 e2 8609 mov dx, word [es:bx+00208h] ; 26 8b 97 08 02 8610 mov al, byte [es:bx+00205h] ; 26 8a 87 05 02 8611 mov byte [bp-002h], al ; 88 46 fe 8612 imul bx, cx, strict byte 0001ch ; 6b d9 1c 8613 add bx, word [bp-008h] ; 03 5e f8 8614 mov ah, byte [es:bx+026h] ; 26 8a 67 26 8615 mov al, byte [es:bx+027h] ; 26 8a 47 27 8322 8616 test al, al ; 84 c0 8323 jne short 05d93h ; 75 04 8324 xor dx, dx ; 31 d2 8325 jmp short 05d96h ; eb 03 8326 mov dx, strict word 00008h ; ba 08 00 8327 or dl, 010h ; 80 ca 10 8328 mov word [bp-008h], dx ; 89 56 f8 8617 jne short 060e6h ; 75 04 8618 xor bx, bx ; 31 db 8619 jmp short 060e9h ; eb 03 8620 mov bx, strict word 00008h ; bb 08 00 8621 or bl, 010h ; 80 cb 10 8329 8622 cmp ah, 001h ; 80 fc 01 8330 8623 db 00fh, 094h, 0c4h 8331 8624 ; sete ah ; 0f 94 c4 8332 movzx dx, ah ; 0f b6 d48333 or word [bp-008h], dx ; 09 56 f88625 movzx cx, ah ; 0f b6 cc 8626 or bx, cx ; 09 cb 8334 8627 cmp AL, strict byte 001h ; 3c 01 8335 8628 db 00fh, 094h, 0c4h 8336 8629 ; sete ah ; 0f 94 c4 8337 movzx dx, ah ; 0f b6 d48338 or word [bp-008h], dx ; 09 56 f88630 movzx cx, ah ; 0f b6 cc 8631 or bx, cx ; 09 cb 8339 8632 cmp AL, strict byte 003h ; 3c 03 8340 jne short 0 5dbch ; 75 058633 jne short 0610ah ; 75 05 8341 8634 mov ax, strict word 00003h ; b8 03 00 8342 jmp short 0 5dbeh ; eb 028635 jmp short 0610ch ; eb 02 8343 8636 xor ax, ax ; 31 c0 8344 or word [bp-008h], ax ; 09 46 f8 8345 mov ax, word [bp-01ah] ; 8b 46 e6 8346 mov es, [bp-026h] ; 8e 46 da 8347 mov word [es:si+001f0h], ax ; 26 89 84 f0 01 8348 mov ax, word [bp-01ch] ; 8b 46 e4 8349 mov word [es:si+001f2h], ax ; 26 89 84 f2 01 8350 movzx ax, cl ; 0f b6 c1 8637 or bx, ax ; 09 c3 8638 mov ax, word [bp-01eh] ; 8b 46 e2 8639 les si, [bp-008h] ; c4 76 f8 8640 mov word [es:si+00234h], ax ; 26 89 84 34 02 8641 mov word [es:si+00236h], dx ; 26 89 94 36 02 8642 movzx ax, byte [bp-004h] ; 0f b6 46 fc 8351 8643 cwd ; 99 8352 mov di, strict word 00002h ; bf02 008353 idiv di ; f7 ff8644 mov cx, strict word 00002h ; b9 02 00 8645 idiv cx ; f7 f9 8354 8646 or dl, 00eh ; 80 ca 0e 8355 sal dx, 004h ; c1 e2 04 8356 mov byte [es:si+001f4h], dl ; 26 88 94 f4 01 8357 mov byte [es:si+001f5h], 0cbh ; 26 c6 84 f5 01 cb 8358 mov byte [es:si+001f6h], ch ; 26 88 ac f6 01 8359 mov word [es:si+001f7h], strict word 00001h ; 26 c7 84 f7 01 01 00 8360 mov byte [es:si+001f9h], 000h ; 26 c6 84 f9 01 00 8361 mov ax, word [bp-008h] ; 8b 46 f8 8362 mov word [es:si+001fah], ax ; 26 89 84 fa 01 8363 mov word [es:si+001fch], strict word 00000h ; 26 c7 84 fc 01 00 00 8364 mov byte [es:si+001feh], 011h ; 26 c6 84 fe 01 11 8365 xor ch, ch ; 30 ed 8366 mov byte [bp-002h], ch ; 88 6e fe 8367 jmp short 05e22h ; eb 06 8368 cmp byte [bp-002h], 00fh ; 80 7e fe 0f 8369 jnc short 05e37h ; 73 15 8370 movzx dx, byte [bp-002h] ; 0f b6 56 fe 8371 add dx, 00312h ; 81 c2 12 03 8647 mov ax, dx ; 89 d0 8648 sal ax, 004h ; c1 e0 04 8649 mov byte [es:si+00238h], al ; 26 88 84 38 02 8650 mov byte [es:si+00239h], 0cbh ; 26 c6 84 39 02 cb 8651 mov al, byte [bp-002h] ; 8a 46 fe 8652 mov byte [es:si+0023ah], al ; 26 88 84 3a 02 8653 mov word [es:si+0023bh], strict word 00001h ; 26 c7 84 3b 02 01 00 8654 mov byte [es:si+0023dh], 000h ; 26 c6 84 3d 02 00 8655 mov word [es:si+0023eh], bx ; 26 89 9c 3e 02 8656 mov bx, si ; 89 f3 8657 mov word [es:bx+00240h], strict word 00000h ; 26 c7 87 40 02 00 00 8658 mov byte [es:bx+00242h], 011h ; 26 c6 87 42 02 11 8659 xor bl, bl ; 30 db 8660 xor bh, bh ; 30 ff 8661 jmp short 0616fh ; eb 05 8662 cmp bh, 00fh ; 80 ff 0f 8663 jnc short 06182h ; 73 13 8664 movzx dx, bh ; 0f b6 d7 8665 add dx, 00356h ; 81 c2 56 03 8372 8666 mov ax, word [bp-014h] ; 8b 46 ec 8373 call 01650h ; e8 20 b8 8374 add ch, al ; 00 c5 8375 inc byte [bp-002h] ; fe 46 fe 8376 jmp short 05e1ch ; eb e5 8377 neg ch ; f6 dd 8378 mov es, [bp-026h] ; 8e 46 da 8379 mov byte [es:si+001ffh], ch ; 26 88 ac ff 01 8380 cmp word [bp-00eh], strict byte 00042h ; 83 7e f2 42 8381 jc near 05ef7h ; 0f 82 ae 00 8382 movzx ax, cl ; 0f b6 c1 8667 call 01650h ; e8 d4 b4 8668 add bl, al ; 00 c3 8669 db 0feh, 0c7h 8670 ; inc bh ; fe c7 8671 jmp short 0616ah ; eb e8 8672 neg bl ; f6 db 8673 les si, [bp-008h] ; c4 76 f8 8674 mov byte [es:si+00243h], bl ; 26 88 9c 43 02 8675 cmp word [bp-010h], strict byte 00042h ; 83 7e f0 42 8676 jc near 06244h ; 0f 82 b0 00 8677 movzx ax, byte [bp-004h] ; 0f b6 46 fc 8383 8678 cwd ; 99 8384 8679 db 02bh, 0c2h … … 8387 8682 xor ah, ah ; 30 e4 8388 8683 imul ax, ax, strict byte 00006h ; 6b c0 06 8389 mov es, [bp-026h] ; 8e 46 da8390 add si, ax ; 01 c68391 mov al, byte [es: si+001c0h] ; 26 8a 84 c0 018392 mov dx, word [es: si+001c2h] ; 26 8b 94 c2 018393 mov es, [bp-00 4h] ; 8e 46 fc8394 mov word [es: bx], strict word 00042h ; 26 c7 0742 008395 db 066h, 026h, 0c7h, 04 7h, 01eh, 0ddh, 0beh, 024h, 000h8396 ; mov dword [es: bx+01eh], strict dword 00024beddh ; 66 26 c7 471e dd be 24 008397 mov word [es: bx+022h], strict word 00000h ; 26 c7 4722 00 008684 les bx, [bp-008h] ; c4 5e f8 8685 add bx, ax ; 01 c3 8686 mov al, byte [es:bx+00204h] ; 26 8a 87 04 02 8687 mov dx, word [es:bx+00206h] ; 26 8b 97 06 02 8688 mov es, [bp-00ah] ; 8e 46 f6 8689 mov word [es:di], strict word 00042h ; 26 c7 05 42 00 8690 db 066h, 026h, 0c7h, 045h, 01eh, 0ddh, 0beh, 024h, 000h 8691 ; mov dword [es:di+01eh], strict dword 00024beddh ; 66 26 c7 45 1e dd be 24 00 8692 mov word [es:di+022h], strict word 00000h ; 26 c7 45 22 00 00 8398 8693 test al, al ; 84 c0 8399 jne short 0 5e89h ; 75 098400 db 066h, 026h, 0c7h, 04 7h, 024h, 049h, 053h, 041h, 020h8401 ; mov dword [es: bx+024h], strict dword 020415349h ; 66 26 c7 4724 49 53 41 208402 mov es, [bp-00 4h] ; 8e 46 fc8403 db 066h, 026h, 0c7h, 04 7h, 028h, 041h, 054h, 041h, 020h8404 ; mov dword [es: bx+028h], strict dword 020415441h ; 66 26 c7 4728 41 54 41 208405 db 066h, 026h, 0c7h, 04 7h, 02ch, 020h, 020h, 020h, 020h8406 ; mov dword [es: bx+02ch], strict dword 020202020h ; 66 26 c7 472c 20 20 20 208694 jne short 061d5h ; 75 09 8695 db 066h, 026h, 0c7h, 045h, 024h, 049h, 053h, 041h, 020h 8696 ; mov dword [es:di+024h], strict dword 020415349h ; 66 26 c7 45 24 49 53 41 20 8697 mov es, [bp-00ah] ; 8e 46 f6 8698 db 066h, 026h, 0c7h, 045h, 028h, 041h, 054h, 041h, 020h 8699 ; mov dword [es:di+028h], strict dword 020415441h ; 66 26 c7 45 28 41 54 41 20 8700 db 066h, 026h, 0c7h, 045h, 02ch, 020h, 020h, 020h, 020h 8701 ; mov dword [es:di+02ch], strict dword 020202020h ; 66 26 c7 45 2c 20 20 20 20 8407 8702 test al, al ; 84 c0 8408 jne short 0 5eb5h ; 75 138409 mov word [es: bx+030h], dx ; 26 89 57308410 db 066h, 026h, 0c7h, 04 7h, 032h, 000h, 000h, 000h, 000h8411 ; mov dword [es: bx+032h], strict dword 000000000h ; 66 26 c7 4732 00 00 00 008412 mov word [es: bx+036h], strict word 00000h ; 26 c7 4736 00 008413 mov al, cl ; 88 c88703 jne short 06201h ; 75 13 8704 mov word [es:di+030h], dx ; 26 89 55 30 8705 db 066h, 026h, 0c7h, 045h, 032h, 000h, 000h, 000h, 000h 8706 ; mov dword [es:di+032h], strict dword 000000000h ; 66 26 c7 45 32 00 00 00 00 8707 mov word [es:di+036h], strict word 00000h ; 26 c7 45 36 00 00 8708 mov al, byte [bp-004h] ; 8a 46 fc 8414 8709 and AL, strict byte 001h ; 24 01 8415 8710 xor ah, ah ; 30 e4 8416 mov es, [bp-00 4h] ; 8e 46 fc8417 mov word [es: bx+038h], ax ; 26 89 47388418 db 066h, 026h, 0c7h, 04 7h, 03ah, 000h, 000h, 000h, 000h8419 ; mov dword [es: bx+03ah], strict dword 000000000h ; 66 26 c7 473a 00 00 00 008420 mov word [es: bx+03eh], strict word 00000h ; 26 c7 473e 00 008421 xor cl, cl ; 30 c98422 mov CH, strict byte 01eh ; b51e8423 jmp short 0 5edch ; eb 058424 cmp ch, 040h ; 80 fd408425 jnc short 0 5eeeh ; 73 128426 movzx dx, ch ; 0f b6 d58711 mov es, [bp-00ah] ; 8e 46 f6 8712 mov word [es:di+038h], ax ; 26 89 45 38 8713 db 066h, 026h, 0c7h, 045h, 03ah, 000h, 000h, 000h, 000h 8714 ; mov dword [es:di+03ah], strict dword 000000000h ; 66 26 c7 45 3a 00 00 00 00 8715 mov word [es:di+03eh], strict word 00000h ; 26 c7 45 3e 00 00 8716 xor bl, bl ; 30 db 8717 mov BH, strict byte 01eh ; b7 1e 8718 jmp short 06229h ; eb 05 8719 cmp bh, 040h ; 80 ff 40 8720 jnc short 0623bh ; 73 12 8721 movzx dx, bh ; 0f b6 d7 8427 8722 add dx, word [bp+00ah] ; 03 56 0a 8428 8723 mov ax, word [bp+004h] ; 8b 46 04 8429 call 01650h ; e8 68 b78430 add cl, al ; 00 c18431 db 0feh, 0c 5h8432 ; inc ch ; fe c58433 jmp short 0 5ed7h ; eb e98434 neg cl ; f6 d98435 mov es, [bp-00 4h] ; 8e 46 fc8436 mov byte [es: bx+041h], cl ; 26 88 4f418724 call 01650h ; e8 1b b4 8725 add bl, al ; 00 c3 8726 db 0feh, 0c7h 8727 ; inc bh ; fe c7 8728 jmp short 06224h ; eb e9 8729 neg bl ; f6 db 8730 mov es, [bp-00ah] ; 8e 46 f6 8731 mov byte [es:di+041h], bl ; 26 88 5d 41 8437 8732 mov byte [bp+017h], 000h ; c6 46 17 00 8438 8733 xor bx, bx ; 31 db 8439 8734 mov dx, strict word 00074h ; ba 74 00 8440 8735 mov ax, strict word 00040h ; b8 40 00 8441 call 0165eh ; e8 58 b78736 call 0165eh ; e8 0b b4 8442 8737 and byte [bp+01ch], 0feh ; 80 66 1c fe 8443 8738 mov sp, bp ; 89 ec … … 8445 8740 retn ; c3 8446 8741 cmp ax, strict word 00006h ; 3d 06 00 8447 je short 0 5ef7h ; 74 e48742 je short 06244h ; 74 e4 8448 8743 cmp ax, strict word 00001h ; 3d 01 00 8449 jc short 0 5f24h ; 72 0c8450 jbe short 0 5ef7h ; 76 dd8744 jc short 06271h ; 72 0c 8745 jbe short 06244h ; 76 dd 8451 8746 cmp ax, strict word 00003h ; 3d 03 00 8452 jc short 0 5f24h ; 72 058747 jc short 06271h ; 72 05 8453 8748 cmp ax, strict word 00004h ; 3d 04 00 8454 jbe short 0 5ef7h ; 76 d38749 jbe short 06244h ; 76 d3 8455 8750 mov ax, word [bp+016h] ; 8b 46 16 8456 8751 xor ah, ah ; 30 e4 … … 8462 8757 mov dx, strict word 00074h ; ba 74 00 8463 8758 mov ax, strict word 00040h ; b8 40 00 8464 call 0165eh ; e8 1e b78759 call 0165eh ; e8 d1 b3 8465 8760 or byte [bp+01ch], 001h ; 80 4e 1c 01 8466 jmp short 0 5f0ah ; eb c48467 mov bx, 00da 2h ; bb a20d8761 jmp short 06257h ; eb c4 8762 mov bx, 00da0h ; bb a0 0d 8468 8763 mov cx, ds ; 8c d9 8469 8764 mov ax, strict word 00004h ; b8 04 00 8470 call 01931h ; e8 e0 b98765 call 01931h ; e8 93 b6 8471 8766 mov ax, word [bp+016h] ; 8b 46 16 8472 8767 shr ax, 008h ; c1 e8 08 8473 8768 push ax ; 50 8474 push 007 d5h ; 68 d5 078475 push 007 a7h ; 68 a7 078476 jmp near 05 bd1h ; e9 70fc8477 _int14_function: ; 0xf 5f61LB 0x1558769 push 007f5h ; 68 f5 07 8770 push 007c7h ; 68 c7 07 8771 jmp near 05f02h ; e9 54 fc 8772 _int14_function: ; 0xf62ae LB 0x155 8478 8773 push bp ; 55 8479 8774 mov bp, sp ; 89 e5 … … 8483 8778 add dx, dx ; 01 d2 8484 8779 mov ax, strict word 00040h ; b8 40 00 8485 call 0166ch ; e8 fb b68780 call 0166ch ; e8 ae b3 8486 8781 mov si, ax ; 89 c6 8487 8782 mov bx, ax ; 89 c3 … … 8489 8784 add dx, strict byte 0007ch ; 83 c2 7c 8490 8785 mov ax, strict word 00040h ; b8 40 00 8491 call 01650h ; e8 cf b68786 call 01650h ; e8 82 b3 8492 8787 mov cl, al ; 88 c1 8493 8788 cmp word [bp+00eh], strict byte 00004h ; 83 7e 0e 04 8494 jnc near 06 0ach ; 0f 83 21 018789 jnc near 063f9h ; 0f 83 21 01 8495 8790 test si, si ; 85 f6 8496 jbe near 06 0ach ; 0f 86 1b 018791 jbe near 063f9h ; 0f 86 1b 01 8497 8792 mov al, byte [bp+013h] ; 8a 46 13 8498 8793 cmp AL, strict byte 001h ; 3c 01 8499 jc short 0 5fa9h ; 72 118500 jbe short 0 5ffdh ; 76 638794 jc short 062f6h ; 72 11 8795 jbe short 0634ah ; 76 63 8501 8796 cmp AL, strict byte 003h ; 3c 03 8502 je near 06 095h ; 0f 84 f5 008797 je near 063e2h ; 0f 84 f5 00 8503 8798 cmp AL, strict byte 002h ; 3c 02 8504 je near 06 04bh ; 0f 84 a5 008505 jmp near 06 0a6h ; e9 fd 008799 je near 06398h ; 0f 84 a5 00 8800 jmp near 063f3h ; e9 fd 00 8506 8801 test al, al ; 84 c0 8507 jne near 06 0a6h ; 0f 85 f7 008802 jne near 063f3h ; 0f 85 f7 00 8508 8803 lea dx, [bx+003h] ; 8d 57 03 8509 8804 in AL, DX ; ec … … 8537 8832 ; sub ah, ah ; 2a e4 8538 8833 mov byte [bp+012h], al ; 88 46 12 8539 jmp near 06 087h ; e9 97 008834 jmp near 063d4h ; e9 97 00 8540 8835 mov AL, strict byte 017h ; b0 17 8541 8836 mov dx, bx ; 89 da … … 8544 8839 mov AL, strict byte 004h ; b0 04 8545 8840 out DX, AL ; ee 8546 jmp short 0 5fd2h ; eb d58841 jmp short 0631fh ; eb d5 8547 8842 mov dx, strict word 0006ch ; ba 6c 00 8548 8843 mov ax, strict word 00040h ; b8 40 00 8549 call 0166ch ; e8 66 b68844 call 0166ch ; e8 19 b3 8550 8845 mov si, ax ; 89 c6 8551 8846 lea dx, [bx+005h] ; 8d 57 05 … … 8555 8850 and ax, strict word 00060h ; 25 60 00 8556 8851 cmp ax, strict word 00060h ; 3d 60 00 8557 je short 06 02dh ; 74 178852 je short 0637ah ; 74 17 8558 8853 test cl, cl ; 84 c9 8559 je short 06 02dh ; 74 138854 je short 0637ah ; 74 13 8560 8855 mov dx, strict word 0006ch ; ba 6c 00 8561 8856 mov ax, strict word 00040h ; b8 40 00 8562 call 0166ch ; e8 49 b68857 call 0166ch ; e8 fc b2 8563 8858 cmp ax, si ; 39 f0 8564 je short 06 008h ; 74 e18859 je short 06355h ; 74 e1 8565 8860 mov si, ax ; 89 c6 8566 8861 db 0feh, 0c9h 8567 8862 ; dec cl ; fe c9 8568 jmp short 06 008h ; eb db8863 jmp short 06355h ; eb db 8569 8864 test cl, cl ; 84 c9 8570 je short 06 037h ; 74 068865 je short 06384h ; 74 06 8571 8866 mov al, byte [bp+012h] ; 8a 46 12 8572 8867 mov dx, bx ; 89 da … … 8578 8873 mov byte [bp+013h], al ; 88 46 13 8579 8874 test cl, cl ; 84 c9 8580 jne short 06 087h ; 75 438875 jne short 063d4h ; 75 43 8581 8876 or AL, strict byte 080h ; 0c 80 8582 8877 mov byte [bp+013h], al ; 88 46 13 8583 jmp short 06 087h ; eb 3c8878 jmp short 063d4h ; eb 3c 8584 8879 mov dx, strict word 0006ch ; ba 6c 00 8585 8880 mov ax, strict word 00040h ; b8 40 00 8586 call 0166ch ; e8 18 b68881 call 0166ch ; e8 cb b2 8587 8882 mov si, ax ; 89 c6 8588 8883 lea dx, [bx+005h] ; 8d 57 05 … … 8591 8886 ; sub ah, ah ; 2a e4 8592 8887 test AL, strict byte 001h ; a8 01 8593 jne short 06 077h ; 75 178888 jne short 063c4h ; 75 17 8594 8889 test cl, cl ; 84 c9 8595 je short 06 077h ; 74 138890 je short 063c4h ; 74 13 8596 8891 mov dx, strict word 0006ch ; ba 6c 00 8597 8892 mov ax, strict word 00040h ; b8 40 00 8598 call 0166ch ; e8 ff b58893 call 0166ch ; e8 b2 b2 8599 8894 cmp ax, si ; 39 f0 8600 je short 06 056h ; 74 e58895 je short 063a3h ; 74 e5 8601 8896 mov si, ax ; 89 c6 8602 8897 db 0feh, 0c9h 8603 8898 ; dec cl ; fe c9 8604 jmp short 06 056h ; eb df8899 jmp short 063a3h ; eb df 8605 8900 test cl, cl ; 84 c9 8606 je short 06 08dh ; 74 128901 je short 063dah ; 74 12 8607 8902 mov byte [bp+013h], 000h ; c6 46 13 00 8608 8903 mov dx, bx ; 89 da … … 8612 8907 mov byte [bp+012h], al ; 88 46 12 8613 8908 and byte [bp+01ch], 0feh ; 80 66 1c fe 8614 jmp short 06 0b0h ; eb 238909 jmp short 063fdh ; eb 23 8615 8910 lea dx, [bx+005h] ; 8d 57 05 8616 8911 in AL, DX ; ec 8617 8912 db 02ah, 0e4h 8618 8913 ; sub ah, ah ; 2a e4 8619 jmp short 06 046h ; eb b18914 jmp short 06393h ; eb b1 8620 8915 lea dx, [si+005h] ; 8d 54 05 8621 8916 in AL, DX ; ec … … 8627 8922 db 02ah, 0e4h 8628 8923 ; sub ah, ah ; 2a e4 8629 jmp short 06 084h ; eb de8924 jmp short 063d1h ; eb de 8630 8925 or byte [bp+01ch], 001h ; 80 4e 1c 01 8631 jmp short 06 0b0h ; eb 048926 jmp short 063fdh ; eb 04 8632 8927 or byte [bp+01ch], 001h ; 80 4e 1c 01 8633 8928 lea sp, [bp-002h] ; 8d 66 fe … … 8635 8930 pop bp ; 5d 8636 8931 retn ; c3 8637 set_enable_a20_: ; 0xf6 0b6LB 0x2c8932 set_enable_a20_: ; 0xf6403 LB 0x2c 8638 8933 push bp ; 55 8639 8934 mov bp, sp ; 89 e5 … … 8648 8943 mov cl, al ; 88 c1 8649 8944 test bx, bx ; 85 db 8650 je short 06 0cfh ; 74 058945 je short 0641ch ; 74 05 8651 8946 or AL, strict byte 002h ; 0c 02 8652 8947 out DX, AL ; ee 8653 jmp short 06 0d2h ; eb 038948 jmp short 0641fh ; eb 03 8654 8949 and AL, strict byte 0fdh ; 24 fd 8655 8950 out DX, AL ; ee … … 8664 8959 pop bp ; 5d 8665 8960 retn ; c3 8666 set_e820_range_: ; 0xf6 0e2LB 0x8c8961 set_e820_range_: ; 0xf642f LB 0x8c 8667 8962 push si ; 56 8668 8963 push bp ; 55 … … 8693 8988 retn 0000ah ; c2 0a 00 8694 8989 db 0ech, 0e9h, 0d8h, 0c1h, 0c0h, 0bfh, 091h, 090h, 089h, 088h, 087h, 083h, 052h, 04fh, 041h, 024h 8695 db 000h, 0 0dh, 066h, 0adh, 061h, 0c0h, 061h, 055h, 062h, 05bh, 062h, 060h, 062h, 065h, 062h, 007h8696 db 06 3h, 0a4h, 064h, 0cah, 064h, 04eh, 062h, 04eh, 062h, 097h, 065h, 0bfh, 065h, 0d2h, 065h, 0e1h8697 db 06 5h, 055h, 062h, 0e8h, 065h8698 _int15_function: ; 0xf6 16eLB 0x4cd8990 db 000h, 05ah, 069h, 0fah, 064h, 00dh, 065h, 0a2h, 065h, 0a8h, 065h, 0adh, 065h, 0b2h, 065h, 054h 8991 db 066h, 0f1h, 067h, 017h, 068h, 09bh, 065h, 09bh, 065h, 0e4h, 068h, 00ch, 069h, 01fh, 069h, 02eh 8992 db 069h, 0a2h, 065h, 035h, 069h 8993 _int15_function: ; 0xf64bb LB 0x4cd 8699 8994 push bp ; 55 8700 8995 mov bp, sp ; 89 e5 … … 8706 9001 shr ax, 008h ; c1 e8 08 8707 9002 cmp ax, 000ech ; 3d ec 00 8708 jnbe near 06 60dh ; 0f 87 8b 049003 jnbe near 0695ah ; 0f 87 8b 04 8709 9004 push CS ; 0e 8710 9005 pop ES ; 07 8711 9006 mov cx, strict word 00012h ; b9 12 00 8712 mov di, 06 139h ; bf 39 619007 mov di, 06486h ; bf 86 64 8713 9008 repne scasb ; f2 ae 8714 9009 sal cx, 1 ; d1 e1 8715 9010 mov di, cx ; 89 cf 8716 mov si, word [cs:di+06 14ah] ; 2e 8b b5 4a 619011 mov si, word [cs:di+06497h] ; 2e 8b b5 97 64 8717 9012 mov ax, word [bp+012h] ; 8b 46 12 8718 9013 xor ah, ah ; 30 e4 … … 8727 9022 xor ah, ah ; 30 e4 8728 9023 cmp ax, 000c0h ; 3d c0 00 8729 jne near 06 60dh ; 0f 85 54 049024 jne near 0695ah ; 0f 85 54 04 8730 9025 or byte [bp+018h], 001h ; 80 4e 18 01 8731 jmp near 06 5b6h ; e9 f6 039026 jmp near 06903h ; e9 f6 03 8732 9027 mov dx, ax ; 89 c2 8733 9028 cmp ax, strict word 00001h ; 3d 01 00 8734 jc short 06 1d5h ; 72 0e8735 jbe short 06 1e9h ; 76 209029 jc short 06522h ; 72 0e 9030 jbe short 06536h ; 76 20 8736 9031 cmp ax, strict word 00003h ; 3d 03 00 8737 je short 06 216h ; 74 489032 je short 06563h ; 74 48 8738 9033 cmp ax, strict word 00002h ; 3d 02 00 8739 je short 06 1f9h ; 74 268740 jmp short 06 223h ; eb 4e9034 je short 06546h ; 74 26 9035 jmp short 06570h ; eb 4e 8741 9036 test ax, ax ; 85 c0 8742 jne short 06 223h ; 75 4a9037 jne short 06570h ; 75 4a 8743 9038 xor ax, ax ; 31 c0 8744 call 06 0b6h ; e8 d8 fe9039 call 06403h ; e8 d8 fe 8745 9040 and byte [bp+018h], 0feh ; 80 66 18 fe 8746 9041 mov byte [bp+013h], 000h ; c6 46 13 00 8747 jmp near 06 24eh ; e9 65 009042 jmp near 0659bh ; e9 65 00 8748 9043 mov ax, strict word 00001h ; b8 01 00 8749 call 06 0b6h ; e8 c7 fe9044 call 06403h ; e8 c7 fe 8750 9045 and byte [bp+018h], 0feh ; 80 66 18 fe 8751 9046 mov byte [bp+013h], dh ; 88 76 13 8752 jmp near 06 24eh ; e9 55 009047 jmp near 0659bh ; e9 55 00 8753 9048 mov dx, 00092h ; ba 92 00 8754 9049 in AL, DX ; ec … … 8762 9057 and byte [bp+018h], 0feh ; 80 66 18 fe 8763 9058 mov byte [bp+013h], ah ; 88 66 13 8764 jmp near 06 24eh ; e9 38 009059 jmp near 0659bh ; e9 38 00 8765 9060 and byte [bp+018h], 0feh ; 80 66 18 fe 8766 9061 mov byte [bp+013h], ah ; 88 66 13 8767 9062 mov word [bp+00ch], ax ; 89 46 0c 8768 jmp near 06 24eh ; e9 2b 008769 mov bx, 00da 2h ; bb a20d9063 jmp near 0659bh ; e9 2b 00 9064 mov bx, 00da0h ; bb a0 0d 8770 9065 mov cx, ds ; 8c d9 8771 9066 mov ax, strict word 00004h ; b8 04 00 8772 call 01931h ; e8 03 b79067 call 01931h ; e8 b6 b3 8773 9068 mov ax, word [bp+012h] ; 8b 46 12 8774 9069 xor ah, ah ; 30 e4 8775 9070 push ax ; 50 8776 push 008 36h ; 68 36089071 push 0082eh ; 68 2e 08 8777 9072 push strict byte 00004h ; 6a 04 8778 call 01972h ; e8 36 b79073 call 01972h ; e8 e9 b3 8779 9074 add sp, strict byte 00006h ; 83 c4 06 8780 9075 or byte [bp+018h], 001h ; 80 4e 18 01 … … 8789 9084 retn ; c3 8790 9085 mov word [bp+018h], bx ; 89 5e 18 8791 jmp near 06 301h ; e9 a6 009086 jmp near 0664eh ; e9 a6 00 8792 9087 mov word [bp+018h], bx ; 89 5e 18 8793 jmp short 06 24eh ; eb ee9088 jmp short 0659bh ; eb ee 8794 9089 mov word [bp+018h], cx ; 89 4e 18 8795 jmp short 06 24bh ; eb e69090 jmp short 06598h ; eb e6 8796 9091 test byte [bp+012h], 0ffh ; f6 46 12 ff 8797 je short 06 2d7h ; 74 6c9092 je short 06624h ; 74 6c 8798 9093 mov dx, 000a0h ; ba a0 00 8799 9094 mov ax, strict word 00040h ; b8 40 00 8800 call 01650h ; e8 dc b39095 call 01650h ; e8 8f b0 8801 9096 test AL, strict byte 001h ; a8 01 8802 jne near 06 5adh ; 0f 85 33 039097 jne near 068fah ; 0f 85 33 03 8803 9098 mov bx, strict word 00001h ; bb 01 00 8804 9099 mov dx, 000a0h ; ba a0 00 8805 9100 mov ax, strict word 00040h ; b8 40 00 8806 call 0165eh ; e8 d8 b39101 call 0165eh ; e8 8b b0 8807 9102 mov bx, word [bp+014h] ; 8b 5e 14 8808 9103 mov dx, 00098h ; ba 98 00 8809 9104 mov ax, strict word 00040h ; b8 40 00 8810 call 0167ah ; e8 e8 b39105 call 0167ah ; e8 9b b0 8811 9106 mov bx, word [bp+00ch] ; 8b 5e 0c 8812 9107 mov dx, 0009ah ; ba 9a 00 8813 9108 mov ax, strict word 00040h ; b8 40 00 8814 call 0167ah ; e8 dc b39109 call 0167ah ; e8 8f b0 8815 9110 mov bx, word [bp+00eh] ; 8b 5e 0e 8816 9111 mov dx, 0009ch ; ba 9c 00 8817 9112 mov ax, strict word 00040h ; b8 40 00 8818 call 0167ah ; e8 d0 b39113 call 0167ah ; e8 83 b0 8819 9114 mov bx, word [bp+010h] ; 8b 5e 10 8820 9115 mov dx, 0009eh ; ba 9e 00 8821 9116 mov ax, strict word 00040h ; b8 40 00 8822 call 0167ah ; e8 c4 b39117 call 0167ah ; e8 77 b0 8823 9118 and byte [bp+018h], 0feh ; 80 66 18 fe 8824 9119 mov dx, 000a1h ; ba a1 00 … … 8829 9124 out DX, AL ; ee 8830 9125 mov ax, strict word 0000bh ; b8 0b 00 8831 call 016ach ; e8 e3 b39126 call 016ach ; e8 96 b0 8832 9127 or AL, strict byte 040h ; 0c 40 8833 9128 movzx dx, al ; 0f b6 d0 8834 9129 mov ax, strict word 0000bh ; b8 0b 00 8835 call 016c9h ; e8 f5 b38836 jmp near 06 24eh ; e9 77 ff9130 call 016c9h ; e8 a8 b0 9131 jmp near 0659bh ; e9 77 ff 8837 9132 cmp ax, strict word 00001h ; 3d 01 00 8838 jne short 06 2f5h ; 75 199133 jne short 06642h ; 75 19 8839 9134 xor bx, bx ; 31 db 8840 9135 mov dx, 000a0h ; ba a0 00 8841 9136 mov ax, strict word 00040h ; b8 40 00 8842 call 0165eh ; e8 77 b39137 call 0165eh ; e8 2a b0 8843 9138 and byte [bp+018h], 0feh ; 80 66 18 fe 8844 9139 mov ax, strict word 0000bh ; b8 0b 00 8845 call 016ach ; e8 bb b39140 call 016ach ; e8 6e b0 8846 9141 and AL, strict byte 0bfh ; 24 bf 8847 jmp short 06 2cbh ; eb d69142 jmp short 06618h ; eb d6 8848 9143 mov word [bp+018h], bx ; 89 5e 18 8849 9144 mov ax, dx ; 89 d0 … … 8853 9148 or dx, ax ; 09 c2 8854 9149 mov word [bp+012h], dx ; 89 56 12 8855 jmp near 06 24eh ; e9 47 ff9150 jmp near 0659bh ; e9 47 ff 8856 9151 cli ; fa 8857 9152 mov ax, strict word 00001h ; b8 01 00 8858 call 06 0b6h ; e8 a8 fd9153 call 06403h ; e8 a8 fd 8859 9154 mov di, ax ; 89 c7 8860 9155 mov ax, word [bp+014h] ; 8b 46 14 … … 8866 9161 mov byte [bp-006h], dl ; 88 56 fa 8867 9162 cmp cx, ax ; 39 c1 8868 jnc short 06 32dh ; 73 059163 jnc short 0667ah ; 73 05 8869 9164 db 0feh, 0c2h 8870 9165 ; inc dl ; fe c2 … … 8874 9169 mov ax, word [bp+014h] ; 8b 46 14 8875 9170 mov bx, strict word 0002fh ; bb 2f 00 8876 call 0167ah ; e8 3e b39171 call 0167ah ; e8 f1 af 8877 9172 mov dx, word [bp+006h] ; 8b 56 06 8878 9173 add dx, strict byte 0000ah ; 83 c2 0a 8879 9174 mov ax, word [bp+014h] ; 8b 46 14 8880 9175 mov bx, cx ; 89 cb 8881 call 0167ah ; e8 30 b39176 call 0167ah ; e8 e3 af 8882 9177 movzx bx, byte [bp-006h] ; 0f b6 5e fa 8883 9178 mov dx, word [bp+006h] ; 8b 56 06 8884 9179 add dx, strict byte 0000ch ; 83 c2 0c 8885 9180 mov ax, word [bp+014h] ; 8b 46 14 8886 call 0165eh ; e8 04 b39181 call 0165eh ; e8 b7 af 8887 9182 mov dx, word [bp+006h] ; 8b 56 06 8888 9183 add dx, strict byte 0000dh ; 83 c2 0d 8889 9184 mov ax, word [bp+014h] ; 8b 46 14 8890 9185 mov bx, 00093h ; bb 93 00 8891 call 0165eh ; e8 f5 b29186 call 0165eh ; e8 a8 af 8892 9187 mov dx, word [bp+006h] ; 8b 56 06 8893 9188 add dx, strict byte 0000eh ; 83 c2 0e 8894 9189 mov ax, word [bp+014h] ; 8b 46 14 8895 9190 xor bx, bx ; 31 db 8896 call 0167ah ; e8 03 b39191 call 0167ah ; e8 b6 af 8897 9192 mov dx, word [bp+006h] ; 8b 56 06 8898 9193 add dx, strict byte 00020h ; 83 c2 20 8899 9194 mov ax, word [bp+014h] ; 8b 46 14 8900 9195 mov bx, strict word 0ffffh ; bb ff ff 8901 call 0167ah ; e8 f4 b29196 call 0167ah ; e8 a7 af 8902 9197 mov dx, word [bp+006h] ; 8b 56 06 8903 9198 add dx, strict byte 00022h ; 83 c2 22 8904 9199 mov ax, word [bp+014h] ; 8b 46 14 8905 9200 xor bx, bx ; 31 db 8906 call 0167ah ; e8 e6 b29201 call 0167ah ; e8 99 af 8907 9202 mov dx, word [bp+006h] ; 8b 56 06 8908 9203 add dx, strict byte 00024h ; 83 c2 24 8909 9204 mov ax, word [bp+014h] ; 8b 46 14 8910 9205 mov bx, strict word 0000fh ; bb 0f 00 8911 call 0165eh ; e8 bb b29206 call 0165eh ; e8 6e af 8912 9207 mov dx, word [bp+006h] ; 8b 56 06 8913 9208 add dx, strict byte 00025h ; 83 c2 25 8914 9209 mov ax, word [bp+014h] ; 8b 46 14 8915 9210 mov bx, 0009bh ; bb 9b 00 8916 call 0165eh ; e8 ac b29211 call 0165eh ; e8 5f af 8917 9212 mov dx, word [bp+006h] ; 8b 56 06 8918 9213 add dx, strict byte 00026h ; 83 c2 26 8919 9214 mov ax, word [bp+014h] ; 8b 46 14 8920 9215 xor bx, bx ; 31 db 8921 call 0167ah ; e8 ba b29216 call 0167ah ; e8 6d af 8922 9217 mov ax, ss ; 8c d0 8923 9218 mov cx, ax ; 89 c1 … … 8929 9224 mov ax, word [bp+014h] ; 8b 46 14 8930 9225 mov bx, strict word 0ffffh ; bb ff ff 8931 call 0167ah ; e8 9e b29226 call 0167ah ; e8 51 af 8932 9227 mov dx, word [bp+006h] ; 8b 56 06 8933 9228 add dx, strict byte 0002ah ; 83 c2 2a 8934 9229 mov ax, word [bp+014h] ; 8b 46 14 8935 9230 mov bx, cx ; 89 cb 8936 call 0167ah ; e8 90 b29231 call 0167ah ; e8 43 af 8937 9232 movzx bx, byte [bp-008h] ; 0f b6 5e f8 8938 9233 mov dx, word [bp+006h] ; 8b 56 06 8939 9234 add dx, strict byte 0002ch ; 83 c2 2c 8940 9235 mov ax, word [bp+014h] ; 8b 46 14 8941 call 0165eh ; e8 64 b29236 call 0165eh ; e8 17 af 8942 9237 mov dx, word [bp+006h] ; 8b 56 06 8943 9238 add dx, strict byte 0002dh ; 83 c2 2d 8944 9239 mov ax, word [bp+014h] ; 8b 46 14 8945 9240 mov bx, 00093h ; bb 93 00 8946 call 0165eh ; e8 55 b29241 call 0165eh ; e8 08 af 8947 9242 mov dx, word [bp+006h] ; 8b 56 06 8948 9243 add dx, strict byte 0002eh ; 83 c2 2e 8949 9244 mov ax, word [bp+014h] ; 8b 46 14 8950 9245 xor bx, bx ; 31 db 8951 call 0167ah ; e8 63 b29246 call 0167ah ; e8 16 af 8952 9247 mov si, word [bp+006h] ; 8b 76 06 8953 9248 mov es, [bp+014h] ; 8e 46 14 … … 8960 9255 mov word [00467h], sp ; 89 26 67 04 8961 9256 mov [00469h], ss ; 8c 16 69 04 8962 call 06 433h ; e8 00 009257 call 06780h ; e8 00 00 8963 9258 pop di ; 5f 8964 9259 add di, strict byte 0001bh ; 83 c7 1b … … 8983 9278 cld ; fc 8984 9279 rep movsw ; f3 a5 8985 call 06 467h ; e8 00 009280 call 067b4h ; e8 00 00 8986 9281 pop ax ; 58 8987 9282 push 0f000h ; 68 00 f0 … … 9004 9299 pop DS ; 1f 9005 9300 mov ax, di ; 89 f8 9006 call 06 0b6h ; e8 1e fc9301 call 06403h ; e8 1e fc 9007 9302 sti ; fb 9008 9303 mov byte [bp+013h], 000h ; c6 46 13 00 9009 9304 and byte [bp+018h], 0feh ; 80 66 18 fe 9010 jmp near 06 24eh ; e9 aa fd9305 jmp near 0659bh ; e9 aa fd 9011 9306 mov ax, strict word 00031h ; b8 31 00 9012 call 016ach ; e8 02 b29307 call 016ach ; e8 b5 ae 9013 9308 xor ah, ah ; 30 e4 9014 9309 mov dx, ax ; 89 c2 9015 9310 sal dx, 008h ; c1 e2 08 9016 9311 mov ax, strict word 00030h ; b8 30 00 9017 call 016ach ; e8 f5 b19312 call 016ach ; e8 a8 ae 9018 9313 xor ah, ah ; 30 e4 9019 9314 or dx, ax ; 09 c2 9020 9315 mov word [bp+012h], dx ; 89 56 12 9021 9316 cmp dx, strict byte 0ffc0h ; 83 fa c0 9022 jbe short 06 49dh ; 76 da9317 jbe short 067eah ; 76 da 9023 9318 mov word [bp+012h], strict word 0ffc0h ; c7 46 12 c0 ff 9024 jmp short 06 49dh ; eb d39319 jmp short 067eah ; eb d3 9025 9320 cli ; fa 9026 9321 mov ax, strict word 00001h ; b8 01 00 9027 call 06 0b6h ; e8 e5 fb9322 call 06403h ; e8 e5 fb 9028 9323 mov dx, word [bp+006h] ; 8b 56 06 9029 9324 add dx, strict byte 00038h ; 83 c2 38 9030 9325 mov ax, word [bp+014h] ; 8b 46 14 9031 9326 mov bx, strict word 0ffffh ; bb ff ff 9032 call 0167ah ; e8 9a b19327 call 0167ah ; e8 4d ae 9033 9328 mov dx, word [bp+006h] ; 8b 56 06 9034 9329 add dx, strict byte 0003ah ; 83 c2 3a 9035 9330 mov ax, word [bp+014h] ; 8b 46 14 9036 9331 xor bx, bx ; 31 db 9037 call 0167ah ; e8 8c b19332 call 0167ah ; e8 3f ae 9038 9333 mov dx, word [bp+006h] ; 8b 56 06 9039 9334 add dx, strict byte 0003ch ; 83 c2 3c 9040 9335 mov ax, word [bp+014h] ; 8b 46 14 9041 9336 mov bx, strict word 0000fh ; bb 0f 00 9042 call 0165eh ; e8 61 b19337 call 0165eh ; e8 14 ae 9043 9338 mov dx, word [bp+006h] ; 8b 56 06 9044 9339 add dx, strict byte 0003dh ; 83 c2 3d 9045 9340 mov ax, word [bp+014h] ; 8b 46 14 9046 9341 mov bx, 0009bh ; bb 9b 00 9047 call 0165eh ; e8 52 b19342 call 0165eh ; e8 05 ae 9048 9343 mov dx, word [bp+006h] ; 8b 56 06 9049 9344 add dx, strict byte 0003eh ; 83 c2 3e 9050 9345 mov ax, word [bp+014h] ; 8b 46 14 9051 9346 xor bx, bx ; 31 db 9052 call 0167ah ; e8 60 b19347 call 0167ah ; e8 13 ae 9053 9348 mov AL, strict byte 011h ; b0 11 9054 9349 mov dx, strict word 00020h ; ba 20 00 … … 9080 9375 out DX, AL ; ee 9081 9376 mov si, word [bp+006h] ; 8b 76 06 9082 call 06 55bh ; e8 00 009377 call 068a8h ; e8 00 00 9083 9378 pop di ; 5f 9084 9379 add di, strict byte 00018h ; 83 c7 18 … … 9108 9403 push cx ; 51 9109 9404 retf ; cb 9110 jmp near 06 24eh ; e9 b7 fc9111 mov bx, 00da 2h ; bb a20d9405 jmp near 0659bh ; e9 b7 fc 9406 mov bx, 00da0h ; bb a0 0d 9112 9407 mov cx, ds ; 8c d9 9113 9408 mov ax, strict word 00004h ; b8 04 00 9114 call 01931h ; e8 8f b39115 push 008 76h ; 68 76089409 call 01931h ; e8 42 b0 9410 push 0086eh ; 68 6e 08 9116 9411 push strict byte 00004h ; 6a 04 9117 call 01972h ; e8 c8 b39412 call 01972h ; e8 7b b0 9118 9413 add sp, strict byte 00004h ; 83 c4 04 9119 9414 or byte [bp+018h], 001h ; 80 4e 18 01 … … 9122 9417 or ah, 086h ; 80 cc 86 9123 9418 mov word [bp+012h], ax ; 89 46 12 9124 jmp near 06 24eh ; e9 8f fc9419 jmp near 0659bh ; e9 8f fc 9125 9420 mov word [bp+018h], cx ; 89 4e 18 9126 9421 mov word [bp+012h], ax ; 89 46 12 9127 9422 mov word [bp+00ch], 0e6f5h ; c7 46 0c f5 e6 9128 9423 mov word [bp+014h], 0f000h ; c7 46 14 00 f0 9129 jmp near 06 24eh ; e9 7c fc9424 jmp near 0659bh ; e9 7c fc 9130 9425 mov dx, strict word 0000eh ; ba 0e 00 9131 9426 mov ax, strict word 00040h ; b8 40 00 9132 call 0166ch ; e8 91 b09427 call 0166ch ; e8 44 ad 9133 9428 mov word [bp+014h], ax ; 89 46 14 9134 jmp near 06 49dh ; e9 bc fe9135 push 008 a5h ; 68 a5089429 jmp near 067eah ; e9 bc fe 9430 push 0089dh ; 68 9d 08 9136 9431 push strict byte 00008h ; 6a 08 9137 jmp short 06 5a7h ; eb bf9432 jmp short 068f4h ; eb bf 9138 9433 test byte [bp+012h], 0ffh ; f6 46 12 ff 9139 jne short 06 60dh ; 75 1f9434 jne short 0695ah ; 75 1f 9140 9435 mov word [bp+012h], ax ; 89 46 12 9141 9436 mov ax, word [bp+00ch] ; 8b 46 0c 9142 9437 xor ah, ah ; 30 e4 9143 9438 cmp ax, strict word 00001h ; 3d 01 00 9144 jc short 06 606h ; 72 0b9439 jc short 06953h ; 72 0b 9145 9440 cmp ax, strict word 00003h ; 3d 03 00 9146 jnbe short 06 606h ; 77 069441 jnbe short 06953h ; 77 06 9147 9442 mov word [bp+018h], cx ; 89 4e 18 9148 jmp near 06 24eh ; e9 48 fc9443 jmp near 0659bh ; e9 48 fc 9149 9444 or byte [bp+018h], 001h ; 80 4e 18 01 9150 jmp near 06 24eh ; e9 41 fc9151 mov bx, 00da 2h ; bb a20d9445 jmp near 0659bh ; e9 41 fc 9446 mov bx, 00da0h ; bb a0 0d 9152 9447 mov cx, ds ; 8c d9 9153 9448 mov ax, strict word 00004h ; b8 04 00 9154 call 01931h ; e8 19 b39449 call 01931h ; e8 cc af 9155 9450 push word [bp+00ch] ; ff 76 0c 9156 9451 push word [bp+012h] ; ff 76 12 9157 push 008b ch ; 68 bc089452 push 008b4h ; 68 b4 08 9158 9453 push strict byte 00004h ; 6a 04 9159 call 01972h ; e8 4c b39454 call 01972h ; e8 ff af 9160 9455 add sp, strict byte 00008h ; 83 c4 08 9161 jmp short 065adh ; eb 82 9162 in AL, strict byte 067h ; e4 67 9163 push ES ; 06 9164 push 06829h ; 68 29 68 9165 dec bx ; 4b 9166 push 0686bh ; 68 6b 68 9167 mov [bx+si-035h], gs ; 8c 68 cb 9168 push 068f7h ; 68 f7 68 9169 _int15_function32: ; 0xf663b LB 0x37e 9456 jmp short 068fah ; eb 82 9457 xor word [bp+di+053h], bp ; 31 6b 53 9458 imul si, word [bp+06bh], strict byte 0ff98h ; 6b 76 6b 98 9459 imul di, word [bx+si-02695h], strict byte 0006bh ; 6b b8 6b d9 6b 9460 sbb byte [si+044h], ch ; 18 6c 44 9461 insb ; 6c 9462 _int15_function32: ; 0xf6988 LB 0x37e 9170 9463 push bp ; 55 9171 9464 mov bp, sp ; 89 e5 … … 9179 9472 xor ah, ah ; 30 e4 9180 9473 cmp dx, 000e8h ; 81 fa e8 00 9181 je near 06 708h ; 0f 84 ad 009474 je near 06a55h ; 0f 84 ad 00 9182 9475 cmp dx, 000d0h ; 81 fa d0 00 9183 je short 06 6a3h ; 74 429476 je short 069f0h ; 74 42 9184 9477 cmp dx, 00086h ; 81 fa 86 00 9185 jne near 06 989h ; 0f 85 20 039478 jne near 06cd6h ; 0f 85 20 03 9186 9479 sti ; fb 9187 9480 mov ax, word [bp+01ch] ; 8b 46 1c … … 9202 9495 db 066h, 00bh, 0c9h 9203 9496 ; or ecx, ecx ; 66 0b c9 9204 je near 06 6a0h ; 0f 84 0e 009497 je near 069edh ; 0f 84 0e 00 9205 9498 in AL, strict byte 061h ; e4 61 9206 9499 and AL, strict byte 010h ; 24 10 9207 9500 db 03ah, 0c4h 9208 9501 ; cmp al, ah ; 3a c4 9209 je short 06 692h ; 74 f89502 je short 069dfh ; 74 f8 9210 9503 db 08ah, 0e0h 9211 9504 ; mov ah, al ; 8a e0 9212 9505 dec ecx ; 66 49 9213 jne short 06 692h ; 75 f29214 jmp near 06 9b3h ; e9 10 039506 jne short 069dfh ; 75 f2 9507 jmp near 06d00h ; e9 10 03 9215 9508 cmp ax, strict word 0004fh ; 3d 4f 00 9216 jne near 06 989h ; 0f 85 df 029509 jne near 06cd6h ; 0f 85 df 02 9217 9510 cmp word [bp+016h], 05052h ; 81 7e 16 52 50 9218 jne near 06 989h ; 0f 85 d6 029511 jne near 06cd6h ; 0f 85 d6 02 9219 9512 cmp word [bp+014h], 04f43h ; 81 7e 14 43 4f 9220 jne near 06 989h ; 0f 85 cd 029513 jne near 06cd6h ; 0f 85 cd 02 9221 9514 cmp word [bp+01eh], 04d4fh ; 81 7e 1e 4f 4d 9222 jne near 06 989h ; 0f 85 c4 029515 jne near 06cd6h ; 0f 85 c4 02 9223 9516 cmp word [bp+01ch], 04445h ; 81 7e 1c 45 44 9224 jne near 06 989h ; 0f 85 bb 029517 jne near 06cd6h ; 0f 85 bb 02 9225 9518 mov ax, word [bp+00ah] ; 8b 46 0a 9226 9519 or ax, word [bp+008h] ; 0b 46 08 9227 jne near 06 989h ; 0f 85 b1 029520 jne near 06cd6h ; 0f 85 b1 02 9228 9521 mov ax, word [bp+006h] ; 8b 46 06 9229 9522 or ax, word [bp+004h] ; 0b 46 04 9230 jne near 06 989h ; 0f 85 a7 029523 jne near 06cd6h ; 0f 85 a7 02 9231 9524 mov word [bp+028h], bx ; 89 5e 28 9232 9525 mov ax, word [bp+014h] ; 8b 46 14 … … 9239 9532 mov word [bp+006h], ax ; 89 46 06 9240 9533 mov dword [bp+020h], strict dword 049413332h ; 66 c7 46 20 32 33 41 49 9241 jmp near 06 9b3h ; e9 ab 029534 jmp near 06d00h ; e9 ab 02 9242 9535 cmp ax, strict word 00020h ; 3d 20 00 9243 je short 06 717h ; 74 0a9536 je short 06a64h ; 74 0a 9244 9537 cmp ax, strict word 00001h ; 3d 01 00 9245 je near 06 93eh ; 0f 84 2a 029246 jmp near 06 989h ; e9 72 029538 je near 06c8bh ; 0f 84 2a 02 9539 jmp near 06cd6h ; e9 72 02 9247 9540 cmp word [bp+01ah], 0534dh ; 81 7e 1a 4d 53 9248 jne near 06 989h ; 0f 85 69 029541 jne near 06cd6h ; 0f 85 69 02 9249 9542 cmp word [bp+018h], 04150h ; 81 7e 18 50 41 9250 jne near 06 989h ; 0f 85 60 029543 jne near 06cd6h ; 0f 85 60 02 9251 9544 mov ax, strict word 00035h ; b8 35 00 9252 call 016ach ; e8 7d af9545 call 016ach ; e8 30 ac 9253 9546 movzx bx, al ; 0f b6 d8 9254 9547 xor dx, dx ; 31 d2 … … 9256 9549 sal bx, 1 ; d1 e3 9257 9550 rcl dx, 1 ; d1 d2 9258 loop 06 737h ; e2 fa9551 loop 06a84h ; e2 fa 9259 9552 mov ax, strict word 00034h ; b8 34 00 9260 call 016ach ; e8 69 af9553 call 016ach ; e8 1c ac 9261 9554 xor ah, ah ; 30 e4 9262 9555 mov dx, bx ; 89 da … … 9266 9559 adc dx, 00100h ; 81 d2 00 01 9267 9560 cmp dx, 00100h ; 81 fa 00 01 9268 jc short 06 75dh ; 72 069269 jne short 06 78ah ; 75 319561 jc short 06aaah ; 72 06 9562 jne short 06ad7h ; 75 31 9270 9563 test bx, bx ; 85 db 9271 jnbe short 06 78ah ; 77 2d9564 jnbe short 06ad7h ; 77 2d 9272 9565 mov ax, strict word 00031h ; b8 31 00 9273 call 016ach ; e8 49 af9566 call 016ach ; e8 fc ab 9274 9567 movzx bx, al ; 0f b6 d8 9275 9568 xor dx, dx ; 31 d2 … … 9277 9570 sal bx, 1 ; d1 e3 9278 9571 rcl dx, 1 ; d1 d2 9279 loop 06 76bh ; e2 fa9572 loop 06ab8h ; e2 fa 9280 9573 mov ax, strict word 00030h ; b8 30 00 9281 call 016ach ; e8 35 af9574 call 016ach ; e8 e8 ab 9282 9575 xor ah, ah ; 30 e4 9283 9576 or bx, ax ; 09 c3 … … 9285 9578 sal bx, 1 ; d1 e3 9286 9579 rcl dx, 1 ; d1 d2 9287 loop 06 77eh ; e2 fa9580 loop 06acbh ; e2 fa 9288 9581 add bx, strict byte 00000h ; 83 c3 00 9289 9582 adc dx, strict byte 00010h ; 83 d2 10 9290 9583 mov ax, strict word 00062h ; b8 62 00 9291 call 016ach ; e8 1c af9584 call 016ach ; e8 cf ab 9292 9585 xor ah, ah ; 30 e4 9293 9586 mov word [bp-00ah], ax ; 89 46 f6 … … 9297 9590 sal word [bp-00ah], 1 ; d1 66 f6 9298 9591 rcl word [bp-008h], 1 ; d1 56 f8 9299 loop 06 79dh ; e2 f89592 loop 06aeah ; e2 f8 9300 9593 mov ax, strict word 00061h ; b8 61 00 9301 call 016ach ; e8 01 af9594 call 016ach ; e8 b4 ab 9302 9595 xor ah, ah ; 30 e4 9303 9596 or word [bp-00ah], ax ; 09 46 f6 … … 9306 9599 mov word [bp-00ah], strict word 00000h ; c7 46 f6 00 00 9307 9600 mov ax, strict word 00063h ; b8 63 00 9308 call 016ach ; e8 eb ae9601 call 016ach ; e8 9e ab 9309 9602 mov byte [bp-004h], al ; 88 46 fc 9310 9603 mov byte [bp-006h], al ; 88 46 fa 9311 9604 mov ax, word [bp+014h] ; 8b 46 14 9312 9605 cmp ax, strict word 00007h ; 3d 07 00 9313 jnbe near 06 989h ; 0f 87 b8 019606 jnbe near 06cd6h ; 0f 87 b8 01 9314 9607 mov si, ax ; 89 c6 9315 9608 add si, ax ; 01 c6 … … 9318 9611 mov ax, dx ; 89 d0 9319 9612 adc ax, strict word 0ffffh ; 15 ff ff 9320 jmp word [cs:si+06 62bh] ; 2e ff a4 2b 669613 jmp word [cs:si+06978h] ; 2e ff a4 78 69 9321 9614 push strict byte 00001h ; 6a 01 9322 9615 push dword 000000000h ; 66 6a 00 … … 9327 9620 xor bx, bx ; 31 db 9328 9621 xor cx, cx ; 31 c9 9329 call 06 0e2h ; e8 e7 f89622 call 0642fh ; e8 e7 f8 9330 9623 mov dword [bp+014h], strict dword 000000001h ; 66 c7 46 14 01 00 00 00 9331 jmp near 06 928h ; e9 22 019624 jmp near 06c75h ; e9 22 01 9332 9625 push strict byte 00002h ; 6a 02 9333 9626 push dword 000000000h ; 66 6a 00 … … 9338 9631 mov bx, 0fc00h ; bb 00 fc 9339 9632 mov cx, strict word 00009h ; b9 09 00 9340 call 06 0e2h ; e8 c4 f89633 call 0642fh ; e8 c4 f8 9341 9634 mov dword [bp+014h], strict dword 000000002h ; 66 c7 46 14 02 00 00 00 9342 jmp near 06 928h ; e9 ff 009635 jmp near 06c75h ; e9 ff 00 9343 9636 push strict byte 00002h ; 6a 02 9344 9637 push dword 000000000h ; 66 6a 00 … … 9349 9642 xor bx, bx ; 31 db 9350 9643 mov cx, strict word 0000fh ; b9 0f 00 9351 call 06 0e2h ; e8 a2 f89644 call 0642fh ; e8 a2 f8 9352 9645 mov dword [bp+014h], strict dword 000000003h ; 66 c7 46 14 03 00 00 00 9353 jmp near 06 928h ; e9 dd 009646 jmp near 06c75h ; e9 dd 00 9354 9647 push strict byte 00001h ; 6a 01 9355 9648 push dword 000000000h ; 66 6a 00 … … 9360 9653 xor bx, bx ; 31 db 9361 9654 mov cx, strict word 00010h ; b9 10 00 9362 call 06 0e2h ; e8 82 f89655 call 0642fh ; e8 82 f8 9363 9656 mov dword [bp+014h], strict dword 000000004h ; 66 c7 46 14 04 00 00 00 9364 jmp near 06 928h ; e9 bd 009657 jmp near 06c75h ; e9 bd 00 9365 9658 push strict byte 00003h ; 6a 03 9366 9659 push dword 000000000h ; 66 6a 00 … … 9372 9665 mov cx, ax ; 89 c1 9373 9666 mov ax, si ; 89 f0 9374 call 06 0e2h ; e8 61 f89667 call 0642fh ; e8 61 f8 9375 9668 mov dword [bp+014h], strict dword 000000005h ; 66 c7 46 14 05 00 00 00 9376 jmp near 06 928h ; e9 9c 009669 jmp near 06c75h ; e9 9c 00 9377 9670 push strict byte 00002h ; 6a 02 9378 9671 push dword 000000000h ; 66 6a 00 … … 9382 9675 xor bx, bx ; 31 db 9383 9676 mov cx, strict word 0fffch ; b9 fc ff 9384 call 06 0e2h ; e8 40 f89677 call 0642fh ; e8 40 f8 9385 9678 cmp byte [bp-004h], 000h ; 80 7e fc 00 9386 jne short 06 8afh ; 75 079679 jne short 06bfch ; 75 07 9387 9680 mov ax, word [bp-008h] ; 8b 46 f8 9388 9681 test ax, ax ; 85 c0 9389 je short 06 8c3h ; 74 149682 je short 06c10h ; 74 14 9390 9683 mov dword [bp+014h], strict dword 000000007h ; 66 c7 46 14 07 00 00 00 9391 jmp short 06 928h ; eb 6f9684 jmp short 06c75h ; eb 6f 9392 9685 mov dword [bp+014h], strict dword 000000006h ; 66 c7 46 14 06 00 00 00 9393 jmp short 06 928h ; eb 659686 jmp short 06c75h ; eb 65 9394 9687 mov word [bp+014h], ax ; 89 46 14 9395 9688 mov word [bp+016h], ax ; 89 46 16 9396 jmp short 06 928h ; eb 5d9689 jmp short 06c75h ; eb 5d 9397 9690 push strict byte 00002h ; 6a 02 9398 9691 push dword 000000000h ; 66 6a 00 … … 9402 9695 xor bx, bx ; 31 db 9403 9696 xor cx, cx ; 31 c9 9404 call 06 0e2h ; e8 02 f89697 call 0642fh ; e8 02 f8 9405 9698 cmp byte [bp-004h], 000h ; 80 7e fc 00 9406 jne short 06 8edh ; 75 079699 jne short 06c3ah ; 75 07 9407 9700 mov ax, word [bp-008h] ; 8b 46 f8 9408 9701 test ax, ax ; 85 c0 9409 je short 06 8efh ; 74 029410 jmp short 06 8afh ; eb c09702 je short 06c3ch ; 74 02 9703 jmp short 06bfch ; eb c0 9411 9704 mov word [bp+014h], ax ; 89 46 14 9412 9705 mov word [bp+016h], ax ; 89 46 16 9413 jmp short 06 928h ; eb 319706 jmp short 06c75h ; eb 31 9414 9707 cmp byte [bp-004h], 000h ; 80 7e fc 00 9415 jne short 06 903h ; 75 069708 jne short 06c50h ; 75 06 9416 9709 cmp word [bp-008h], strict byte 00000h ; 83 7e f8 00 9417 je short 06 928h ; 74 259710 je short 06c75h ; 74 25 9418 9711 push strict byte 00001h ; 6a 01 9419 9712 mov al, byte [bp-006h] ; 8a 46 fa … … 9428 9721 xor bx, bx ; 31 db 9429 9722 xor cx, cx ; 31 c9 9430 call 06 0e2h ; e8 c2 f79723 call 0642fh ; e8 c2 f7 9431 9724 xor ax, ax ; 31 c0 9432 9725 mov word [bp+014h], ax ; 89 46 14 … … 9435 9728 mov dword [bp+01ch], strict dword 000000014h ; 66 c7 46 1c 14 00 00 00 9436 9729 and byte [bp+028h], 0feh ; 80 66 28 fe 9437 jmp short 06 9b3h ; eb 759730 jmp short 06d00h ; eb 75 9438 9731 mov word [bp+028h], bx ; 89 5e 28 9439 9732 mov ax, strict word 00031h ; b8 31 00 9440 call 016ach ; e8 65 ad9733 call 016ach ; e8 18 aa 9441 9734 movzx dx, al ; 0f b6 d0 9442 9735 sal dx, 008h ; c1 e2 08 9443 9736 mov ax, strict word 00030h ; b8 30 00 9444 call 016ach ; e8 59 ad9737 call 016ach ; e8 0c aa 9445 9738 xor ah, ah ; 30 e4 9446 9739 or dx, ax ; 09 c2 9447 9740 mov word [bp+01ch], dx ; 89 56 1c 9448 9741 cmp dx, 03c00h ; 81 fa 00 3c 9449 jbe short 06 965h ; 76 059742 jbe short 06cb2h ; 76 05 9450 9743 mov word [bp+01ch], 03c00h ; c7 46 1c 00 3c 9451 9744 mov ax, strict word 00035h ; b8 35 00 9452 call 016ach ; e8 41 ad9745 call 016ach ; e8 f4 a9 9453 9746 movzx dx, al ; 0f b6 d0 9454 9747 sal dx, 008h ; c1 e2 08 9455 9748 mov ax, strict word 00034h ; b8 34 00 9456 call 016ach ; e8 35 ad9749 call 016ach ; e8 e8 a9 9457 9750 xor ah, ah ; 30 e4 9458 9751 or dx, ax ; 09 c2 … … 9461 9754 mov word [bp+020h], ax ; 89 46 20 9462 9755 mov word [bp+014h], dx ; 89 56 14 9463 jmp short 06 9b3h ; eb 2a9464 mov bx, 00da 2h ; bb a20d9756 jmp short 06d00h ; eb 2a 9757 mov bx, 00da0h ; bb a0 0d 9465 9758 mov cx, ds ; 8c d9 9466 9759 mov ax, strict word 00004h ; b8 04 00 9467 call 01931h ; e8 9d af9760 call 01931h ; e8 50 ac 9468 9761 push word [bp+014h] ; ff 76 14 9469 9762 push word [bp+020h] ; ff 76 20 9470 push 008b ch ; 68 bc089763 push 008b4h ; 68 b4 08 9471 9764 push strict byte 00004h ; 6a 04 9472 call 01972h ; e8 d0 af9765 call 01972h ; e8 83 ac 9473 9766 add sp, strict byte 00008h ; 83 c4 08 9474 9767 or byte [bp+028h], 001h ; 80 4e 28 01 … … 9481 9774 pop bp ; 5d 9482 9775 retn ; c3 9483 _inv_op_handler: ; 0xf6 9b9LB 0x1959776 _inv_op_handler: ; 0xf6d06 LB 0x195 9484 9777 push bp ; 55 9485 9778 mov bp, sp ; 89 e5 … … 9490 9783 les bx, [bp+018h] ; c4 5e 18 9491 9784 cmp byte [es:bx], 0f0h ; 26 80 3f f0 9492 jne short 06 9cfh ; 75 069785 jne short 06d1ch ; 75 06 9493 9786 inc word [bp+018h] ; ff 46 18 9494 jmp near 06 b47h ; e9 78 019787 jmp near 06e94h ; e9 78 01 9495 9788 cmp word [es:bx], 0050fh ; 26 81 3f 0f 05 9496 jne near 06 b43h ; 0f 85 6b 019789 jne near 06e90h ; 0f 85 6b 01 9497 9790 mov si, 00800h ; be 00 08 9498 9791 xor ax, ax ; 31 c0 … … 9522 9815 sal ax, 1 ; d1 e0 9523 9816 rcl dx, 1 ; d1 d2 9524 loop 06 a28h ; e2 fa9817 loop 06d75h ; e2 fa 9525 9818 cmp bx, dx ; 39 d3 9526 jne short 06 a36h ; 75 049819 jne short 06d83h ; 75 04 9527 9820 cmp di, ax ; 39 c7 9528 je short 06 a3bh ; 74 059821 je short 06d88h ; 74 05 9529 9822 mov word [bp-008h], strict word 00001h ; c7 46 f8 01 00 9530 9823 mov es, [bp-006h] ; 8e 46 fa … … 9536 9829 sal ax, 1 ; d1 e0 9537 9830 rcl dx, 1 ; d1 d2 9538 loop 06 a50h ; e2 fa9831 loop 06d9dh ; e2 fa 9539 9832 cmp di, dx ; 39 d7 9540 jne short 06 a5eh ; 75 049833 jne short 06dabh ; 75 04 9541 9834 cmp bx, ax ; 39 c3 9542 je short 06 a62h ; 74 049835 je short 06dafh ; 74 04 9543 9836 or byte [bp-008h], 002h ; 80 4e f8 02 9544 9837 push strict byte 00000h ; 6a 00 … … 9590 9883 mov ax, strict word 00008h ; b8 08 00 9591 9884 test cx, strict word 00001h ; f7 c1 01 00 9592 je near 06 b00h ; 0f 84 02 009885 je near 06e4dh ; 0f 84 02 00 9593 9886 mov es, ax ; 8e c0 9594 9887 test cx, strict word 00002h ; f7 c1 02 00 9595 je near 06 b28h ; 0f 84 20 009888 je near 06e75h ; 0f 84 20 00 9596 9889 mov bx, word [word ss:00000h] ; 36 8b 1e 00 00 9597 9890 mov word [word ss:00008h], bx ; 36 89 1e 08 00 … … 9610 9903 mov ss, [word ss:00020h] ; 36 8e 16 20 00 9611 9904 iret ; cf 9612 jmp short 06 b47h ; eb 049905 jmp short 06e94h ; eb 04 9613 9906 sti ; fb 9614 9907 hlt ; f4 9615 jmp short 06 b44h ; eb fd9908 jmp short 06e91h ; eb fd 9616 9909 lea sp, [bp-004h] ; 8d 66 fc 9617 9910 pop di ; 5f … … 9619 9912 pop bp ; 5d 9620 9913 retn ; c3 9621 init_rtc_: ; 0xf6 b4eLB 0x289914 init_rtc_: ; 0xf6e9b LB 0x28 9622 9915 push bp ; 55 9623 9916 mov bp, sp ; 89 e5 … … 9625 9918 mov dx, strict word 00026h ; ba 26 00 9626 9919 mov ax, strict word 0000ah ; b8 0a 00 9627 call 016c9h ; e8 6e ab9920 call 016c9h ; e8 21 a8 9628 9921 mov dx, strict word 00002h ; ba 02 00 9629 9922 mov ax, strict word 0000bh ; b8 0b 00 9630 call 016c9h ; e8 65 ab9923 call 016c9h ; e8 18 a8 9631 9924 mov ax, strict word 0000ch ; b8 0c 00 9632 call 016ach ; e8 42 ab9925 call 016ach ; e8 f5 a7 9633 9926 mov ax, strict word 0000dh ; b8 0d 00 9634 call 016ach ; e8 3c ab9927 call 016ach ; e8 ef a7 9635 9928 lea sp, [bp-002h] ; 8d 66 fe 9636 9929 pop dx ; 5a 9637 9930 pop bp ; 5d 9638 9931 retn ; c3 9639 rtc_updating_: ; 0xf6 b76LB 0x219932 rtc_updating_: ; 0xf6ec3 LB 0x21 9640 9933 push bp ; 55 9641 9934 mov bp, sp ; 89 e5 … … 9643 9936 mov dx, 061a8h ; ba a8 61 9644 9937 dec dx ; 4a 9645 je short 06 b8eh ; 74 0e9938 je short 06edbh ; 74 0e 9646 9939 mov ax, strict word 0000ah ; b8 0a 00 9647 call 016ach ; e8 26 ab9940 call 016ach ; e8 d9 a7 9648 9941 test AL, strict byte 080h ; a8 80 9649 jne short 06 b7dh ; 75 f39942 jne short 06ecah ; 75 f3 9650 9943 xor ax, ax ; 31 c0 9651 jmp short 06 b91h ; eb 039944 jmp short 06edeh ; eb 03 9652 9945 mov ax, strict word 00001h ; b8 01 00 9653 9946 lea sp, [bp-002h] ; 8d 66 fe … … 9655 9948 pop bp ; 5d 9656 9949 retn ; c3 9657 _int70_function: ; 0xf6 b97LB 0xbe9950 _int70_function: ; 0xf6ee4 LB 0xbe 9658 9951 push bp ; 55 9659 9952 mov bp, sp ; 89 e5 … … 9661 9954 push ax ; 50 9662 9955 mov ax, strict word 0000bh ; b8 0b 00 9663 call 016ach ; e8 0a ab9956 call 016ach ; e8 bd a7 9664 9957 mov dl, al ; 88 c2 9665 9958 mov byte [bp-004h], al ; 88 46 fc 9666 9959 mov ax, strict word 0000ch ; b8 0c 00 9667 call 016ach ; e8 ff aa9960 call 016ach ; e8 b2 a7 9668 9961 mov dh, al ; 88 c6 9669 9962 test dl, 060h ; f6 c2 60 9670 je near 06 c3ch ; 0f 84 86 009963 je near 06f89h ; 0f 84 86 00 9671 9964 test AL, strict byte 020h ; a8 20 9672 je short 06 bbeh ; 74 049965 je short 06f0bh ; 74 04 9673 9966 sti ; fb 9674 9967 int 04ah ; cd 4a 9675 9968 cli ; fa 9676 9969 test dh, 040h ; f6 c6 40 9677 je near 06 c3ch ; 0f 84 77 009970 je near 06f89h ; 0f 84 77 00 9678 9971 mov dx, 000a0h ; ba a0 00 9679 9972 mov ax, strict word 00040h ; b8 40 00 9680 call 01650h ; e8 82 aa9973 call 01650h ; e8 35 a7 9681 9974 test al, al ; 84 c0 9682 je short 06 c3ch ; 74 6a9975 je short 06f89h ; 74 6a 9683 9976 mov dx, 0009ch ; ba 9c 00 9684 9977 mov ax, strict word 00040h ; b8 40 00 9685 call 01688h ; e8 ad aa9978 call 01688h ; e8 60 a7 9686 9979 test dx, dx ; 85 d2 9687 jne short 06 c28h ; 75 499980 jne short 06f75h ; 75 49 9688 9981 cmp ax, 003d1h ; 3d d1 03 9689 jnc short 06 c28h ; 73 449982 jnc short 06f75h ; 73 44 9690 9983 mov dx, 00098h ; ba 98 00 9691 9984 mov ax, strict word 00040h ; b8 40 00 9692 call 0166ch ; e8 7f aa9985 call 0166ch ; e8 32 a7 9693 9986 mov si, ax ; 89 c6 9694 9987 mov dx, 0009ah ; ba 9a 00 9695 9988 mov ax, strict word 00040h ; b8 40 00 9696 call 0166ch ; e8 74 aa9989 call 0166ch ; e8 27 a7 9697 9990 mov cx, ax ; 89 c1 9698 9991 xor bx, bx ; 31 db 9699 9992 mov dx, 000a0h ; ba a0 00 9700 9993 mov ax, strict word 00040h ; b8 40 00 9701 call 0165eh ; e8 59 aa9994 call 0165eh ; e8 0c a7 9702 9995 mov al, byte [bp-004h] ; 8a 46 fc 9703 9996 and AL, strict byte 037h ; 24 37 9704 9997 movzx dx, al ; 0f b6 d0 9705 9998 mov ax, strict word 0000bh ; b8 0b 00 9706 call 016c9h ; e8 b6 aa9999 call 016c9h ; e8 69 a7 9707 10000 mov dx, cx ; 89 ca 9708 10001 mov ax, si ; 89 f0 9709 call 01650h ; e8 36 aa10002 call 01650h ; e8 e9 a6 9710 10003 or AL, strict byte 080h ; 0c 80 9711 10004 movzx bx, al ; 0f b6 d8 9712 10005 mov dx, cx ; 89 ca 9713 10006 mov ax, si ; 89 f0 9714 call 0165eh ; e8 38 aa9715 jmp short 06 c3ch ; eb 1410007 call 0165eh ; e8 eb a6 10008 jmp short 06f89h ; eb 14 9716 10009 mov bx, ax ; 89 c3 9717 10010 add bx, 0fc2fh ; 81 c3 2f fc … … 9720 10013 mov dx, 0009ch ; ba 9c 00 9721 10014 mov ax, strict word 00040h ; b8 40 00 9722 call 0169ah ; e8 5e aa9723 call 0e030h ; e8 f1 7310015 call 0169ah ; e8 11 a7 10016 call 0e030h ; e8 a4 70 9724 10017 lea sp, [bp-002h] ; 8d 66 fe 9725 10018 pop si ; 5e 9726 10019 pop bp ; 5d 9727 10020 retn ; c3 9728 insb ; 6c 9729 insb ; 6c 9730 xchg bp, ax ; 95 9731 insb ; 6c 9732 mov dx, 0ec6ch ; ba 6c ec 9733 insb ; 6c 9734 cmp bp, word [di+073h] ; 3b 6d 73 9735 insw ; 6d 9736 mov DH, strict byte 06dh ; b6 6d 9737 db 00dh 9738 outsb ; 6e 9739 _int1a_function: ; 0xf6c55 LB 0x1c8 10021 mov cx, 0e26fh ; b9 6f e2 10022 outsw ; 6f 10023 pop ES ; 07 10024 jo short 06fd2h ; 70 39 10025 jo short 06f23h ; 70 88 10026 jo short 06f5dh ; 70 c0 10027 jo short 06fa2h ; 70 03 10028 jno short 06ffbh ; 71 5a 10029 db 071h 10030 _int1a_function: ; 0xf6fa2 LB 0x1c8 9740 10031 push bp ; 55 9741 10032 mov bp, sp ; 89 e5 … … 9743 10034 mov al, byte [bp+013h] ; 8a 46 13 9744 10035 cmp AL, strict byte 007h ; 3c 07 9745 jnbe near 06 c91h ; 0f 87 2f 0010036 jnbe near 06fdeh ; 0f 87 2f 00 9746 10037 movzx bx, al ; 0f b6 d8 9747 10038 add bx, bx ; 01 db 9748 jmp word [cs:bx+06 c45h] ; 2e ff a7 45 6c10039 jmp word [cs:bx+06f92h] ; 2e ff a7 92 6f 9749 10040 cli ; fa 9750 10041 mov bx, 0046eh ; bb 6e 04 … … 9777 10068 sti ; fb 9778 10069 mov byte [bp+013h], 000h ; c6 46 13 00 9779 jmp short 06 c91h ; eb d79780 call 06 b76h ; e8 b9 fe10070 jmp short 06fdeh ; eb d7 10071 call 06ec3h ; e8 b9 fe 9781 10072 test ax, ax ; 85 c0 9782 je short 0 6cc3h ; 74 029783 jmp short 06 c91h ; eb ce10073 je short 07010h ; 74 02 10074 jmp short 06fdeh ; eb ce 9784 10075 xor ax, ax ; 31 c0 9785 call 016ach ; e8 e4 a910076 call 016ach ; e8 97 a6 9786 10077 mov byte [bp+00fh], al ; 88 46 0f 9787 10078 mov ax, strict word 00002h ; b8 02 00 9788 call 016ach ; e8 db a910079 call 016ach ; e8 8e a6 9789 10080 mov byte [bp+010h], al ; 88 46 10 9790 10081 mov ax, strict word 00004h ; b8 04 00 9791 call 016ach ; e8 d2 a910082 call 016ach ; e8 85 a6 9792 10083 mov bl, al ; 88 c3 9793 10084 mov byte [bp+011h], al ; 88 46 11 9794 10085 mov ax, strict word 0000bh ; b8 0b 00 9795 call 016ach ; e8 c7 a910086 call 016ach ; e8 7a a6 9796 10087 and AL, strict byte 001h ; 24 01 9797 10088 mov byte [bp+00eh], al ; 88 46 0e 9798 jmp short 0 6d31h ; eb 459799 call 06 b76h ; e8 87 fe10089 jmp short 0707eh ; eb 45 10090 call 06ec3h ; e8 87 fe 9800 10091 test ax, ax ; 85 c0 9801 je short 0 6cf6h ; 74 039802 call 06 b4eh ; e8 58 fe10092 je short 07043h ; 74 03 10093 call 06e9bh ; e8 58 fe 9803 10094 movzx dx, byte [bp+00fh] ; 0f b6 56 0f 9804 10095 xor ax, ax ; 31 c0 9805 call 016c9h ; e8 ca a910096 call 016c9h ; e8 7d a6 9806 10097 movzx dx, byte [bp+010h] ; 0f b6 56 10 9807 10098 mov ax, strict word 00002h ; b8 02 00 9808 call 016c9h ; e8 c0 a910099 call 016c9h ; e8 73 a6 9809 10100 movzx dx, byte [bp+011h] ; 0f b6 56 11 9810 10101 mov ax, strict word 00004h ; b8 04 00 9811 call 016c9h ; e8 b6 a910102 call 016c9h ; e8 69 a6 9812 10103 mov ax, strict word 0000bh ; b8 0b 00 9813 call 016ach ; e8 93 a910104 call 016ach ; e8 46 a6 9814 10105 mov bl, al ; 88 c3 9815 10106 and bl, 060h ; 80 e3 60 … … 9820 10111 movzx dx, bl ; 0f b6 d3 9821 10112 mov ax, strict word 0000bh ; b8 0b 00 9822 call 016c9h ; e8 98 a910113 call 016c9h ; e8 4b a6 9823 10114 mov byte [bp+013h], 000h ; c6 46 13 00 9824 10115 mov byte [bp+012h], bl ; 88 5e 12 9825 jmp near 06 c91h ; e9 56 ff10116 jmp near 06fdeh ; e9 56 ff 9826 10117 mov byte [bp+013h], 000h ; c6 46 13 00 9827 call 06 b76h ; e8 34 fe10118 call 06ec3h ; e8 34 fe 9828 10119 test ax, ax ; 85 c0 9829 je short 0 6d49h ; 74 039830 jmp near 06 c91h ; e9 48 ff10120 je short 07096h ; 74 03 10121 jmp near 06fdeh ; e9 48 ff 9831 10122 mov ax, strict word 00009h ; b8 09 00 9832 call 016ach ; e8 5d a910123 call 016ach ; e8 10 a6 9833 10124 mov byte [bp+010h], al ; 88 46 10 9834 10125 mov ax, strict word 00008h ; b8 08 00 9835 call 016ach ; e8 54 a910126 call 016ach ; e8 07 a6 9836 10127 mov byte [bp+00fh], al ; 88 46 0f 9837 10128 mov ax, strict word 00007h ; b8 07 00 9838 call 016ach ; e8 4b a910129 call 016ach ; e8 fe a5 9839 10130 mov byte [bp+00eh], al ; 88 46 0e 9840 10131 mov ax, strict word 00032h ; b8 32 00 9841 call 016ach ; e8 42 a910132 call 016ach ; e8 f5 a5 9842 10133 mov byte [bp+011h], al ; 88 46 11 9843 10134 mov byte [bp+012h], al ; 88 46 12 9844 jmp near 06 c91h ; e9 1e ff9845 call 06 b76h ; e8 00 fe10135 jmp near 06fdeh ; e9 1e ff 10136 call 06ec3h ; e8 00 fe 9846 10137 test ax, ax ; 85 c0 9847 je short 0 6d80h ; 74 069848 call 06 b4eh ; e8 d1 fd9849 jmp near 06 c91h ; e9 11 ff10138 je short 070cdh ; 74 06 10139 call 06e9bh ; e8 d1 fd 10140 jmp near 06fdeh ; e9 11 ff 9850 10141 movzx dx, byte [bp+010h] ; 0f b6 56 10 9851 10142 mov ax, strict word 00009h ; b8 09 00 9852 call 016c9h ; e8 3f a910143 call 016c9h ; e8 f2 a5 9853 10144 movzx dx, byte [bp+00fh] ; 0f b6 56 0f 9854 10145 mov ax, strict word 00008h ; b8 08 00 9855 call 016c9h ; e8 35 a910146 call 016c9h ; e8 e8 a5 9856 10147 movzx dx, byte [bp+00eh] ; 0f b6 56 0e 9857 10148 mov ax, strict word 00007h ; b8 07 00 9858 call 016c9h ; e8 2b a910149 call 016c9h ; e8 de a5 9859 10150 movzx dx, byte [bp+011h] ; 0f b6 56 11 9860 10151 mov ax, strict word 00032h ; b8 32 00 9861 call 016c9h ; e8 21 a910152 call 016c9h ; e8 d4 a5 9862 10153 mov ax, strict word 0000bh ; b8 0b 00 9863 call 016ach ; e8 fe a810154 call 016ach ; e8 b1 a5 9864 10155 mov bl, al ; 88 c3 9865 10156 and bl, 07fh ; 80 e3 7f 9866 jmp near 0 6d28h ; e9 72 ff10157 jmp near 07075h ; e9 72 ff 9867 10158 mov ax, strict word 0000bh ; b8 0b 00 9868 call 016ach ; e8 f0 a810159 call 016ach ; e8 a3 a5 9869 10160 mov bl, al ; 88 c3 9870 10161 mov word [bp+012h], strict word 00000h ; c7 46 12 00 00 9871 10162 test AL, strict byte 020h ; a8 20 9872 je short 0 6dcah ; 74 039873 jmp near 06 c91h ; e9 c7 fe9874 call 06 b76h ; e8 a9 fd10163 je short 07117h ; 74 03 10164 jmp near 06fdeh ; e9 c7 fe 10165 call 06ec3h ; e8 a9 fd 9875 10166 test ax, ax ; 85 c0 9876 je short 0 6dd4h ; 74 039877 call 06 b4eh ; e8 7a fd10167 je short 07121h ; 74 03 10168 call 06e9bh ; e8 7a fd 9878 10169 movzx dx, byte [bp+00fh] ; 0f b6 56 0f 9879 10170 mov ax, strict word 00001h ; b8 01 00 9880 call 016c9h ; e8 eb a810171 call 016c9h ; e8 9e a5 9881 10172 movzx dx, byte [bp+010h] ; 0f b6 56 10 9882 10173 mov ax, strict word 00003h ; b8 03 00 9883 call 016c9h ; e8 e1 a810174 call 016c9h ; e8 94 a5 9884 10175 movzx dx, byte [bp+011h] ; 0f b6 56 11 9885 10176 mov ax, strict word 00005h ; b8 05 00 9886 call 016c9h ; e8 d7 a810177 call 016c9h ; e8 8a a5 9887 10178 mov dx, 000a1h ; ba a1 00 9888 10179 in AL, DX ; ec … … 9896 10187 movzx dx, al ; 0f b6 d0 9897 10188 mov ax, strict word 0000bh ; b8 0b 00 9898 call 016c9h ; e8 bf a89899 jmp near 06 c91h ; e9 84 fe10189 call 016c9h ; e8 72 a5 10190 jmp near 06fdeh ; e9 84 fe 9900 10191 mov ax, strict word 0000bh ; b8 0b 00 9901 call 016ach ; e8 99 a810192 call 016ach ; e8 4c a5 9902 10193 mov bl, al ; 88 c3 9903 10194 and AL, strict byte 057h ; 24 57 9904 10195 movzx dx, al ; 0f b6 d0 9905 jmp near 0 6d2bh ; e9 0e ff9906 send_to_mouse_ctrl_: ; 0xf 6e1dLB 0x3410196 jmp near 07078h ; e9 0e ff 10197 send_to_mouse_ctrl_: ; 0xf716a LB 0x34 9907 10198 push bp ; 55 9908 10199 mov bp, sp ; 89 e5 … … 9915 10206 ; sub ah, ah ; 2a e4 9916 10207 test AL, strict byte 002h ; a8 02 9917 je short 0 6e3ch ; 74 0e9918 push 008 f6h ; 68 f6089919 push 0116 ah ; 68 6a1110208 je short 07189h ; 74 0e 10209 push 008eeh ; 68 ee 08 10210 push 01168h ; 68 68 11 9920 10211 push strict byte 00007h ; 6a 07 9921 call 01972h ; e8 39 ab10212 call 01972h ; e8 ec a7 9922 10213 add sp, strict byte 00006h ; 83 c4 06 9923 10214 mov AL, strict byte 0d4h ; b0 d4 … … 9933 10224 pop bp ; 5d 9934 10225 retn ; c3 9935 get_mouse_data_: ; 0xf 6e51LB 0x3b10226 get_mouse_data_: ; 0xf719e LB 0x3b 9936 10227 push bp ; 55 9937 10228 mov bp, sp ; 89 e5 … … 9947 10238 and ax, strict word 00021h ; 25 21 00 9948 10239 cmp ax, strict word 00021h ; 3d 21 00 9949 je short 0 6e72h ; 74 0710240 je short 071bfh ; 74 07 9950 10241 test cx, cx ; 85 c9 9951 je short 0 6e72h ; 74 0310242 je short 071bfh ; 74 03 9952 10243 dec cx ; 49 9953 jmp short 0 6e5dh ; eb eb10244 jmp short 071aah ; eb eb 9954 10245 test cx, cx ; 85 c9 9955 jne short 0 6e7ah ; 75 0410246 jne short 071c7h ; 75 04 9956 10247 mov AL, strict byte 001h ; b0 01 9957 jmp short 0 6e85h ; eb 0b10248 jmp short 071d2h ; eb 0b 9958 10249 mov dx, strict word 00060h ; ba 60 00 9959 10250 in AL, DX ; ec … … 9967 10258 pop bp ; 5d 9968 10259 retn ; c3 9969 set_kbd_command_byte_: ; 0xf 6e8cLB 0x3210260 set_kbd_command_byte_: ; 0xf71d9 LB 0x32 9970 10261 push bp ; 55 9971 10262 mov bp, sp ; 89 e5 … … 9978 10269 ; sub ah, ah ; 2a e4 9979 10270 test AL, strict byte 002h ; a8 02 9980 je short 0 6eabh ; 74 0e9981 push 00 900h ; 68 00 099982 push 0116 ah ; 68 6a1110271 je short 071f8h ; 74 0e 10272 push 008f8h ; 68 f8 08 10273 push 01168h ; 68 68 11 9983 10274 push strict byte 00007h ; 6a 07 9984 call 01972h ; e8 ca aa10275 call 01972h ; e8 7d a7 9985 10276 add sp, strict byte 00006h ; 83 c4 06 9986 10277 mov AL, strict byte 060h ; b0 60 … … 9995 10286 pop bp ; 5d 9996 10287 retn ; c3 9997 _int74_function: ; 0xf 6ebeLB 0xca10288 _int74_function: ; 0xf720b LB 0xca 9998 10289 push bp ; 55 9999 10290 mov bp, sp ; 89 e5 … … 10001 10292 mov dx, strict word 0000eh ; ba 0e 00 10002 10293 mov ax, strict word 00040h ; b8 40 00 10003 call 0166ch ; e8 9f a710294 call 0166ch ; e8 52 a4 10004 10295 mov cx, ax ; 89 c1 10005 10296 mov word [bp+004h], strict word 00000h ; c7 46 04 00 00 … … 10010 10301 and AL, strict byte 021h ; 24 21 10011 10302 cmp AL, strict byte 021h ; 3c 21 10012 jne near 0 6f74h ; 0f 85 92 0010303 jne near 072c1h ; 0f 85 92 00 10013 10304 mov dx, strict word 00060h ; ba 60 00 10014 10305 in AL, DX ; ec … … 10018 10309 mov dx, strict word 00026h ; ba 26 00 10019 10310 mov ax, cx ; 89 c8 10020 call 01650h ; e8 5e a710311 call 01650h ; e8 11 a4 10021 10312 mov byte [bp-006h], al ; 88 46 fa 10022 10313 mov dx, strict word 00027h ; ba 27 00 10023 10314 mov ax, cx ; 89 c8 10024 call 01650h ; e8 53 a710315 call 01650h ; e8 06 a4 10025 10316 mov byte [bp-008h], al ; 88 46 f8 10026 10317 test AL, strict byte 080h ; a8 80 10027 je short 0 6f74h ; 74 7010318 je short 072c1h ; 74 70 10028 10319 mov al, byte [bp-008h] ; 8a 46 f8 10029 10320 and AL, strict byte 007h ; 24 07 … … 10036 10327 add dx, strict byte 00028h ; 83 c2 28 10037 10328 mov ax, cx ; 89 c8 10038 call 0165eh ; e8 3d a710329 call 0165eh ; e8 f0 a3 10039 10330 mov al, byte [bp-004h] ; 8a 46 fc 10040 10331 cmp al, byte [bp-002h] ; 3a 46 fe 10041 jc short 0 6f65h ; 72 3c10332 jc short 072b2h ; 72 3c 10042 10333 mov dx, strict word 00028h ; ba 28 00 10043 10334 mov ax, cx ; 89 c8 10044 call 01650h ; e8 1f a710335 call 01650h ; e8 d2 a3 10045 10336 xor ah, ah ; 30 e4 10046 10337 mov word [bp+00ch], ax ; 89 46 0c 10047 10338 mov dx, strict word 00029h ; ba 29 00 10048 10339 mov ax, cx ; 89 c8 10049 call 01650h ; e8 12 a710340 call 01650h ; e8 c5 a3 10050 10341 xor ah, ah ; 30 e4 10051 10342 mov word [bp+00ah], ax ; 89 46 0a 10052 10343 mov dx, strict word 0002ah ; ba 2a 00 10053 10344 mov ax, cx ; 89 c8 10054 call 01650h ; e8 05 a710345 call 01650h ; e8 b8 a3 10055 10346 xor ah, ah ; 30 e4 10056 10347 mov word [bp+008h], ax ; 89 46 08 … … 10059 10350 mov byte [bp-006h], ah ; 88 66 fa 10060 10351 test byte [bp-008h], 080h ; f6 46 f8 80 10061 je short 0 6f68h ; 74 0a10352 je short 072b5h ; 74 0a 10062 10353 mov word [bp+004h], strict word 00001h ; c7 46 04 01 00 10063 jmp short 0 6f68h ; eb 0310354 jmp short 072b5h ; eb 03 10064 10355 inc byte [bp-006h] ; fe 46 fa 10065 10356 movzx bx, byte [bp-006h] ; 0f b6 5e fa 10066 10357 mov dx, strict word 00026h ; ba 26 00 10067 10358 mov ax, cx ; 89 c8 10068 call 0165eh ; e8 ea a610359 call 0165eh ; e8 9d a3 10069 10360 mov sp, bp ; 89 ec 10070 10361 pop bp ; 5d 10071 10362 retn ; c3 10072 int3 ; cc 10073 outsw ; 6f 10074 inc dx ; 42 10075 jo short 06f42h ; 70 c5 10076 jo short 06fd5h ; 70 56 10077 jno short 06f45h ; 71 c4 10078 jno short 06f9bh ; 71 18 10079 jo short 06f71h ; 70 ec 10080 jno short 06f38h ; 71 b1 10081 db 072h 10082 _int15_function_mouse: ; 0xf6f88 LB 0x38b 10363 sbb word [bp+di-071h], si ; 19 73 8f 10364 jnc short 072dch ; 73 12 10365 je short 0726fh ; 74 a3 10366 je short 072dfh ; 74 11 10367 jne short 07335h ; 75 65 10368 jnc short 0730bh ; 73 39 10369 jne short 072d2h ; 75 fe 10370 db 075h 10371 _int15_function_mouse: ; 0xf72d5 LB 0x38b 10083 10372 push bp ; 55 10084 10373 mov bp, sp ; 89 e5 … … 10087 10376 mov dx, strict word 0000eh ; ba 0e 00 10088 10377 mov ax, strict word 00040h ; b8 40 00 10089 call 0166ch ; e8 d4 a610378 call 0166ch ; e8 87 a3 10090 10379 mov cx, ax ; 89 c1 10091 10380 cmp byte [bp+012h], 007h ; 80 7e 12 07 10092 jbe short 0 6fabh ; 76 0b10381 jbe short 072f8h ; 76 0b 10093 10382 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10094 10383 mov byte [bp+013h], 001h ; c6 46 13 01 10095 jmp near 07 30dh ; e9 62 0310384 jmp near 0765ah ; e9 62 03 10096 10385 mov ax, strict word 00065h ; b8 65 00 10097 call 0 6e8ch ; e8 db fe10386 call 071d9h ; e8 db fe 10098 10387 and word [bp+018h], strict byte 0fffeh ; 83 66 18 fe 10099 10388 mov byte [bp+013h], 000h ; c6 46 13 00 10100 10389 mov al, byte [bp+012h] ; 8a 46 12 10101 10390 cmp AL, strict byte 007h ; 3c 07 10102 jnbe near 07 2f4h ; 0f 87 32 0310391 jnbe near 07641h ; 0f 87 32 03 10103 10392 movzx si, al ; 0f b6 f0 10104 10393 add si, si ; 01 f6 10105 jmp word [cs:si+0 6f78h] ; 2e ff a4 78 6f10394 jmp word [cs:si+072c5h] ; 2e ff a4 c5 72 10106 10395 cmp byte [bp+00dh], 001h ; 80 7e 0d 01 10107 jnbe near 07 2ffh ; 0f 87 2b 0310396 jnbe near 0764ch ; 0f 87 2b 03 10108 10397 mov dx, strict word 00027h ; ba 27 00 10109 10398 mov ax, cx ; 89 c8 10110 call 01650h ; e8 74 a610399 call 01650h ; e8 27 a3 10111 10400 test AL, strict byte 080h ; a8 80 10112 jne short 0 6febh ; 75 0b10401 jne short 07338h ; 75 0b 10113 10402 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10114 10403 mov byte [bp+013h], 005h ; c6 46 13 05 10115 jmp near 07 307h ; e9 1c 0310404 jmp near 07654h ; e9 1c 03 10116 10405 cmp byte [bp+00dh], 000h ; 80 7e 0d 00 10117 10406 db 00fh, 094h, 0c0h … … 10119 10408 add AL, strict byte 0f4h ; 04 f4 10120 10409 xor ah, ah ; 30 e4 10121 call 0 6e1dh ; e8 24 fe10410 call 0716ah ; e8 24 fe 10122 10411 test al, al ; 84 c0 10123 jne near 07 28dh ; 0f 85 8e 0210412 jne near 075dah ; 0f 85 8e 02 10124 10413 mov dx, ss ; 8c d2 10125 10414 lea ax, [bp-008h] ; 8d 46 f8 10126 call 0 6e51h ; e8 4a fe10415 call 0719eh ; e8 4a fe 10127 10416 test al, al ; 84 c0 10128 je near 07 307h ; 0f 84 fa 0210417 je near 07654h ; 0f 84 fa 02 10129 10418 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 10130 jne near 07 28dh ; 0f 85 78 0210131 jmp near 07 307h ; e9 ef 0210419 jne near 075dah ; 0f 85 78 02 10420 jmp near 07654h ; e9 ef 02 10132 10421 mov al, byte [bp+00dh] ; 8a 46 0d 10133 10422 cmp AL, strict byte 001h ; 3c 01 10134 jc short 07 023h ; 72 0410423 jc short 07370h ; 72 04 10135 10424 cmp AL, strict byte 008h ; 3c 08 10136 jbe short 07 026h ; 76 0310137 jmp near 07 1b9h ; e9 93 0110425 jbe short 07373h ; 76 03 10426 jmp near 07506h ; e9 93 01 10138 10427 mov dx, strict word 00027h ; ba 27 00 10139 10428 mov ax, cx ; 89 c8 10140 call 01650h ; e8 22 a610429 call 01650h ; e8 d5 a2 10141 10430 mov ah, byte [bp+00dh] ; 8a 66 0d 10142 10431 db 0feh, 0cch … … 10147 10436 mov dx, strict word 00027h ; ba 27 00 10148 10437 mov ax, cx ; 89 c8 10149 call 0165eh ; e8 1c a610438 call 0165eh ; e8 cf a2 10150 10439 mov dx, strict word 00026h ; ba 26 00 10151 10440 mov ax, cx ; 89 c8 10152 call 01650h ; e8 06 a610441 call 01650h ; e8 b9 a2 10153 10442 and AL, strict byte 0f8h ; 24 f8 10154 10443 movzx bx, al ; 0f b6 d8 10155 10444 mov dx, strict word 00026h ; ba 26 00 10156 10445 mov ax, cx ; 89 c8 10157 call 0165eh ; e8 07 a610446 call 0165eh ; e8 ba a2 10158 10447 mov ax, 000ffh ; b8 ff 00 10159 call 0 6e1dh ; e8 c0 fd10448 call 0716ah ; e8 c0 fd 10160 10449 test al, al ; 84 c0 10161 jne near 07 28dh ; 0f 85 2a 0210450 jne near 075dah ; 0f 85 2a 02 10162 10451 mov dx, ss ; 8c d2 10163 10452 lea ax, [bp-004h] ; 8d 46 fc 10164 call 0 6e51h ; e8 e6 fd10453 call 0719eh ; e8 e6 fd 10165 10454 mov cl, al ; 88 c1 10166 10455 cmp byte [bp-004h], 0feh ; 80 7e fc fe 10167 jne short 07 07eh ; 75 0b10456 jne short 073cbh ; 75 0b 10168 10457 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10169 10458 mov byte [bp+013h], 004h ; c6 46 13 04 10170 jmp near 07 307h ; e9 89 0210459 jmp near 07654h ; e9 89 02 10171 10460 cmp byte [bp-004h], 0fah ; 80 7e fc fa 10172 je short 07 094h ; 74 1010461 je short 073e1h ; 74 10 10173 10462 movzx ax, byte [bp-004h] ; 0f b6 46 fc 10174 10463 push ax ; 50 10175 push 0090 bh ; 68 0b0910464 push 00903h ; 68 03 09 10176 10465 push strict byte 00007h ; 6a 07 10177 call 01972h ; e8 e1 a810466 call 01972h ; e8 94 a5 10178 10467 add sp, strict byte 00006h ; 83 c4 06 10179 10468 test cl, cl ; 84 c9 10180 jne near 07 28dh ; 0f 85 f3 0110469 jne near 075dah ; 0f 85 f3 01 10181 10470 mov dx, ss ; 8c d2 10182 10471 lea ax, [bp-008h] ; 8d 46 f8 10183 call 0 6e51h ; e8 af fd10472 call 0719eh ; e8 af fd 10184 10473 test al, al ; 84 c0 10185 jne near 07 28dh ; 0f 85 e5 0110474 jne near 075dah ; 0f 85 e5 01 10186 10475 mov dx, ss ; 8c d2 10187 10476 lea ax, [bp-006h] ; 8d 46 fa 10188 call 0 6e51h ; e8 a1 fd10477 call 0719eh ; e8 a1 fd 10189 10478 test al, al ; 84 c0 10190 jne near 07 28dh ; 0f 85 d7 0110479 jne near 075dah ; 0f 85 d7 01 10191 10480 mov al, byte [bp-008h] ; 8a 46 f8 10192 10481 mov byte [bp+00ch], al ; 88 46 0c 10193 10482 mov al, byte [bp-006h] ; 8a 46 fa 10194 10483 mov byte [bp+00dh], al ; 88 46 0d 10195 jmp near 07 307h ; e9 42 0210484 jmp near 07654h ; e9 42 02 10196 10485 mov al, byte [bp+00dh] ; 8a 46 0d 10197 10486 cmp AL, strict byte 003h ; 3c 03 10198 jc short 07 0dch ; 72 1010199 jbe short 07 0fah ; 76 2c10487 jc short 07429h ; 72 10 10488 jbe short 07447h ; 76 2c 10200 10489 cmp AL, strict byte 006h ; 3c 06 10201 je short 07 10ch ; 74 3a10490 je short 07459h ; 74 3a 10202 10491 cmp AL, strict byte 005h ; 3c 05 10203 je short 07 106h ; 74 3010492 je short 07453h ; 74 30 10204 10493 cmp AL, strict byte 004h ; 3c 04 10205 je short 07 100h ; 74 2610206 jmp short 07 112h ; eb 3610494 je short 0744dh ; 74 26 10495 jmp short 0745fh ; eb 36 10207 10496 cmp AL, strict byte 002h ; 3c 02 10208 je short 07 0f4h ; 74 1410497 je short 07441h ; 74 14 10209 10498 cmp AL, strict byte 001h ; 3c 01 10210 je short 07 0eeh ; 74 0a10499 je short 0743bh ; 74 0a 10211 10500 test al, al ; 84 c0 10212 jne short 07 112h ; 75 2a10501 jne short 0745fh ; 75 2a 10213 10502 mov byte [bp-008h], 00ah ; c6 46 f8 0a 10214 jmp short 07 116h ; eb 2810503 jmp short 07463h ; eb 28 10215 10504 mov byte [bp-008h], 014h ; c6 46 f8 14 10216 jmp short 07 116h ; eb 2210505 jmp short 07463h ; eb 22 10217 10506 mov byte [bp-008h], 028h ; c6 46 f8 28 10218 jmp short 07 116h ; eb 1c10507 jmp short 07463h ; eb 1c 10219 10508 mov byte [bp-008h], 03ch ; c6 46 f8 3c 10220 jmp short 07 116h ; eb 1610509 jmp short 07463h ; eb 16 10221 10510 mov byte [bp-008h], 050h ; c6 46 f8 50 10222 jmp short 07 116h ; eb 1010511 jmp short 07463h ; eb 10 10223 10512 mov byte [bp-008h], 064h ; c6 46 f8 64 10224 jmp short 07 116h ; eb 0a10513 jmp short 07463h ; eb 0a 10225 10514 mov byte [bp-008h], 0c8h ; c6 46 f8 c8 10226 jmp short 07 116h ; eb 0410515 jmp short 07463h ; eb 04 10227 10516 mov byte [bp-008h], 000h ; c6 46 f8 00 10228 10517 cmp byte [bp-008h], 000h ; 80 7e f8 00 10229 jbe short 07 14bh ; 76 2f10518 jbe short 07498h ; 76 2f 10230 10519 mov ax, 000f3h ; b8 f3 00 10231 call 0 6e1dh ; e8 fb fc10520 call 0716ah ; e8 fb fc 10232 10521 test al, al ; 84 c0 10233 jne short 07 140h ; 75 1a10522 jne short 0748dh ; 75 1a 10234 10523 mov dx, ss ; 8c d2 10235 10524 lea ax, [bp-006h] ; 8d 46 fa 10236 call 0 6e51h ; e8 23 fd10525 call 0719eh ; e8 23 fd 10237 10526 movzx ax, byte [bp-008h] ; 0f b6 46 f8 10238 call 0 6e1dh ; e8 e8 fc10527 call 0716ah ; e8 e8 fc 10239 10528 mov dx, ss ; 8c d2 10240 10529 lea ax, [bp-006h] ; 8d 46 fa 10241 call 0 6e51h ; e8 14 fd10242 jmp near 07 307h ; e9 c7 0110530 call 0719eh ; e8 14 fd 10531 jmp near 07654h ; e9 c7 01 10243 10532 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10244 10533 mov byte [bp+013h], 003h ; c6 46 13 03 10245 jmp near 07 307h ; e9 bc 0110534 jmp near 07654h ; e9 bc 01 10246 10535 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10247 10536 mov byte [bp+013h], 002h ; c6 46 13 02 10248 jmp near 07 307h ; e9 b1 0110537 jmp near 07654h ; e9 b1 01 10249 10538 cmp byte [bp+00dh], 004h ; 80 7e 0d 04 10250 jnc short 07 1b9h ; 73 5d10539 jnc short 07506h ; 73 5d 10251 10540 mov ax, 000e8h ; b8 e8 00 10252 call 0 6e1dh ; e8 bb fc10541 call 0716ah ; e8 bb fc 10253 10542 test al, al ; 84 c0 10254 jne short 07 1aeh ; 75 4810543 jne short 074fbh ; 75 48 10255 10544 mov dx, ss ; 8c d2 10256 10545 lea ax, [bp-008h] ; 8d 46 f8 10257 call 0 6e51h ; e8 e3 fc10546 call 0719eh ; e8 e3 fc 10258 10547 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 10259 je short 07 184h ; 74 1010548 je short 074d1h ; 74 10 10260 10549 movzx ax, byte [bp-008h] ; 0f b6 46 f8 10261 10550 push ax ; 50 10262 push 009 36h ; 68 360910551 push 0092eh ; 68 2e 09 10263 10552 push strict byte 00007h ; 6a 07 10264 call 01972h ; e8 f1 a710553 call 01972h ; e8 a4 a4 10265 10554 add sp, strict byte 00006h ; 83 c4 06 10266 10555 movzx ax, byte [bp+00dh] ; 0f b6 46 0d 10267 call 0 6e1dh ; e8 92 fc10556 call 0716ah ; e8 92 fc 10268 10557 mov dx, ss ; 8c d2 10269 10558 lea ax, [bp-008h] ; 8d 46 f8 10270 call 0 6e51h ; e8 be fc10559 call 0719eh ; e8 be fc 10271 10560 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 10272 je near 07 307h ; 0f 84 6c 0110561 je near 07654h ; 0f 84 6c 01 10273 10562 movzx ax, byte [bp-008h] ; 0f b6 46 f8 10274 10563 push ax ; 50 10275 push 009 36h ; 68 360910564 push 0092eh ; 68 2e 09 10276 10565 push strict byte 00007h ; 6a 07 10277 call 01972h ; e8 ca a710566 call 01972h ; e8 7d a4 10278 10567 add sp, strict byte 00006h ; 83 c4 06 10279 jmp near 07 307h ; e9 59 0110568 jmp near 07654h ; e9 59 01 10280 10569 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10281 10570 mov byte [bp+013h], 003h ; c6 46 13 03 10282 jmp near 07 307h ; e9 4e 0110571 jmp near 07654h ; e9 4e 01 10283 10572 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10284 10573 mov byte [bp+013h], 002h ; c6 46 13 02 10285 jmp near 07 307h ; e9 43 0110574 jmp near 07654h ; e9 43 01 10286 10575 mov ax, 000f2h ; b8 f2 00 10287 call 0 6e1dh ; e8 53 fc10576 call 0716ah ; e8 53 fc 10288 10577 test al, al ; 84 c0 10289 jne short 07 1e1h ; 75 1310578 jne short 0752eh ; 75 13 10290 10579 mov dx, ss ; 8c d2 10291 10580 lea ax, [bp-008h] ; 8d 46 f8 10292 call 0 6e51h ; e8 7b fc10581 call 0719eh ; e8 7b fc 10293 10582 mov dx, ss ; 8c d2 10294 10583 lea ax, [bp-006h] ; 8d 46 fa 10295 call 0 6e51h ; e8 73 fc10296 jmp near 07 0bch ; e9 db fe10584 call 0719eh ; e8 73 fc 10585 jmp near 07409h ; e9 db fe 10297 10586 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10298 10587 mov byte [bp+013h], 003h ; c6 46 13 03 10299 jmp near 07 307h ; e9 1b 0110588 jmp near 07654h ; e9 1b 01 10300 10589 mov al, byte [bp+00dh] ; 8a 46 0d 10301 10590 test al, al ; 84 c0 10302 jbe short 07 1fah ; 76 0710591 jbe short 07547h ; 76 07 10303 10592 cmp AL, strict byte 002h ; 3c 02 10304 jbe short 07 263h ; 76 6c10305 jmp near 07 297h ; e9 9d 0010593 jbe short 075b0h ; 76 6c 10594 jmp near 075e4h ; e9 9d 00 10306 10595 mov ax, 000e9h ; b8 e9 00 10307 call 0 6e1dh ; e8 1d fc10596 call 0716ah ; e8 1d fc 10308 10597 test al, al ; 84 c0 10309 jne near 07 28dh ; 0f 85 87 0010598 jne near 075dah ; 0f 85 87 00 10310 10599 mov dx, ss ; 8c d2 10311 10600 lea ax, [bp-008h] ; 8d 46 f8 10312 call 0 6e51h ; e8 43 fc10601 call 0719eh ; e8 43 fc 10313 10602 mov cl, al ; 88 c1 10314 10603 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 10315 je short 07 226h ; 74 1010604 je short 07573h ; 74 10 10316 10605 movzx ax, byte [bp-008h] ; 0f b6 46 f8 10317 10606 push ax ; 50 10318 push 009 36h ; 68 360910607 push 0092eh ; 68 2e 09 10319 10608 push strict byte 00007h ; 6a 07 10320 call 01972h ; e8 4f a710609 call 01972h ; e8 02 a4 10321 10610 add sp, strict byte 00006h ; 83 c4 06 10322 10611 test cl, cl ; 84 c9 10323 jne short 07 28dh ; 75 6310612 jne short 075dah ; 75 63 10324 10613 mov dx, ss ; 8c d2 10325 10614 lea ax, [bp-008h] ; 8d 46 f8 10326 call 0 6e51h ; e8 1f fc10615 call 0719eh ; e8 1f fc 10327 10616 test al, al ; 84 c0 10328 jne short 07 28dh ; 75 5710617 jne short 075dah ; 75 57 10329 10618 mov dx, ss ; 8c d2 10330 10619 lea ax, [bp-006h] ; 8d 46 fa 10331 call 0 6e51h ; e8 13 fc10620 call 0719eh ; e8 13 fc 10332 10621 test al, al ; 84 c0 10333 jne short 07 28dh ; 75 4b10622 jne short 075dah ; 75 4b 10334 10623 mov dx, ss ; 8c d2 10335 10624 lea ax, [bp-004h] ; 8d 46 fc 10336 call 0 6e51h ; e8 07 fc10625 call 0719eh ; e8 07 fc 10337 10626 test al, al ; 84 c0 10338 jne short 07 28dh ; 75 3f10627 jne short 075dah ; 75 3f 10339 10628 mov al, byte [bp-008h] ; 8a 46 f8 10340 10629 mov byte [bp+00ch], al ; 88 46 0c … … 10343 10632 mov al, byte [bp-004h] ; 8a 46 fc 10344 10633 mov byte [bp+00eh], al ; 88 46 0e 10345 jmp near 07 307h ; e9 a4 0010634 jmp near 07654h ; e9 a4 00 10346 10635 cmp AL, strict byte 001h ; 3c 01 10347 jne short 07 26ch ; 75 0510636 jne short 075b9h ; 75 05 10348 10637 mov ax, 000e6h ; b8 e6 00 10349 jmp short 07 26fh ; eb 0310638 jmp short 075bch ; eb 03 10350 10639 mov ax, 000e7h ; b8 e7 00 10351 call 0 6e1dh ; e8 ab fb10640 call 0716ah ; e8 ab fb 10352 10641 mov cl, al ; 88 c1 10353 10642 test cl, cl ; 84 c9 10354 jne short 07 287h ; 75 0f10643 jne short 075d4h ; 75 0f 10355 10644 mov dx, ss ; 8c d2 10356 10645 lea ax, [bp-008h] ; 8d 46 f8 10357 call 0 6e51h ; e8 d1 fb10646 call 0719eh ; e8 d1 fb 10358 10647 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 10359 10648 db 00fh, 095h, 0c1h 10360 10649 ; setne cl ; 0f 95 c1 10361 10650 test cl, cl ; 84 c9 10362 je near 07 307h ; 0f 84 7a 0010651 je near 07654h ; 0f 84 7a 00 10363 10652 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10364 10653 mov byte [bp+013h], 003h ; c6 46 13 03 10365 jmp short 07 307h ; eb 7010654 jmp short 07654h ; eb 70 10366 10655 movzx ax, byte [bp+00dh] ; 0f b6 46 0d 10367 10656 push ax ; 50 10368 push 009 62h ; 68 620910657 push 0095ah ; 68 5a 09 10369 10658 push strict byte 00007h ; 6a 07 10370 call 01972h ; e8 ce a610659 call 01972h ; e8 81 a3 10371 10660 add sp, strict byte 00006h ; 83 c4 06 10372 10661 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10373 10662 mov byte [bp+013h], 001h ; c6 46 13 01 10374 jmp short 07 307h ; eb 5610663 jmp short 07654h ; eb 56 10375 10664 mov si, word [bp+00ch] ; 8b 76 0c 10376 10665 mov bx, si ; 89 f3 10377 10666 mov dx, strict word 00022h ; ba 22 00 10378 10667 mov ax, cx ; 89 c8 10379 call 0167ah ; e8 bc a310668 call 0167ah ; e8 6f a0 10380 10669 mov bx, word [bp+014h] ; 8b 5e 14 10381 10670 mov dx, strict word 00024h ; ba 24 00 10382 10671 mov ax, cx ; 89 c8 10383 call 0167ah ; e8 b1 a310672 call 0167ah ; e8 64 a0 10384 10673 mov dx, strict word 00027h ; ba 27 00 10385 10674 mov ax, cx ; 89 c8 10386 call 01650h ; e8 7f a310675 call 01650h ; e8 32 a0 10387 10676 mov ah, al ; 88 c4 10388 10677 test si, si ; 85 f6 10389 jne short 07 2e5h ; 75 0e10678 jne short 07632h ; 75 0e 10390 10679 cmp word [bp+014h], strict byte 00000h ; 83 7e 14 00 10391 jne short 07 2e5h ; 75 0810680 jne short 07632h ; 75 08 10392 10681 test AL, strict byte 080h ; a8 80 10393 je short 07 2e7h ; 74 0610682 je short 07634h ; 74 06 10394 10683 and AL, strict byte 07fh ; 24 7f 10395 jmp short 07 2e7h ; eb 0210684 jmp short 07634h ; eb 02 10396 10685 or AL, strict byte 080h ; 0c 80 10397 10686 movzx bx, al ; 0f b6 d8 10398 10687 mov dx, strict word 00027h ; ba 27 00 10399 10688 mov ax, cx ; 89 c8 10400 call 0165eh ; e8 6c a310401 jmp short 07 307h ; eb 1310402 push 0097 ch ; 68 7c0910689 call 0165eh ; e8 1f a0 10690 jmp short 07654h ; eb 13 10691 push 00974h ; 68 74 09 10403 10692 push strict byte 00007h ; 6a 07 10404 call 01972h ; e8 76 a610693 call 01972h ; e8 29 a3 10405 10694 add sp, strict byte 00004h ; 83 c4 04 10406 10695 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10407 10696 mov byte [bp+013h], 001h ; c6 46 13 01 10408 10697 mov ax, strict word 00047h ; b8 47 00 10409 call 0 6e8ch ; e8 7f fb10698 call 071d9h ; e8 7f fb 10410 10699 lea sp, [bp-002h] ; 8d 66 fe 10411 10700 pop si ; 5e 10412 10701 pop bp ; 5d 10413 10702 retn ; c3 10414 _int17_function: ; 0xf7 313LB 0xb310703 _int17_function: ; 0xf7660 LB 0xb3 10415 10704 push bp ; 55 10416 10705 mov bp, sp ; 89 e5 … … 10422 10711 add dx, strict byte 00008h ; 83 c2 08 10423 10712 mov ax, strict word 00040h ; b8 40 00 10424 call 0166ch ; e8 45 a310713 call 0166ch ; e8 f8 9f 10425 10714 mov bx, ax ; 89 c3 10426 10715 mov si, ax ; 89 c6 10427 10716 cmp byte [bp+013h], 003h ; 80 7e 13 03 10428 jnc near 07 3bch ; 0f 83 89 0010717 jnc near 07709h ; 0f 83 89 00 10429 10718 mov ax, word [bp+00eh] ; 8b 46 0e 10430 10719 cmp ax, strict word 00003h ; 3d 03 00 10431 jnc near 07 3bch ; 0f 83 7f 0010720 jnc near 07709h ; 0f 83 7f 00 10432 10721 test bx, bx ; 85 db 10433 jbe near 07 3bch ; 0f 86 79 0010722 jbe near 07709h ; 0f 86 79 00 10434 10723 mov dx, ax ; 89 c2 10435 10724 add dx, strict byte 00078h ; 83 c2 78 10436 10725 mov ax, strict word 00040h ; b8 40 00 10437 call 01650h ; e8 02 a310726 call 01650h ; e8 b5 9f 10438 10727 movzx cx, al ; 0f b6 c8 10439 10728 sal cx, 008h ; c1 e1 08 10440 10729 cmp byte [bp+013h], 000h ; 80 7e 13 00 10441 jne short 07 387h ; 75 2d10730 jne short 076d4h ; 75 2d 10442 10731 mov al, byte [bp+012h] ; 8a 46 12 10443 10732 mov dx, bx ; 89 da … … 10459 10748 ; sub ah, ah ; 2a e4 10460 10749 test AL, strict byte 040h ; a8 40 10461 je short 07 387h ; 74 0710750 je short 076d4h ; 74 07 10462 10751 test cx, cx ; 85 c9 10463 je short 07 387h ; 74 0310752 je short 076d4h ; 74 03 10464 10753 dec cx ; 49 10465 jmp short 07 376h ; eb ef10754 jmp short 076c3h ; eb ef 10466 10755 cmp byte [bp+013h], 001h ; 80 7e 13 01 10467 jne short 07 3a3h ; 75 1610756 jne short 076f0h ; 75 16 10468 10757 lea dx, [si+002h] ; 8d 54 02 10469 10758 in AL, DX ; ec … … 10484 10773 mov byte [bp+013h], al ; 88 46 13 10485 10774 test cx, cx ; 85 c9 10486 jne short 07 3b6h ; 75 0410775 jne short 07703h ; 75 04 10487 10776 or byte [bp+013h], 001h ; 80 4e 13 01 10488 10777 and byte [bp+01ch], 0feh ; 80 66 1c fe 10489 jmp short 07 3c0h ; eb 0410778 jmp short 0770dh ; eb 04 10490 10779 or byte [bp+01ch], 001h ; 80 4e 1c 01 10491 10780 lea sp, [bp-002h] ; 8d 66 fe … … 10493 10782 pop bp ; 5d 10494 10783 retn ; c3 10495 wait_: ; 0xf7 3c6LB 0xb210784 wait_: ; 0xf7713 LB 0xb2 10496 10785 push bp ; 55 10497 10786 mov bp, sp ; 89 e5 … … 10511 10800 mov dx, 0046ch ; ba 6c 04 10512 10801 xor ax, ax ; 31 c0 10513 call 01688h ; e8 9f a210802 call 01688h ; e8 52 9f 10514 10803 mov word [bp-00eh], ax ; 89 46 f2 10515 10804 mov bx, dx ; 89 d3 … … 10517 10806 mov dx, 0046ch ; ba 6c 04 10518 10807 xor ax, ax ; 31 c0 10519 call 01688h ; e8 91 a210808 call 01688h ; e8 44 9f 10520 10809 mov word [bp-012h], ax ; 89 46 ee 10521 10810 mov di, dx ; 89 d7 10522 10811 cmp dx, bx ; 39 da 10523 jnbe short 07 407h ; 77 0710524 jne short 07 40eh ; 75 0c10812 jnbe short 07754h ; 77 07 10813 jne short 0775bh ; 75 0c 10525 10814 cmp ax, word [bp-00eh] ; 3b 46 f2 10526 jbe short 07 40eh ; 76 0710815 jbe short 0775bh ; 76 07 10527 10816 sub ax, word [bp-00eh] ; 2b 46 f2 10528 10817 sbb dx, bx ; 19 da 10529 jmp short 07 419h ; eb 0b10818 jmp short 07766h ; eb 0b 10530 10819 cmp dx, bx ; 39 da 10531 jc short 07 419h ; 72 0710532 jne short 07 41dh ; 75 0910820 jc short 07766h ; 72 07 10821 jne short 0776ah ; 75 09 10533 10822 cmp ax, word [bp-00eh] ; 3b 46 f2 10534 jnc short 07 41dh ; 73 0410823 jnc short 0776ah ; 73 04 10535 10824 sub si, ax ; 29 c6 10536 10825 sbb cx, dx ; 19 d1 … … 10540 10829 mov ax, 00100h ; b8 00 01 10541 10830 int 016h ; cd 16 10542 je near 07 433h ; 0f 84 05 0010831 je near 07780h ; 0f 84 05 00 10543 10832 mov AL, strict byte 001h ; b0 01 10544 jmp near 07 435h ; e9 02 0010833 jmp near 07782h ; e9 02 00 10545 10834 db 032h, 0c0h 10546 10835 ; xor al, al ; 32 c0 10547 10836 test al, al ; 84 c0 10548 je short 07 45dh ; 74 2410837 je short 077aah ; 74 24 10549 10838 db 033h, 0c0h 10550 10839 ; xor ax, ax ; 33 c0 … … 10555 10844 movzx ax, dl ; 0f b6 c2 10556 10845 push ax ; 50 10557 push 0099 eh ; 68 9e0910846 push 00996h ; 68 96 09 10558 10847 push strict byte 00004h ; 6a 04 10559 call 01972h ; e8 22 a510848 call 01972h ; e8 d5 a1 10560 10849 add sp, strict byte 00006h ; 83 c4 06 10561 10850 cmp byte [bp-00ch], 000h ; 80 7e f4 00 10562 je short 07 45dh ; 74 0410851 je short 077aah ; 74 04 10563 10852 mov al, dl ; 88 d0 10564 jmp short 07 46fh ; eb 1210853 jmp short 077bch ; eb 12 10565 10854 test cx, cx ; 85 c9 10566 jnle short 07 3eeh ; 7f 8d10567 jne short 07 467h ; 75 0410855 jnle short 0773bh ; 7f 8d 10856 jne short 077b4h ; 75 04 10568 10857 test si, si ; 85 f6 10569 jnbe short 07 3eeh ; 77 8710858 jnbe short 0773bh ; 77 87 10570 10859 mov ax, word [bp-010h] ; 8b 46 f0 10571 10860 push ax ; 50 … … 10579 10868 pop bp ; 5d 10580 10869 retn ; c3 10581 read_logo_byte_: ; 0xf7 478LB 0x1610870 read_logo_byte_: ; 0xf77c5 LB 0x16 10582 10871 push bp ; 55 10583 10872 mov bp, sp ; 89 e5 … … 10594 10883 pop bp ; 5d 10595 10884 retn ; c3 10596 read_logo_word_: ; 0xf7 48eLB 0x1410885 read_logo_word_: ; 0xf77db LB 0x14 10597 10886 push bp ; 55 10598 10887 mov bp, sp ; 89 e5 … … 10607 10896 pop bp ; 5d 10608 10897 retn ; c3 10609 print_detected_harddisks_: ; 0xf7 4a2LB 0x13010898 print_detected_harddisks_: ; 0xf77ef LB 0x130 10610 10899 push bp ; 55 10611 10900 mov bp, sp ; 89 e5 … … 10619 10908 mov dx, strict word 0000eh ; ba 0e 00 10620 10909 mov ax, strict word 00040h ; b8 40 00 10621 call 0166ch ; e8 b7 a110910 call 0166ch ; e8 6a 9e 10622 10911 mov si, ax ; 89 c6 10623 10912 mov byte [bp-00ch], 000h ; c6 46 f4 00 10624 10913 xor cl, cl ; 30 c9 10625 10914 xor ch, ch ; 30 ed 10626 mov dx, 00 2c0h ; ba c0 0210627 call 01650h ; e8 8b a110915 mov dx, 00304h ; ba 04 03 10916 call 01650h ; e8 3e 9e 10628 10917 mov byte [bp-00eh], al ; 88 46 f2 10629 10918 xor bl, bl ; 30 db 10630 10919 cmp bl, byte [bp-00eh] ; 3a 5e f2 10631 jnc near 07 5a4h ; 0f 83 d3 0010920 jnc near 078f1h ; 0f 83 d3 00 10632 10921 movzx dx, bl ; 0f b6 d3 10633 add dx, 00 2c1h ; 81 c2 c1 0210922 add dx, 00305h ; 81 c2 05 03 10634 10923 mov ax, si ; 89 f0 10635 call 01650h ; e8 73 a110924 call 01650h ; e8 26 9e 10636 10925 mov bh, al ; 88 c7 10637 10926 cmp AL, strict byte 00ch ; 3c 0c 10638 jc short 07 507h ; 72 2410927 jc short 07854h ; 72 24 10639 10928 test cl, cl ; 84 c9 10640 jne short 07 4f4h ; 75 0d10641 push 009a fh ; 68 af0910929 jne short 07841h ; 75 0d 10930 push 009a7h ; 68 a7 09 10642 10931 push strict byte 00002h ; 6a 02 10643 call 01972h ; e8 83 a410932 call 01972h ; e8 36 a1 10644 10933 add sp, strict byte 00004h ; 83 c4 04 10645 10934 mov CL, strict byte 001h ; b1 01 … … 10647 10936 inc ax ; 40 10648 10937 push ax ; 50 10649 push 009 c4h ; 68 c40910938 push 009bch ; 68 bc 09 10650 10939 push strict byte 00002h ; 6a 02 10651 call 01972h ; e8 71 a410940 call 01972h ; e8 24 a1 10652 10941 add sp, strict byte 00006h ; 83 c4 06 10653 jmp near 07 59fh ; e9 98 0010942 jmp near 078ech ; e9 98 00 10654 10943 cmp AL, strict byte 008h ; 3c 08 10655 jc short 07 51eh ; 72 1310944 jc short 0786bh ; 72 13 10656 10945 test ch, ch ; 84 ed 10657 jne short 07 51ch ; 75 0d10658 push 009 d7h ; 68 d70910946 jne short 07869h ; 75 0d 10947 push 009cfh ; 68 cf 09 10659 10948 push strict byte 00002h ; 6a 02 10660 call 01972h ; e8 5b a410949 call 01972h ; e8 0e a1 10661 10950 add sp, strict byte 00004h ; 83 c4 04 10662 10951 mov CH, strict byte 001h ; b5 01 10663 jmp short 07 4f4h ; eb d610952 jmp short 07841h ; eb d6 10664 10953 cmp AL, strict byte 004h ; 3c 04 10665 jnc short 07 539h ; 73 1710954 jnc short 07886h ; 73 17 10666 10955 cmp byte [bp-00ch], 000h ; 80 7e f4 00 10667 jne short 07 539h ; 75 1110668 push 009e ch ; 68 ec0910956 jne short 07886h ; 75 11 10957 push 009e4h ; 68 e4 09 10669 10958 push strict byte 00002h ; 6a 02 10670 call 01972h ; e8 42 a410959 call 01972h ; e8 f5 a0 10671 10960 add sp, strict byte 00004h ; 83 c4 04 10672 10961 mov byte [bp-00ch], 001h ; c6 46 f4 01 10673 jmp short 07 54fh ; eb 1610962 jmp short 0789ch ; eb 16 10674 10963 cmp bh, 004h ; 80 ff 04 10675 jc short 07 54fh ; 72 1110964 jc short 0789ch ; 72 11 10676 10965 test cl, cl ; 84 c9 10677 jne short 07 54fh ; 75 0d10678 push 009f eh ; 68 fe0910966 jne short 0789ch ; 75 0d 10967 push 009f6h ; 68 f6 09 10679 10968 push strict byte 00002h ; 6a 02 10680 call 01972h ; e8 28 a410969 call 01972h ; e8 db a0 10681 10970 add sp, strict byte 00004h ; 83 c4 04 10682 10971 mov CL, strict byte 001h ; b1 01 … … 10684 10973 inc ax ; 40 10685 10974 push ax ; 50 10686 push 00a 12h ; 68 120a10975 push 00a0ah ; 68 0a 0a 10687 10976 push strict byte 00002h ; 6a 02 10688 call 01972h ; e8 16 a410977 call 01972h ; e8 c9 a0 10689 10978 add sp, strict byte 00006h ; 83 c4 06 10690 10979 cmp bh, 004h ; 80 ff 04 10691 jc short 07 567h ; 72 0310980 jc short 078b4h ; 72 03 10692 10981 sub bh, 004h ; 80 ef 04 10693 10982 movzx ax, bh ; 0f b6 c7 … … 10697 10986 sar ax, 1 ; d1 f8 10698 10987 test ax, ax ; 85 c0 10699 je short 07 578h ; 74 0510700 push 00a1 ch ; 68 1c0a10701 jmp short 07 57bh ; eb 0310702 push 00a 27h ; 68 270a10988 je short 078c5h ; 74 05 10989 push 00a14h ; 68 14 0a 10990 jmp short 078c8h ; eb 03 10991 push 00a1fh ; 68 1f 0a 10703 10992 push strict byte 00002h ; 6a 02 10704 call 01972h ; e8 f2 a310993 call 01972h ; e8 a5 a0 10705 10994 add sp, strict byte 00004h ; 83 c4 04 10706 10995 movzx ax, bh ; 0f b6 c7 … … 10709 10998 idiv di ; f7 ff 10710 10999 test dx, dx ; 85 d2 10711 je short 07 595h ; 74 0510712 push 00a 30h ; 68 300a10713 jmp short 07 598h ; eb 0310714 push 00a 36h ; 68 360a11000 je short 078e2h ; 74 05 11001 push 00a28h ; 68 28 0a 11002 jmp short 078e5h ; eb 03 11003 push 00a2eh ; 68 2e 0a 10715 11004 push di ; 57 10716 call 01972h ; e8 d6 a311005 call 01972h ; e8 89 a0 10717 11006 add sp, strict byte 00004h ; 83 c4 04 10718 11007 db 0feh, 0c3h 10719 11008 ; inc bl ; fe c3 10720 jmp near 07 4cah ; e9 26 ff11009 jmp near 07817h ; e9 26 ff 10721 11010 cmp byte [bp-00ch], 000h ; 80 7e f4 00 10722 jne short 07 5bdh ; 75 1311011 jne short 0790ah ; 75 13 10723 11012 test cl, cl ; 84 c9 10724 jne short 07 5bdh ; 75 0f11013 jne short 0790ah ; 75 0f 10725 11014 test ch, ch ; 84 ed 10726 jne short 07 5bdh ; 75 0b10727 push 00a3 dh ; 68 3d0a11015 jne short 0790ah ; 75 0b 11016 push 00a35h ; 68 35 0a 10728 11017 push strict byte 00002h ; 6a 02 10729 call 01972h ; e8 b8 a311018 call 01972h ; e8 6b a0 10730 11019 add sp, strict byte 00004h ; 83 c4 04 10731 push 00a 51h ; 68 510a11020 push 00a49h ; 68 49 0a 10732 11021 push strict byte 00002h ; 6a 02 10733 call 01972h ; e8 ad a311022 call 01972h ; e8 60 a0 10734 11023 add sp, strict byte 00004h ; 83 c4 04 10735 11024 lea sp, [bp-00ah] ; 8d 66 f6 … … 10741 11030 pop bp ; 5d 10742 11031 retn ; c3 10743 get_boot_drive_: ; 0xf7 5d2LB 0x2811032 get_boot_drive_: ; 0xf791f LB 0x28 10744 11033 push bp ; 55 10745 11034 mov bp, sp ; 89 e5 … … 10749 11038 mov dx, strict word 0000eh ; ba 0e 00 10750 11039 mov ax, strict word 00040h ; b8 40 00 10751 call 0166ch ; e8 8a a010752 mov dx, 00 2c0h ; ba c0 0210753 call 01650h ; e8 68 a011040 call 0166ch ; e8 3d 9d 11041 mov dx, 00304h ; ba 04 03 11042 call 01650h ; e8 1b 9d 10754 11043 sub bl, 002h ; 80 eb 02 10755 11044 cmp bl, al ; 38 c3 10756 jc short 07 5f1h ; 72 0211045 jc short 0793eh ; 72 02 10757 11046 mov BL, strict byte 0ffh ; b3 ff 10758 11047 mov al, bl ; 88 d8 … … 10762 11051 pop bp ; 5d 10763 11052 retn ; c3 10764 show_logo_: ; 0xf7 5faLB 0x22411053 show_logo_: ; 0xf7947 LB 0x224 10765 11054 push bp ; 55 10766 11055 mov bp, sp ; 89 e5 … … 10773 11062 mov dx, strict word 0000eh ; ba 0e 00 10774 11063 mov ax, strict word 00040h ; b8 40 00 10775 call 0166ch ; e8 5e a011064 call 0166ch ; e8 11 9d 10776 11065 mov si, ax ; 89 c6 10777 11066 xor cl, cl ; 30 c9 … … 10784 11073 out strict byte 040h, AL ; e6 40 10785 11074 movzx ax, dl ; 0f b6 c2 10786 call 07 48eh ; e8 68 fe11075 call 077dbh ; e8 68 fe 10787 11076 cmp ax, 066bbh ; 3d bb 66 10788 jne near 07 6feh ; 0f 85 d1 0011077 jne near 07a4bh ; 0f 85 d1 00 10789 11078 push SS ; 16 10790 11079 pop ES ; 07 … … 10794 11083 mov word [es:di], bx ; 26 89 1d 10795 11084 cmp ax, strict word 0004fh ; 3d 4f 00 10796 jne near 07 6feh ; 0f 85 bd 0011085 jne near 07a4bh ; 0f 85 bd 00 10797 11086 mov al, dl ; 88 d0 10798 11087 add AL, strict byte 004h ; 04 04 10799 11088 xor ah, ah ; 30 e4 10800 call 07 478h ; e8 2e fe11089 call 077c5h ; e8 2e fe 10801 11090 mov ch, al ; 88 c5 10802 11091 mov byte [bp-00ch], al ; 88 46 f4 … … 10804 11093 add AL, strict byte 005h ; 04 05 10805 11094 xor ah, ah ; 30 e4 10806 call 07 478h ; e8 20 fe11095 call 077c5h ; e8 20 fe 10807 11096 mov dh, al ; 88 c6 10808 11097 mov byte [bp-010h], al ; 88 46 f0 … … 10810 11099 add AL, strict byte 002h ; 04 02 10811 11100 xor ah, ah ; 30 e4 10812 call 07 48eh ; e8 28 fe11101 call 077dbh ; e8 28 fe 10813 11102 mov bx, ax ; 89 c3 10814 11103 mov word [bp-014h], ax ; 89 46 ec … … 10816 11105 add AL, strict byte 006h ; 04 06 10817 11106 xor ah, ah ; 30 e4 10818 call 07 478h ; e8 04 fe11107 call 077c5h ; e8 04 fe 10819 11108 mov byte [bp-012h], al ; 88 46 ee 10820 11109 test ch, ch ; 84 ed 10821 jne short 07 685h ; 75 0a11110 jne short 079d2h ; 75 0a 10822 11111 test dh, dh ; 84 f6 10823 jne short 07 685h ; 75 0611112 jne short 079d2h ; 75 06 10824 11113 test bx, bx ; 85 db 10825 je near 07 6feh ; 0f 84 79 0011114 je near 07a4bh ; 0f 84 79 00 10826 11115 mov bx, 00142h ; bb 42 01 10827 11116 mov ax, 04f02h ; b8 02 4f 10828 11117 int 010h ; cd 10 10829 11118 cmp byte [bp-00ch], 000h ; 80 7e f4 00 10830 je short 07 6b6h ; 74 2311119 je short 07a03h ; 74 23 10831 11120 xor bx, bx ; 31 db 10832 jmp short 07 69dh ; eb 0611121 jmp short 079eah ; eb 06 10833 11122 inc bx ; 43 10834 11123 cmp bx, strict byte 00010h ; 83 fb 10 10835 jnbe short 07 6bdh ; 77 2011124 jnbe short 07a0ah ; 77 20 10836 11125 mov ax, bx ; 89 d8 10837 11126 or ah, 002h ; 80 cc 02 … … 10840 11129 xor dx, dx ; 31 d2 10841 11130 mov ax, strict word 00001h ; b8 01 00 10842 call 07 3c6h ; e8 18 fd11131 call 07713h ; e8 18 fd 10843 11132 cmp AL, strict byte 086h ; 3c 86 10844 jne short 07 697h ; 75 e511133 jne short 079e4h ; 75 e5 10845 11134 mov CL, strict byte 001h ; b1 01 10846 jmp short 07 6bdh ; eb 0711135 jmp short 07a0ah ; eb 07 10847 11136 mov ax, 00210h ; b8 10 02 10848 11137 mov dx, 003b8h ; ba b8 03 10849 11138 out DX, ax ; ef 10850 11139 test cl, cl ; 84 c9 10851 jne short 07 6d3h ; 75 1211140 jne short 07a20h ; 75 12 10852 11141 mov ax, word [bp-014h] ; 8b 46 ec 10853 11142 shr ax, 004h ; c1 e8 04 10854 11143 mov dx, strict word 00001h ; ba 01 00 10855 call 07 3c6h ; e8 f9 fc11144 call 07713h ; e8 f9 fc 10856 11145 cmp AL, strict byte 086h ; 3c 86 10857 jne short 07 6d3h ; 75 0211146 jne short 07a20h ; 75 02 10858 11147 mov CL, strict byte 001h ; b1 01 10859 11148 cmp byte [bp-010h], 000h ; 80 7e f0 00 10860 je short 07 6feh ; 74 2511149 je short 07a4bh ; 74 25 10861 11150 test cl, cl ; 84 c9 10862 jne short 07 6feh ; 75 2111151 jne short 07a4bh ; 75 21 10863 11152 mov bx, strict word 00010h ; bb 10 00 10864 jmp short 07 6e7h ; eb 0511153 jmp short 07a34h ; eb 05 10865 11154 dec bx ; 4b 10866 11155 test bx, bx ; 85 db 10867 jbe short 07 6feh ; 76 1711156 jbe short 07a4bh ; 76 17 10868 11157 mov ax, bx ; 89 d8 10869 11158 or ah, 002h ; 80 cc 02 … … 10872 11161 xor dx, dx ; 31 d2 10873 11162 mov ax, strict word 00001h ; b8 01 00 10874 call 07 3c6h ; e8 ce fc11163 call 07713h ; e8 ce fc 10875 11164 cmp AL, strict byte 086h ; 3c 86 10876 jne short 07 6e2h ; 75 e611165 jne short 07a2fh ; 75 e6 10877 11166 mov CL, strict byte 001h ; b1 01 10878 11167 xor bx, bx ; 31 db 10879 mov dx, 003 39h ; ba 390311168 mov dx, 0037dh ; ba 7d 03 10880 11169 mov ax, si ; 89 f0 10881 call 0165eh ; e8 56 9f11170 call 0165eh ; e8 09 9c 10882 11171 mov AL, strict byte 003h ; b0 03 10883 11172 mov AH, strict byte 000h ; b4 00 10884 11173 int 010h ; cd 10 10885 11174 cmp byte [bp-012h], 000h ; 80 7e ee 00 10886 je near 07 7ffh ; 0f 84 e9 0011175 je near 07b4ch ; 0f 84 e9 00 10887 11176 cmp byte [bp-00ch], 000h ; 80 7e f4 00 10888 jne short 07 74ch ; 75 3011177 jne short 07a99h ; 75 30 10889 11178 cmp byte [bp-010h], 000h ; 80 7e f0 00 10890 jne short 07 74ch ; 75 2a11179 jne short 07a99h ; 75 2a 10891 11180 cmp word [bp-014h], strict byte 00000h ; 83 7e ec 00 10892 jne short 07 74ch ; 75 2411181 jne short 07a99h ; 75 24 10893 11182 cmp byte [bp-012h], 002h ; 80 7e ee 02 10894 jne short 07 739h ; 75 0b10895 push 00a 53h ; 68 530a11183 jne short 07a86h ; 75 0b 11184 push 00a4bh ; 68 4b 0a 10896 11185 push strict byte 00002h ; 6a 02 10897 call 01972h ; e8 3c a211186 call 01972h ; e8 ef 9e 10898 11187 add sp, strict byte 00004h ; 83 c4 04 10899 11188 test cl, cl ; 84 c9 10900 jne short 07 74ch ; 75 0f11189 jne short 07a99h ; 75 0f 10901 11190 mov dx, strict word 00001h ; ba 01 00 10902 11191 mov ax, 000c0h ; b8 c0 00 10903 call 07 3c6h ; e8 80 fc11192 call 07713h ; e8 80 fc 10904 11193 cmp AL, strict byte 086h ; 3c 86 10905 jne short 07 74ch ; 75 0211194 jne short 07a99h ; 75 02 10906 11195 mov CL, strict byte 001h ; b1 01 10907 11196 test cl, cl ; 84 c9 10908 je near 07 7ffh ; 0f 84 ad 0011197 je near 07b4ch ; 0f 84 ad 00 10909 11198 mov byte [bp-00eh], 000h ; c6 46 f2 00 10910 11199 mov ax, 00100h ; b8 00 01 … … 10923 11212 ; xor dx, dx ; 33 d2 10924 11213 int 010h ; cd 10 10925 push 00a 75h ; 68 750a11214 push 00a6dh ; 68 6d 0a 10926 11215 push strict byte 00002h ; 6a 02 10927 call 01972h ; e8 f7 a111216 call 01972h ; e8 aa 9e 10928 11217 add sp, strict byte 00004h ; 83 c4 04 10929 call 07 4a2h ; e8 21 fd10930 push 00ab 9h ; 68 b90a11218 call 077efh ; e8 21 fd 11219 push 00ab1h ; 68 b1 0a 10931 11220 push strict byte 00002h ; 6a 02 10932 call 01972h ; e8 e9 a111221 call 01972h ; e8 9c 9e 10933 11222 add sp, strict byte 00004h ; 83 c4 04 10934 11223 mov dx, strict word 00001h ; ba 01 00 10935 11224 mov ax, strict word 00040h ; b8 40 00 10936 call 07 3c6h ; e8 31 fc11225 call 07713h ; e8 31 fc 10937 11226 mov bl, al ; 88 c3 10938 11227 test al, al ; 84 c0 10939 je short 07 78ch ; 74 f111228 je short 07ad9h ; 74 f1 10940 11229 cmp AL, strict byte 030h ; 3c 30 10941 je short 07 7edh ; 74 4e11230 je short 07b3ah ; 74 4e 10942 11231 cmp bl, 002h ; 80 fb 02 10943 jc short 07 7c6h ; 72 2211232 jc short 07b13h ; 72 22 10944 11233 cmp bl, 009h ; 80 fb 09 10945 jnbe short 07 7c6h ; 77 1d11234 jnbe short 07b13h ; 77 1d 10946 11235 movzx ax, bl ; 0f b6 c3 10947 call 07 5d2h ; e8 23 fe11236 call 0791fh ; e8 23 fe 10948 11237 cmp AL, strict byte 0ffh ; 3c ff 10949 jne short 07 7b5h ; 75 0210950 jmp short 07 78ch ; eb d711238 jne short 07b02h ; 75 02 11239 jmp short 07ad9h ; eb d7 10951 11240 movzx bx, al ; 0f b6 d8 10952 mov dx, 003 38h ; ba 380311241 mov dx, 0037ch ; ba 7c 03 10953 11242 mov ax, si ; 89 f0 10954 call 0165eh ; e8 9e 9e11243 call 0165eh ; e8 51 9b 10955 11244 mov byte [bp-00eh], 002h ; c6 46 f2 02 10956 jmp short 07 7edh ; eb 2711245 jmp short 07b3ah ; eb 27 10957 11246 cmp bl, 02eh ; 80 fb 2e 10958 je short 07 7dbh ; 74 1011247 je short 07b28h ; 74 10 10959 11248 cmp bl, 026h ; 80 fb 26 10960 je short 07 7e1h ; 74 1111249 je short 07b2eh ; 74 11 10961 11250 cmp bl, 021h ; 80 fb 21 10962 jne short 07 7e7h ; 75 1211251 jne short 07b34h ; 75 12 10963 11252 mov byte [bp-00eh], 001h ; c6 46 f2 01 10964 jmp short 07 7edh ; eb 1211253 jmp short 07b3ah ; eb 12 10965 11254 mov byte [bp-00eh], 003h ; c6 46 f2 03 10966 jmp short 07 7edh ; eb 0c11255 jmp short 07b3ah ; eb 0c 10967 11256 mov byte [bp-00eh], 004h ; c6 46 f2 04 10968 jmp short 07 7edh ; eb 0611257 jmp short 07b3ah ; eb 06 10969 11258 cmp byte [bp-00eh], 000h ; 80 7e f2 00 10970 je short 07 78ch ; 74 9f11259 je short 07ad9h ; 74 9f 10971 11260 movzx bx, byte [bp-00eh] ; 0f b6 5e f2 10972 mov dx, 003 39h ; ba 390311261 mov dx, 0037dh ; ba 7d 03 10973 11262 mov ax, si ; 89 f0 10974 call 0165eh ; e8 65 9e11263 call 0165eh ; e8 18 9b 10975 11264 mov AL, strict byte 003h ; b0 03 10976 11265 mov AH, strict byte 000h ; b4 00 … … 10985 11274 push DS ; 1e 10986 11275 mov ds, ax ; 8e d8 10987 call 0edbfh ; e8 ae 7511276 call 0edbfh ; e8 61 72 10988 11277 pop DS ; 1f 10989 11278 popad ; 66 61 … … 10996 11285 pop bp ; 5d 10997 11286 retn ; c3 10998 delay_boot_: ; 0xf7 81eLB 0x6711287 delay_boot_: ; 0xf7b6b LB 0x67 10999 11288 push bp ; 55 11000 11289 mov bp, sp ; 89 e5 … … 11003 11292 mov dx, ax ; 89 c2 11004 11293 test ax, ax ; 85 c0 11005 je short 07 87eh ; 74 5511294 je short 07bcbh ; 74 55 11006 11295 mov AL, strict byte 034h ; b0 34 11007 11296 out strict byte 043h, AL ; e6 43 … … 11011 11300 out strict byte 040h, AL ; e6 40 11012 11301 push dx ; 52 11013 push 00 b03h ; 68 03 0b11302 push 00afbh ; 68 fb 0a 11014 11303 push strict byte 00002h ; 6a 02 11015 call 01972h ; e8 34 a111304 call 01972h ; e8 e7 9d 11016 11305 add sp, strict byte 00006h ; 83 c4 06 11017 11306 mov bx, dx ; 89 d3 11018 11307 test bx, bx ; 85 db 11019 jbe short 07 85eh ; 76 1711308 jbe short 07babh ; 76 17 11020 11309 push bx ; 53 11021 push 00b 21h ; 68 210b11310 push 00b19h ; 68 19 0b 11022 11311 push strict byte 00002h ; 6a 02 11023 call 01972h ; e8 22 a111312 call 01972h ; e8 d5 9d 11024 11313 add sp, strict byte 00006h ; 83 c4 06 11025 11314 xor dx, dx ; 31 d2 11026 11315 mov ax, strict word 00040h ; b8 40 00 11027 call 07 3c6h ; e8 6b fb11316 call 07713h ; e8 6b fb 11028 11317 dec bx ; 4b 11029 jmp short 07 843h ; eb e511030 push 00a 51h ; 68 510a11318 jmp short 07b90h ; eb e5 11319 push 00a49h ; 68 49 0a 11031 11320 push strict byte 00002h ; 6a 02 11032 call 01972h ; e8 0c a111321 call 01972h ; e8 bf 9d 11033 11322 add sp, strict byte 00004h ; 83 c4 04 11034 11323 mov AL, strict byte 034h ; b0 34 … … 11041 11330 push DS ; 1e 11042 11331 mov ds, ax ; 8e d8 11043 call 0edbfh ; e8 44 7511332 call 0edbfh ; e8 f7 71 11044 11333 pop DS ; 1f 11045 11334 popad ; 66 61 … … 11049 11338 pop bp ; 5d 11050 11339 retn ; c3 11051 scsi_cmd_data_in_: ; 0xf7 885 LB 0xc911340 scsi_cmd_data_in_: ; 0xf7bd2 LB 0xdb 11052 11341 push bp ; 55 11053 11342 mov bp, sp ; 89 e5 … … 11057 11346 mov si, ax ; 89 c6 11058 11347 mov byte [bp-006h], dl ; 88 56 fa 11059 mov word [bp-00 8h], bx ; 89 5e f811060 mov word [bp-00 ah], cx ; 89 4e f611348 mov word [bp-00ah], bx ; 89 5e f6 11349 mov word [bp-008h], cx ; 89 4e f8 11061 11350 mov bx, word [bp+00ah] ; 8b 5e 0a 11062 11351 mov dx, si ; 89 f2 … … 11065 11354 ; sub ah, ah ; 2a e4 11066 11355 test AL, strict byte 001h ; a8 01 11067 jne short 07 89bh ; 75 f711356 jne short 07be8h ; 75 f7 11068 11357 mov ax, bx ; 89 d8 11069 11358 mov dx, word [bp+00ch] ; 8b 56 0c … … 11071 11360 shr dx, 1 ; d1 ea 11072 11361 rcr ax, 1 ; d1 d8 11073 loop 078ach ; e2 fa 11074 and ax, 000f0h ; 25 f0 00 11362 loop 07bf9h ; e2 fa 11363 mov cx, ax ; 89 c1 11364 and cx, 000f0h ; 81 e1 f0 00 11365 cmp byte [bp+004h], 010h ; 80 7e 04 10 11366 db 00fh, 094h, 0c0h 11367 ; sete al ; 0f 94 c0 11368 xor ah, ah ; 30 e4 11369 cwd ; 99 11370 or ax, cx ; 09 c8 11371 or ax, dx ; 09 d0 11372 je short 07c19h ; 74 04 11373 xor cx, cx ; 31 c9 11374 jmp short 07c1dh ; eb 04 11075 11375 movzx cx, byte [bp+004h] ; 0f b6 4e 04 11076 or cx, ax ; 09 c111077 11376 mov al, byte [bp-006h] ; 8a 46 fa 11078 11377 mov dx, si ; 89 f2 … … 11089 11388 shr dx, 1 ; d1 ea 11090 11389 rcr ax, 1 ; d1 d8 11091 loop 07 8d2h ; e2 fa11390 loop 07c34h ; e2 fa 11092 11391 mov dx, si ; 89 f2 11093 11392 out DX, AL ; ee … … 11095 11394 movzx ax, byte [bp+004h] ; 0f b6 46 04 11096 11395 cmp cx, ax ; 39 c1 11097 jnc short 078f6h ; 73 11 11098 mov es, [bp-00ah] ; 8e 46 f6 11099 mov di, word [bp-008h] ; 8b 7e f8 11396 jnc short 07c55h ; 73 0e 11397 les di, [bp-00ah] ; c4 7e f6 11100 11398 add di, cx ; 01 cf 11101 11399 mov al, byte [es:di] ; 26 8a 05 … … 11103 11401 out DX, AL ; ee 11104 11402 inc cx ; 41 11105 jmp short 07 8ddh ; eb e711403 jmp short 07c3fh ; eb ea 11106 11404 mov dx, si ; 89 f2 11107 11405 in AL, DX ; ec … … 11109 11407 ; sub ah, ah ; 2a e4 11110 11408 test AL, strict byte 001h ; a8 01 11111 jne short 07 8f6h ; 75 f711409 jne short 07c55h ; 75 f7 11112 11410 test AL, strict byte 002h ; a8 02 11113 je short 07 911h ; 74 0e11411 je short 07c70h ; 74 0e 11114 11412 lea dx, [si+003h] ; 8d 54 03 11115 11413 xor al, al ; 30 c0 … … 11119 11417 ; sub ah, ah ; 2a e4 11120 11418 mov di, strict word 00004h ; bf 04 00 11121 jmp short 07 943h ; eb 3211419 jmp short 07ca2h ; eb 32 11122 11420 lea dx, [si+001h] ; 8d 54 01 11123 11421 cmp word [bp+00ch], strict byte 00000h ; 83 7e 0c 00 11124 jne short 07 920h ; 75 0611422 jne short 07c7fh ; 75 06 11125 11423 cmp bx, 08000h ; 81 fb 00 80 11126 jbe short 07 93ah ; 76 1a11424 jbe short 07c99h ; 76 1a 11127 11425 mov cx, 08000h ; b9 00 80 11128 11426 les di, [bp+006h] ; c4 7e 06 … … 11133 11431 add ax, 00800h ; 05 00 08 11134 11432 mov word [bp+008h], ax ; 89 46 08 11135 jmp short 07 911h ; eb d711433 jmp short 07c70h ; eb d7 11136 11434 mov cx, bx ; 89 d9 11137 11435 les di, [bp+006h] ; c4 7e 06 … … 11144 11442 pop bp ; 5d 11145 11443 retn 0000ah ; c2 0a 00 11146 scsi_cmd_data_out_: ; 0xf7 94e LB 0xc911444 scsi_cmd_data_out_: ; 0xf7cad LB 0xdb 11147 11445 push bp ; 55 11148 11446 mov bp, sp ; 89 e5 … … 11152 11450 mov di, ax ; 89 c7 11153 11451 mov byte [bp-006h], dl ; 88 56 fa 11154 mov word [bp-00 8h], bx ; 89 5e f811155 mov word [bp-00 ah], cx ; 89 4e f611452 mov word [bp-00ah], bx ; 89 5e f6 11453 mov word [bp-008h], cx ; 89 4e f8 11156 11454 mov bx, word [bp+00ah] ; 8b 5e 0a 11157 11455 mov dx, di ; 89 fa … … 11160 11458 ; sub ah, ah ; 2a e4 11161 11459 test AL, strict byte 001h ; a8 01 11162 jne short 07 964h ; 75 f711460 jne short 07cc3h ; 75 f7 11163 11461 mov ax, bx ; 89 d8 11164 11462 mov dx, word [bp+00ch] ; 8b 56 0c … … 11166 11464 shr dx, 1 ; d1 ea 11167 11465 rcr ax, 1 ; d1 d8 11168 loop 07975h ; e2 fa 11169 and ax, 000f0h ; 25 f0 00 11466 loop 07cd4h ; e2 fa 11467 mov cx, ax ; 89 c1 11468 and cx, 000f0h ; 81 e1 f0 00 11469 cmp byte [bp+004h], 010h ; 80 7e 04 10 11470 db 00fh, 094h, 0c0h 11471 ; sete al ; 0f 94 c0 11472 xor ah, ah ; 30 e4 11473 cwd ; 99 11474 or ax, cx ; 09 c8 11475 or ax, dx ; 09 d0 11476 je short 07cf4h ; 74 04 11477 xor cx, cx ; 31 c9 11478 jmp short 07cf8h ; eb 04 11170 11479 movzx cx, byte [bp+004h] ; 0f b6 4e 04 11171 or cx, ax ; 09 c111172 11480 mov al, byte [bp-006h] ; 8a 46 fa 11173 11481 mov dx, di ; 89 fa … … 11184 11492 shr dx, 1 ; d1 ea 11185 11493 rcr ax, 1 ; d1 d8 11186 loop 07 99bh ; e2 fa11494 loop 07d0fh ; e2 fa 11187 11495 mov dx, di ; 89 fa 11188 11496 out DX, AL ; ee … … 11190 11498 movzx ax, byte [bp+004h] ; 0f b6 46 04 11191 11499 cmp cx, ax ; 39 c1 11192 jnc short 079bfh ; 73 11 11193 mov es, [bp-00ah] ; 8e 46 f6 11194 mov si, word [bp-008h] ; 8b 76 f8 11500 jnc short 07d30h ; 73 0e 11501 les si, [bp-00ah] ; c4 76 f6 11195 11502 add si, cx ; 01 ce 11196 11503 mov al, byte [es:si] ; 26 8a 04 … … 11198 11505 out DX, AL ; ee 11199 11506 inc cx ; 41 11200 jmp short 07 9a6h ; eb e711507 jmp short 07d1ah ; eb ea 11201 11508 lea dx, [di+001h] ; 8d 55 01 11202 11509 cmp word [bp+00ch], strict byte 00000h ; 83 7e 0c 00 11203 jne short 07 9ceh ; 75 0611510 jne short 07d3fh ; 75 06 11204 11511 cmp bx, 08000h ; 81 fb 00 80 11205 jbe short 07 9e9h ; 76 1b11512 jbe short 07d5ah ; 76 1b 11206 11513 mov cx, 08000h ; b9 00 80 11207 11514 les si, [bp+006h] ; c4 76 06 … … 11213 11520 add ax, 00800h ; 05 00 08 11214 11521 mov word [bp+008h], ax ; 89 46 08 11215 jmp short 07 9bfh ; eb d611522 jmp short 07d30h ; eb d6 11216 11523 mov cx, bx ; 89 d9 11217 11524 les si, [bp+006h] ; c4 76 06 … … 11223 11530 ; sub ah, ah ; 2a e4 11224 11531 test AL, strict byte 001h ; a8 01 11225 jne short 07 9f1h ; 75 f711532 jne short 07d62h ; 75 f7 11226 11533 test AL, strict byte 002h ; a8 02 11227 je short 07 a0ch ; 74 0e11534 je short 07d7dh ; 74 0e 11228 11535 lea dx, [di+003h] ; 8d 55 03 11229 11536 xor al, al ; 30 c0 … … 11233 11540 ; sub ah, ah ; 2a e4 11234 11541 mov ax, strict word 00004h ; b8 04 00 11235 jmp short 07 a0eh ; eb 0211542 jmp short 07d7fh ; eb 02 11236 11543 xor ax, ax ; 31 c0 11237 11544 lea sp, [bp-004h] ; 8d 66 fc … … 11240 11547 pop bp ; 5d 11241 11548 retn 0000ah ; c2 0a 00 11242 @scsi_read_sectors: ; 0xf7 a17 LB 0xb911549 @scsi_read_sectors: ; 0xf7d88 LB 0xdb 11243 11550 push bp ; 55 11244 11551 mov bp, sp ; 89 e5 11245 11552 push si ; 56 11246 11553 push di ; 57 11247 sub sp, strict byte 000 0eh ; 83 ec 0e11554 sub sp, strict byte 00016h ; 83 ec 16 11248 11555 mov si, word [bp+004h] ; 8b 76 04 11249 11556 mov es, [bp+006h] ; 8e 46 06 11250 mov bl, byte [es:si+008h] ; 26 8a 5c 08 11251 sub bl, 008h ; 80 eb 08 11252 cmp bl, 004h ; 80 fb 04 11253 jbe short 07a43h ; 76 12 11254 movzx ax, bl ; 0f b6 c3 11557 mov al, byte [es:si+00ch] ; 26 8a 44 0c 11558 sub AL, strict byte 008h ; 2c 08 11559 mov byte [bp-006h], al ; 88 46 fa 11560 cmp AL, strict byte 004h ; 3c 04 11561 jbe short 07db6h ; 76 13 11562 movzx ax, byte [bp-006h] ; 0f b6 46 fa 11255 11563 push ax ; 50 11256 push 00b 26h ; 68 260b11257 push 00b3 8h ; 68 380b11564 push 00b1eh ; 68 1e 0b 11565 push 00b30h ; 68 30 0b 11258 11566 push strict byte 00007h ; 6a 07 11259 call 01972h ; e8 32 9f11567 call 01972h ; e8 bf 9b 11260 11568 add sp, strict byte 00008h ; 83 c4 08 11261 11569 mov es, [bp+006h] ; 8e 46 06 11262 mov di, word [es:si+00ah] ; 26 8b 7c 0a 11263 mov word [bp-012h], strict word 00028h ; c7 46 ee 28 00 11264 mov ax, word [es:si] ; 26 8b 04 11265 mov dx, word [es:si+002h] ; 26 8b 54 02 11570 mov di, word [es:si+00eh] ; 26 8b 7c 0e 11571 mov word [bp-01ah], 00088h ; c7 46 e6 88 00 11572 mov ax, word [es:si+006h] ; 26 8b 44 06 11573 mov bx, word [es:si+004h] ; 26 8b 5c 04 11574 mov cx, word [es:si+002h] ; 26 8b 4c 02 11575 mov dx, word [es:si] ; 26 8b 14 11576 xchg ah, al ; 86 c4 11577 xchg bh, bl ; 86 df 11578 xchg ch, cl ; 86 cd 11579 xchg dh, dl ; 86 d6 11580 xchg dx, ax ; 92 11581 xchg bx, cx ; 87 cb 11582 mov word [bp-012h], ax ; 89 46 ee 11583 mov word [bp-014h], bx ; 89 5e ec 11584 mov word [bp-016h], cx ; 89 4e ea 11585 mov word [bp-018h], dx ; 89 56 e8 11586 mov byte [bp-00ch], 000h ; c6 46 f4 00 11587 mov ax, di ; 89 f8 11588 xor dx, dx ; 31 d2 11266 11589 xchg ah, al ; 86 c4 11267 11590 xchg dh, dl ; 86 d6 … … 11269 11592 mov word [bp-010h], ax ; 89 46 f0 11270 11593 mov word [bp-00eh], dx ; 89 56 f2 11271 mov byte [bp-00ch], 000h ; c6 46 f4 00 11272 mov ax, di ; 89 f8 11273 xchg ah, al ; 86 c4 11274 mov word [bp-00bh], ax ; 89 46 f5 11275 mov byte [bp-009h], 000h ; c6 46 f7 00 11276 xor bh, bh ; 30 ff 11277 sal bx, 002h ; c1 e3 02 11278 add bx, si ; 01 f3 11279 mov ax, word [es:bx+001d8h] ; 26 8b 87 d8 01 11280 mov dl, byte [es:bx+001dah] ; 26 8a 97 da 01 11281 mov word [bp-008h], di ; 89 7e f8 11282 mov word [bp-006h], strict word 00000h ; c7 46 fa 00 00 11594 mov byte [bp-00bh], 000h ; c6 46 f5 00 11595 movzx ax, byte [bp-006h] ; 0f b6 46 fa 11596 sal ax, 002h ; c1 e0 02 11597 mov bx, si ; 89 f3 11598 add bx, ax ; 01 c3 11599 mov ax, word [es:bx+0021ch] ; 26 8b 87 1c 02 11600 mov dl, byte [es:bx+0021eh] ; 26 8a 97 1e 02 11601 mov word [bp-00ah], di ; 89 7e f6 11602 mov word [bp-008h], strict word 00000h ; c7 46 f8 00 00 11283 11603 mov cx, strict word 00009h ; b9 09 00 11284 sal word [bp-00 8h], 1 ; d1 66 f811285 rcl word [bp-00 6h], 1 ; d1 56 fa11286 loop 07 a8ch ; e2 f811287 push dword [bp-00 8h] ; 66 ff 76 f811288 db 066h, 026h, 0ffh, 074h, 00 4h11289 ; push dword [es:si+00 4h] ; 66 26 ff 74 0411290 push strict byte 000 0ah ; 6a 0a11604 sal word [bp-00ah], 1 ; d1 66 f6 11605 rcl word [bp-008h], 1 ; d1 56 f8 11606 loop 07e1fh ; e2 f8 11607 push dword [bp-00ah] ; 66 ff 76 f6 11608 db 066h, 026h, 0ffh, 074h, 008h 11609 ; push dword [es:si+008h] ; 66 26 ff 74 08 11610 push strict byte 00010h ; 6a 10 11291 11611 xor dh, dh ; 30 f6 11292 11612 mov cx, ss ; 8c d1 11293 lea bx, [bp-01 2h] ; 8d 5e ee11294 call 07 885h ; e8 dcfd11613 lea bx, [bp-01ah] ; 8d 5e e6 11614 call 07bd2h ; e8 96 fd 11295 11615 mov ah, al ; 88 c4 11296 11616 test al, al ; 84 c0 11297 jne short 07 ac4h ; 75 1511617 jne short 07e57h ; 75 15 11298 11618 mov es, [bp+006h] ; 8e 46 06 11299 mov word [es:si+014h], di ; 26 89 7c 14 11619 mov word [es:si+018h], di ; 26 89 7c 18 11620 mov dx, word [bp-00ah] ; 8b 56 f6 11621 mov word [es:si+01ah], dx ; 26 89 54 1a 11300 11622 mov dx, word [bp-008h] ; 8b 56 f8 11301 mov word [es:si+016h], dx ; 26 89 54 16 11302 mov dx, word [bp-006h] ; 8b 56 fa 11303 mov word [es:si+018h], dx ; 26 89 54 18 11623 mov word [es:si+01ch], dx ; 26 89 54 1c 11304 11624 movzx ax, ah ; 0f b6 c4 11305 11625 lea sp, [bp-004h] ; 8d 66 fc … … 11308 11628 pop bp ; 5d 11309 11629 retn 00004h ; c2 04 00 11310 @scsi_write_sectors: ; 0xf7 ad0 LB 0xb911630 @scsi_write_sectors: ; 0xf7e63 LB 0xdb 11311 11631 push bp ; 55 11312 11632 mov bp, sp ; 89 e5 11313 11633 push si ; 56 11314 11634 push di ; 57 11315 sub sp, strict byte 000 0eh ; 83 ec 0e11635 sub sp, strict byte 00016h ; 83 ec 16 11316 11636 mov si, word [bp+004h] ; 8b 76 04 11317 11637 mov es, [bp+006h] ; 8e 46 06 11318 mov bl, byte [es:si+008h] ; 26 8a 5c 08 11319 sub bl, 008h ; 80 eb 08 11320 cmp bl, 004h ; 80 fb 04 11321 jbe short 07afch ; 76 12 11322 movzx ax, bl ; 0f b6 c3 11638 mov al, byte [es:si+00ch] ; 26 8a 44 0c 11639 sub AL, strict byte 008h ; 2c 08 11640 mov byte [bp-006h], al ; 88 46 fa 11641 cmp AL, strict byte 004h ; 3c 04 11642 jbe short 07e91h ; 76 13 11643 movzx ax, byte [bp-006h] ; 0f b6 46 fa 11323 11644 push ax ; 50 11324 push 00b 57h ; 68 570b11325 push 00b3 8h ; 68 380b11645 push 00b4fh ; 68 4f 0b 11646 push 00b30h ; 68 30 0b 11326 11647 push strict byte 00007h ; 6a 07 11327 call 01972h ; e8 79 9e11648 call 01972h ; e8 e4 9a 11328 11649 add sp, strict byte 00008h ; 83 c4 08 11329 11650 mov es, [bp+006h] ; 8e 46 06 11330 mov di, word [es:si+00ah] ; 26 8b 7c 0a 11331 mov word [bp-012h], strict word 0002ah ; c7 46 ee 2a 00 11332 mov ax, word [es:si] ; 26 8b 04 11333 mov dx, word [es:si+002h] ; 26 8b 54 02 11651 mov di, word [es:si+00eh] ; 26 8b 7c 0e 11652 mov word [bp-01ah], 0008ah ; c7 46 e6 8a 00 11653 mov ax, word [es:si+006h] ; 26 8b 44 06 11654 mov bx, word [es:si+004h] ; 26 8b 5c 04 11655 mov cx, word [es:si+002h] ; 26 8b 4c 02 11656 mov dx, word [es:si] ; 26 8b 14 11657 xchg ah, al ; 86 c4 11658 xchg bh, bl ; 86 df 11659 xchg ch, cl ; 86 cd 11660 xchg dh, dl ; 86 d6 11661 xchg dx, ax ; 92 11662 xchg bx, cx ; 87 cb 11663 mov word [bp-012h], ax ; 89 46 ee 11664 mov word [bp-014h], bx ; 89 5e ec 11665 mov word [bp-016h], cx ; 89 4e ea 11666 mov word [bp-018h], dx ; 89 56 e8 11667 mov byte [bp-00ch], 000h ; c6 46 f4 00 11668 mov ax, di ; 89 f8 11669 xor dx, dx ; 31 d2 11334 11670 xchg ah, al ; 86 c4 11335 11671 xchg dh, dl ; 86 d6 … … 11337 11673 mov word [bp-010h], ax ; 89 46 f0 11338 11674 mov word [bp-00eh], dx ; 89 56 f2 11339 mov byte [bp-00ch], 000h ; c6 46 f4 00 11340 mov ax, di ; 89 f8 11341 xchg ah, al ; 86 c4 11342 mov word [bp-00bh], ax ; 89 46 f5 11343 mov byte [bp-009h], 000h ; c6 46 f7 00 11344 xor bh, bh ; 30 ff 11345 sal bx, 002h ; c1 e3 02 11346 add bx, si ; 01 f3 11347 mov ax, word [es:bx+001d8h] ; 26 8b 87 d8 01 11348 mov dl, byte [es:bx+001dah] ; 26 8a 97 da 01 11349 mov word [bp-008h], di ; 89 7e f8 11350 mov word [bp-006h], strict word 00000h ; c7 46 fa 00 00 11675 mov byte [bp-00bh], 000h ; c6 46 f5 00 11676 movzx ax, byte [bp-006h] ; 0f b6 46 fa 11677 sal ax, 002h ; c1 e0 02 11678 mov bx, si ; 89 f3 11679 add bx, ax ; 01 c3 11680 mov ax, word [es:bx+0021ch] ; 26 8b 87 1c 02 11681 mov dl, byte [es:bx+0021eh] ; 26 8a 97 1e 02 11682 mov word [bp-00ah], di ; 89 7e f6 11683 mov word [bp-008h], strict word 00000h ; c7 46 f8 00 00 11351 11684 mov cx, strict word 00009h ; b9 09 00 11352 sal word [bp-00 8h], 1 ; d1 66 f811353 rcl word [bp-00 6h], 1 ; d1 56 fa11354 loop 07 b45h ; e2 f811355 push dword [bp-00 8h] ; 66 ff 76 f811356 db 066h, 026h, 0ffh, 074h, 00 4h11357 ; push dword [es:si+00 4h] ; 66 26 ff 74 0411358 push strict byte 000 0ah ; 6a 0a11685 sal word [bp-00ah], 1 ; d1 66 f6 11686 rcl word [bp-008h], 1 ; d1 56 f8 11687 loop 07efah ; e2 f8 11688 push dword [bp-00ah] ; 66 ff 76 f6 11689 db 066h, 026h, 0ffh, 074h, 008h 11690 ; push dword [es:si+008h] ; 66 26 ff 74 08 11691 push strict byte 00010h ; 6a 10 11359 11692 xor dh, dh ; 30 f6 11360 11693 mov cx, ss ; 8c d1 11361 lea bx, [bp-01 2h] ; 8d 5e ee11362 call 07 94eh ; e8 ecfd11694 lea bx, [bp-01ah] ; 8d 5e e6 11695 call 07cadh ; e8 96 fd 11363 11696 mov ah, al ; 88 c4 11364 11697 test al, al ; 84 c0 11365 jne short 07 b7dh ; 75 1511698 jne short 07f32h ; 75 15 11366 11699 mov es, [bp+006h] ; 8e 46 06 11367 mov word [es:si+014h], di ; 26 89 7c 14 11700 mov word [es:si+018h], di ; 26 89 7c 18 11701 mov dx, word [bp-00ah] ; 8b 56 f6 11702 mov word [es:si+01ah], dx ; 26 89 54 1a 11368 11703 mov dx, word [bp-008h] ; 8b 56 f8 11369 mov word [es:si+016h], dx ; 26 89 54 16 11370 mov dx, word [bp-006h] ; 8b 56 fa 11371 mov word [es:si+018h], dx ; 26 89 54 18 11704 mov word [es:si+01ch], dx ; 26 89 54 1c 11372 11705 movzx ax, ah ; 0f b6 c4 11373 11706 lea sp, [bp-004h] ; 8d 66 fc … … 11376 11709 pop bp ; 5d 11377 11710 retn 00004h ; c2 04 00 11378 scsi_cmd_packet_: ; 0xf7 b89LB 0x16611711 scsi_cmd_packet_: ; 0xf7f3e LB 0x166 11379 11712 push bp ; 55 11380 11713 mov bp, sp ; 89 e5 … … 11388 11721 mov dx, strict word 0000eh ; ba 0e 00 11389 11722 mov ax, strict word 00040h ; b8 40 00 11390 call 0166ch ; e8 c7 9a11723 call 0166ch ; e8 12 97 11391 11724 mov si, 00122h ; be 22 01 11392 11725 mov word [bp-00eh], ax ; 89 46 f2 11393 11726 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 11394 jne short 07 bd0h ; 75 1f11395 mov bx, 00da 2h ; bb a20d11727 jne short 07f85h ; 75 1f 11728 mov bx, 00da0h ; bb a0 0d 11396 11729 mov cx, ds ; 8c d9 11397 11730 mov ax, strict word 00004h ; b8 04 00 11398 call 01931h ; e8 75 9d11399 push 00b6 ah ; 68 6a0b11400 push 00b7 ah ; 68 7a0b11731 call 01931h ; e8 c0 99 11732 push 00b62h ; 68 62 0b 11733 push 00b72h ; 68 72 0b 11401 11734 push strict byte 00004h ; 6a 04 11402 call 01972h ; e8 ab 9d11735 call 01972h ; e8 f6 99 11403 11736 add sp, strict byte 00006h ; 83 c4 06 11404 11737 mov dx, strict word 00001h ; ba 01 00 11405 jmp near 0 7ce4h ; e9 14 0111738 jmp near 08099h ; e9 14 01 11406 11739 sub di, strict byte 00008h ; 83 ef 08 11407 11740 sal di, 002h ; c1 e7 02 … … 11409 11742 mov es, [bp-00eh] ; 8e 46 f2 11410 11743 add di, si ; 01 f7 11411 mov bx, word [es:di+00 1d8h] ; 26 8b 9d d8 0111412 mov al, byte [es:di+00 1dah] ; 26 8a 85 da 0111744 mov bx, word [es:di+0021ch] ; 26 8b 9d 1c 02 11745 mov al, byte [es:di+0021eh] ; 26 8a 85 1e 02 11413 11746 mov byte [bp-008h], al ; 88 46 f8 11414 11747 mov dx, bx ; 89 da … … 11417 11750 ; sub ah, ah ; 2a e4 11418 11751 test AL, strict byte 001h ; a8 01 11419 jne short 07 bech ; 75 f711752 jne short 07fa1h ; 75 f7 11420 11753 xor ax, ax ; 31 c0 11421 11754 mov dx, word [bp+006h] ; 8b 56 06 … … 11423 11756 adc ax, word [bp+008h] ; 13 46 08 11424 11757 mov es, [bp-00eh] ; 8e 46 f2 11425 mov cx, word [es:si+0 1ch] ; 26 8b 4c 1c11758 mov cx, word [es:si+020h] ; 26 8b 4c 20 11426 11759 xor di, di ; 31 ff 11427 11760 add cx, dx ; 01 d1 … … 11433 11766 shr dx, 1 ; d1 ea 11434 11767 rcr ax, 1 ; d1 d8 11435 loop 07 c17h ; e2 fa11768 loop 07fcch ; e2 fa 11436 11769 and ax, 000f0h ; 25 f0 00 11437 11770 movzx cx, byte [bp-006h] ; 0f b6 4e fa … … 11451 11784 shr dx, 1 ; d1 ea 11452 11785 rcr ax, 1 ; d1 d8 11453 loop 07 c3eh ; e2 fa11786 loop 07ff3h ; e2 fa 11454 11787 mov dx, bx ; 89 da 11455 11788 out DX, AL ; ee … … 11457 11790 movzx ax, byte [bp-006h] ; 0f b6 46 fa 11458 11791 cmp cx, ax ; 39 c1 11459 jnc short 0 7c5fh ; 73 0e11792 jnc short 08014h ; 73 0e 11460 11793 les di, [bp-00ch] ; c4 7e f4 11461 11794 add di, cx ; 01 cf … … 11464 11797 out DX, AL ; ee 11465 11798 inc cx ; 41 11466 jmp short 07 c49h ; eb ea11799 jmp short 07ffeh ; eb ea 11467 11800 mov dx, bx ; 89 da 11468 11801 in AL, DX ; ec … … 11470 11803 ; sub ah, ah ; 2a e4 11471 11804 test AL, strict byte 001h ; a8 01 11472 jne short 0 7c5fh ; 75 f711805 jne short 08014h ; 75 f7 11473 11806 test AL, strict byte 002h ; a8 02 11474 je short 0 7c7ah ; 74 0e11807 je short 0802fh ; 74 0e 11475 11808 lea dx, [bx+003h] ; 8d 57 03 11476 11809 xor al, al ; 30 c0 … … 11480 11813 ; sub ah, ah ; 2a e4 11481 11814 mov dx, strict word 00003h ; ba 03 00 11482 jmp short 0 7ce4h ; eb 6a11815 jmp short 08099h ; eb 6a 11483 11816 mov ax, word [bp+004h] ; 8b 46 04 11484 11817 test ax, ax ; 85 c0 11485 je short 0 7c89h ; 74 0811818 je short 0803eh ; 74 08 11486 11819 lea dx, [bx+001h] ; 8d 57 01 11487 11820 mov cx, ax ; 89 c1 11488 11821 in AL, DX ; ec 11489 loop 0 7c86h ; e2 fd11822 loop 0803bh ; e2 fd 11490 11823 mov ax, word [bp+006h] ; 8b 46 06 11491 11824 mov es, [bp-00eh] ; 8e 46 f2 11492 mov word [es:si+01 6h], ax ; 26 89 44 1611825 mov word [es:si+01ah], ax ; 26 89 44 1a 11493 11826 mov ax, word [bp+008h] ; 8b 46 08 11494 mov word [es:si+01 8h], ax ; 26 89 44 1811827 mov word [es:si+01ch], ax ; 26 89 44 1c 11495 11828 lea ax, [bx+001h] ; 8d 47 01 11496 11829 cmp word [bp+008h], strict byte 00000h ; 83 7e 08 00 11497 jne short 0 7caah ; 75 0711830 jne short 0805fh ; 75 07 11498 11831 cmp word [bp+006h], 08000h ; 81 7e 06 00 80 11499 jbe short 0 7cc7h ; 76 1d11832 jbe short 0807ch ; 76 1d 11500 11833 mov dx, ax ; 89 c2 11501 11834 mov cx, 08000h ; b9 00 80 … … 11507 11840 add ax, 00800h ; 05 00 08 11508 11841 mov word [bp+00eh], ax ; 89 46 0e 11509 jmp short 0 7c9ah ; eb d311842 jmp short 0804fh ; eb d3 11510 11843 mov dx, ax ; 89 c2 11511 11844 mov cx, word [bp+006h] ; 8b 4e 06 … … 11513 11846 rep insb ; f3 6c 11514 11847 mov es, [bp-00eh] ; 8e 46 f2 11515 cmp word [es:si+0 1ch], strict byte 00000h ; 26 83 7c 1c0011516 je short 0 7ce2h ; 74 0711517 mov cx, word [es:si+0 1ch] ; 26 8b 4c 1c11848 cmp word [es:si+020h], strict byte 00000h ; 26 83 7c 20 00 11849 je short 08097h ; 74 07 11850 mov cx, word [es:si+020h] ; 26 8b 4c 20 11518 11851 in AL, DX ; ec 11519 loop 0 7cdfh ; e2 fd11852 loop 08094h ; e2 fd 11520 11853 xor dx, dx ; 31 d2 11521 11854 mov ax, dx ; 89 d0 … … 11525 11858 pop bp ; 5d 11526 11859 retn 0000ch ; c2 0c 00 11527 scsi_enumerate_attached_devices_: ; 0xf 7cef LB 0x3e411860 scsi_enumerate_attached_devices_: ; 0xf80a4 LB 0x482 11528 11861 push bp ; 55 11529 11862 mov bp, sp ; 89 e5 … … 11533 11866 push si ; 56 11534 11867 push di ; 57 11535 sub sp, 002 1eh ; 81 ec 1e0211868 sub sp, 0023ch ; 81 ec 3c 02 11536 11869 push ax ; 50 11537 11870 mov dx, strict word 0000eh ; ba 0e 00 11538 11871 mov ax, strict word 00040h ; b8 40 00 11539 call 0166ch ; e8 67 9911540 mov si, 00122h ; be22 0111541 mov word [bp-0 18h], ax ; 89 46 e811542 mov word [bp-0 0eh], strict word 00000h ; c7 46 f2 00 0011543 jmp near 08 055h ; e9 420311872 call 0166ch ; e8 b2 95 11873 mov di, 00122h ; bf 22 01 11874 mov word [bp-02eh], ax ; 89 46 d2 11875 mov word [bp-01eh], strict word 00000h ; c7 46 e2 00 00 11876 jmp near 084a8h ; e9 e0 03 11544 11877 cmp AL, strict byte 004h ; 3c 04 11545 jnc near 08 0c9h ; 0f 83 b0 0311546 mov cx, strict word 000 0ah ; b9 0a0011878 jnc near 0851ch ; 0f 83 4e 04 11879 mov cx, strict word 00010h ; b9 10 00 11547 11880 xor bx, bx ; 31 db 11548 11881 mov dx, ss ; 8c d2 11549 lea ax, [bp-028h] ; 8d 46 d8 11550 call 097aah ; e8 84 1a 11551 mov byte [bp-028h], 025h ; c6 46 d8 25 11552 push dword 000000008h ; 66 6a 08 11553 lea dx, [bp-00228h] ; 8d 96 d8 fd 11882 lea ax, [bp-046h] ; 8d 46 ba 11883 call 09d6ah ; e8 8f 1c 11884 mov byte [bp-046h], 09eh ; c6 46 ba 9e 11885 mov byte [bp-045h], 010h ; c6 46 bb 10 11886 mov byte [bp-039h], 020h ; c6 46 c7 20 11887 push dword 000000020h ; 66 6a 20 11888 lea dx, [bp-00246h] ; 8d 96 ba fd 11554 11889 push SS ; 16 11555 11890 push dx ; 52 11556 push strict byte 000 0ah ; 6a 0a11557 movzx dx, byte [bp-0 0eh] ; 0f b6 56 f211891 push strict byte 00010h ; 6a 10 11892 movzx dx, byte [bp-01eh] ; 0f b6 56 e2 11558 11893 mov cx, ss ; 8c d1 11559 lea bx, [bp-0 28h] ; 8d 5e d811560 mov ax, word [bp-002 2ah] ; 8b 86 d6fd11561 call 07 885h ; e8 40 fb11894 lea bx, [bp-046h] ; 8d 5e ba 11895 mov ax, word [bp-00248h] ; 8b 86 b8 fd 11896 call 07bd2h ; e8 d0 fa 11562 11897 test al, al ; 84 c0 11563 je short 0 7d57h ; 74 0e11564 push 00b9 ah ; 68 9a0b11565 push 00b d3h ; 68 d30b11898 je short 08114h ; 74 0e 11899 push 00b92h ; 68 92 0b 11900 push 00bcbh ; 68 cb 0b 11566 11901 push strict byte 00007h ; 6a 07 11567 call 01972h ; e8 1e 9c11902 call 01972h ; e8 61 98 11568 11903 add sp, strict byte 00006h ; 83 c4 06 11569 movzx ax, byte [bp-00227h] ; 0f b6 86 d9 fd 11570 movzx di, byte [bp-00228h] ; 0f b6 be d8 fd 11571 sal di, 008h ; c1 e7 08 11904 mov ax, word [bp-00240h] ; 8b 86 c0 fd 11905 mov bx, word [bp-00242h] ; 8b 9e be fd 11906 mov cx, word [bp-00244h] ; 8b 8e bc fd 11907 mov dx, word [bp-00246h] ; 8b 96 ba fd 11908 xchg ah, al ; 86 c4 11909 xchg bh, bl ; 86 df 11910 xchg ch, cl ; 86 cd 11911 xchg dh, dl ; 86 d6 11912 xchg dx, ax ; 92 11913 xchg bx, cx ; 87 cb 11914 add dx, strict byte 00001h ; 83 c2 01 11915 mov word [bp-016h], dx ; 89 56 ea 11916 adc cx, strict byte 00000h ; 83 d1 00 11917 mov word [bp-012h], cx ; 89 4e ee 11918 adc bx, strict byte 00000h ; 83 d3 00 11919 mov word [bp-030h], bx ; 89 5e d0 11920 adc ax, strict word 00000h ; 15 00 00 11921 mov word [bp-010h], ax ; 89 46 f0 11922 movzx ax, byte [bp-0023eh] ; 0f b6 86 c2 fd 11923 sal ax, 008h ; c1 e0 08 11924 movzx si, byte [bp-0023dh] ; 0f b6 b6 c3 fd 11572 11925 xor bx, bx ; 31 db 11573 or di, ax ; 09 c711574 movzx ax, byte [bp-002 26h] ; 0f b6 86 dafd11926 or si, ax ; 09 c6 11927 movzx ax, byte [bp-0023ch] ; 0f b6 86 c4 fd 11575 11928 xor dx, dx ; 31 d2 11576 11929 mov cx, strict word 00008h ; b9 08 00 11577 11930 sal ax, 1 ; d1 e0 11578 11931 rcl dx, 1 ; d1 d2 11579 loop 0 7d72h ; e2 fa11932 loop 08162h ; e2 fa 11580 11933 or bx, ax ; 09 c3 11581 or d i, dx ; 09 d711582 movzx ax, byte [bp-002 25h] ; 0f b6 86 dbfd11934 or dx, si ; 09 f2 11935 movzx ax, byte [bp-0023bh] ; 0f b6 86 c5 fd 11583 11936 or bx, ax ; 09 c3 11584 mov word [bp-014h], bx ; 89 5e ec 11585 add word [bp-014h], strict byte 00001h ; 83 46 ec 01 11586 adc di, strict byte 00000h ; 83 d7 00 11587 movzx ax, byte [bp-00224h] ; 0f b6 86 dc fd 11588 sal ax, 008h ; c1 e0 08 11589 movzx dx, byte [bp-00223h] ; 0f b6 96 dd fd 11590 xor bx, bx ; 31 db 11591 or ax, dx ; 09 d0 11592 mov word [bp-012h], ax ; 89 46 ee 11593 movzx ax, byte [bp-00222h] ; 0f b6 86 de fd 11594 xor dx, dx ; 31 d2 11595 mov cx, strict word 00008h ; b9 08 00 11596 sal ax, 1 ; d1 e0 11597 rcl dx, 1 ; d1 d2 11598 loop 07dabh ; e2 fa 11599 or ax, bx ; 09 d8 11600 or dx, word [bp-012h] ; 0b 56 ee 11601 movzx bx, byte [bp-00221h] ; 0f b6 9e df fd 11602 or ax, bx ; 09 d8 11603 mov word [bp-010h], ax ; 89 46 f0 11937 mov word [bp-024h], bx ; 89 5e dc 11604 11938 test dx, dx ; 85 d2 11605 jne short 0 7dc9h ; 75 0511606 cmp ax, 00200h ; 3d00 0211607 je short 0 7de9h ; 74 2011608 mov bx, 00da 2h ; bb a20d11939 jne short 08180h ; 75 06 11940 cmp bx, 00200h ; 81 fb 00 02 11941 je short 081a0h ; 74 20 11942 mov bx, 00da0h ; bb a0 0d 11609 11943 mov cx, ds ; 8c d9 11610 11944 mov ax, strict word 00004h ; b8 04 00 11611 call 01931h ; e8 5d 9b11945 call 01931h ; e8 a6 97 11612 11946 push dx ; 52 11613 push word [bp-0 10h] ; ff 76 f011614 push word [bp-0 0eh] ; ff 76 f211615 push 00b f2h ; 68 f20b11947 push word [bp-024h] ; ff 76 dc 11948 push word [bp-01eh] ; ff 76 e2 11949 push 00beah ; 68 ea 0b 11616 11950 push strict byte 00004h ; 6a 04 11617 call 01972h ; e8 8f 9b11951 call 01972h ; e8 d8 97 11618 11952 add sp, strict byte 0000ah ; 83 c4 0a 11619 jmp near 08 04ch ; e9 630211953 jmp near 0849fh ; e9 ff 02 11620 11954 mov al, byte [bp-00ch] ; 8a 46 f4 11621 11955 cmp AL, strict byte 001h ; 3c 01 11622 jc short 0 7dfch ; 72 0c11623 jbe short 0 7e04h ; 76 1211956 jc short 081b3h ; 72 0c 11957 jbe short 081bbh ; 76 12 11624 11958 cmp AL, strict byte 003h ; 3c 03 11625 je short 0 7e0ch ; 74 1611959 je short 081c3h ; 74 16 11626 11960 cmp AL, strict byte 002h ; 3c 02 11627 je short 0 7e08h ; 74 0e11628 jmp short 0 7e5bh ; eb 5f11961 je short 081bfh ; 74 0e 11962 jmp short 0820ch ; eb 59 11629 11963 test al, al ; 84 c0 11630 jne short 0 7e5bh ; 75 5b11964 jne short 0820ch ; 75 55 11631 11965 mov BL, strict byte 090h ; b3 90 11632 jmp short 0 7e0eh ; eb 0a11966 jmp short 081c5h ; eb 0a 11633 11967 mov BL, strict byte 098h ; b3 98 11634 jmp short 0 7e0eh ; eb 0611968 jmp short 081c5h ; eb 06 11635 11969 mov BL, strict byte 0a0h ; b3 a0 11636 jmp short 0 7e0eh ; eb 0211970 jmp short 081c5h ; eb 02 11637 11971 mov BL, strict byte 0a8h ; b3 a8 11638 11972 mov al, bl ; 88 d8 … … 11640 11974 movzx cx, al ; 0f b6 c8 11641 11975 mov ax, cx ; 89 c8 11642 call 016ach ; e8 92 9811976 call 016ach ; e8 db 94 11643 11977 test al, al ; 84 c0 11644 je short 0 7e5bh ; 74 3d11978 je short 0820ch ; 74 37 11645 11979 mov al, bl ; 88 d8 11646 11980 db 0feh, 0c0h 11647 11981 ; inc al ; fe c0 11648 11982 xor ah, ah ; 30 e4 11649 call 016ach ; e8 85 98 11983 call 016ach ; e8 ce 94 11984 movzx dx, al ; 0f b6 d0 11985 sal dx, 008h ; c1 e2 08 11986 movzx ax, bl ; 0f b6 c3 11987 call 016ach ; e8 c2 94 11650 11988 xor ah, ah ; 30 e4 11651 sal ax, 008h ; c1 e0 08 11652 mov word [bp-012h], ax ; 89 46 ee 11653 movzx ax, bl ; 0f b6 c3 11654 call 016ach ; e8 77 98 11655 xor ah, ah ; 30 e4 11656 add ax, word [bp-012h] ; 03 46 ee 11989 add ax, dx ; 01 d0 11657 11990 cwd ; 99 11658 mov word [bp-01eh], ax ; 89 46 e2 11659 mov word [bp-016h], dx ; 89 56 ea 11991 mov si, ax ; 89 c6 11660 11992 mov al, bl ; 88 d8 11661 11993 add AL, strict byte 002h ; 04 02 11662 11994 xor ah, ah ; 30 e4 11663 call 016ach ; e8 62 9811995 call 016ach ; e8 b2 94 11664 11996 xor ah, ah ; 30 e4 11665 mov word [bp-0 1ch], ax ; 89 46 e411997 mov word [bp-034h], ax ; 89 46 cc 11666 11998 mov ax, cx ; 89 c8 11667 call 016ach ; e8 58 9811999 call 016ach ; e8 a8 94 11668 12000 xor ah, ah ; 30 e4 11669 mov word [bp-01ah], ax ; 89 46 e6 11670 jmp short 07e9ch ; eb 41 11671 cmp di, strict byte 00040h ; 83 ff 40 11672 jnbe short 07e62h ; 77 02 11673 jne short 07e6ch ; 75 0a 11674 mov dword [bp-01ch], strict dword 0003f00ffh ; 66 c7 46 e4 ff 00 3f 00 11675 jmp short 07e85h ; eb 19 11676 cmp di, strict byte 00020h ; 83 ff 20 11677 jnbe short 07e73h ; 77 02 11678 jne short 07e7dh ; 75 0a 11679 mov dword [bp-01ch], strict dword 000200080h ; 66 c7 46 e4 80 00 20 00 11680 jmp short 07e85h ; eb 08 11681 mov dword [bp-01ch], strict dword 000200040h ; 66 c7 46 e4 40 00 20 00 12001 mov word [bp-032h], ax ; 89 46 ce 12002 jmp near 082f5h ; e9 e9 00 12003 mov ax, word [bp-010h] ; 8b 46 f0 12004 mov bx, word [bp-030h] ; 8b 5e d0 12005 mov cx, word [bp-012h] ; 8b 4e ee 12006 mov dx, word [bp-016h] ; 8b 56 ea 12007 mov si, strict word 0000ch ; be 0c 00 12008 call 09d5ah ; e8 3c 1b 12009 mov word [bp-018h], ax ; 89 46 e8 12010 mov word [bp-014h], bx ; 89 5e ec 12011 mov word [bp-036h], cx ; 89 4e ca 12012 mov word [bp-020h], dx ; 89 56 e0 12013 mov ax, word [bp-010h] ; 8b 46 f0 12014 test ax, ax ; 85 c0 12015 jnbe short 08247h ; 77 16 12016 jne near 082bah ; 0f 85 85 00 12017 cmp word [bp-030h], strict byte 00000h ; 83 7e d0 00 12018 jnbe short 08247h ; 77 0c 12019 jne near 082bah ; 0f 85 7b 00 12020 cmp word [bp-012h], strict byte 00040h ; 83 7e ee 40 12021 jnbe short 08247h ; 77 02 12022 jne short 082bah ; 75 73 12023 mov dword [bp-034h], strict dword 0003f00ffh ; 66 c7 46 cc ff 00 3f 00 12024 mov bx, word [bp-030h] ; 8b 5e d0 12025 mov cx, word [bp-012h] ; 8b 4e ee 12026 mov dx, word [bp-016h] ; 8b 56 ea 12027 mov si, strict word 00006h ; be 06 00 12028 call 09d5ah ; e8 fc 1a 12029 mov si, word [bp-020h] ; 8b 76 e0 12030 add si, dx ; 01 d6 12031 mov word [bp-02ah], si ; 89 76 d6 12032 mov dx, word [bp-036h] ; 8b 56 ca 12033 adc dx, cx ; 11 ca 12034 mov word [bp-028h], dx ; 89 56 d8 12035 mov dx, word [bp-014h] ; 8b 56 ec 12036 adc dx, bx ; 11 da 12037 mov word [bp-01ch], dx ; 89 56 e4 12038 mov dx, word [bp-018h] ; 8b 56 e8 12039 adc dx, ax ; 11 c2 12040 mov word [bp-026h], dx ; 89 56 da 12041 mov ax, dx ; 89 d0 11682 12042 mov bx, word [bp-01ch] ; 8b 5e e4 11683 imul bx, word [bp-01ah] ; 0f af 5e e6 11684 mov ax, word [bp-014h] ; 8b 46 ec 11685 mov dx, di ; 89 fa 11686 xor cx, cx ; 31 c9 11687 call 09740h ; e8 aa 18 11688 mov word [bp-01eh], ax ; 89 46 e2 11689 mov word [bp-016h], dx ; 89 56 ea 11690 mov dl, byte [bp-00ch] ; 8a 56 f4 11691 add dl, 008h ; 80 c2 08 11692 movzx bx, byte [bp-00ch] ; 0f b6 5e f4 11693 sal bx, 002h ; c1 e3 02 11694 mov es, [bp-018h] ; 8e 46 e8 11695 add bx, si ; 01 f3 11696 mov ax, word [bp-0022ah] ; 8b 86 d6 fd 11697 mov word [es:bx+001d8h], ax ; 26 89 87 d8 01 11698 mov al, byte [bp-00eh] ; 8a 46 f2 11699 mov byte [es:bx+001dah], al ; 26 88 87 da 01 11700 movzx ax, dl ; 0f b6 c2 11701 imul ax, ax, strict byte 00018h ; 6b c0 18 11702 mov bx, si ; 89 f3 12043 mov cx, word [bp-028h] ; 8b 4e d8 12044 mov dx, si ; 89 f2 12045 mov si, strict word 00008h ; be 08 00 12046 call 09d5ah ; e8 cc 1a 12047 mov word [bp-022h], bx ; 89 5e de 12048 mov word [bp-02ch], cx ; 89 4e d4 12049 mov word [bp-01ah], dx ; 89 56 e6 12050 mov ax, word [bp-026h] ; 8b 46 da 12051 mov bx, word [bp-01ch] ; 8b 5e e4 12052 mov cx, word [bp-028h] ; 8b 4e d8 12053 mov dx, word [bp-02ah] ; 8b 56 d6 12054 mov si, strict word 00010h ; be 10 00 12055 call 09d5ah ; e8 b1 1a 12056 mov si, word [bp-01ah] ; 8b 76 e6 12057 add si, dx ; 01 d6 12058 mov dx, word [bp-02ch] ; 8b 56 d4 12059 adc dx, cx ; 11 ca 12060 mov ax, word [bp-022h] ; 8b 46 de 12061 adc ax, bx ; 11 d8 12062 jmp short 082f5h ; eb 3b 12063 test ax, ax ; 85 c0 12064 jnbe short 082d0h ; 77 12 12065 jne short 082dah ; 75 1a 12066 cmp word [bp-030h], strict byte 00000h ; 83 7e d0 00 12067 jnbe short 082d0h ; 77 0a 12068 jne short 082dah ; 75 12 12069 cmp word [bp-012h], strict byte 00020h ; 83 7e ee 20 12070 jnbe short 082d0h ; 77 02 12071 jne short 082dah ; 75 0a 12072 mov dword [bp-034h], strict dword 000200080h ; 66 c7 46 cc 80 00 20 00 12073 jmp short 082f1h ; eb 17 12074 mov dword [bp-034h], strict dword 000200040h ; 66 c7 46 cc 40 00 20 00 12075 mov bx, word [bp-030h] ; 8b 5e d0 12076 mov cx, word [bp-012h] ; 8b 4e ee 12077 mov dx, word [bp-016h] ; 8b 56 ea 12078 mov si, strict word 0000bh ; be 0b 00 12079 call 09d5ah ; e8 69 1a 12080 mov si, dx ; 89 d6 12081 mov dx, cx ; 89 ca 12082 mov al, byte [bp-00ch] ; 8a 46 f4 12083 add AL, strict byte 008h ; 04 08 12084 mov byte [bp-00eh], al ; 88 46 f2 12085 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 12086 sal ax, 002h ; c1 e0 02 12087 mov es, [bp-02eh] ; 8e 46 d2 12088 mov bx, di ; 89 fb 11703 12089 add bx, ax ; 01 c3 11704 db 066h, 026h, 0c7h, 047h, 01eh, 004h, 0ffh, 000h, 000h 11705 ; mov dword [es:bx+01eh], strict dword 00000ff04h ; 66 26 c7 47 1e 04 ff 00 00 11706 mov ax, word [bp-010h] ; 8b 46 f0 11707 mov word [es:bx+024h], ax ; 26 89 47 24 11708 mov byte [es:bx+023h], 001h ; 26 c6 47 23 01 11709 mov ax, word [bp-01ch] ; 8b 46 e4 11710 mov word [es:bx+026h], ax ; 26 89 47 26 11711 mov ax, word [bp-01ah] ; 8b 46 e6 12090 mov ax, word [bp-00248h] ; 8b 86 b8 fd 12091 mov word [es:bx+0021ch], ax ; 26 89 87 1c 02 12092 mov al, byte [bp-01eh] ; 8a 46 e2 12093 mov byte [es:bx+0021eh], al ; 26 88 87 1e 02 12094 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 12095 imul ax, ax, strict byte 0001ch ; 6b c0 1c 12096 mov bx, di ; 89 fb 12097 add bx, ax ; 01 c3 12098 db 066h, 026h, 0c7h, 047h, 022h, 004h, 0ffh, 000h, 000h 12099 ; mov dword [es:bx+022h], strict dword 00000ff04h ; 66 26 c7 47 22 04 ff 00 00 12100 mov ax, word [bp-024h] ; 8b 46 dc 12101 mov word [es:bx+028h], ax ; 26 89 47 28 12102 mov byte [es:bx+027h], 001h ; 26 c6 47 27 01 12103 mov ax, word [bp-034h] ; 8b 46 cc 11712 12104 mov word [es:bx+02ah], ax ; 26 89 47 2a 11713 cmp word [bp-016h], strict byte 00000h ; 83 7e ea 00 11714 jne short 07ef9h ; 75 07 11715 cmp word [bp-01eh], 00400h ; 81 7e e2 00 04 11716 jbe short 07f01h ; 76 08 11717 mov word [es:bx+028h], 00400h ; 26 c7 47 28 00 04 11718 jmp short 07f08h ; eb 07 11719 mov ax, word [bp-01eh] ; 8b 46 e2 11720 mov word [es:bx+028h], ax ; 26 89 47 28 11721 mov bx, 00da2h ; bb a2 0d 12105 mov ax, word [bp-032h] ; 8b 46 ce 12106 mov word [es:bx+02eh], ax ; 26 89 47 2e 12107 mov ax, word [bp-034h] ; 8b 46 cc 12108 mov word [es:bx+030h], ax ; 26 89 47 30 12109 mov ax, word [bp-032h] ; 8b 46 ce 12110 mov word [es:bx+034h], ax ; 26 89 47 34 12111 test dx, dx ; 85 d2 12112 jne short 08362h ; 75 06 12113 cmp si, 00400h ; 81 fe 00 04 12114 jbe short 08370h ; 76 0e 12115 mov word [es:bx+02ch], 00400h ; 26 c7 47 2c 00 04 12116 mov word [es:bx+032h], 00400h ; 26 c7 47 32 00 04 12117 jmp short 08378h ; eb 08 12118 mov word [es:bx+02ch], si ; 26 89 77 2c 12119 mov word [es:bx+032h], si ; 26 89 77 32 12120 mov bx, 00da0h ; bb a0 0d 11722 12121 mov cx, ds ; 8c d9 11723 12122 mov ax, strict word 00004h ; b8 04 00 11724 call 01931h ; e8 1e 9a 11725 push di ; 57 11726 push word [bp-014h] ; ff 76 ec 11727 push dword [bp-01ch] ; 66 ff 76 e4 12123 call 01931h ; e8 ae 95 12124 push word [bp-010h] ; ff 76 f0 12125 push word [bp-030h] ; ff 76 d0 12126 push word [bp-012h] ; ff 76 ee 12127 push word [bp-016h] ; ff 76 ea 12128 push dword [bp-034h] ; 66 ff 76 cc 12129 push dx ; 52 12130 push si ; 56 11728 12131 push word [bp-01eh] ; ff 76 e2 11729 push word [bp-00eh] ; ff 76 f211730 12132 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 11731 12133 push ax ; 50 11732 push 00c 20h ; 68 200c12134 push 00c18h ; 68 18 0c 11733 12135 push strict byte 00004h ; 6a 04 11734 call 01972h ; e8 44 9a 11735 add sp, strict byte 00012h ; 83 c4 12 11736 movzx ax, dl ; 0f b6 c2 11737 imul ax, ax, strict byte 00018h ; 6b c0 18 11738 mov es, [bp-018h] ; 8e 46 e8 11739 mov bx, si ; 89 f3 11740 add bx, ax ; 01 c3 11741 mov ax, word [bp-01ch] ; 8b 46 e4 11742 mov word [es:bx+02ch], ax ; 26 89 47 2c 11743 mov ax, word [bp-01ah] ; 8b 46 e6 11744 mov word [es:bx+030h], ax ; 26 89 47 30 11745 cmp word [bp-016h], strict byte 00000h ; 83 7e ea 00 11746 jne short 07f59h ; 75 07 11747 cmp word [bp-01eh], 00400h ; 81 7e e2 00 04 11748 jbe short 07f61h ; 76 08 11749 mov word [es:bx+02eh], 00400h ; 26 c7 47 2e 00 04 11750 jmp short 07f68h ; eb 07 11751 mov ax, word [bp-01eh] ; 8b 46 e2 11752 mov word [es:bx+02eh], ax ; 26 89 47 2e 11753 movzx ax, dl ; 0f b6 c2 11754 imul ax, ax, strict byte 00018h ; 6b c0 18 11755 mov es, [bp-018h] ; 8e 46 e8 11756 mov bx, si ; 89 f3 11757 add bx, ax ; 01 c3 11758 mov ax, word [bp-014h] ; 8b 46 ec 11759 mov word [es:bx+032h], ax ; 26 89 47 32 11760 mov word [es:bx+034h], di ; 26 89 7f 34 11761 mov al, byte [es:si+0019eh] ; 26 8a 84 9e 01 12136 call 01972h ; e8 cd 95 12137 add sp, strict byte 00018h ; 83 c4 18 12138 movzx bx, byte [bp-00eh] ; 0f b6 5e f2 12139 imul bx, bx, strict byte 0001ch ; 6b db 1c 12140 mov es, [bp-02eh] ; 8e 46 d2 12141 add bx, di ; 01 fb 12142 mov ax, word [bp-010h] ; 8b 46 f0 12143 mov word [es:bx+03ch], ax ; 26 89 47 3c 12144 mov ax, word [bp-030h] ; 8b 46 d0 12145 mov word [es:bx+03ah], ax ; 26 89 47 3a 12146 mov ax, word [bp-012h] ; 8b 46 ee 12147 mov word [es:bx+038h], ax ; 26 89 47 38 12148 mov ax, word [bp-016h] ; 8b 46 ea 12149 mov word [es:bx+036h], ax ; 26 89 47 36 12150 mov al, byte [es:di+001e2h] ; 26 8a 85 e2 01 11762 12151 mov ah, byte [bp-00ch] ; 8a 66 f4 11763 12152 add ah, 008h ; 80 c4 08 11764 12153 movzx bx, al ; 0f b6 d8 11765 add bx, si ; 01 f311766 mov byte [es:bx+001 9fh], ah ; 26 88 a7 9f0112154 add bx, di ; 01 fb 12155 mov byte [es:bx+001e3h], ah ; 26 88 a7 e3 01 11767 12156 db 0feh, 0c0h 11768 12157 ; inc al ; fe c0 11769 mov byte [es: si+0019eh], al ; 26 88 84 9e0112158 mov byte [es:di+001e2h], al ; 26 88 85 e2 01 11770 12159 mov dx, strict word 00075h ; ba 75 00 11771 12160 mov ax, strict word 00040h ; b8 40 00 11772 call 01650h ; e8 ab 9612161 call 01650h ; e8 5b 92 11773 12162 db 0feh, 0c0h 11774 12163 ; inc al ; fe c0 … … 11776 12165 mov dx, strict word 00075h ; ba 75 00 11777 12166 mov ax, strict word 00040h ; b8 40 00 11778 call 0165eh ; e8 ab 9612167 call 0165eh ; e8 5b 92 11779 12168 inc byte [bp-00ch] ; fe 46 f4 11780 jmp near 08 041h ; e9 880011781 mov bx, 00da 2h ; bb a20d12169 jmp near 08494h ; e9 8b 00 12170 mov bx, 00da0h ; bb a0 0d 11782 12171 mov cx, ds ; 8c d9 11783 12172 mov ax, strict word 00004h ; b8 04 00 11784 call 01931h ; e8 6d 9911785 push word [bp-0 0eh] ; ff 76 f212173 call 01931h ; e8 1d 95 12174 push word [bp-01eh] ; ff 76 e2 11786 12175 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 11787 12176 push ax ; 50 11788 push 00c4 ah ; 68 4a0c12177 push 00c46h ; 68 46 0c 11789 12178 push strict byte 00004h ; 6a 04 11790 call 01972h ; e8 9e 9912179 call 01972h ; e8 4e 95 11791 12180 add sp, strict byte 00008h ; 83 c4 08 11792 mov dl, byte [bp-00ch] ; 8a 56 f4 11793 add dl, 008h ; 80 c2 08 11794 test byte [bp-00227h], 080h ; f6 86 d9 fd 80 12181 mov al, byte [bp-00ch] ; 8a 46 f4 12182 add AL, strict byte 008h ; 04 08 12183 mov byte [bp-00eh], al ; 88 46 f2 12184 test byte [bp-00245h], 080h ; f6 86 bb fd 80 11795 12185 db 00fh, 095h, 0c0h 11796 12186 ; setne al ; 0f 95 c0 11797 12187 xor ah, ah ; 30 e4 11798 mov cx, ax ; 89 c112188 mov dx, ax ; 89 c2 11799 12189 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 11800 12190 sal ax, 002h ; c1 e0 02 11801 mov es, [bp-0 18h] ; 8e 46 e811802 mov bx, si ; 89 f312191 mov es, [bp-02eh] ; 8e 46 d2 12192 mov bx, di ; 89 fb 11803 12193 add bx, ax ; 01 c3 11804 mov ax, word [bp-002 2ah] ; 8b 86 d6fd11805 mov word [es:bx+00 1d8h], ax ; 26 89 87 d8 0111806 mov al, byte [bp-0 0eh] ; 8a 46 f211807 mov byte [es:bx+00 1dah], al ; 26 88 87 da 0111808 movzx ax, dl ; 0f b6 c211809 imul ax, ax, strict byte 0001 8h ; 6b c0 1811810 mov bx, si ; 89 f312194 mov ax, word [bp-00248h] ; 8b 86 b8 fd 12195 mov word [es:bx+0021ch], ax ; 26 89 87 1c 02 12196 mov al, byte [bp-01eh] ; 8a 46 e2 12197 mov byte [es:bx+0021eh], al ; 26 88 87 1e 02 12198 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 12199 imul ax, ax, strict byte 0001ch ; 6b c0 1c 12200 mov bx, di ; 89 fb 11811 12201 add bx, ax ; 01 c3 11812 mov word [es:bx+0 1eh], 00504h ; 26 c7 47 1e04 0511813 mov byte [es:bx+02 0h], cl ; 26 88 4f 2011814 mov word [es:bx+02 4h], 00800h ; 26 c7 47 2400 0811815 mov al, byte [es: si+001afh] ; 26 8a 84 af0112202 mov word [es:bx+022h], 00504h ; 26 c7 47 22 04 05 12203 mov byte [es:bx+024h], dl ; 26 88 57 24 12204 mov word [es:bx+028h], 00800h ; 26 c7 47 28 00 08 12205 mov al, byte [es:di+001f3h] ; 26 8a 85 f3 01 11816 12206 mov ah, byte [bp-00ch] ; 8a 66 f4 11817 12207 add ah, 008h ; 80 c4 08 11818 12208 movzx bx, al ; 0f b6 d8 11819 add bx, si ; 01 f311820 mov byte [es:bx+001 b0h], ah ; 26 88 a7 b00112209 add bx, di ; 01 fb 12210 mov byte [es:bx+001f4h], ah ; 26 88 a7 f4 01 11821 12211 db 0feh, 0c0h 11822 12212 ; inc al ; fe c0 11823 mov byte [es: si+001afh], al ; 26 88 84 af0112213 mov byte [es:di+001f3h], al ; 26 88 85 f3 01 11824 12214 inc byte [bp-00ch] ; fe 46 f4 11825 12215 mov al, byte [bp-00ch] ; 8a 46 f4 11826 mov es, [bp-0 18h] ; 8e 46 e811827 mov byte [es: si+001e8h], al ; 26 88 84 e8 0111828 inc word [bp-0 0eh] ; ff 46 f211829 cmp word [bp-0 0eh], strict byte 00010h ; 83 7e f2 1011830 jnl short 08 0c9h ; 7d 7411831 mov byte [bp-0 28h], 012h ; c6 46 d81212216 mov es, [bp-02eh] ; 8e 46 d2 12217 mov byte [es:di+0022ch], al ; 26 88 85 2c 02 12218 inc word [bp-01eh] ; ff 46 e2 12219 cmp word [bp-01eh], strict byte 00010h ; 83 7e e2 10 12220 jnl short 0851ch ; 7d 74 12221 mov byte [bp-046h], 012h ; c6 46 ba 12 11832 12222 xor al, al ; 30 c0 11833 mov byte [bp-0 27h], al ; 88 46 d911834 mov byte [bp-0 26h], al ; 88 46 da11835 mov byte [bp-0 25h], al ; 88 46 db11836 mov byte [bp-0 24h], 005h ; c6 46 dc0511837 mov byte [bp-0 23h], al ; 88 46 dd12223 mov byte [bp-045h], al ; 88 46 bb 12224 mov byte [bp-044h], al ; 88 46 bc 12225 mov byte [bp-043h], al ; 88 46 bd 12226 mov byte [bp-042h], 005h ; c6 46 be 05 12227 mov byte [bp-041h], al ; 88 46 bf 11838 12228 push dword 000000005h ; 66 6a 05 11839 lea dx, [bp-002 28h] ; 8d 96 d8fd12229 lea dx, [bp-00246h] ; 8d 96 ba fd 11840 12230 push SS ; 16 11841 12231 push dx ; 52 11842 12232 push strict byte 00006h ; 6a 06 11843 movzx dx, byte [bp-0 0eh] ; 0f b6 56 f212233 movzx dx, byte [bp-01eh] ; 0f b6 56 e2 11844 12234 mov cx, ss ; 8c d1 11845 lea bx, [bp-0 28h] ; 8d 5e d811846 mov ax, word [bp-002 2ah] ; 8b 86 d6fd11847 call 07 885h ; e8 ff f712235 lea bx, [bp-046h] ; 8d 5e ba 12236 mov ax, word [bp-00248h] ; 8b 86 b8 fd 12237 call 07bd2h ; e8 f9 f6 11848 12238 test al, al ; 84 c0 11849 je short 08 098h ; 74 0e11850 push 00b9 ah ; 68 9a0b11851 push 00bb ah ; 68 ba0b12239 je short 084ebh ; 74 0e 12240 push 00b92h ; 68 92 0b 12241 push 00bb2h ; 68 b2 0b 11852 12242 push strict byte 00007h ; 6a 07 11853 call 01972h ; e8 dd 9812243 call 01972h ; e8 8a 94 11854 12244 add sp, strict byte 00006h ; 83 c4 06 11855 mov es, [bp-0 18h] ; 8e 46 e811856 mov al, byte [es: si+001e8h] ; 26 8a 84 e8 0112245 mov es, [bp-02eh] ; 8e 46 d2 12246 mov al, byte [es:di+0022ch] ; 26 8a 85 2c 02 11857 12247 mov byte [bp-00ch], al ; 88 46 f4 11858 test byte [bp-002 28h], 0e0h ; f6 86 d8fd e011859 jne short 08 0b3h ; 75 0911860 test byte [bp-002 28h], 01fh ; f6 86 d8fd 1f11861 je near 0 7d13h ; 0f 84 60 fc11862 test byte [bp-002 28h], 0e0h ; f6 86 d8fd e011863 jne short 08 041h ; 75 8711864 mov al, byte [bp-002 28h] ; 8a 86 d8fd12248 test byte [bp-00246h], 0e0h ; f6 86 ba fd e0 12249 jne short 08506h ; 75 09 12250 test byte [bp-00246h], 01fh ; f6 86 ba fd 1f 12251 je near 080c8h ; 0f 84 c2 fb 12252 test byte [bp-00246h], 0e0h ; f6 86 ba fd e0 12253 jne short 08494h ; 75 87 12254 mov al, byte [bp-00246h] ; 8a 86 ba fd 11865 12255 and AL, strict byte 01fh ; 24 1f 11866 12256 cmp AL, strict byte 005h ; 3c 05 11867 je near 0 7fb9h ; 0f 84 f3fe11868 jmp near 08 041h ; e9 78 ff12257 je near 08409h ; 0f 84 f0 fe 12258 jmp near 08494h ; e9 78 ff 11869 12259 lea sp, [bp-00ah] ; 8d 66 f6 11870 12260 pop di ; 5f … … 11875 12265 pop bp ; 5d 11876 12266 retn ; c3 11877 _scsi_init: ; 0xf8 0d3LB 0x6612267 _scsi_init: ; 0xf8526 LB 0x66 11878 12268 push bp ; 55 11879 12269 mov bp, sp ; 89 e5 11880 12270 mov dx, strict word 0000eh ; ba 0e 00 11881 12271 mov ax, strict word 00040h ; b8 40 00 11882 call 0166ch ; e8 8d 9512272 call 0166ch ; e8 3a 91 11883 12273 mov bx, 00122h ; bb 22 01 11884 12274 mov es, ax ; 8e c0 11885 mov byte [es:bx+00 1e8h], 000h ; 26 c6 87 e8 010012275 mov byte [es:bx+0022ch], 000h ; 26 c6 87 2c 02 00 11886 12276 mov AL, strict byte 055h ; b0 55 11887 12277 mov dx, 00432h ; ba 32 04 … … 11891 12281 ; sub ah, ah ; 2a e4 11892 12282 cmp AL, strict byte 055h ; 3c 55 11893 jne short 08 103h ; 75 0c12283 jne short 08556h ; 75 0c 11894 12284 xor al, al ; 30 c0 11895 12285 mov dx, 00433h ; ba 33 04 11896 12286 out DX, AL ; ee 11897 12287 mov ax, 00430h ; b8 30 04 11898 call 0 7cefh ; e8 ecfb12288 call 080a4h ; e8 4e fb 11899 12289 mov AL, strict byte 055h ; b0 55 11900 12290 mov dx, 00436h ; ba 36 04 … … 11904 12294 ; sub ah, ah ; 2a e4 11905 12295 cmp AL, strict byte 055h ; 3c 55 11906 jne short 08 11ch ; 75 0c12296 jne short 0856fh ; 75 0c 11907 12297 xor al, al ; 30 c0 11908 12298 mov dx, 00437h ; ba 37 04 11909 12299 out DX, AL ; ee 11910 12300 mov ax, 00434h ; b8 34 04 11911 call 0 7cefh ; e8 d3fb12301 call 080a4h ; e8 35 fb 11912 12302 mov AL, strict byte 055h ; b0 55 11913 12303 mov dx, 0043ah ; ba 3a 04 … … 11917 12307 ; sub ah, ah ; 2a e4 11918 12308 cmp AL, strict byte 055h ; 3c 55 11919 jne short 08 135h ; 75 0c12309 jne short 08588h ; 75 0c 11920 12310 xor al, al ; 30 c0 11921 12311 mov dx, 0043bh ; ba 3b 04 11922 12312 out DX, AL ; ee 11923 12313 mov ax, 00438h ; b8 38 04 11924 call 0 7cefh ; e8 bafb12314 call 080a4h ; e8 1c fb 11925 12315 mov sp, bp ; 89 ec 11926 12316 pop bp ; 5d 11927 12317 retn ; c3 11928 high_bits_save_: ; 0xf8139 LB 0x17 12318 ahci_ctrl_extract_bits_: ; 0xf858c LB 0x1b 12319 push si ; 56 11929 12320 push bp ; 55 11930 12321 mov bp, sp ; 89 e5 12322 mov si, bx ; 89 de 12323 and ax, bx ; 21 d8 12324 and dx, cx ; 21 ca 12325 movzx cx, byte [bp+006h] ; 0f b6 4e 06 12326 jcxz 085a2h ; e3 06 12327 shr dx, 1 ; d1 ea 12328 rcr ax, 1 ; d1 d8 12329 loop 0859ch ; e2 fa 12330 pop bp ; 5d 12331 pop si ; 5e 12332 retn 00002h ; c2 02 00 12333 ahci_addr_to_phys_: ; 0xf85a7 LB 0x1e 11931 12334 push bx ; 53 11932 mov bx, ax ; 89 c3 11933 shr eax, 010h ; 66 c1 e8 10 11934 mov es, dx ; 8e c2 11935 mov word [es:bx+00268h], ax ; 26 89 87 68 02 11936 lea sp, [bp-002h] ; 8d 66 fe 11937 pop bx ; 5b 11938 pop bp ; 5d 11939 retn ; c3 11940 high_bits_restore_: ; 0xf8150 LB 0x17 12335 push cx ; 51 11941 12336 push bp ; 55 11942 12337 mov bp, sp ; 89 e5 11943 push bx ; 5311944 12338 mov bx, ax ; 89 c3 11945 mov es, dx ; 8e c2 11946 mov ax, word [es:bx+00268h] ; 26 8b 87 68 02 11947 sal eax, 010h ; 66 c1 e0 10 11948 lea sp, [bp-002h] ; 8d 66 fe 12339 mov ax, dx ; 89 d0 12340 xor dx, dx ; 31 d2 12341 mov cx, strict word 00004h ; b9 04 00 12342 sal ax, 1 ; d1 e0 12343 rcl dx, 1 ; d1 d2 12344 loop 085b5h ; e2 fa 12345 xor cx, cx ; 31 c9 12346 add ax, bx ; 01 d8 12347 adc dx, cx ; 11 ca 12348 pop bp ; 5d 12349 pop cx ; 59 11949 12350 pop bx ; 5b 11950 pop bp ; 5d11951 12351 retn ; c3 11952 ahci_ ctrl_set_bits_: ; 0xf8167 LB 0x4312352 ahci_port_cmd_sync_: ; 0xf85c5 LB 0x14b 11953 12353 push bp ; 55 11954 12354 mov bp, sp ; 89 e5 12355 push cx ; 51 11955 12356 push si ; 56 11956 12357 push di ; 57 11957 12358 push ax ; 50 11958 12359 mov si, ax ; 89 c6 11959 mov ax, dx ; 89 d0 11960 mov word [bp-006h], bx ; 89 5e fa 11961 mov di, cx ; 89 cf 12360 mov cx, dx ; 89 d1 12361 mov al, bl ; 88 d8 12362 mov es, dx ; 8e c2 12363 mov ah, byte [es:si+00262h] ; 26 8a a4 62 02 12364 mov byte [bp-008h], ah ; 88 66 f8 12365 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 12366 cmp ah, 0ffh ; 80 fc ff 12367 je near 08708h ; 0f 84 20 01 12368 movzx dx, byte [es:si+00263h] ; 26 0f b6 94 63 02 12369 xor di, di ; 31 ff 12370 or di, 00080h ; 81 cf 80 00 12371 xor ah, ah ; 30 e4 12372 or di, ax ; 09 c7 12373 mov word [es:si], di ; 26 89 3c 12374 mov word [es:si+002h], dx ; 26 89 54 02 12375 db 066h, 026h, 0c7h, 044h, 004h, 000h, 000h, 000h, 000h 12376 ; mov dword [es:si+004h], strict dword 000000000h ; 66 26 c7 44 04 00 00 00 00 12377 lea ax, [si+00080h] ; 8d 84 80 00 12378 mov dx, cx ; 89 ca 12379 call 085a7h ; e8 96 ff 12380 mov es, cx ; 8e c1 12381 mov word [es:si+008h], ax ; 26 89 44 08 12382 mov word [es:si+00ah], dx ; 26 89 54 0a 12383 movzx di, byte [bp-008h] ; 0f b6 7e f8 12384 sal di, 007h ; c1 e7 07 12385 lea ax, [di+00118h] ; 8d 85 18 01 12386 xor cx, cx ; 31 c9 12387 mov dx, bx ; 89 da 12388 xchg cx, ax ; 91 12389 sal eax, 010h ; 66 c1 e0 10 12390 db 08bh, 0c1h 12391 ; mov ax, cx ; 8b c1 12392 out DX, eax ; 66 ef 12393 lea si, [bx+004h] ; 8d 77 04 12394 mov dx, si ; 89 f2 12395 in eax, DX ; 66 ed 12396 db 08bh, 0d0h 12397 ; mov dx, ax ; 8b d0 12398 shr eax, 010h ; 66 c1 e8 10 12399 xchg dx, ax ; 92 12400 or AL, strict byte 011h ; 0c 11 12401 mov cx, dx ; 89 d1 12402 mov dx, si ; 89 f2 12403 xchg cx, ax ; 91 12404 sal eax, 010h ; 66 c1 e0 10 12405 db 08bh, 0c1h 12406 ; mov ax, cx ; 8b c1 12407 out DX, eax ; 66 ef 12408 lea ax, [di+00138h] ; 8d 85 38 01 12409 cwd ; 99 12410 mov cx, dx ; 89 d1 12411 mov dx, bx ; 89 da 12412 xchg cx, ax ; 91 12413 sal eax, 010h ; 66 c1 e0 10 12414 db 08bh, 0c1h 12415 ; mov ax, cx ; 8b c1 12416 out DX, eax ; 66 ef 12417 mov ax, strict word 00001h ; b8 01 00 12418 xor cx, cx ; 31 c9 12419 mov dx, si ; 89 f2 12420 xchg cx, ax ; 91 12421 sal eax, 010h ; 66 c1 e0 10 12422 db 08bh, 0c1h 12423 ; mov ax, cx ; 8b c1 12424 out DX, eax ; 66 ef 12425 movzx ax, byte [bp-008h] ; 0f b6 46 f8 12426 sal ax, 007h ; c1 e0 07 12427 add ax, 00110h ; 05 10 01 12428 xor cx, cx ; 31 c9 12429 mov dx, bx ; 89 da 12430 xchg cx, ax ; 91 12431 sal eax, 010h ; 66 c1 e0 10 12432 db 08bh, 0c1h 12433 ; mov ax, cx ; 8b c1 12434 out DX, eax ; 66 ef 12435 lea dx, [bx+004h] ; 8d 57 04 12436 in eax, DX ; 66 ed 12437 db 08bh, 0d0h 12438 ; mov dx, ax ; 8b d0 12439 shr eax, 010h ; 66 c1 e8 10 12440 xchg dx, ax ; 92 12441 test dh, 040h ; f6 c6 40 12442 jne short 0869eh ; 75 04 12443 test AL, strict byte 001h ; a8 01 12444 je short 086a2h ; 74 04 12445 mov AL, strict byte 001h ; b0 01 12446 jmp short 086a4h ; eb 02 12447 xor al, al ; 30 c0 12448 test al, al ; 84 c0 12449 je short 08672h ; 74 ca 12450 movzx di, byte [bp-008h] ; 0f b6 7e f8 12451 sal di, 007h ; c1 e7 07 12452 lea ax, [di+00110h] ; 8d 85 10 01 12453 xor cx, cx ; 31 c9 12454 mov dx, bx ; 89 da 12455 xchg cx, ax ; 91 12456 sal eax, 010h ; 66 c1 e0 10 12457 db 08bh, 0c1h 12458 ; mov ax, cx ; 8b c1 12459 out DX, eax ; 66 ef 12460 lea si, [bx+004h] ; 8d 77 04 12461 mov dx, si ; 89 f2 12462 in eax, DX ; 66 ed 12463 db 08bh, 0d0h 12464 ; mov dx, ax ; 8b d0 12465 shr eax, 010h ; 66 c1 e8 10 12466 xchg dx, ax ; 92 12467 or AL, strict byte 001h ; 0c 01 12468 mov cx, dx ; 89 d1 12469 mov dx, si ; 89 f2 12470 xchg cx, ax ; 91 12471 sal eax, 010h ; 66 c1 e0 10 12472 db 08bh, 0c1h 12473 ; mov ax, cx ; 8b c1 12474 out DX, eax ; 66 ef 12475 lea ax, [di+00118h] ; 8d 85 18 01 12476 xor cx, cx ; 31 c9 12477 mov dx, bx ; 89 da 12478 xchg cx, ax ; 91 12479 sal eax, 010h ; 66 c1 e0 10 12480 db 08bh, 0c1h 12481 ; mov ax, cx ; 8b c1 12482 out DX, eax ; 66 ef 12483 mov dx, si ; 89 f2 12484 in eax, DX ; 66 ed 12485 db 08bh, 0d0h 12486 ; mov dx, ax ; 8b d0 12487 shr eax, 010h ; 66 c1 e8 10 12488 xchg dx, ax ; 92 12489 and AL, strict byte 0feh ; 24 fe 12490 mov cx, dx ; 89 d1 12491 mov dx, si ; 89 f2 12492 xchg cx, ax ; 91 12493 sal eax, 010h ; 66 c1 e0 10 12494 db 08bh, 0c1h 12495 ; mov ax, cx ; 8b c1 12496 out DX, eax ; 66 ef 12497 lea sp, [bp-006h] ; 8d 66 fa 12498 pop di ; 5f 12499 pop si ; 5e 12500 pop cx ; 59 12501 pop bp ; 5d 12502 retn ; c3 12503 ahci_cmd_data_: ; 0xf8710 LB 0x262 12504 push bp ; 55 12505 mov bp, sp ; 89 e5 12506 push cx ; 51 12507 push si ; 56 12508 push di ; 57 12509 sub sp, strict byte 0000ch ; 83 ec 0c 12510 push ax ; 50 12511 push dx ; 52 12512 mov byte [bp-008h], bl ; 88 5e f8 12513 xor di, di ; 31 ff 12514 mov es, dx ; 8e c2 12515 mov bx, ax ; 89 c3 12516 mov ax, word [es:bx+00232h] ; 26 8b 87 32 02 12517 mov word [bp-00ah], ax ; 89 46 f6 12518 mov word [bp-00eh], di ; 89 7e f2 12519 mov word [bp-00ch], ax ; 89 46 f4 12520 mov ax, word [es:bx+00eh] ; 26 8b 47 0e 12521 mov word [bp-012h], ax ; 89 46 ee 12522 mov ax, word [es:bx+010h] ; 26 8b 47 10 12523 mov word [bp-010h], ax ; 89 46 f0 12524 mov cx, strict word 00040h ; b9 40 00 12525 xor bx, bx ; 31 db 12526 mov ax, 00080h ; b8 80 00 12527 mov dx, word [bp-00ah] ; 8b 56 f6 12528 call 09d6ah ; e8 1c 16 12529 mov es, [bp-00ah] ; 8e 46 f6 12530 mov word [es:di+00080h], 08027h ; 26 c7 85 80 00 27 80 12531 mov al, byte [bp-008h] ; 8a 46 f8 12532 mov byte [es:di+00082h], al ; 26 88 85 82 00 12533 mov byte [es:di+00083h], 000h ; 26 c6 85 83 00 00 12534 mov es, [bp-016h] ; 8e 46 ea 12535 mov bx, word [bp-014h] ; 8b 5e ec 12536 mov ax, word [es:bx] ; 26 8b 07 12537 mov es, [bp-00ah] ; 8e 46 f6 12538 mov byte [es:di+00084h], al ; 26 88 85 84 00 12539 mov es, [bp-016h] ; 8e 46 ea 12540 mov ax, word [es:bx+006h] ; 26 8b 47 06 12541 mov bx, word [es:bx+004h] ; 26 8b 5f 04 12542 mov si, word [bp-014h] ; 8b 76 ec 12543 mov cx, word [es:si+002h] ; 26 8b 4c 02 12544 mov dx, word [es:si] ; 26 8b 14 12545 mov si, strict word 00008h ; be 08 00 12546 call 09d5ah ; e8 c8 15 12547 mov es, [bp-00ah] ; 8e 46 f6 12548 mov byte [es:di+00085h], dl ; 26 88 95 85 00 12549 mov es, [bp-016h] ; 8e 46 ea 12550 mov bx, word [bp-014h] ; 8b 5e ec 12551 mov ax, word [es:bx+006h] ; 26 8b 47 06 12552 mov bx, word [es:bx+004h] ; 26 8b 5f 04 12553 mov si, word [bp-014h] ; 8b 76 ec 12554 mov cx, word [es:si+002h] ; 26 8b 4c 02 12555 mov dx, word [es:si] ; 26 8b 14 12556 mov si, strict word 00010h ; be 10 00 12557 call 09d5ah ; e8 a2 15 12558 mov es, [bp-00ah] ; 8e 46 f6 12559 mov byte [es:di+00086h], dl ; 26 88 95 86 00 12560 mov byte [es:di+00087h], 040h ; 26 c6 85 87 00 40 12561 mov es, [bp-016h] ; 8e 46 ea 12562 mov bx, word [bp-014h] ; 8b 5e ec 12563 mov ax, word [es:bx+006h] ; 26 8b 47 06 12564 mov bx, word [es:bx+004h] ; 26 8b 5f 04 12565 mov si, word [bp-014h] ; 8b 76 ec 12566 mov cx, word [es:si+002h] ; 26 8b 4c 02 12567 mov dx, word [es:si] ; 26 8b 14 12568 mov si, strict word 00018h ; be 18 00 12569 call 09d5ah ; e8 76 15 12570 mov es, [bp-00ah] ; 8e 46 f6 12571 mov byte [es:di+00088h], dl ; 26 88 95 88 00 12572 mov es, [bp-016h] ; 8e 46 ea 12573 mov bx, word [bp-014h] ; 8b 5e ec 12574 mov ax, word [es:bx+006h] ; 26 8b 47 06 12575 mov bx, word [es:bx+004h] ; 26 8b 5f 04 12576 mov si, word [bp-014h] ; 8b 76 ec 12577 mov cx, word [es:si+002h] ; 26 8b 4c 02 12578 mov dx, word [es:si] ; 26 8b 14 12579 mov si, strict word 00020h ; be 20 00 12580 call 09d5ah ; e8 50 15 12581 mov es, [bp-00ah] ; 8e 46 f6 12582 mov byte [es:di+00089h], dl ; 26 88 95 89 00 12583 mov es, [bp-016h] ; 8e 46 ea 12584 mov bx, word [bp-014h] ; 8b 5e ec 12585 mov ax, word [es:bx+006h] ; 26 8b 47 06 12586 mov bx, word [es:bx+004h] ; 26 8b 5f 04 12587 mov si, word [bp-014h] ; 8b 76 ec 12588 mov cx, word [es:si+002h] ; 26 8b 4c 02 12589 mov dx, word [es:si] ; 26 8b 14 12590 mov si, strict word 00028h ; be 28 00 12591 call 09d5ah ; e8 2a 15 12592 mov es, [bp-00ah] ; 8e 46 f6 12593 mov byte [es:di+0008ah], dl ; 26 88 95 8a 00 12594 mov byte [es:di+0008bh], 000h ; 26 c6 85 8b 00 00 12595 mov al, byte [bp-012h] ; 8a 46 ee 12596 mov byte [es:di+0008ch], al ; 26 88 85 8c 00 12597 mov ax, word [bp-012h] ; 8b 46 ee 12598 shr ax, 008h ; c1 e8 08 12599 mov byte [es:di+0008dh], al ; 26 88 85 8d 00 12600 mov word [es:di+00276h], strict word 00010h ; 26 c7 85 76 02 10 00 12601 mov ax, word [bp-012h] ; 8b 46 ee 12602 xor dx, dx ; 31 d2 12603 mov bx, word [bp-010h] ; 8b 5e f0 12604 xor cx, cx ; 31 c9 12605 call 09d19h ; e8 b4 14 12606 push dx ; 52 12607 push ax ; 50 12608 mov es, [bp-016h] ; 8e 46 ea 12609 mov bx, word [bp-014h] ; 8b 5e ec 12610 mov bx, word [es:bx+008h] ; 26 8b 5f 08 12611 mov si, word [bp-014h] ; 8b 76 ec 12612 mov cx, word [es:si+00ah] ; 26 8b 4c 0a 12613 mov ax, 0026ah ; b8 6a 02 12614 mov dx, word [bp-00ah] ; 8b 56 f6 12615 call 09c33h ; e8 b2 13 12616 mov es, [bp-00ah] ; 8e 46 f6 12617 mov ax, word [es:di+0027eh] ; 26 8b 85 7e 02 12618 add ax, strict word 0ffffh ; 05 ff ff 12619 mov dx, word [es:di+00280h] ; 26 8b 95 80 02 12620 adc dx, strict byte 0ffffh ; 83 d2 ff 12621 movzx bx, byte [es:di+00263h] ; 26 0f b6 9d 63 02 12622 sal bx, 004h ; c1 e3 04 12623 mov word [es:bx+0010ch], ax ; 26 89 87 0c 01 12624 mov word [es:bx+0010eh], dx ; 26 89 97 0e 01 12625 movzx bx, byte [es:di+00263h] ; 26 0f b6 9d 63 02 12626 sal bx, 004h ; c1 e3 04 12627 mov ax, word [es:di+0027ah] ; 26 8b 85 7a 02 12628 mov dx, word [es:di+0027ch] ; 26 8b 95 7c 02 12629 mov word [es:bx+00100h], ax ; 26 89 87 00 01 12630 mov word [es:bx+00102h], dx ; 26 89 97 02 01 12631 inc byte [es:di+00263h] ; 26 fe 85 63 02 12632 mov es, [bp-016h] ; 8e 46 ea 12633 mov bx, si ; 89 f3 12634 mov ax, word [es:bx+020h] ; 26 8b 47 20 12635 test ax, ax ; 85 c0 12636 je short 0890fh ; 74 39 12637 dec ax ; 48 12638 mov es, [bp-00ah] ; 8e 46 f6 12639 movzx bx, byte [es:di+00263h] ; 26 0f b6 9d 63 02 12640 sal bx, 004h ; c1 e3 04 12641 mov word [es:bx+0010ch], ax ; 26 89 87 0c 01 12642 mov word [es:bx+0010eh], di ; 26 89 bf 0e 01 12643 movzx bx, byte [es:di+00263h] ; 26 0f b6 9d 63 02 12644 sal bx, 004h ; c1 e3 04 12645 mov dx, word [es:di+00264h] ; 26 8b 95 64 02 12646 mov ax, word [es:di+00266h] ; 26 8b 85 66 02 12647 mov word [es:bx+00100h], dx ; 26 89 97 00 01 12648 mov word [es:bx+00102h], ax ; 26 89 87 02 01 12649 inc byte [es:di+00263h] ; 26 fe 85 63 02 12650 mov al, byte [bp-008h] ; 8a 46 f8 12651 cmp AL, strict byte 035h ; 3c 35 12652 jne short 0891ch ; 75 06 12653 mov byte [bp-008h], 040h ; c6 46 f8 40 12654 jmp short 08933h ; eb 17 12655 cmp AL, strict byte 0a0h ; 3c a0 12656 jne short 0892fh ; 75 0f 12657 or byte [bp-008h], 020h ; 80 4e f8 20 12658 les bx, [bp-00eh] ; c4 5e f2 12659 or byte [es:bx+00083h], 001h ; 26 80 8f 83 00 01 12660 jmp short 08933h ; eb 04 12661 mov byte [bp-008h], 000h ; c6 46 f8 00 12662 or byte [bp-008h], 005h ; 80 4e f8 05 12663 movzx bx, byte [bp-008h] ; 0f b6 5e f8 12664 mov ax, word [bp-00eh] ; 8b 46 f2 12665 mov dx, word [bp-00ch] ; 8b 56 f4 12666 call 085c5h ; e8 81 fc 12667 mov cx, word [bp-00ch] ; 8b 4e f4 12668 mov bx, word [bp-00eh] ; 8b 5e f2 12669 add bx, 00240h ; 81 c3 40 02 12670 mov ax, word [bp-00eh] ; 8b 46 f2 12671 add ax, 0026ah ; 05 6a 02 12672 mov dx, cx ; 89 ca 12673 call 09cach ; e8 53 13 12674 mov es, cx ; 8e c1 12675 mov al, byte [es:bx+003h] ; 26 8a 47 03 12676 test al, al ; 84 c0 12677 je short 08968h ; 74 05 12678 mov ax, strict word 00004h ; b8 04 00 12679 jmp short 0896ah ; eb 02 12680 xor ah, ah ; 30 e4 12681 lea sp, [bp-006h] ; 8d 66 fa 12682 pop di ; 5f 12683 pop si ; 5e 12684 pop cx ; 59 12685 pop bp ; 5d 12686 retn ; c3 12687 ahci_port_deinit_current_: ; 0xf8972 LB 0x17f 12688 push bp ; 55 12689 mov bp, sp ; 89 e5 12690 push bx ; 53 12691 push cx ; 51 12692 push si ; 56 12693 push di ; 57 12694 sub sp, strict byte 00006h ; 83 ec 06 12695 mov di, ax ; 89 c7 12696 mov word [bp-00ch], dx ; 89 56 f4 12697 mov es, dx ; 8e c2 12698 mov si, word [es:di+00260h] ; 26 8b b5 60 02 12699 mov al, byte [es:di+00262h] ; 26 8a 85 62 02 12700 mov byte [bp-00ah], al ; 88 46 f6 12701 cmp AL, strict byte 0ffh ; 3c ff 12702 je near 08ae8h ; 0f 84 52 01 12703 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 12704 sal ax, 007h ; c1 e0 07 12705 add ax, 00118h ; 05 18 01 11962 12706 xor cx, cx ; 31 c9 11963 12707 mov dx, si ; 89 f2 … … 11974 12718 shr eax, 010h ; 66 c1 e8 10 11975 12719 xchg dx, ax ; 92 11976 or ax, word [bp-006h] ; 0b 46 fa12720 and AL, strict byte 0eeh ; 24 ee 11977 12721 mov cx, dx ; 89 d1 11978 or cx, di ; 09 f911979 12722 mov dx, bx ; 89 da 11980 12723 xchg cx, ax ; 91 … … 11983 12726 ; mov ax, cx ; 8b c1 11984 12727 out DX, eax ; 66 ef 11985 lea sp, [bp-004h] ; 8d 66 fc 11986 pop di ; 5f 11987 pop si ; 5e 11988 pop bp ; 5d 11989 retn ; c3 11990 ahci_ctrl_clear_bits_: ; 0xf81aa LB 0x47 11991 push bp ; 55 11992 mov bp, sp ; 89 e5 11993 push si ; 56 11994 push di ; 57 11995 push ax ; 50 11996 mov si, ax ; 89 c6 11997 mov ax, dx ; 89 d0 11998 mov di, bx ; 89 df 11999 mov word [bp-006h], cx ; 89 4e fa 12000 xor cx, cx ; 31 c9 12001 mov dx, si ; 89 f2 12002 xchg cx, ax ; 91 12003 sal eax, 010h ; 66 c1 e0 10 12004 db 08bh, 0c1h 12005 ; mov ax, cx ; 8b c1 12006 out DX, eax ; 66 ef 12007 lea bx, [si+004h] ; 8d 5c 04 12008 mov dx, bx ; 89 da 12009 in eax, DX ; 66 ed 12010 db 08bh, 0d0h 12011 ; mov dx, ax ; 8b d0 12012 shr eax, 010h ; 66 c1 e8 10 12013 xchg dx, ax ; 92 12014 not di ; f7 d7 12015 mov cx, word [bp-006h] ; 8b 4e fa 12016 not cx ; f7 d1 12017 and ax, di ; 21 f8 12018 and cx, dx ; 21 d1 12019 mov dx, bx ; 89 da 12020 xchg cx, ax ; 91 12021 sal eax, 010h ; 66 c1 e0 10 12022 db 08bh, 0c1h 12023 ; mov ax, cx ; 8b c1 12024 out DX, eax ; 66 ef 12025 lea sp, [bp-004h] ; 8d 66 fc 12026 pop di ; 5f 12027 pop si ; 5e 12028 pop bp ; 5d 12029 retn ; c3 12030 ahci_ctrl_is_bit_set_: ; 0xf81f1 LB 0x39 12031 push bp ; 55 12032 mov bp, sp ; 89 e5 12033 push si ; 56 12034 push di ; 57 12035 mov si, ax ; 89 c6 12036 mov ax, dx ; 89 d0 12037 mov di, cx ; 89 cf 12728 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 12729 sal ax, 007h ; c1 e0 07 12730 add ax, 00118h ; 05 18 01 12038 12731 xor cx, cx ; 31 c9 12039 12732 mov dx, si ; 89 f2 … … 12049 12742 shr eax, 010h ; 66 c1 e8 10 12050 12743 xchg dx, ax ; 92 12051 test dx, di ; 85 fa 12052 jne short 0821dh ; 75 04 12053 test ax, bx ; 85 d8 12054 je short 08221h ; 74 04 12744 test ax, 0c011h ; a9 11 c0 12745 je short 089f6h ; 74 04 12055 12746 mov AL, strict byte 001h ; b0 01 12056 jmp short 08 223h ; eb 0212747 jmp short 089f8h ; eb 02 12057 12748 xor al, al ; 30 c0 12058 lea sp, [bp-004h] ; 8d 66 fc12059 pop di ; 5f12060 pop si ; 5e12061 pop bp ; 5d12062 retn ; c312063 ahci_ctrl_extract_bits_: ; 0xf822a LB 0x1b12064 push si ; 5612065 push bp ; 5512066 mov bp, sp ; 89 e512067 mov si, bx ; 89 de12068 and ax, bx ; 21 d812069 and dx, cx ; 21 ca12070 movzx cx, byte [bp+006h] ; 0f b6 4e 0612071 jcxz 08240h ; e3 0612072 shr dx, 1 ; d1 ea12073 rcr ax, 1 ; d1 d812074 loop 0823ah ; e2 fa12075 pop bp ; 5d12076 pop si ; 5e12077 retn 00002h ; c2 02 0012078 ahci_addr_to_phys_: ; 0xf8245 LB 0x1e12079 push bx ; 5312080 push cx ; 5112081 push bp ; 5512082 mov bp, sp ; 89 e512083 mov bx, ax ; 89 c312084 mov ax, dx ; 89 d012085 xor dx, dx ; 31 d212086 mov cx, strict word 00004h ; b9 04 0012087 sal ax, 1 ; d1 e012088 rcl dx, 1 ; d1 d212089 loop 08253h ; e2 fa12090 xor cx, cx ; 31 c912091 add ax, bx ; 01 d812092 adc dx, cx ; 11 ca12093 pop bp ; 5d12094 pop cx ; 5912095 pop bx ; 5b12096 retn ; c312097 ahci_port_cmd_sync_: ; 0xf8263 LB 0xd512098 push bp ; 5512099 mov bp, sp ; 89 e512100 push cx ; 5112101 push si ; 5612102 push di ; 5712103 sub sp, strict byte 00006h ; 83 ec 0612104 mov si, ax ; 89 c612105 mov word [bp-00ah], dx ; 89 56 f612106 mov es, dx ; 8e c212107 mov al, byte [es:si+00262h] ; 26 8a 84 62 0212108 mov byte [bp-008h], al ; 88 46 f812109 mov di, word [es:si+00260h] ; 26 8b bc 60 0212110 cmp AL, strict byte 0ffh ; 3c ff12111 je near 08330h ; 0f 84 aa 0012112 movzx cx, byte [es:si+00263h] ; 26 0f b6 8c 63 0212113 xor dx, dx ; 31 d212114 or dl, 080h ; 80 ca 8012115 movzx ax, bl ; 0f b6 c312116 or dx, ax ; 09 c212117 mov word [es:si], dx ; 26 89 1412118 mov word [es:si+002h], cx ; 26 89 4c 0212119 db 066h, 026h, 0c7h, 044h, 004h, 000h, 000h, 000h, 000h12120 ; mov dword [es:si+004h], strict dword 000000000h ; 66 26 c7 44 04 00 00 00 0012121 lea ax, [si+00080h] ; 8d 84 80 0012122 mov dx, es ; 8c c212123 call 08245h ; e8 96 ff12124 mov es, [bp-00ah] ; 8e 46 f612125 mov word [es:si+008h], ax ; 26 89 44 0812126 mov word [es:si+00ah], dx ; 26 89 54 0a12127 movzx si, byte [bp-008h] ; 0f b6 76 f812128 sal si, 007h ; c1 e6 0712129 lea dx, [si+00118h] ; 8d 94 18 0112130 mov bx, strict word 00011h ; bb 11 0012131 xor cx, cx ; 31 c912132 mov ax, di ; 89 f812133 call 08167h ; e8 98 fe12134 lea ax, [si+00138h] ; 8d 84 38 0112135 cwd ; 9912136 mov cx, dx ; 89 d112137 mov dx, di ; 89 fa12138 xchg cx, ax ; 9112139 sal eax, 010h ; 66 c1 e0 1012140 db 08bh, 0c1h12141 ; mov ax, cx ; 8b c112142 out DX, eax ; 66 ef12143 lea dx, [di+004h] ; 8d 55 0412144 mov ax, strict word 00001h ; b8 01 0012145 xor cx, cx ; 31 c912146 xchg cx, ax ; 9112147 sal eax, 010h ; 66 c1 e0 1012148 db 08bh, 0c1h12149 ; mov ax, cx ; 8b c112150 out DX, eax ; 66 ef12151 movzx ax, byte [bp-008h] ; 0f b6 46 f812152 sal ax, 007h ; c1 e0 0712153 mov word [bp-00ch], ax ; 89 46 f412154 mov si, ax ; 89 c612155 add si, 00110h ; 81 c6 10 0112156 mov bx, strict word 00001h ; bb 01 0012157 mov cx, 04000h ; b9 00 4012158 mov dx, si ; 89 f212159 mov ax, di ; 89 f812160 call 081f1h ; e8 e2 fe12161 test al, al ; 84 c012162 je short 082f2h ; 74 df12163 mov bx, strict word 00001h ; bb 01 0012164 xor cx, cx ; 31 c912165 mov dx, si ; 89 f212166 mov ax, di ; 89 f812167 call 08167h ; e8 48 fe12168 mov dx, word [bp-00ch] ; 8b 56 f412169 add dx, 00118h ; 81 c2 18 0112170 mov bx, strict word 00001h ; bb 01 0012171 xor cx, cx ; 31 c912172 mov ax, di ; 89 f812173 call 081aah ; e8 7a fe12174 lea sp, [bp-006h] ; 8d 66 fa12175 pop di ; 5f12176 pop si ; 5e12177 pop cx ; 5912178 pop bp ; 5d12179 retn ; c312180 ahci_cmd_data_: ; 0xf8338 LB 0x1e412181 push bp ; 5512182 mov bp, sp ; 89 e512183 push cx ; 5112184 push si ; 5612185 push di ; 5712186 sub sp, strict byte 00010h ; 83 ec 1012187 mov di, ax ; 89 c712188 mov word [bp-00ch], dx ; 89 56 f412189 mov byte [bp-008h], bl ; 88 5e f812190 xor si, si ; 31 f612191 mov es, dx ; 8e c212192 mov ax, word [es:di+001eeh] ; 26 8b 85 ee 0112193 mov word [bp-00ah], ax ; 89 46 f612194 mov word [bp-010h], si ; 89 76 f012195 mov word [bp-00eh], ax ; 89 46 f212196 mov ax, word [es:di+00ah] ; 26 8b 45 0a12197 mov word [bp-016h], ax ; 89 46 ea12198 mov ax, word [es:di+00ch] ; 26 8b 45 0c12199 mov word [bp-012h], ax ; 89 46 ee12200 mov cx, strict word 00040h ; b9 40 0012201 xor bx, bx ; 31 db12202 mov ax, 00080h ; b8 80 0012203 mov dx, word [bp-00ah] ; 8b 56 f612204 call 097aah ; e8 33 1412205 mov es, [bp-00ah] ; 8e 46 f612206 mov word [es:si+00080h], 08027h ; 26 c7 84 80 00 27 8012207 mov al, byte [bp-008h] ; 8a 46 f812208 mov byte [es:si+00082h], al ; 26 88 84 82 0012209 mov byte [es:si+00083h], 000h ; 26 c6 84 83 00 0012210 mov es, [bp-00ch] ; 8e 46 f412211 mov al, byte [es:di] ; 26 8a 0512212 mov es, [bp-00ah] ; 8e 46 f612213 mov byte [es:si+00084h], al ; 26 88 84 84 0012214 mov es, [bp-00ch] ; 8e 46 f412215 mov ax, word [es:di] ; 26 8b 0512216 mov bx, word [es:di+002h] ; 26 8b 5d 0212217 mov cx, strict word 00008h ; b9 08 0012218 shr bx, 1 ; d1 eb12219 rcr ax, 1 ; d1 d812220 loop 083aah ; e2 fa12221 mov es, [bp-00ah] ; 8e 46 f612222 mov byte [es:si+00085h], al ; 26 88 84 85 0012223 mov es, [bp-00ch] ; 8e 46 f412224 mov ax, word [es:di+002h] ; 26 8b 45 0212225 mov es, [bp-00ah] ; 8e 46 f612226 mov byte [es:si+00086h], al ; 26 88 84 86 0012227 mov byte [es:si+00087h], 040h ; 26 c6 84 87 00 4012228 mov es, [bp-00ch] ; 8e 46 f412229 mov ax, word [es:di+002h] ; 26 8b 45 0212230 shr ax, 008h ; c1 e8 0812231 mov es, [bp-00ah] ; 8e 46 f612232 mov byte [es:si+00088h], al ; 26 88 84 88 0012233 mov word [es:si+00089h], strict word 00000h ; 26 c7 84 89 00 00 0012234 mov byte [es:si+0008bh], 000h ; 26 c6 84 8b 00 0012235 mov al, byte [bp-016h] ; 8a 46 ea12236 mov byte [es:si+0008ch], al ; 26 88 84 8c 0012237 mov ax, word [bp-016h] ; 8b 46 ea12238 shr ax, 008h ; c1 e8 0812239 mov byte [es:si+0008dh], al ; 26 88 84 8d 0012240 mov word [es:si+00276h], strict word 00010h ; 26 c7 84 76 02 10 0012241 mov ax, word [bp-016h] ; 8b 46 ea12242 xor dx, dx ; 31 d212243 mov bx, word [bp-012h] ; 8b 5e ee12244 xor cx, cx ; 31 c912245 call 09779h ; e8 66 1312246 push dx ; 5212247 push ax ; 5012248 mov es, [bp-00ch] ; 8e 46 f412249 mov bx, word [es:di+004h] ; 26 8b 5d 0412250 mov cx, word [es:di+006h] ; 26 8b 4d 0612251 mov ax, 0026ah ; b8 6a 0212252 mov dx, word [bp-00ah] ; 8b 56 f612253 call 09688h ; e8 5f 1212254 mov es, [bp-00ah] ; 8e 46 f612255 movzx ax, byte [es:si+00263h] ; 26 0f b6 84 63 0212256 mov dx, word [es:si+0027eh] ; 26 8b 94 7e 0212257 add dx, strict byte 0ffffh ; 83 c2 ff12258 mov bx, word [es:si+00280h] ; 26 8b 9c 80 0212259 adc bx, strict byte 0ffffh ; 83 d3 ff12260 mov word [bp-014h], bx ; 89 5e ec12261 mov bx, ax ; 89 c312262 sal bx, 004h ; c1 e3 0412263 mov word [es:bx+0010ch], dx ; 26 89 97 0c 0112264 mov dx, word [bp-014h] ; 8b 56 ec12265 mov word [es:bx+0010eh], dx ; 26 89 97 0e 0112266 mov dx, word [es:si+0027ah] ; 26 8b 94 7a 0212267 mov cx, word [es:si+0027ch] ; 26 8b 8c 7c 0212268 mov word [es:bx+00100h], dx ; 26 89 97 00 0112269 mov word [es:bx+00102h], cx ; 26 89 8f 02 0112270 inc ax ; 4012271 mov es, [bp-00ch] ; 8e 46 f412272 cmp word [es:di+01ch], strict byte 00000h ; 26 83 7d 1c 0012273 je short 084a2h ; 74 2c12274 mov dx, word [es:di+01ch] ; 26 8b 55 1c12275 dec dx ; 4a12276 mov bx, ax ; 89 c312277 sal bx, 004h ; c1 e3 0412278 mov es, [bp-00ah] ; 8e 46 f612279 mov word [es:bx+0010ch], dx ; 26 89 97 0c 0112280 mov word [es:bx+0010eh], si ; 26 89 b7 0e 0112281 mov dx, word [es:si+00264h] ; 26 8b 94 64 0212282 mov cx, word [es:si+00266h] ; 26 8b 8c 66 0212283 mov word [es:bx+00100h], dx ; 26 89 97 00 0112284 mov word [es:bx+00102h], cx ; 26 89 8f 02 0112285 inc ax ; 4012286 les bx, [bp-010h] ; c4 5e f012287 mov byte [es:bx+00263h], al ; 26 88 87 63 0212288 xor ax, ax ; 31 c012289 les bx, [bp-010h] ; c4 5e f012290 movzx dx, byte [es:bx+00263h] ; 26 0f b6 97 63 0212291 cmp ax, dx ; 39 d012292 jnc short 084bch ; 73 0312293 inc ax ; 4012294 jmp short 084ach ; eb f012295 mov al, byte [bp-008h] ; 8a 46 f812296 cmp AL, strict byte 035h ; 3c 3512297 jne short 084c9h ; 75 0612298 mov byte [bp-008h], 040h ; c6 46 f8 4012299 jmp short 084ddh ; eb 1412300 cmp AL, strict byte 0a0h ; 3c a012301 jne short 084d9h ; 75 0c12302 or byte [bp-008h], 020h ; 80 4e f8 2012303 or byte [es:bx+00083h], 001h ; 26 80 8f 83 00 0112304 jmp short 084ddh ; eb 0412305 mov byte [bp-008h], 000h ; c6 46 f8 0012306 or byte [bp-008h], 005h ; 80 4e f8 0512307 movzx bx, byte [bp-008h] ; 0f b6 5e f812308 mov ax, word [bp-010h] ; 8b 46 f012309 mov dx, word [bp-00eh] ; 8b 56 f212310 call 08263h ; e8 75 fd12311 mov cx, word [bp-00eh] ; 8b 4e f212312 mov bx, word [bp-010h] ; 8b 5e f012313 add bx, 00240h ; 81 c3 40 0212314 mov ax, word [bp-010h] ; 8b 46 f012315 add ax, 0026ah ; 05 6a 0212316 mov dx, cx ; 89 ca12317 call 09701h ; e8 fe 1112318 mov es, cx ; 8e c112319 mov al, byte [es:bx+003h] ; 26 8a 47 0312320 test al, al ; 84 c012321 je short 08512h ; 74 0512322 mov ax, strict word 00004h ; b8 04 0012323 jmp short 08514h ; eb 0212324 xor ah, ah ; 30 e412325 lea sp, [bp-006h] ; 8d 66 fa12326 pop di ; 5f12327 pop si ; 5e12328 pop cx ; 5912329 pop bp ; 5d12330 retn ; c312331 ahci_port_deinit_current_: ; 0xf851c LB 0x14412332 push bp ; 5512333 mov bp, sp ; 89 e512334 push bx ; 5312335 push cx ; 5112336 push si ; 5612337 push di ; 5712338 sub sp, strict byte 00006h ; 83 ec 0612339 mov di, ax ; 89 c712340 mov word [bp-00ch], dx ; 89 56 f412341 mov es, dx ; 8e c212342 mov si, word [es:di+00260h] ; 26 8b b5 60 0212343 mov al, byte [es:di+00262h] ; 26 8a 85 62 0212344 mov byte [bp-00ah], al ; 88 46 f612345 cmp AL, strict byte 0ffh ; 3c ff12346 je near 08657h ; 0f 84 17 0112347 movzx dx, al ; 0f b6 d012348 sal dx, 007h ; c1 e2 0712349 add dx, 00118h ; 81 c2 18 0112350 mov bx, strict word 00011h ; bb 11 0012351 xor cx, cx ; 31 c912352 mov ax, si ; 89 f012353 call 081aah ; e8 56 fc12354 movzx ax, byte [bp-00ah] ; 0f b6 46 f612355 sal ax, 007h ; c1 e0 0712356 mov word [bp-00eh], ax ; 89 46 f212357 mov dx, ax ; 89 c212358 add dx, 00118h ; 81 c2 18 0112359 mov bx, 0c011h ; bb 11 c012360 xor cx, cx ; 31 c912361 mov ax, si ; 89 f012362 call 081f1h ; e8 83 fc12363 12749 cmp AL, strict byte 001h ; 3c 01 12364 je short 08 554h ; 74 e212750 je short 089cah ; 74 ce 12365 12751 mov cx, strict word 00020h ; b9 20 00 12366 12752 xor bx, bx ; 31 db 12367 12753 mov ax, di ; 89 f8 12368 12754 mov dx, word [bp-00ch] ; 8b 56 f4 12369 call 09 7aah ; e8 2b 1212755 call 09d6ah ; e8 61 13 12370 12756 lea ax, [di+00080h] ; 8d 85 80 00 12371 12757 mov cx, strict word 00040h ; b9 40 00 12372 12758 xor bx, bx ; 31 db 12373 12759 mov dx, word [bp-00ch] ; 8b 56 f4 12374 call 09 7aah ; e8 1c 1212760 call 09d6ah ; e8 52 13 12375 12761 lea ax, [di+00200h] ; 8d 85 00 02 12376 12762 mov cx, strict word 00060h ; b9 60 00 12377 12763 xor bx, bx ; 31 db 12378 12764 mov dx, word [bp-00ch] ; 8b 56 f4 12379 call 097aah ; e8 0d 12 12380 mov ax, word [bp-00eh] ; 8b 46 f2 12765 call 09d6ah ; e8 43 13 12766 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 12767 sal ax, 007h ; c1 e0 07 12768 mov word [bp-00eh], ax ; 89 46 f2 12381 12769 add ax, 00108h ; 05 08 01 12382 12770 cwd ; 99 … … 12479 12867 pop bp ; 5d 12480 12868 retn ; c3 12481 ahci_port_init_: ; 0xf8 660 LB 0x20612869 ahci_port_init_: ; 0xf8af1 LB 0x24a 12482 12870 push bp ; 55 12483 12871 mov bp, sp ; 89 e5 … … 12489 12877 mov word [bp-00ah], dx ; 89 56 f6 12490 12878 mov byte [bp-008h], bl ; 88 5e f8 12491 call 0851ch ; e8 a8 fe 12492 movzx dx, bl ; 0f b6 d3 12493 sal dx, 007h ; c1 e2 07 12494 add dx, 00118h ; 81 c2 18 01 12495 mov es, [bp-00ah] ; 8e 46 f6 12496 mov ax, word [es:si+00260h] ; 26 8b 84 60 02 12497 mov bx, strict word 00011h ; bb 11 00 12498 xor cx, cx ; 31 c9 12499 call 081aah ; e8 1c fb 12500 movzx di, byte [bp-008h] ; 0f b6 7e f8 12501 sal di, 007h ; c1 e7 07 12502 lea dx, [di+00118h] ; 8d 95 18 01 12503 mov es, [bp-00ah] ; 8e 46 f6 12504 mov ax, word [es:si+00260h] ; 26 8b 84 60 02 12505 mov bx, 0c011h ; bb 11 c0 12506 xor cx, cx ; 31 c9 12507 call 081f1h ; e8 48 fb 12508 cmp AL, strict byte 001h ; 3c 01 12509 je short 0868eh ; 74 e1 12510 mov cx, strict word 00020h ; b9 20 00 12511 xor bx, bx ; 31 db 12512 mov ax, si ; 89 f0 12513 mov dx, word [bp-00ah] ; 8b 56 f6 12514 call 097aah ; e8 f0 10 12515 lea ax, [si+00080h] ; 8d 84 80 00 12516 mov cx, strict word 00040h ; b9 40 00 12517 xor bx, bx ; 31 db 12518 mov dx, word [bp-00ah] ; 8b 56 f6 12519 call 097aah ; e8 e1 10 12520 mov ax, si ; 89 f0 12521 add ah, 002h ; 80 c4 02 12522 mov word [bp-00ch], ax ; 89 46 f4 12523 mov cx, strict word 00060h ; b9 60 00 12524 xor bx, bx ; 31 db 12525 mov dx, word [bp-00ah] ; 8b 56 f6 12526 call 097aah ; e8 ce 10 12527 lea ax, [di+00108h] ; 8d 85 08 01 12528 cwd ; 99 12879 call 08972h ; e8 6d fe 12880 movzx ax, bl ; 0f b6 c3 12881 sal ax, 007h ; c1 e0 07 12882 add ax, 00118h ; 05 18 01 12529 12883 mov es, [bp-00ah] ; 8e 46 f6 12530 12884 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 12885 xor cx, cx ; 31 c9 12886 mov dx, bx ; 89 da 12887 xchg cx, ax ; 91 12888 sal eax, 010h ; 66 c1 e0 10 12889 db 08bh, 0c1h 12890 ; mov ax, cx ; 8b c1 12891 out DX, eax ; 66 ef 12892 add bx, strict byte 00004h ; 83 c3 04 12893 mov dx, bx ; 89 da 12894 in eax, DX ; 66 ed 12895 db 08bh, 0d0h 12896 ; mov dx, ax ; 8b d0 12897 shr eax, 010h ; 66 c1 e8 10 12898 xchg dx, ax ; 92 12899 and AL, strict byte 0eeh ; 24 ee 12531 12900 mov cx, dx ; 89 d1 12532 12901 mov dx, bx ; 89 da … … 12536 12905 ; mov ax, cx ; 8b c1 12537 12906 out DX, eax ; 66 ef 12538 mov ax, word [bp-00ch] ; 8b 46 f412539 mov dx, word [bp-00ah] ; 8b 56 f612540 call 08245h ; e8 46 fb12907 movzx ax, byte [bp-008h] ; 0f b6 46 f8 12908 sal ax, 007h ; c1 e0 07 12909 add ax, 00118h ; 05 18 01 12541 12910 mov es, [bp-00ah] ; 8e 46 f6 12542 12911 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 12543 add bx, strict byte 00004h ; 83 c3 04 12544 mov cx, dx ; 89 d1 12912 xor cx, cx ; 31 c9 12545 12913 mov dx, bx ; 89 da 12546 12914 xchg cx, ax ; 91 … … 12549 12917 ; mov ax, cx ; 8b c1 12550 12918 out DX, eax ; 66 ef 12551 lea ax, [di+0010ch] ; 8d 85 0c 01 12919 lea dx, [bx+004h] ; 8d 57 04 12920 in eax, DX ; 66 ed 12921 db 08bh, 0d0h 12922 ; mov dx, ax ; 8b d0 12923 shr eax, 010h ; 66 c1 e8 10 12924 xchg dx, ax ; 92 12925 test ax, 0c011h ; a9 11 c0 12926 je short 08b74h ; 74 04 12927 mov AL, strict byte 001h ; b0 01 12928 jmp short 08b76h ; eb 02 12929 xor al, al ; 30 c0 12930 cmp AL, strict byte 001h ; 3c 01 12931 je short 08b40h ; 74 c6 12932 mov cx, strict word 00020h ; b9 20 00 12933 xor bx, bx ; 31 db 12934 mov ax, si ; 89 f0 12935 mov dx, word [bp-00ah] ; 8b 56 f6 12936 call 09d6ah ; e8 e3 11 12937 lea ax, [si+00080h] ; 8d 84 80 00 12938 mov cx, strict word 00040h ; b9 40 00 12939 xor bx, bx ; 31 db 12940 mov dx, word [bp-00ah] ; 8b 56 f6 12941 call 09d6ah ; e8 d4 11 12942 lea di, [si+00200h] ; 8d bc 00 02 12943 mov cx, strict word 00060h ; b9 60 00 12944 xor bx, bx ; 31 db 12945 mov ax, di ; 89 f8 12946 mov dx, word [bp-00ah] ; 8b 56 f6 12947 call 09d6ah ; e8 c3 11 12948 movzx bx, byte [bp-008h] ; 0f b6 5e f8 12949 sal bx, 007h ; c1 e3 07 12950 lea ax, [bx+00108h] ; 8d 87 08 01 12552 12951 cwd ; 99 12553 12952 mov es, [bp-00ah] ; 8e 46 f6 12554 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 12953 mov cx, word [es:si+00260h] ; 26 8b 8c 60 02 12954 mov word [bp-00ch], cx ; 89 4e f4 12555 12955 mov cx, dx ; 89 d1 12556 mov dx, bx ; 89 da 12956 mov dx, word [bp-00ch] ; 8b 56 f4 12957 xchg cx, ax ; 91 12958 sal eax, 010h ; 66 c1 e0 10 12959 db 08bh, 0c1h 12960 ; mov ax, cx ; 8b c1 12961 out DX, eax ; 66 ef 12962 mov ax, di ; 89 f8 12963 mov dx, word [bp-00ah] ; 8b 56 f6 12964 call 085a7h ; e8 d3 f9 12965 mov es, [bp-00ah] ; 8e 46 f6 12966 mov di, word [es:si+00260h] ; 26 8b bc 60 02 12967 add di, strict byte 00004h ; 83 c7 04 12968 mov cx, dx ; 89 d1 12969 mov dx, di ; 89 fa 12970 xchg cx, ax ; 91 12971 sal eax, 010h ; 66 c1 e0 10 12972 db 08bh, 0c1h 12973 ; mov ax, cx ; 8b c1 12974 out DX, eax ; 66 ef 12975 lea ax, [bx+0010ch] ; 8d 87 0c 01 12976 cwd ; 99 12977 mov es, [bp-00ah] ; 8e 46 f6 12978 mov di, word [es:si+00260h] ; 26 8b bc 60 02 12979 mov cx, dx ; 89 d1 12980 mov dx, di ; 89 fa 12557 12981 xchg cx, ax ; 91 12558 12982 sal eax, 010h ; 66 c1 e0 10 … … 12570 12994 ; mov ax, cx ; 8b c1 12571 12995 out DX, eax ; 66 ef 12572 lea ax, [ di+00100h] ; 8d 8500 0112996 lea ax, [bx+00100h] ; 8d 87 00 01 12573 12997 cwd ; 99 12574 12998 mov es, [bp-00ah] ; 8e 46 f6 12575 mov bx, word [es:si+00260h] ; 26 8b 9c 60 0212999 mov di, word [es:si+00260h] ; 26 8b bc 60 02 12576 13000 mov cx, dx ; 89 d1 12577 mov dx, bx ; 89 da13001 mov dx, di ; 89 fa 12578 13002 xchg cx, ax ; 91 12579 13003 sal eax, 010h ; 66 c1 e0 10 … … 12583 13007 mov ax, si ; 89 f0 12584 13008 mov dx, word [bp-00ah] ; 8b 56 f6 12585 call 08 245h ; e8 da fa13009 call 085a7h ; e8 67 f9 12586 13010 mov es, [bp-00ah] ; 8e 46 f6 12587 mov bx, word [es:si+00260h] ; 26 8b 9c 60 0212588 add bx, strict byte 00004h ; 83 c30413011 mov di, word [es:si+00260h] ; 26 8b bc 60 02 13012 add di, strict byte 00004h ; 83 c7 04 12589 13013 mov cx, dx ; 89 d1 12590 mov dx, bx ; 89 da13014 mov dx, di ; 89 fa 12591 13015 xchg cx, ax ; 91 12592 13016 sal eax, 010h ; 66 c1 e0 10 … … 12594 13018 ; mov ax, cx ; 8b c1 12595 13019 out DX, eax ; 66 ef 12596 lea ax, [ di+00104h] ; 8d 8504 0113020 lea ax, [bx+00104h] ; 8d 87 04 01 12597 13021 cwd ; 99 12598 13022 mov es, [bp-00ah] ; 8e 46 f6 12599 mov bx, word [es:si+00260h] ; 26 8b 9c 60 0213023 mov di, word [es:si+00260h] ; 26 8b bc 60 02 12600 13024 mov cx, dx ; 89 d1 12601 mov dx, bx ; 89 da13025 mov dx, di ; 89 fa 12602 13026 xchg cx, ax ; 91 12603 13027 sal eax, 010h ; 66 c1 e0 10 … … 12615 13039 ; mov ax, cx ; 8b c1 12616 13040 out DX, eax ; 66 ef 12617 lea ax, [ di+00114h] ; 8d 8514 0113041 lea ax, [bx+00114h] ; 8d 87 14 01 12618 13042 cwd ; 99 12619 13043 mov es, [bp-00ah] ; 8e 46 f6 12620 mov bx, word [es:si+00260h] ; 26 8b 9c 60 0213044 mov di, word [es:si+00260h] ; 26 8b bc 60 02 12621 13045 mov cx, dx ; 89 d1 12622 mov dx, bx ; 89 da13046 mov dx, di ; 89 fa 12623 13047 xchg cx, ax ; 91 12624 13048 sal eax, 010h ; 66 c1 e0 10 … … 12636 13060 ; mov ax, cx ; 8b c1 12637 13061 out DX, eax ; 66 ef 12638 lea ax, [ di+00110h] ; 8d 8510 0113062 lea ax, [bx+00110h] ; 8d 87 10 01 12639 13063 cwd ; 99 12640 13064 mov es, [bp-00ah] ; 8e 46 f6 12641 mov bx, word [es:si+00260h] ; 26 8b 9c 60 0213065 mov di, word [es:si+00260h] ; 26 8b bc 60 02 12642 13066 mov cx, dx ; 89 d1 12643 mov dx, bx ; 89 da13067 mov dx, di ; 89 fa 12644 13068 xchg cx, ax ; 91 12645 13069 sal eax, 010h ; 66 c1 e0 10 … … 12657 13081 ; mov ax, cx ; 8b c1 12658 13082 out DX, eax ; 66 ef 12659 lea ax, [ di+00130h] ; 8d 8530 0113083 lea ax, [bx+00130h] ; 8d 87 30 01 12660 13084 cwd ; 99 12661 13085 mov es, [bp-00ah] ; 8e 46 f6 … … 12688 13112 pop bp ; 5d 12689 13113 retn ; c3 12690 @ahci_read_sectors: ; 0xf8 866 LB 0x9313114 @ahci_read_sectors: ; 0xf8d3b LB 0xa6 12691 13115 push bp ; 55 12692 13116 mov bp, sp ; 89 e5 12693 13117 push si ; 56 12694 13118 push di ; 57 12695 les bx, [bp+004h] ; c4 5e 04 12696 movzx bx, byte [es:bx+008h] ; 26 0f b6 5f 08 12697 sub bx, strict byte 0000ch ; 83 eb 0c 12698 cmp bx, strict byte 00004h ; 83 fb 04 12699 jbe short 0888ah ; 76 0f 12700 push bx ; 53 12701 push 00c66h ; 68 66 0c 12702 push 00c78h ; 68 78 0c 13119 push ax ; 50 13120 les di, [bp+004h] ; c4 7e 04 13121 movzx di, byte [es:di+00ch] ; 26 0f b6 7d 0c 13122 sub di, strict byte 0000ch ; 83 ef 0c 13123 cmp di, strict byte 00004h ; 83 ff 04 13124 jbe short 08d60h ; 76 0f 13125 push di ; 57 13126 push 00c62h ; 68 62 0c 13127 push 00c74h ; 68 74 0c 12703 13128 push strict byte 00007h ; 6a 07 12704 call 01972h ; e8 eb 9013129 call 01972h ; e8 15 8c 12705 13130 add sp, strict byte 00008h ; 83 c4 08 12706 les di, [bp+004h] ; c4 7e 04 12707 mov dx, word [es:di+001eeh] ; 26 8b 95 ee 01 13131 xor bx, bx ; 31 db 13132 les si, [bp+004h] ; c4 76 04 13133 mov dx, word [es:si+00232h] ; 26 8b 94 32 02 13134 shr eax, 010h ; 66 c1 e8 10 13135 mov es, dx ; 8e c2 13136 mov word [es:bx+00268h], ax ; 26 89 87 68 02 13137 mov es, [bp+006h] ; 8e 46 06 13138 add di, si ; 01 f7 13139 movzx bx, byte [es:di+0022dh] ; 26 0f b6 9d 2d 02 13140 mov di, si ; 89 f7 13141 mov dx, word [es:di+00232h] ; 26 8b 95 32 02 12708 13142 xor ax, ax ; 31 c0 12709 call 08139h ; e8 a2 f8 13143 call 08af1h ; e8 65 fd 13144 mov bx, strict word 00025h ; bb 25 00 13145 mov ax, si ; 89 f0 13146 mov dx, word [bp+006h] ; 8b 56 06 13147 call 08710h ; e8 79 f9 13148 mov word [bp-006h], ax ; 89 46 fa 12710 13149 mov es, [bp+006h] ; 8e 46 06 12711 add bx, di ; 01 fb 12712 movzx bx, byte [es:bx+001e9h] ; 26 0f b6 9f e9 01 12713 mov si, di ; 89 fe 12714 mov dx, word [es:si+001eeh] ; 26 8b 94 ee 01 12715 xor ax, ax ; 31 c0 12716 call 08660h ; e8 b2 fd 12717 mov bx, strict word 00025h ; bb 25 00 12718 mov ax, di ; 89 f8 12719 mov dx, word [bp+006h] ; 8b 56 06 12720 call 08338h ; e8 7f fa 12721 mov bx, ax ; 89 c3 12722 mov es, [bp+006h] ; 8e 46 06 12723 mov ax, word [es:di+00ah] ; 26 8b 45 0a 12724 mov word [es:si+014h], ax ; 26 89 44 14 13150 mov bx, si ; 89 f3 13151 mov ax, word [es:bx+00eh] ; 26 8b 47 0e 13152 mov word [es:bx+018h], ax ; 26 89 47 18 12725 13153 mov cx, ax ; 89 c1 12726 13154 sal cx, 009h ; c1 e1 09 12727 13155 shr cx, 1 ; d1 e9 12728 mov di, word [es:di+00 4h] ; 26 8b 7d 0412729 mov ax, word [es: si+006h] ; 26 8b 44 0613156 mov di, word [es:di+008h] ; 26 8b 7d 08 13157 mov ax, word [es:bx+00ah] ; 26 8b 47 0a 12730 13158 mov si, di ; 89 fe 12731 13159 mov dx, ax ; 89 c2 … … 12735 13163 rep movsw ; f3 a5 12736 13164 pop DS ; 1f 12737 les si, [bp+004h] ; c4 76 04 12738 mov dx, word [es:si+001eeh] ; 26 8b 94 ee 01 12739 xor ax, ax ; 31 c0 12740 call 08150h ; e8 62 f8 12741 mov ax, bx ; 89 d8 13165 xor bx, bx ; 31 db 13166 les di, [bp+004h] ; c4 7e 04 13167 mov es, [es:di+00232h] ; 26 8e 85 32 02 13168 mov ax, word [es:bx+00268h] ; 26 8b 87 68 02 13169 sal eax, 010h ; 66 c1 e0 10 13170 mov ax, word [bp-006h] ; 8b 46 fa 12742 13171 lea sp, [bp-004h] ; 8d 66 fc 12743 13172 pop di ; 5f … … 12745 13174 pop bp ; 5d 12746 13175 retn 00004h ; c2 04 00 12747 @ahci_write_sectors: ; 0xf8 8f9 LB 0x7213176 @ahci_write_sectors: ; 0xf8de1 LB 0x84 12748 13177 push bp ; 55 12749 13178 mov bp, sp ; 89 e5 12750 13179 push si ; 56 13180 push di ; 57 12751 13181 mov si, word [bp+004h] ; 8b 76 04 12752 13182 mov cx, word [bp+006h] ; 8b 4e 06 12753 13183 mov es, cx ; 8e c1 12754 movzx bx, byte [es:si+008h] ; 26 0f b6 5c 0812755 sub bx, strict byte 0000ch ; 83 eb0c12756 cmp bx, strict byte 00004h ; 83 fb0412757 jbe short 08 921h ; 76 0f12758 push bx ; 5312759 push 00c9 7h ; 68 970c12760 push 00c7 8h ; 68 780c13184 movzx dx, byte [es:si+00ch] ; 26 0f b6 54 0c 13185 sub dx, strict byte 0000ch ; 83 ea 0c 13186 cmp dx, strict byte 00004h ; 83 fa 04 13187 jbe short 08e0ah ; 76 0f 13188 push dx ; 52 13189 push 00c93h ; 68 93 0c 13190 push 00c74h ; 68 74 0c 12761 13191 push strict byte 00007h ; 6a 07 12762 call 01972h ; e8 54 9013192 call 01972h ; e8 6b 8b 12763 13193 add sp, strict byte 00008h ; 83 c4 08 13194 xor bx, bx ; 31 db 12764 13195 mov es, cx ; 8e c1 12765 mov dx, word [es:si+001eeh] ; 26 8b 94 ee 01 13196 mov di, word [es:si+00232h] ; 26 8b bc 32 02 13197 shr eax, 010h ; 66 c1 e8 10 13198 mov es, di ; 8e c7 13199 mov word [es:bx+00268h], ax ; 26 89 87 68 02 13200 mov es, cx ; 8e c1 13201 mov bx, si ; 89 f3 13202 add bx, dx ; 01 d3 13203 movzx bx, byte [es:bx+0022dh] ; 26 0f b6 9f 2d 02 13204 mov dx, word [es:si+00232h] ; 26 8b 94 32 02 12766 13205 xor ax, ax ; 31 c0 12767 call 08139h ; e8 0c f8 12768 mov es, cx ; 8e c1 12769 add bx, si ; 01 f3 12770 movzx bx, byte [es:bx+001e9h] ; 26 0f b6 9f e9 01 12771 mov dx, word [es:si+001eeh] ; 26 8b 94 ee 01 12772 xor ax, ax ; 31 c0 12773 call 08660h ; e8 1f fd 13206 call 08af1h ; e8 bd fc 12774 13207 mov bx, strict word 00035h ; bb 35 00 12775 13208 mov ax, si ; 89 f0 12776 13209 mov dx, cx ; 89 ca 12777 call 08 338h ; e8 ed f912778 mov bx, ax ; 89 c313210 call 08710h ; e8 d2 f8 13211 mov dx, ax ; 89 c2 12779 13212 mov es, cx ; 8e c1 12780 mov dx, word [es:si+00ah] ; 26 8b 54 0a 12781 mov word [es:si+014h], dx ; 26 89 54 14 12782 mov dx, word [es:si+001eeh] ; 26 8b 94 ee 01 12783 xor ax, ax ; 31 c0 12784 call 08150h ; e8 ef f7 12785 mov ax, bx ; 89 d8 12786 lea sp, [bp-002h] ; 8d 66 fe 13213 mov ax, word [es:si+00eh] ; 26 8b 44 0e 13214 mov word [es:si+018h], ax ; 26 89 44 18 13215 xor bx, bx ; 31 db 13216 mov es, [es:si+00232h] ; 26 8e 84 32 02 13217 mov ax, word [es:bx+00268h] ; 26 8b 87 68 02 13218 sal eax, 010h ; 66 c1 e0 10 13219 mov ax, dx ; 89 d0 13220 lea sp, [bp-004h] ; 8d 66 fc 13221 pop di ; 5f 12787 13222 pop si ; 5e 12788 13223 pop bp ; 5d 12789 13224 retn 00004h ; c2 04 00 12790 ahci_cmd_packet_: ; 0xf8 96b LB 0x17313225 ahci_cmd_packet_: ; 0xf8e65 LB 0x183 12791 13226 push bp ; 55 12792 13227 mov bp, sp ; 89 e5 … … 12800 13235 mov dx, strict word 0000eh ; ba 0e 00 12801 13236 mov ax, strict word 00040h ; b8 40 00 12802 call 0166ch ; e8 e 6 8c13237 call 0166ch ; e8 ec 87 12803 13238 mov si, 00122h ; be 22 01 12804 13239 mov word [bp-008h], ax ; 89 46 f8 12805 13240 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 12806 jne short 08 9b1h ; 75 1f12807 mov bx, 00da 2h ; bb a20d13241 jne short 08eabh ; 75 1f 13242 mov bx, 00da0h ; bb a0 0d 12808 13243 mov cx, ds ; 8c d9 12809 13244 mov ax, strict word 00004h ; b8 04 00 12810 call 01931h ; e8 9 4 8f12811 push 00ca ah ; 68 aa0c12812 push 00cb ah ; 68 ba0c13245 call 01931h ; e8 9a 8a 13246 push 00ca6h ; 68 a6 0c 13247 push 00cb6h ; 68 b6 0c 12813 13248 push strict byte 00004h ; 6a 04 12814 call 01972h ; e8 ca 8f13249 call 01972h ; e8 d0 8a 12815 13250 add sp, strict byte 00006h ; 83 c4 06 12816 13251 mov ax, strict word 00001h ; b8 01 00 12817 jmp near 08 ad5h ; e9 24 0113252 jmp near 08fdfh ; e9 34 01 12818 13253 test byte [bp+004h], 001h ; f6 46 04 01 12819 jne short 08 9abh ; 75 f413254 jne short 08ea5h ; 75 f4 12820 13255 mov ax, word [bp+006h] ; 8b 46 06 12821 13256 mov dx, word [bp+008h] ; 8b 56 08 … … 12823 13258 sal ax, 1 ; d1 e0 12824 13259 rcl dx, 1 ; d1 d2 12825 loop 08 9c0h ; e2 fa13260 loop 08ebah ; e2 fa 12826 13261 mov es, [bp-008h] ; 8e 46 f8 12827 13262 mov word [es:si], ax ; 26 89 04 12828 13263 mov word [es:si+002h], dx ; 26 89 54 02 13264 db 066h, 026h, 0c7h, 044h, 004h, 000h, 000h, 000h, 000h 13265 ; mov dword [es:si+004h], strict dword 000000000h ; 66 26 c7 44 04 00 00 00 00 12829 13266 mov ax, word [bp+00ch] ; 8b 46 0c 12830 mov word [es:si+00 4h], ax ; 26 89 44 0413267 mov word [es:si+008h], ax ; 26 89 44 08 12831 13268 mov ax, word [bp+00eh] ; 8b 46 0e 12832 mov word [es:si+00 6h], ax ; 26 89 44 0612833 mov bx, word [es:si+0 0ch] ; 26 8b 5c 0c13269 mov word [es:si+00ah], ax ; 26 89 44 0a 13270 mov bx, word [es:si+010h] ; 26 8b 5c 10 12834 13271 mov ax, word [bp+006h] ; 8b 46 06 12835 13272 mov dx, word [bp+008h] ; 8b 56 08 12836 13273 xor cx, cx ; 31 c9 12837 call 09 740h ; e8 530d12838 mov word [es:si+00 ah], ax ; 26 89 44 0a13274 call 09ce0h ; e8 f0 0d 13275 mov word [es:si+00eh], ax ; 26 89 44 0e 12839 13276 xor di, di ; 31 ff 12840 mov ax, word [es:si+00 1eeh] ; 26 8b 84 ee 0113277 mov ax, word [es:si+00232h] ; 26 8b 84 32 02 12841 13278 mov word [bp-00ah], ax ; 89 46 f6 12842 13279 mov word [bp-00eh], di ; 89 7e f2 12843 13280 mov word [bp-00ch], ax ; 89 46 f4 12844 13281 sub word [bp-014h], strict byte 0000ch ; 83 6e ec 0c 12845 xor ax, ax ; 31 c012846 mov dx, word [bp-00ah] ; 8b 56 f612847 call 08139h ; e8 2c f713282 shr eax, 010h ; 66 c1 e8 10 13283 mov es, [bp-00ah] ; 8e 46 f6 13284 mov word [es:di+00268h], ax ; 26 89 85 68 02 12848 13285 mov es, [bp-008h] ; 8e 46 f8 12849 13286 mov bx, word [bp-014h] ; 8b 5e ec 12850 13287 add bx, si ; 01 f3 12851 movzx bx, byte [es:bx+00 1e9h] ; 26 0f b6 9f e9 0112852 mov dx, word [es:si+00 1eeh] ; 26 8b 94 ee 0113288 movzx bx, byte [es:bx+0022dh] ; 26 0f b6 9f 2d 02 13289 mov dx, word [es:si+00232h] ; 26 8b 94 32 02 12853 13290 xor ax, ax ; 31 c0 12854 call 08 660h ; e8 3b fc13291 call 08af1h ; e8 c5 fb 12855 13292 movzx ax, byte [bp-006h] ; 0f b6 46 fa 12856 13293 push ax ; 50 … … 12859 13296 mov ax, 000c0h ; b8 c0 00 12860 13297 mov dx, word [bp-00ah] ; 8b 56 f6 12861 call 09 7b7h ; e8 7e 0d13298 call 09d77h ; e8 37 0e 12862 13299 mov es, [bp-008h] ; 8e 46 f8 12863 mov word [es:si+014h], di ; 26 89 7c 1412864 mov word [es:si+016h], di ; 26 89 7c 1612865 13300 mov word [es:si+018h], di ; 26 89 7c 18 12866 mov ax, word [es:si+01ah] ; 26 8b 44 1a 13301 mov word [es:si+01ah], di ; 26 89 7c 1a 13302 mov word [es:si+01ch], di ; 26 89 7c 1c 13303 mov ax, word [es:si+01eh] ; 26 8b 44 1e 12867 13304 test ax, ax ; 85 c0 12868 je short 08 a77h ; 74 2713305 je short 08f7eh ; 74 27 12869 13306 dec ax ; 48 12870 13307 mov es, [bp-00ah] ; 8e 46 f6 12871 13308 mov word [es:di+0010ch], ax ; 26 89 85 0c 01 12872 13309 mov word [es:di+0010eh], di ; 26 89 bd 0e 01 12873 mov ax, word [es:di+00264h] ; 26 8b 85 64 0212874 mov dx, word [es:di+00266h] ; 26 8b 95 66 0212875 mov word [es:di+00100h], ax ; 26 89 85 00 0112876 mov word [es:di+00102h], dx ; 26 89 95 02 0113310 mov dx, word [es:di+00264h] ; 26 8b 95 64 02 13311 mov ax, word [es:di+00266h] ; 26 8b 85 66 02 13312 mov word [es:di+00100h], dx ; 26 89 95 00 01 13313 mov word [es:di+00102h], ax ; 26 89 85 02 01 12877 13314 inc byte [es:di+00263h] ; 26 fe 85 63 02 12878 13315 mov bx, 000a0h ; bb a0 00 12879 13316 mov ax, si ; 89 f0 12880 13317 mov dx, word [bp-008h] ; 8b 56 f8 12881 call 08 338h ; e8 b6 f813318 call 08710h ; e8 87 f7 12882 13319 les bx, [bp-00eh] ; c4 5e f2 12883 13320 mov ax, word [es:bx+004h] ; 26 8b 47 04 12884 13321 mov dx, word [es:bx+006h] ; 26 8b 57 06 12885 13322 mov es, [bp-008h] ; 8e 46 f8 12886 mov word [es:si+01 6h], ax ; 26 89 44 1612887 mov word [es:si+01 8h], dx ; 26 89 54 1812888 mov bx, word [es:si+01 6h] ; 26 8b 5c 1613323 mov word [es:si+01ah], ax ; 26 89 44 1a 13324 mov word [es:si+01ch], dx ; 26 89 54 1c 13325 mov bx, word [es:si+01ah] ; 26 8b 5c 1a 12889 13326 mov cx, dx ; 89 d1 12890 13327 shr cx, 1 ; d1 e9 12891 13328 rcr bx, 1 ; d1 db 12892 mov di, word [es:si+00 4h] ; 26 8b 7c 0412893 mov ax, word [es:si+00 6h] ; 26 8b 44 0613329 mov di, word [es:si+008h] ; 26 8b 7c 08 13330 mov ax, word [es:si+00ah] ; 26 8b 44 0a 12894 13331 mov cx, bx ; 89 d9 12895 13332 mov si, di ; 89 fe … … 12900 13337 rep movsw ; f3 a5 12901 13338 pop DS ; 1f 12902 mov ax, word [bp-00eh] ; 8b 46 f212903 mov dx, word [bp-00ch] ; 8b 56 f412904 call 08150h ; e8 8f f612905 13339 les bx, [bp-00eh] ; c4 5e f2 13340 mov ax, word [es:bx+00268h] ; 26 8b 87 68 02 13341 sal eax, 010h ; 66 c1 e0 10 13342 mov es, [bp-00ch] ; 8e 46 f4 12906 13343 mov ax, word [es:bx+006h] ; 26 8b 47 06 12907 13344 or ax, word [es:bx+004h] ; 26 0b 47 04 12908 jne short 08 ad3h ; 75 0513345 jne short 08fddh ; 75 05 12909 13346 mov ax, strict word 00004h ; b8 04 00 12910 jmp short 08 ad5h ; eb 0213347 jmp short 08fdfh ; eb 02 12911 13348 xor ax, ax ; 31 c0 12912 13349 lea sp, [bp-004h] ; 8d 66 fc … … 12915 13352 pop bp ; 5d 12916 13353 retn 0000ch ; c2 0c 00 12917 ahci_port_detect_device_: ; 0xf8 ade LB 0x45113354 ahci_port_detect_device_: ; 0xf8fe8 LB 0x4b1 12918 13355 push bp ; 55 12919 13356 mov bp, sp ; 89 e5 … … 12921 13358 push si ; 56 12922 13359 push di ; 57 12923 sub sp, 0022 0h ; 81 ec 200213360 sub sp, 00224h ; 81 ec 24 02 12924 13361 mov si, ax ; 89 c6 12925 13362 mov word [bp-012h], dx ; 89 56 ee 12926 mov byte [bp-00 8h], bl ; 88 5e f813363 mov byte [bp-00ah], bl ; 88 5e f6 12927 13364 movzx di, bl ; 0f b6 fb 12928 13365 mov bx, di ; 89 fb 12929 call 08 660h ; e8 68 fb13366 call 08af1h ; e8 ef fa 12930 13367 mov dx, strict word 0000eh ; ba 0e 00 12931 13368 mov ax, strict word 00040h ; b8 40 00 12932 call 0166ch ; e8 6 b 8b13369 call 0166ch ; e8 61 86 12933 13370 mov word [bp-010h], 00122h ; c7 46 f0 22 01 12934 13371 mov word [bp-00eh], ax ; 89 46 f2 12935 13372 sal di, 007h ; c1 e7 07 12936 mov word [bp-02 0h], di ; 89 7e e013373 mov word [bp-024h], di ; 89 7e dc 12937 13374 lea ax, [di+0012ch] ; 8d 85 2c 01 12938 13375 cwd ; 99 12939 mov di, ax ; 89 c712940 mov bx, dx ; 89 d313376 mov bx, ax ; 89 c3 13377 mov di, dx ; 89 d7 12941 13378 mov es, [bp-012h] ; 8e 46 ee 12942 13379 mov dx, word [es:si+00260h] ; 26 8b 94 60 02 12943 mov cx, bx ; 89 d913380 mov cx, di ; 89 f9 12944 13381 xchg cx, ax ; 91 12945 13382 sal eax, 010h ; 66 c1 e0 10 … … 12959 13396 mov es, [bp-012h] ; 8e 46 ee 12960 13397 mov dx, word [es:si+00260h] ; 26 8b 94 60 02 12961 mov ax, di ; 89 f812962 mov cx, bx ; 89 d913398 mov ax, bx ; 89 d8 13399 mov cx, di ; 89 f9 12963 13400 xchg cx, ax ; 91 12964 13401 sal eax, 010h ; 66 c1 e0 10 … … 12976 13413 ; mov ax, cx ; 8b c1 12977 13414 out DX, eax ; 66 ef 12978 mov ax, word [bp-02 0h] ; 8b 46 e013415 mov ax, word [bp-024h] ; 8b 46 dc 12979 13416 add ax, 00128h ; 05 28 01 12980 13417 cwd ; 99 … … 12999 13436 mov bx, strict word 0000fh ; bb 0f 00 13000 13437 xor cx, cx ; 31 c9 13001 call 08 22ah ; e8 7f f613438 call 0858ch ; e8 d7 f4 13002 13439 test ax, ax ; 85 c0 13003 je near 0 8f27h ; 0f 84 76 0313004 movzx ax, byte [bp-00 8h] ; 0f b6 46 f813440 je near 09491h ; 0f 84 d6 03 13441 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 13005 13442 sal ax, 007h ; c1 e0 07 13006 mov word [bp-01 6h], ax ; 89 46 ea13443 mov word [bp-018h], ax ; 89 46 e8 13007 13444 add ax, 00128h ; 05 28 01 13008 13445 cwd ; 99 … … 13025 13462 xchg dx, ax ; 92 13026 13463 mov di, ax ; 89 c7 13027 mov word [bp-0 1ah], dx ; 89 56 e613464 mov word [bp-022h], dx ; 89 56 de 13028 13465 push strict byte 00000h ; 6a 00 13029 13466 mov bx, strict word 0000fh ; bb 0f 00 13030 13467 xor cx, cx ; 31 c9 13031 call 08 22ah ; e8 33 f613468 call 0858ch ; e8 8b f4 13032 13469 cmp ax, strict word 00001h ; 3d 01 00 13033 je short 0 8bb1h ; 74 b513470 je short 090bbh ; 74 b5 13034 13471 push strict byte 00000h ; 6a 00 13035 13472 mov bx, strict word 0000fh ; bb 0f 00 13036 13473 xor cx, cx ; 31 c9 13037 13474 mov ax, di ; 89 f8 13038 mov dx, word [bp-0 1ah] ; 8b 56 e613039 call 08 22ah ; e8 1f f613475 mov dx, word [bp-022h] ; 8b 56 de 13476 call 0858ch ; e8 77 f4 13040 13477 cmp ax, strict word 00003h ; 3d 03 00 13041 jne near 0 8f27h ; 0f 85 15 0313042 mov ax, word [bp-01 6h] ; 8b 46 ea13478 jne near 09491h ; 0f 85 75 03 13479 mov ax, word [bp-018h] ; 8b 46 e8 13043 13480 add ax, 00130h ; 05 30 01 13044 13481 cwd ; 99 … … 13063 13500 out DX, eax ; 66 ef 13064 13501 les bx, [bp-010h] ; c4 5e f0 13065 mov al, byte [es:bx+00 1edh] ; 26 8a 87 ed 0113066 mov byte [bp-00 ch], al ; 88 46 f413502 mov al, byte [es:bx+00231h] ; 26 8a 87 31 02 13503 mov byte [bp-008h], al ; 88 46 f8 13067 13504 cmp AL, strict byte 004h ; 3c 04 13068 jnc near 0 8f27h ; 0f 83 cf 0213069 mov dx, word [bp-016h] ; 8b 56 ea13070 add dx, 00118h ; 81 c218 0113505 jnc near 09491h ; 0f 83 2f 03 13506 mov ax, word [bp-018h] ; 8b 46 e8 13507 add ax, 00118h ; 05 18 01 13071 13508 mov es, [bp-012h] ; 8e 46 ee 13072 mov ax, word [es:si+00260h] ; 26 8b 84 60 02 13073 mov bx, strict word 00010h ; bb 10 00 13509 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 13074 13510 xor cx, cx ; 31 c9 13075 call 08167h ; e8 f8 f4 13076 mov ax, word [bp-016h] ; 8b 46 ea 13511 mov dx, bx ; 89 da 13512 xchg cx, ax ; 91 13513 sal eax, 010h ; 66 c1 e0 10 13514 db 08bh, 0c1h 13515 ; mov ax, cx ; 8b c1 13516 out DX, eax ; 66 ef 13517 add bx, strict byte 00004h ; 83 c3 04 13518 mov dx, bx ; 89 da 13519 in eax, DX ; 66 ed 13520 db 08bh, 0d0h 13521 ; mov dx, ax ; 8b d0 13522 shr eax, 010h ; 66 c1 e8 10 13523 xchg dx, ax ; 92 13524 or AL, strict byte 010h ; 0c 10 13525 mov cx, dx ; 89 d1 13526 mov dx, bx ; 89 da 13527 xchg cx, ax ; 91 13528 sal eax, 010h ; 66 c1 e0 10 13529 db 08bh, 0c1h 13530 ; mov ax, cx ; 8b c1 13531 out DX, eax ; 66 ef 13532 mov ax, word [bp-018h] ; 8b 46 e8 13077 13533 add ax, 00124h ; 05 24 01 13078 13534 cwd ; 99 … … 13094 13550 shr eax, 010h ; 66 c1 e8 10 13095 13551 xchg dx, ax ; 92 13096 mov cl, byte [bp-00ch] ; 8a 4e f4 13552 mov di, ax ; 89 c7 13553 mov ax, dx ; 89 d0 13554 mov cl, byte [bp-008h] ; 8a 4e f8 13097 13555 add cl, 00ch ; 80 c1 0c 13098 13556 test dx, dx ; 85 d2 13099 jne near 0 8e83h ; 0f 85 d8 0113100 cmp ax, 00101h ; 3d01 0113101 jne near 0 8e83h ; 0f 85 d1 0113557 jne near 093e7h ; 0f 85 0d 02 13558 cmp di, 00101h ; 81 ff 01 01 13559 jne near 093e7h ; 0f 85 05 02 13102 13560 les bx, [bp-010h] ; c4 5e f0 13561 db 066h, 026h, 0c7h, 047h, 004h, 000h, 000h, 000h, 000h 13562 ; mov dword [es:bx+004h], strict dword 000000000h ; 66 26 c7 47 04 00 00 00 00 13103 13563 db 066h, 026h, 0c7h, 007h, 000h, 000h, 000h, 000h 13104 13564 ; mov dword [es:bx], strict dword 000000000h ; 66 26 c7 07 00 00 00 00 13105 lea dx, [bp-0022 6h] ; 8d 96 dafd13106 mov word [es:bx+00 4h], dx ; 26 89 57 0413107 mov [es:bx+00 6h], ss ; 26 8c 57 0613108 db 066h, 026h, 0c7h, 047h, 00 ah, 001h, 000h, 000h, 002h13109 ; mov dword [es:bx+00 ah], strict dword 002000001h ; 66 26 c7 47 0a01 00 00 0213565 lea dx, [bp-0022ah] ; 8d 96 d6 fd 13566 mov word [es:bx+008h], dx ; 26 89 57 08 13567 mov [es:bx+00ah], ss ; 26 8c 57 0a 13568 db 066h, 026h, 0c7h, 047h, 00eh, 001h, 000h, 000h, 002h 13569 ; mov dword [es:bx+00eh], strict dword 002000001h ; 66 26 c7 47 0e 01 00 00 02 13110 13570 mov bx, 000ech ; bb ec 00 13111 13571 mov ax, word [bp-010h] ; 8b 46 f0 13112 13572 mov dx, es ; 8c c2 13113 call 08 338h ; e8 5b f613114 mov byte [bp-00 ah], cl ; 88 4e f613115 test byte [bp-0022 6h], 080h ; f6 86 dafd 8013573 call 08710h ; e8 fa f4 13574 mov byte [bp-00ch], cl ; 88 4e f4 13575 test byte [bp-0022ah], 080h ; f6 86 d6 fd 80 13116 13576 db 00fh, 095h, 0c0h 13117 13577 ; setne al ; 0f 95 c0 13118 13578 xor ah, ah ; 30 e4 13119 mov d l, al ; 88 c213120 mov ax, word [bp-00224h] ; 8b 86 dc fd13121 mov word [bp-018h], ax ; 89 46 e813122 mov ax, word [bp-00220h] ; 8b 86 e0 fd13123 mov word [bp-01eh], ax ; 89 46 e213124 mov ax, word [bp-0021ah] ; 8b 86 e6 fd13125 mov word [bp-01ch], ax ; 89 46 e413126 mov ax, word [bp-001aeh] ; 8b 86 52 fe13127 mov word [bp-014h], ax ; 89 46 ec13128 mov d i, word [bp-001ach] ; 8b be 54 fe13579 mov dx, word [bp-00228h] ; 8b 96 d8 fd 13580 mov word [bp-020h], dx ; 89 56 e0 13581 mov dx, word [bp-00224h] ; 8b 96 dc fd 13582 mov word [bp-01ch], dx ; 89 56 e4 13583 mov dx, word [bp-0021eh] ; 8b 96 e2 fd 13584 mov word [bp-01eh], dx ; 89 56 e2 13585 mov dx, word [bp-001b2h] ; 8b 96 4e fe 13586 mov word [bp-01ah], dx ; 89 56 e6 13587 mov di, word [bp-001b0h] ; 8b be 50 fe 13588 mov dword [bp-016h], strict dword 000000000h ; 66 c7 46 ea 00 00 00 00 13129 13589 cmp di, 00fffh ; 81 ff ff 0f 13130 jne short 08d22h ; 75 10 13131 cmp ax, strict word 0ffffh ; 3d ff ff 13132 jne short 08d22h ; 75 0b 13133 mov ax, word [bp-0015eh] ; 8b 86 a2 fe 13134 mov word [bp-014h], ax ; 89 46 ec 13135 mov di, word [bp-0015ch] ; 8b be a4 fe 13136 movzx bx, byte [bp-00ch] ; 0f b6 5e f4 13590 jne short 0926fh ; 75 1e 13591 cmp dx, strict byte 0ffffh ; 83 fa ff 13592 jne short 0926fh ; 75 19 13593 mov dx, word [bp-0015ch] ; 8b 96 a4 fe 13594 mov word [bp-014h], dx ; 89 56 ec 13595 mov dx, word [bp-0015eh] ; 8b 96 a2 fe 13596 mov word [bp-016h], dx ; 89 56 ea 13597 mov di, word [bp-00160h] ; 8b be a0 fe 13598 mov dx, word [bp-00162h] ; 8b 96 9e fe 13599 mov word [bp-01ah], dx ; 89 56 e6 13600 movzx bx, byte [bp-008h] ; 0f b6 5e f8 13137 13601 mov es, [bp-00eh] ; 8e 46 f2 13138 13602 add bx, word [bp-010h] ; 03 5e f0 13139 mov a l, byte [bp-008h] ; 8a 46 f813140 mov byte [es:bx+00 1e9h], al ; 26 88 87 e9 0113141 movzx ax, byte [bp-00ah] ; 0f b6 46 f613142 imul ax, ax, strict byte 00018h ; 6b c0 1813603 mov ah, byte [bp-00ah] ; 8a 66 f6 13604 mov byte [es:bx+0022dh], ah ; 26 88 a7 2d 02 13605 movzx dx, byte [bp-00ch] ; 0f b6 56 f4 13606 imul dx, dx, strict byte 0001ch ; 6b d2 1c 13143 13607 mov si, word [bp-010h] ; 8b 76 f0 13144 add si, ax ; 01 c613145 mov word [es:si+0 1eh], 0ff05h ; 26 c7 44 1e05 ff13146 mov byte [es:si+02 0h], dl ; 26 88 54 2013147 mov byte [es:si+02 1h], 000h ; 26 c6 44 210013148 mov word [es:si+02 4h], 00200h ; 26 c7 44 2400 0213149 mov byte [es:si+02 3h], 001h ; 26 c6 44 230113608 add si, dx ; 01 d6 13609 mov word [es:si+022h], 0ff05h ; 26 c7 44 22 05 ff 13610 mov byte [es:si+024h], al ; 26 88 44 24 13611 mov byte [es:si+025h], 000h ; 26 c6 44 25 00 13612 mov word [es:si+028h], 00200h ; 26 c7 44 28 00 02 13613 mov byte [es:si+027h], 001h ; 26 c6 44 27 01 13150 13614 mov ax, word [bp-014h] ; 8b 46 ec 13151 mov word [es:si+03 2h], ax ; 26 89 44 3213152 mov word [es:si+034h], di ; 26 89 7c 3413153 mov ax, word [bp-01eh] ; 8b 46 e213154 mov word [es:si+0 2ch], ax ; 26 89 44 2c13155 mov ax, word [bp-01 8h] ; 8b 46 e813156 mov word [es:si+0 2eh], ax ; 26 89 44 2e13615 mov word [es:si+03ch], ax ; 26 89 44 3c 13616 mov ax, word [bp-016h] ; 8b 46 ea 13617 mov word [es:si+03ah], ax ; 26 89 44 3a 13618 mov word [es:si+038h], di ; 26 89 7c 38 13619 mov ax, word [bp-01ah] ; 8b 46 e6 13620 mov word [es:si+036h], ax ; 26 89 44 36 13157 13621 mov ax, word [bp-01ch] ; 8b 46 e4 13158 13622 mov word [es:si+030h], ax ; 26 89 44 30 13159 mov al, byte [bp-00ch] ; 8a 46 f4 13623 mov ax, word [bp-020h] ; 8b 46 e0 13624 mov word [es:si+032h], ax ; 26 89 44 32 13625 mov ax, word [bp-01eh] ; 8b 46 e2 13626 mov word [es:si+034h], ax ; 26 89 44 34 13627 mov al, byte [bp-008h] ; 8a 46 f8 13160 13628 cmp AL, strict byte 001h ; 3c 01 13161 jc short 0 8d8dh ; 72 0c13162 jbe short 0 8d95h ; 76 1213629 jc short 092e8h ; 72 0c 13630 jbe short 092f0h ; 76 12 13163 13631 cmp AL, strict byte 003h ; 3c 03 13164 je short 0 8d9dh ; 74 1613632 je short 092f8h ; 74 16 13165 13633 cmp AL, strict byte 002h ; 3c 02 13166 je short 0 8d99h ; 74 0e13167 jmp short 0 8de6h ; eb 5913634 je short 092f4h ; 74 0e 13635 jmp short 09341h ; eb 59 13168 13636 test al, al ; 84 c0 13169 jne short 0 8de6h ; 75 5513637 jne short 09341h ; 75 55 13170 13638 mov DL, strict byte 040h ; b2 40 13171 jmp short 0 8d9fh ; eb 0a13639 jmp short 092fah ; eb 0a 13172 13640 mov DL, strict byte 048h ; b2 48 13173 jmp short 0 8d9fh ; eb 0613641 jmp short 092fah ; eb 06 13174 13642 mov DL, strict byte 050h ; b2 50 13175 jmp short 0 8d9fh ; eb 0213643 jmp short 092fah ; eb 02 13176 13644 mov DL, strict byte 058h ; b2 58 13177 13645 mov al, dl ; 88 d0 … … 13179 13647 movzx bx, al ; 0f b6 d8 13180 13648 mov ax, bx ; 89 d8 13181 call 016ach ; e8 01 8913649 call 016ach ; e8 a6 83 13182 13650 test al, al ; 84 c0 13183 je short 0 8de6h ; 74 3713651 je short 09341h ; 74 37 13184 13652 mov al, dl ; 88 d0 13185 13653 db 0feh, 0c0h 13186 13654 ; inc al ; fe c0 13187 13655 xor ah, ah ; 30 e4 13188 call 016ach ; e8 f4 8813656 call 016ach ; e8 99 83 13189 13657 xor ah, ah ; 30 e4 13190 13658 mov si, ax ; 89 c6 13191 13659 sal si, 008h ; c1 e6 08 13192 13660 movzx ax, dl ; 0f b6 c2 13193 call 016ach ; e8 e7 8813661 call 016ach ; e8 8c 83 13194 13662 xor ah, ah ; 30 e4 13195 13663 add ax, si ; 01 f0 13196 mov word [bp-02 4h], ax ; 89 46 dc13664 mov word [bp-028h], ax ; 89 46 d8 13197 13665 mov al, dl ; 88 d0 13198 13666 add AL, strict byte 002h ; 04 02 13199 13667 xor ah, ah ; 30 e4 13200 call 016ach ; e8 d7 88 13668 call 016ach ; e8 7c 83 13669 xor ah, ah ; 30 e4 13670 mov word [bp-02ah], ax ; 89 46 d6 13671 mov ax, bx ; 89 d8 13672 call 016ach ; e8 72 83 13201 13673 xor ah, ah ; 30 e4 13202 13674 mov word [bp-026h], ax ; 89 46 da 13203 mov ax, bx ; 89 d8 13204 call 016ach ; e8 cd 88 13205 xor ah, ah ; 30 e4 13206 mov word [bp-022h], ax ; 89 46 de 13207 jmp short 08df3h ; eb 0d 13208 mov bx, word [bp-014h] ; 8b 5e ec 13209 mov cx, di ; 89 f9 13675 jmp short 09351h ; eb 10 13676 push dword [bp-016h] ; 66 ff 76 ea 13677 push di ; 57 13678 push word [bp-01ah] ; ff 76 e6 13210 13679 mov dx, ss ; 8c d2 13211 lea ax, [bp-02 6h] ; 8d 46 da13212 call 05 5b6h ; e8 c3 c713213 mov bx, 00da 2h ; bb a20d13680 lea ax, [bp-02ah] ; 8d 46 d6 13681 call 0588bh ; e8 3a c5 13682 mov bx, 00da0h ; bb a0 0d 13214 13683 mov cx, ds ; 8c d9 13215 13684 mov ax, strict word 00004h ; b8 04 00 13216 call 01931h ; e8 33 8b 13685 call 01931h ; e8 d5 85 13686 push dword [bp-016h] ; 66 ff 76 ea 13217 13687 push di ; 57 13218 push word [bp-014h] ; ff 76 ec 13219 mov ax, word [bp-022h] ; 8b 46 de 13220 push ax ; 50 13688 push word [bp-01ah] ; ff 76 e6 13221 13689 mov ax, word [bp-026h] ; 8b 46 da 13222 13690 push ax ; 50 13223 mov ax, word [bp-02 4h] ; 8b 46 dc13691 mov ax, word [bp-02ah] ; 8b 46 d6 13224 13692 push ax ; 50 13225 push dword [bp-01eh] ; 66 ff 76 e2 13226 push word [bp-018h] ; ff 76 e8 13693 mov ax, word [bp-028h] ; 8b 46 d8 13694 push ax ; 50 13695 push word [bp-01eh] ; ff 76 e2 13696 push word [bp-01ch] ; ff 76 e4 13697 push word [bp-020h] ; ff 76 e0 13698 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 13699 push ax ; 50 13227 13700 movzx ax, byte [bp-008h] ; 0f b6 46 f8 13228 13701 push ax ; 50 13702 push 00cd6h ; 68 d6 0c 13703 push strict byte 00004h ; 6a 04 13704 call 01972h ; e8 e7 85 13705 add sp, strict byte 0001ch ; 83 c4 1c 13229 13706 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 13230 push ax ; 50 13231 push 00cdah ; 68 da 0c 13232 push strict byte 00004h ; 6a 04 13233 call 01972h ; e8 4b 8b 13234 add sp, strict byte 00018h ; 83 c4 18 13235 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 13236 imul ax, ax, strict byte 00018h ; 6b c0 18 13707 imul ax, ax, strict byte 0001ch ; 6b c0 1c 13237 13708 mov di, word [bp-010h] ; 8b 7e f0 13238 13709 add di, ax ; 01 c7 13239 13710 mov es, [bp-00eh] ; 8e 46 f2 13240 lea di, [di+02 6h] ; 8d 7d 2613711 lea di, [di+02ah] ; 8d 7d 2a 13241 13712 push DS ; 1e 13242 13713 push SS ; 16 13243 13714 pop DS ; 1f 13244 lea si, [bp-02 6h] ; 8d 76 da13715 lea si, [bp-02ah] ; 8d 76 d6 13245 13716 movsw ; a5 13246 13717 movsw ; a5 … … 13248 13719 pop DS ; 1f 13249 13720 mov bx, word [bp-010h] ; 8b 5e f0 13250 mov al, byte [es:bx+001 9eh] ; 26 8a 87 9e0113251 mov ah, byte [bp-00 ch] ; 8a 66 f413721 mov al, byte [es:bx+001e2h] ; 26 8a 87 e2 01 13722 mov ah, byte [bp-008h] ; 8a 66 f8 13252 13723 add ah, 00ch ; 80 c4 0c 13253 13724 movzx bx, al ; 0f b6 d8 13254 13725 add bx, word [bp-010h] ; 03 5e f0 13255 mov byte [es:bx+001 9fh], ah ; 26 88 a7 9f0113726 mov byte [es:bx+001e3h], ah ; 26 88 a7 e3 01 13256 13727 db 0feh, 0c0h 13257 13728 ; inc al ; fe c0 13258 13729 mov bx, word [bp-010h] ; 8b 5e f0 13259 mov byte [es:bx+001 9eh], al ; 26 88 87 9e0113730 mov byte [es:bx+001e2h], al ; 26 88 87 e2 01 13260 13731 mov dx, strict word 00075h ; ba 75 00 13261 13732 mov ax, strict word 00040h ; b8 40 00 13262 call 01650h ; e8 de 8713733 call 01650h ; e8 7a 82 13263 13734 db 0feh, 0c0h 13264 13735 ; inc al ; fe c0 … … 13266 13737 mov dx, strict word 00075h ; ba 75 00 13267 13738 mov ax, strict word 00040h ; b8 40 00 13268 call 0165eh ; e8 de 8713269 jmp near 0 8f19h ; e9 960013739 call 0165eh ; e8 7a 82 13740 jmp near 09483h ; e9 9c 00 13270 13741 cmp dx, 0eb14h ; 81 fa 14 eb 13271 jne near 0 8f19h ; 0f 85 8e0013272 cmp ax, 00101h ; 3d01 0113273 jne near 0 8f19h ; 0f 85 870013742 jne near 09483h ; 0f 85 94 00 13743 cmp di, 00101h ; 81 ff 01 01 13744 jne near 09483h ; 0f 85 8c 00 13274 13745 les bx, [bp-010h] ; c4 5e f0 13746 db 066h, 026h, 0c7h, 047h, 004h, 000h, 000h, 000h, 000h 13747 ; mov dword [es:bx+004h], strict dword 000000000h ; 66 26 c7 47 04 00 00 00 00 13275 13748 db 066h, 026h, 0c7h, 007h, 000h, 000h, 000h, 000h 13276 13749 ; mov dword [es:bx], strict dword 000000000h ; 66 26 c7 07 00 00 00 00 13277 lea dx, [bp-0022 6h] ; 8d 96 dafd13278 mov word [es:bx+00 4h], dx ; 26 89 57 0413279 mov [es:bx+00 6h], ss ; 26 8c 57 0613280 db 066h, 026h, 0c7h, 047h, 00 ah, 001h, 000h, 000h, 002h13281 ; mov dword [es:bx+00 ah], strict dword 002000001h ; 66 26 c7 47 0a01 00 00 0213750 lea dx, [bp-0022ah] ; 8d 96 d6 fd 13751 mov word [es:bx+008h], dx ; 26 89 57 08 13752 mov [es:bx+00ah], ss ; 26 8c 57 0a 13753 db 066h, 026h, 0c7h, 047h, 00eh, 001h, 000h, 000h, 002h 13754 ; mov dword [es:bx+00eh], strict dword 002000001h ; 66 26 c7 47 0e 01 00 00 02 13282 13755 mov bx, 000a1h ; bb a1 00 13283 13756 mov ax, word [bp-010h] ; 8b 46 f0 13284 13757 mov dx, es ; 8c c2 13285 call 08 338h ; e8 7b f413286 test byte [bp-0022 6h], 080h ; f6 86 dafd 8013758 call 08710h ; e8 e5 f2 13759 test byte [bp-0022ah], 080h ; f6 86 d6 fd 80 13287 13760 db 00fh, 095h, 0c0h 13288 13761 ; setne al ; 0f 95 c0 13289 13762 xor ah, ah ; 30 e4 13290 mov dx, ax ; 89 c2 13291 movzx bx, byte [bp-00ch] ; 0f b6 5e f4 13763 movzx bx, byte [bp-008h] ; 0f b6 5e f8 13292 13764 mov es, [bp-00eh] ; 8e 46 f2 13293 13765 add bx, word [bp-010h] ; 03 5e f0 13294 mov al, byte [bp-008h] ; 8a 46 f8 13295 mov byte [es:bx+001e9h], al ; 26 88 87 e9 01 13296 movzx ax, cl ; 0f b6 c1 13297 imul ax, ax, strict byte 00018h ; 6b c0 18 13298 mov si, word [bp-010h] ; 8b 76 f0 13299 add si, ax ; 01 c6 13300 mov word [es:si+01eh], 00505h ; 26 c7 44 1e 05 05 13301 mov byte [es:si+020h], dl ; 26 88 54 20 13302 mov word [es:si+024h], 00800h ; 26 c7 44 24 00 08 13766 mov ah, byte [bp-00ah] ; 8a 66 f6 13767 mov byte [es:bx+0022dh], ah ; 26 88 a7 2d 02 13768 movzx si, cl ; 0f b6 f1 13769 imul si, si, strict byte 0001ch ; 6b f6 1c 13770 add si, word [bp-010h] ; 03 76 f0 13771 mov word [es:si+022h], 00505h ; 26 c7 44 22 05 05 13772 mov byte [es:si+024h], al ; 26 88 44 24 13773 mov word [es:si+028h], 00800h ; 26 c7 44 28 00 08 13303 13774 mov bx, word [bp-010h] ; 8b 5e f0 13304 mov al, byte [es:bx+001 afh] ; 26 8a 87 af0113305 mov ah, byte [bp-00 ch] ; 8a 66 f413775 mov al, byte [es:bx+001f3h] ; 26 8a 87 f3 01 13776 mov ah, byte [bp-008h] ; 8a 66 f8 13306 13777 add ah, 00ch ; 80 c4 0c 13307 13778 movzx bx, al ; 0f b6 d8 13308 13779 add bx, word [bp-010h] ; 03 5e f0 13309 mov byte [es:bx+001 b0h], ah ; 26 88 a7 b00113780 mov byte [es:bx+001f4h], ah ; 26 88 a7 f4 01 13310 13781 db 0feh, 0c0h 13311 13782 ; inc al ; fe c0 13312 13783 mov bx, word [bp-010h] ; 8b 5e f0 13313 mov byte [es:bx+001 afh], al ; 26 88 87 af0113314 inc byte [bp-00 ch] ; fe 46 f413315 mov al, byte [bp-00 ch] ; 8a 46 f413784 mov byte [es:bx+001f3h], al ; 26 88 87 f3 01 13785 inc byte [bp-008h] ; fe 46 f8 13786 mov al, byte [bp-008h] ; 8a 46 f8 13316 13787 les bx, [bp-010h] ; c4 5e f0 13317 mov byte [es:bx+00 1edh], al ; 26 88 87 ed 0113788 mov byte [es:bx+00231h], al ; 26 88 87 31 02 13318 13789 lea sp, [bp-006h] ; 8d 66 fa 13319 13790 pop di ; 5f … … 13322 13793 pop bp ; 5d 13323 13794 retn ; c3 13324 ahci_mem_alloc_: ; 0xf 8f2fLB 0x4313795 ahci_mem_alloc_: ; 0xf9499 LB 0x43 13325 13796 push bp ; 55 13326 13797 mov bp, sp ; 89 e5 … … 13332 13803 mov dx, 00413h ; ba 13 04 13333 13804 xor ax, ax ; 31 c0 13334 call 0166ch ; e8 2d 8713805 call 0166ch ; e8 c3 81 13335 13806 test ax, ax ; 85 c0 13336 je short 0 8f68h ; 74 2513807 je short 094d2h ; 74 25 13337 13808 dec ax ; 48 13338 13809 mov bx, ax ; 89 c3 … … 13341 13812 sal ax, 1 ; d1 e0 13342 13813 rcl dx, 1 ; d1 d2 13343 loop 0 8f4bh ; e2 fa13814 loop 094b5h ; e2 fa 13344 13815 mov si, ax ; 89 c6 13345 13816 mov di, dx ; 89 d7 … … 13347 13818 shr di, 1 ; d1 ef 13348 13819 rcr si, 1 ; d1 de 13349 loop 0 8f58h ; e2 fa13820 loop 094c2h ; e2 fa 13350 13821 mov dx, 00413h ; ba 13 04 13351 13822 xor ax, ax ; 31 c0 13352 call 0167ah ; e8 14 8713823 call 0167ah ; e8 aa 81 13353 13824 mov ax, si ; 89 f0 13354 13825 lea sp, [bp-00ah] ; 8d 66 f6 … … 13360 13831 pop bp ; 5d 13361 13832 retn ; c3 13362 ahci_hba_init_: ; 0xf 8f72 LB 0x12513833 ahci_hba_init_: ; 0xf94dc LB 0x166 13363 13834 push bp ; 55 13364 13835 mov bp, sp ; 89 e5 … … 13372 13843 mov dx, strict word 0000eh ; ba 0e 00 13373 13844 mov ax, strict word 00040h ; b8 40 00 13374 call 0166ch ; e8 e4 8613845 call 0166ch ; e8 7a 81 13375 13846 mov bx, 00122h ; bb 22 01 13376 mov word [bp-010h], ax ; 89 46 f013847 mov di, ax ; 89 c7 13377 13848 mov ax, strict word 00010h ; b8 10 00 13378 13849 xor cx, cx ; 31 c9 … … 13389 13860 shr eax, 010h ; 66 c1 e8 10 13390 13861 xchg dx, ax ; 92 13391 call 0 8f2fh ; e8 82ff13392 mov di, ax ; 89 c713862 call 09499h ; e8 83 ff 13863 mov word [bp-010h], ax ; 89 46 f0 13393 13864 test ax, ax ; 85 c0 13394 je near 09076h ; 0f 84 c1 00 13395 mov es, [bp-010h] ; 8e 46 f0 13396 mov word [es:bx+001eeh], di ; 26 89 bf ee 01 13397 mov byte [es:bx+001edh], 000h ; 26 c6 87 ed 01 00 13865 je near 09621h ; 0f 84 02 01 13866 mov ax, word [bp-010h] ; 8b 46 f0 13867 mov es, di ; 8e c7 13868 mov word [es:bx+00232h], ax ; 26 89 87 32 02 13869 mov byte [es:bx+00231h], 000h ; 26 c6 87 31 02 00 13398 13870 xor bx, bx ; 31 db 13399 mov es, di ; 8e c713871 mov es, ax ; 8e c0 13400 13872 mov byte [es:bx+00262h], 0ffh ; 26 c6 87 62 02 ff 13401 13873 mov word [es:bx+00260h], si ; 26 89 b7 60 02 13402 13874 db 066h, 026h, 0c7h, 087h, 064h, 002h, 000h, 0c0h, 00ch, 000h 13403 13875 ; mov dword [es:bx+00264h], strict dword 0000cc000h ; 66 26 c7 87 64 02 00 c0 0c 00 13404 mov bx, strict word 00001h ; bb 010013876 mov ax, strict word 00004h ; b8 04 00 13405 13877 xor cx, cx ; 31 c9 13406 mov dx, strict word 00004h ; ba 04 00 13407 mov ax, si ; 89 f0 13408 call 08167h ; e8 7e f1 13878 mov dx, si ; 89 f2 13879 xchg cx, ax ; 91 13880 sal eax, 010h ; 66 c1 e0 10 13881 db 08bh, 0c1h 13882 ; mov ax, cx ; 8b c1 13883 out DX, eax ; 66 ef 13884 lea bx, [si+004h] ; 8d 5c 04 13885 mov dx, bx ; 89 da 13886 in eax, DX ; 66 ed 13887 db 08bh, 0d0h 13888 ; mov dx, ax ; 8b d0 13889 shr eax, 010h ; 66 c1 e8 10 13890 xchg dx, ax ; 92 13891 or AL, strict byte 001h ; 0c 01 13892 mov cx, dx ; 89 d1 13893 mov dx, bx ; 89 da 13894 xchg cx, ax ; 91 13895 sal eax, 010h ; 66 c1 e0 10 13896 db 08bh, 0c1h 13897 ; mov ax, cx ; 8b c1 13898 out DX, eax ; 66 ef 13409 13899 mov ax, strict word 00004h ; b8 04 00 13410 13900 xor cx, cx ; 31 c9 … … 13423 13913 xchg dx, ax ; 92 13424 13914 test AL, strict byte 001h ; a8 01 13425 jne short 0 8fe9h ; 75 de13915 jne short 09575h ; 75 de 13426 13916 xor ax, ax ; 31 c0 13427 13917 xor cx, cx ; 31 c9 … … 13441 13931 mov bx, strict word 0001fh ; bb 1f 00 13442 13932 xor cx, cx ; 31 c9 13443 call 08 22ah ; e8 fb f113933 call 0858ch ; e8 d1 ef 13444 13934 db 0feh, 0c0h 13445 13935 ; inc al ; fe c0 13446 13936 mov byte [bp-00eh], al ; 88 46 f2 13447 13937 mov byte [bp-00ch], 000h ; c6 46 f4 00 13448 jmp short 09043h ; eb 09 13938 jmp short 095e6h ; eb 20 13939 xor al, al ; 30 c0 13940 test al, al ; 84 c0 13941 je short 095ddh ; 74 11 13942 movzx bx, byte [bp-00ch] ; 0f b6 5e f4 13943 xor ax, ax ; 31 c0 13944 mov dx, word [bp-010h] ; 8b 56 f0 13945 call 08fe8h ; e8 10 fa 13946 dec byte [bp-00eh] ; fe 4e f2 13947 je short 0961fh ; 74 42 13449 13948 inc byte [bp-00ch] ; fe 46 f4 13450 13949 cmp byte [bp-00ch], 020h ; 80 7e f4 20 13451 jnc short 09 074h ; 73 3113950 jnc short 0961fh ; 73 39 13452 13951 movzx cx, byte [bp-00ch] ; 0f b6 4e f4 13453 mov ax, strict word 00001h ; b8 01 00 13454 xor dx, dx ; 31 d2 13455 jcxz 09054h ; e3 06 13456 sal ax, 1 ; d1 e0 13457 rcl dx, 1 ; d1 d2 13458 loop 0904eh ; e2 fa 13459 mov bx, ax ; 89 c3 13460 mov cx, dx ; 89 d1 13461 mov dx, strict word 0000ch ; ba 0c 00 13462 mov ax, si ; 89 f0 13463 call 081f1h ; e8 91 f1 13464 test al, al ; 84 c0 13465 je short 0903ah ; 74 d6 13466 movzx bx, byte [bp-00ch] ; 0f b6 5e f4 13467 xor ax, ax ; 31 c0 13468 mov dx, di ; 89 fa 13469 call 08adeh ; e8 6f fa 13470 dec byte [bp-00eh] ; fe 4e f2 13471 jne short 0903ah ; 75 c6 13952 mov bx, strict word 00001h ; bb 01 00 13953 xor di, di ; 31 ff 13954 jcxz 095f7h ; e3 06 13955 sal bx, 1 ; d1 e3 13956 rcl di, 1 ; d1 d7 13957 loop 095f1h ; e2 fa 13958 mov ax, strict word 0000ch ; b8 0c 00 13959 xor cx, cx ; 31 c9 13960 mov dx, si ; 89 f2 13961 xchg cx, ax ; 91 13962 sal eax, 010h ; 66 c1 e0 10 13963 db 08bh, 0c1h 13964 ; mov ax, cx ; 8b c1 13965 out DX, eax ; 66 ef 13966 lea dx, [si+004h] ; 8d 54 04 13967 in eax, DX ; 66 ed 13968 db 08bh, 0d0h 13969 ; mov dx, ax ; 8b d0 13970 shr eax, 010h ; 66 c1 e8 10 13971 xchg dx, ax ; 92 13972 test dx, di ; 85 fa 13973 jne short 0961bh ; 75 04 13974 test ax, bx ; 85 d8 13975 je short 095c6h ; 74 ab 13976 mov AL, strict byte 001h ; b0 01 13977 jmp short 095c8h ; eb a9 13472 13978 xor ax, ax ; 31 c0 13473 13979 lea sp, [bp-00ah] ; 8d 66 f6 … … 13479 13985 pop bp ; 5d 13480 13986 retn ; c3 13481 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0 66h, 091h, 044h, 091h, 04ah, 091h, 050h, 091h, 056h13482 db 09 1h, 05ch, 091h, 062h, 091h, 066h, 091h13483 _ahci_init: ; 0xf9 097LB 0xfe13987 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 011h, 097h, 0efh, 096h, 0f5h, 096h, 0fbh, 096h, 001h 13988 db 097h, 007h, 097h, 00dh, 097h, 011h, 097h 13989 _ahci_init: ; 0xf9642 LB 0xfe 13484 13990 push bp ; 55 13485 13991 mov bp, sp ; 89 e5 … … 13489 13995 mov ax, 00601h ; b8 01 06 13490 13996 mov dx, strict word 00001h ; ba 01 00 13491 call 09 5b5h ; e8 0d 0513997 call 09b60h ; e8 0d 05 13492 13998 mov dx, ax ; 89 c2 13493 13999 cmp ax, strict word 0ffffh ; 3d ff ff 13494 je near 09 18eh ; 0f 84 dd 0014000 je near 09739h ; 0f 84 dd 00 13495 14001 xor al, al ; 30 c0 13496 14002 shr ax, 008h ; c1 e8 08 … … 13500 14006 xor ah, ah ; 30 e4 13501 14007 mov bx, strict word 00034h ; bb 34 00 13502 call 09 5e0h ; e8 1a 0514008 call 09b8bh ; e8 1a 05 13503 14009 mov cl, al ; 88 c1 13504 14010 test cl, cl ; 84 c9 13505 je short 09 0efh ; 74 2314011 je short 0969ah ; 74 23 13506 14012 movzx bx, cl ; 0f b6 d9 13507 14013 movzx di, byte [bp-008h] ; 0f b6 7e f8 … … 13509 14015 mov dx, di ; 89 fa 13510 14016 mov ax, si ; 89 f0 13511 call 09 5e0h ; e8 02 0514017 call 09b8bh ; e8 02 05 13512 14018 cmp AL, strict byte 012h ; 3c 12 13513 je short 09 0efh ; 74 0d14019 je short 0969ah ; 74 0d 13514 14020 mov al, cl ; 88 c8 13515 14021 db 0feh, 0c0h … … 13518 14024 mov dx, di ; 89 fa 13519 14025 mov ax, si ; 89 f0 13520 jmp short 09 0c3h ; eb d414026 jmp short 0966eh ; eb d4 13521 14027 test cl, cl ; 84 c9 13522 je near 09 18eh ; 0f 84 99 0014028 je near 09739h ; 0f 84 99 00 13523 14029 add cl, 002h ; 80 c1 02 13524 14030 movzx bx, cl ; 0f b6 d9 … … 13527 14033 mov dx, di ; 89 fa 13528 14034 mov ax, si ; 89 f0 13529 call 09 5e0h ; e8 d6 0414035 call 09b8bh ; e8 d6 04 13530 14036 cmp AL, strict byte 010h ; 3c 10 13531 jne near 09 18eh ; 0f 85 7e 0014037 jne near 09739h ; 0f 85 7e 00 13532 14038 mov byte [bp-006h], 000h ; c6 46 fa 00 13533 14039 mov al, cl ; 88 c8 … … 13536 14042 mov dx, di ; 89 fa 13537 14043 mov ax, si ; 89 f0 13538 call 09 604h ; e8 e2 0414044 call 09bafh ; e8 e2 04 13539 14045 mov dx, ax ; 89 c2 13540 14046 and ax, strict word 0000fh ; 25 0f 00 13541 14047 sub ax, strict word 00004h ; 2d 04 00 13542 14048 cmp ax, strict word 0000bh ; 3d 0b 00 13543 jnbe short 09 166h ; 77 3714049 jnbe short 09711h ; 77 37 13544 14050 push CS ; 0e 13545 14051 pop ES ; 07 13546 14052 mov cx, strict word 00008h ; b9 08 00 13547 mov di, 09 080h ; bf 80 9014053 mov di, 0962bh ; bf 2b 96 13548 14054 repne scasb ; f2 ae 13549 14055 sal cx, 1 ; d1 e1 13550 14056 mov di, cx ; 89 cf 13551 mov ax, word [cs:di-06 f79h] ; 2e 8b 85 87 9014057 mov ax, word [cs:di-069ceh] ; 2e 8b 85 32 96 13552 14058 jmp ax ; ff e0 13553 14059 mov byte [bp-006h], 010h ; c6 46 fa 10 13554 jmp short 09 166h ; eb 1c14060 jmp short 09711h ; eb 1c 13555 14061 mov byte [bp-006h], 014h ; c6 46 fa 14 13556 jmp short 09 166h ; eb 1614062 jmp short 09711h ; eb 16 13557 14063 mov byte [bp-006h], 018h ; c6 46 fa 18 13558 jmp short 09 166h ; eb 1014064 jmp short 09711h ; eb 10 13559 14065 mov byte [bp-006h], 01ch ; c6 46 fa 1c 13560 jmp short 09 166h ; eb 0a14066 jmp short 09711h ; eb 0a 13561 14067 mov byte [bp-006h], 020h ; c6 46 fa 20 13562 jmp short 09 166h ; eb 0414068 jmp short 09711h ; eb 04 13563 14069 mov byte [bp-006h], 024h ; c6 46 fa 24 13564 14070 mov si, dx ; 89 d6 … … 13567 14073 mov al, byte [bp-006h] ; 8a 46 fa 13568 14074 test al, al ; 84 c0 13569 je short 09 18eh ; 74 1914075 je short 09739h ; 74 19 13570 14076 movzx bx, al ; 0f b6 d8 13571 14077 movzx dx, byte [bp-008h] ; 0f b6 56 f8 13572 14078 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 13573 call 09 626h ; e8 a3 0414079 call 09bd1h ; e8 a3 04 13574 14080 test AL, strict byte 001h ; a8 01 13575 je short 09 18eh ; 74 0714081 je short 09739h ; 74 07 13576 14082 and AL, strict byte 0f0h ; 24 f0 13577 14083 add ax, si ; 01 f0 13578 call 0 8f72h ; e8 e4fd14084 call 094dch ; e8 a3 fd 13579 14085 lea sp, [bp-004h] ; 8d 66 fc 13580 14086 pop di ; 5f … … 13582 14088 pop bp ; 5d 13583 14089 retn ; c3 13584 apm_out_str_: ; 0xf9 195LB 0x3914090 apm_out_str_: ; 0xf9740 LB 0x39 13585 14091 push bp ; 55 13586 14092 mov bp, sp ; 89 e5 … … 13588 14094 mov bx, ax ; 89 c3 13589 14095 cmp byte [bx], 000h ; 80 3f 00 13590 je short 09 1aah ; 74 0a14096 je short 09755h ; 74 0a 13591 14097 mov al, byte [bx] ; 8a 07 13592 14098 out DX, AL ; ee … … 13595 14101 db 00ah, 0c0h 13596 14102 ; or al, al ; 0a c0 13597 jne short 09 1a2h ; 75 f814103 jne short 0974dh ; 75 f8 13598 14104 lea sp, [bp-002h] ; 8d 66 fe 13599 14105 pop bx ; 5b 13600 14106 pop bp ; 5d 13601 14107 retn ; c3 13602 db 0f1h 13603 xchg cx, ax ; 91 13604 mov bp, 00392h ; bd 92 03 13605 xchg dx, ax ; 92 13606 push DS ; 1e 13607 xchg dx, ax ; 92 13608 mov bp, 04992h ; bd 92 49 13609 xchg dx, ax ; 92 13610 mov bp, 04e92h ; bd 92 4e 13611 xchg dx, ax ; 92 13612 xchg dx, ax ; 92 13613 xchg dx, ax ; 92 13614 xchg dx, ax ; 92 13615 xchg dx, ax ; 92 13616 xchg dx, ax ; 92 13617 xchg dx, ax ; 92 13618 lea dx, [bp+si-06d6eh] ; 8d 92 92 92 13619 xchg dx, ax ; 92 13620 xchg dx, ax ; 92 13621 db 086h 13622 xchg dx, ax ; 92 13623 _apm_function: ; 0xf91ce LB 0xf5 14108 pushfw ; 9c 14109 xchg di, ax ; 97 14110 push 0ae98h ; 68 98 ae 14111 xchg di, ax ; 97 14112 leave ; c9 14113 xchg di, ax ; 97 14114 push 0f498h ; 68 98 f4 14115 xchg di, ax ; 97 14116 push 0f998h ; 68 98 f9 14117 xchg di, ax ; 97 14118 cmp ax, 03d98h ; 3d 98 3d 14119 cbw ; 98 14120 cmp ax, 03898h ; 3d 98 38 14121 cbw ; 98 14122 cmp ax, 03d98h ; 3d 98 3d 14123 cbw ; 98 14124 db 031h 14125 cbw ; 98 14126 _apm_function: ; 0xf9779 LB 0xf5 13624 14127 push bp ; 55 13625 14128 mov bp, sp ; 89 e5 … … 13629 14132 xor ah, ah ; 30 e4 13630 14133 cmp ax, strict word 0000eh ; 3d 0e 00 13631 jnbe near 09 292h ; 0f 87 b0 0014134 jnbe near 0983dh ; 0f 87 b0 00 13632 14135 mov bx, ax ; 89 c3 13633 14136 add bx, ax ; 01 c3 13634 14137 mov dx, word [bp+018h] ; 8b 56 18 13635 14138 or dl, 001h ; 80 ca 01 13636 jmp word [cs:bx-06 e50h] ; 2e ff a7 b0 9114139 jmp word [cs:bx-068a5h] ; 2e ff a7 5b 97 13637 14140 mov word [bp+012h], 00102h ; c7 46 12 02 01 13638 14141 mov word [bp+00ch], 0504dh ; c7 46 0c 4d 50 13639 14142 mov word [bp+010h], strict word 00003h ; c7 46 10 03 00 13640 jmp near 09 2bdh ; e9 ba 0014143 jmp near 09868h ; e9 ba 00 13641 14144 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 13642 mov word [bp+00ch], 09 824h ; c7 46 0c 24 9814145 mov word [bp+00ch], 09de4h ; c7 46 0c e4 9d 13643 14146 mov word [bp+010h], 0f000h ; c7 46 10 00 f0 13644 14147 mov ax, strict word 0fff0h ; b8 f0 ff 13645 14148 mov word [bp+006h], ax ; 89 46 06 13646 14149 mov word [bp+004h], ax ; 89 46 04 13647 jmp near 09 2bdh ; e9 9f 0014150 jmp near 09868h ; e9 9f 00 13648 14151 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 13649 14152 mov word [bp+00ch], 0da40h ; c7 46 0c 40 da … … 13658 14161 mov si, ax ; 89 c6 13659 14162 sal esi, 010h ; 66 c1 e6 10 13660 jmp near 09 2bdh ; e9 74 0014163 jmp near 09868h ; e9 74 00 13661 14164 sti ; fb 13662 14165 hlt ; f4 13663 jmp near 09 2bdh ; e9 6f 0014166 jmp near 09868h ; e9 6f 00 13664 14167 cmp word [bp+010h], strict byte 00003h ; 83 7e 10 03 13665 je short 09 273h ; 74 1f14168 je short 0981eh ; 74 1f 13666 14169 cmp word [bp+010h], strict byte 00002h ; 83 7e 10 02 13667 je short 09 26bh ; 74 1114170 je short 09816h ; 74 11 13668 14171 cmp word [bp+010h], strict byte 00001h ; 83 7e 10 01 13669 jne short 09 27bh ; 75 1b14172 jne short 09826h ; 75 1b 13670 14173 mov dx, 08900h ; ba 00 89 13671 mov ax, 00d1 2h ; b8 120d13672 call 09 195h ; e8 2c ff13673 jmp short 09 2bdh ; eb 5214174 mov ax, 00d10h ; b8 10 0d 14175 call 09740h ; e8 2c ff 14176 jmp short 09868h ; eb 52 13674 14177 mov dx, 08900h ; ba 00 89 13675 mov ax, 00d1 ah ; b8 1a0d13676 jmp short 09 266h ; eb f314178 mov ax, 00d18h ; b8 18 0d 14179 jmp short 09811h ; eb f3 13677 14180 mov dx, 08900h ; ba 00 89 13678 mov ax, 00d2 2h ; b8 220d13679 jmp short 09 266h ; eb eb14181 mov ax, 00d20h ; b8 20 0d 14182 jmp short 09811h ; eb eb 13680 14183 or ah, 00ah ; 80 cc 0a 13681 14184 mov word [bp+012h], ax ; 89 46 12 13682 14185 mov word [bp+018h], dx ; 89 56 18 13683 jmp short 09 2bdh ; eb 3714186 jmp short 09868h ; eb 37 13684 14187 mov word [bp+012h], 00102h ; c7 46 12 02 01 13685 jmp short 09 2bdh ; eb 3014188 jmp short 09868h ; eb 30 13686 14189 or ah, 080h ; 80 cc 80 13687 jmp short 09 27eh ; eb ec13688 mov bx, 00da 2h ; bb a20d14190 jmp short 09829h ; eb ec 14191 mov bx, 00da0h ; bb a0 0d 13689 14192 mov cx, ds ; 8c d9 13690 14193 mov ax, strict word 00004h ; b8 04 00 13691 call 01931h ; e8 94 8614194 call 01931h ; e8 e9 80 13692 14195 push word [bp+00ch] ; ff 76 0c 13693 14196 push word [bp+012h] ; ff 76 12 13694 push 00d2 bh ; 68 2b0d14197 push 00d29h ; 68 29 0d 13695 14198 push strict byte 00004h ; 6a 04 13696 call 01972h ; e8 c7 8614199 call 01972h ; e8 1c 81 13697 14200 add sp, strict byte 00008h ; 83 c4 08 13698 14201 mov ax, word [bp+012h] ; 8b 46 12 … … 13705 14208 pop bp ; 5d 13706 14209 retn ; c3 13707 pci16_select_reg_: ; 0xf9 2c3LB 0x2414210 pci16_select_reg_: ; 0xf986e LB 0x24 13708 14211 push bp ; 55 13709 14212 mov bp, sp ; 89 e5 … … 13722 14225 pop bp ; 5d 13723 14226 retn ; c3 13724 pci16_find_device_: ; 0xf9 2e7LB 0xf714227 pci16_find_device_: ; 0xf9892 LB 0xf7 13725 14228 push bp ; 55 13726 14229 mov bp, sp ; 89 e5 … … 13736 14239 mov byte [bp-008h], 000h ; c6 46 f8 00 13737 14240 test bl, 007h ; f6 c3 07 13738 jne short 09 32fh ; 75 2d14241 jne short 098dah ; 75 2d 13739 14242 mov dx, strict word 0000eh ; ba 0e 00 13740 14243 mov ax, bx ; 89 d8 13741 call 09 2c3h ; e8 b9 ff14244 call 0986eh ; e8 b9 ff 13742 14245 mov dx, 00cfeh ; ba fe 0c 13743 14246 in AL, DX ; ec … … 13746 14249 mov byte [bp-006h], al ; 88 46 fa 13747 14250 cmp AL, strict byte 0ffh ; 3c ff 13748 jne short 09 31dh ; 75 0614251 jne short 098c8h ; 75 06 13749 14252 add bx, strict byte 00008h ; 83 c3 08 13750 jmp near 09 3b0h ; e9 93 0014253 jmp near 0995bh ; e9 93 00 13751 14254 test byte [bp-006h], 080h ; f6 46 fa 80 13752 je short 09 32ah ; 74 0714255 je short 098d5h ; 74 07 13753 14256 mov word [bp-00ah], strict word 00001h ; c7 46 f6 01 00 13754 jmp short 09 32fh ; eb 0514257 jmp short 098dah ; eb 05 13755 14258 mov word [bp-00ah], strict word 00008h ; c7 46 f6 08 00 13756 14259 mov al, byte [bp-006h] ; 8a 46 fa 13757 14260 and AL, strict byte 007h ; 24 07 13758 14261 cmp AL, strict byte 001h ; 3c 01 13759 jne short 09 357h ; 75 1f14262 jne short 09902h ; 75 1f 13760 14263 mov ax, bx ; 89 d8 13761 14264 shr ax, 008h ; c1 e8 08 13762 14265 test ax, ax ; 85 c0 13763 jne short 09 357h ; 75 1614266 jne short 09902h ; 75 16 13764 14267 mov dx, strict word 0001ah ; ba 1a 00 13765 14268 mov ax, bx ; 89 d8 13766 call 09 2c3h ; e8 7a ff14269 call 0986eh ; e8 7a ff 13767 14270 mov dx, 00cfeh ; ba fe 0c 13768 14271 in AL, DX ; ec … … 13770 14273 ; sub ah, ah ; 2a e4 13771 14274 cmp al, byte [bp-008h] ; 3a 46 f8 13772 jbe short 09 357h ; 76 0314275 jbe short 09902h ; 76 03 13773 14276 mov byte [bp-008h], al ; 88 46 f8 13774 14277 test di, di ; 85 ff 13775 je short 09 360h ; 74 0514278 je short 0990bh ; 74 05 13776 14279 mov dx, strict word 00008h ; ba 08 00 13777 jmp short 09 362h ; eb 0214280 jmp short 0990dh ; eb 02 13778 14281 xor dx, dx ; 31 d2 13779 14282 mov ax, bx ; 89 d8 13780 call 09 2c3h ; e8 5c ff14283 call 0986eh ; e8 5c ff 13781 14284 mov dx, 00cfch ; ba fc 0c 13782 14285 in eax, DX ; 66 ed … … 13789 14292 mov word [bp-010h], strict word 00000h ; c7 46 f0 00 00 13790 14293 test di, di ; 85 ff 13791 je short 09 391h ; 74 0f14294 je short 0993ch ; 74 0f 13792 14295 mov cx, strict word 00008h ; b9 08 00 13793 14296 shr dx, 1 ; d1 ea 13794 14297 rcr ax, 1 ; d1 d8 13795 loop 09 385h ; e2 fa14298 loop 09930h ; e2 fa 13796 14299 mov word [bp-00eh], ax ; 89 46 f2 13797 14300 mov word [bp-00ch], dx ; 89 56 f4 13798 14301 mov ax, word [bp-00ch] ; 8b 46 f4 13799 14302 cmp ax, word [bp-014h] ; 3b 46 ec 13800 jne short 09 3a1h ; 75 0814303 jne short 0994ch ; 75 08 13801 14304 mov ax, word [bp-00eh] ; 8b 46 f2 13802 14305 cmp ax, word [bp-012h] ; 3b 46 ee 13803 je short 09 3a7h ; 74 0614306 je short 09952h ; 74 06 13804 14307 cmp word [bp-010h], strict byte 00000h ; 83 7e f0 00 13805 je short 09 3adh ; 74 0614308 je short 09958h ; 74 06 13806 14309 dec si ; 4e 13807 14310 cmp si, strict byte 0ffffh ; 83 fe ff 13808 je short 09 3bfh ; 74 1214311 je short 0996ah ; 74 12 13809 14312 add bx, word [bp-00ah] ; 03 5e f6 13810 14313 mov dx, bx ; 89 da … … 13812 14315 movzx ax, byte [bp-008h] ; 0f b6 46 f8 13813 14316 cmp dx, ax ; 39 c2 13814 jbe near 09 2fdh ; 0f 86 3e ff14317 jbe near 098a8h ; 0f 86 3e ff 13815 14318 cmp si, strict byte 0ffffh ; 83 fe ff 13816 jne short 09 3c8h ; 75 0414319 jne short 09973h ; 75 04 13817 14320 mov ax, bx ; 89 d8 13818 jmp short 09 3cbh ; eb 0314321 jmp short 09976h ; eb 03 13819 14322 mov ax, strict word 0ffffh ; b8 ff ff 13820 14323 lea sp, [bp-004h] ; 8d 66 fc … … 13823 14326 pop bp ; 5d 13824 14327 retn ; c3 13825 rcl byte [si-06b26h], 0edh ; c0 94 da 94 ed 13826 xchg sp, ax ; 94 13827 add dl, byte [di-06aebh] ; 02 95 15 95 13828 db 028h 13829 xchg bp, ax ; 95 13830 _pci16_function: ; 0xf93de LB 0x1d7 14328 imul bx, word [bp+si-0657bh], strict byte 0ff98h ; 6b 9a 85 9a 98 14329 call far 09ac0h:09aadh ; 9a ad 9a c0 9a 14330 db 0d3h 14331 db 09ah 14332 _pci16_function: ; 0xf9989 LB 0x1d7 13831 14333 push bp ; 55 13832 14334 mov bp, sp ; 89 e5 … … 13842 14344 xor ah, ah ; 30 e4 13843 14345 cmp bx, strict byte 00003h ; 83 fb 03 13844 jc short 09 417h ; 72 1a13845 jbe short 09 46fh ; 76 7014346 jc short 099c2h ; 72 1a 14347 jbe short 09a1ah ; 76 70 13846 14348 cmp bx, strict byte 0000eh ; 83 fb 0e 13847 je near 09 53ch ; 0f 84 36 0114349 je near 09ae7h ; 0f 84 36 01 13848 14350 cmp bx, strict byte 00008h ; 83 fb 08 13849 jc near 09 581h ; 0f 82 74 0114351 jc near 09b2ch ; 0f 82 74 01 13850 14352 cmp bx, strict byte 0000dh ; 83 fb 0d 13851 jbe near 09 494h ; 0f 86 80 0013852 jmp near 09 581h ; e9 6a 0114353 jbe near 09a3fh ; 0f 86 80 00 14354 jmp near 09b2ch ; e9 6a 01 13853 14355 cmp bx, strict byte 00002h ; 83 fb 02 13854 je short 09 43fh ; 74 2314356 je short 099eah ; 74 23 13855 14357 cmp bx, strict byte 00001h ; 83 fb 01 13856 jne near 09 581h ; 0f 85 5e 0114358 jne near 09b2ch ; 0f 85 5e 01 13857 14359 mov word [bp+020h], strict word 00001h ; c7 46 20 01 00 13858 14360 mov word [bp+014h], 00210h ; c7 46 14 10 02 … … 13860 14362 mov word [bp+018h], 04350h ; c7 46 18 50 43 13861 14363 mov word [bp+01ah], 02049h ; c7 46 1a 49 20 13862 jmp near 09 5aeh ; e9 6f 0114364 jmp near 09b59h ; e9 6f 01 13863 14365 cmp word [bp+018h], strict byte 0ffffh ; 83 7e 18 ff 13864 jne short 09 44bh ; 75 0614366 jne short 099f6h ; 75 06 13865 14367 or ah, 083h ; 80 cc 83 13866 jmp near 09 5a7h ; e9 5c 0114368 jmp near 09b52h ; e9 5c 01 13867 14369 mov bx, word [bp+008h] ; 8b 5e 08 13868 14370 mov dx, word [bp+01ch] ; 8b 56 1c 13869 14371 mov ax, word [bp+018h] ; 8b 46 18 13870 14372 xor cx, cx ; 31 c9 13871 call 09 2e7h ; e8 8e fe14373 call 09892h ; e8 8e fe 13872 14374 cmp ax, strict word 0ffffh ; 3d ff ff 13873 jne short 09 469h ; 75 0b14375 jne short 09a14h ; 75 0b 13874 14376 mov ax, word [bp+020h] ; 8b 46 20 13875 14377 xor ah, ah ; 30 e4 13876 14378 or ah, 086h ; 80 cc 86 13877 jmp near 09 5a7h ; e9 3e 0114379 jmp near 09b52h ; e9 3e 01 13878 14380 mov word [bp+014h], ax ; 89 46 14 13879 jmp near 09 5aeh ; e9 3f 0114381 jmp near 09b59h ; e9 3f 01 13880 14382 mov bx, word [bp+008h] ; 8b 5e 08 13881 14383 mov ax, word [bp+01ch] ; 8b 46 1c 13882 14384 mov dx, word [bp+01eh] ; 8b 56 1e 13883 14385 mov cx, strict word 00001h ; b9 01 00 13884 call 09 2e7h ; e8 69 fe14386 call 09892h ; e8 69 fe 13885 14387 cmp ax, strict word 0ffffh ; 3d ff ff 13886 jne short 09 48eh ; 75 0b14388 jne short 09a39h ; 75 0b 13887 14389 mov ax, word [bp+020h] ; 8b 46 20 13888 14390 xor ah, ah ; 30 e4 13889 14391 or ah, 086h ; 80 cc 86 13890 jmp near 09 5a7h ; e9 19 0114392 jmp near 09b52h ; e9 19 01 13891 14393 mov word [bp+014h], ax ; 89 46 14 13892 jmp near 09 5aeh ; e9 1a 0114394 jmp near 09b59h ; e9 1a 01 13893 14395 cmp word [bp+004h], 00100h ; 81 7e 04 00 01 13894 jc short 09 4a1h ; 72 0614396 jc short 09a4ch ; 72 06 13895 14397 or ah, 087h ; 80 cc 87 13896 jmp near 09 5a7h ; e9 06 0114398 jmp near 09b52h ; e9 06 01 13897 14399 mov dx, word [bp+004h] ; 8b 56 04 13898 14400 mov ax, word [bp+014h] ; 8b 46 14 13899 call 09 2c3h ; e8 19 fe14401 call 0986eh ; e8 19 fe 13900 14402 mov bx, word [bp+020h] ; 8b 5e 20 13901 14403 xor bh, bh ; 30 ff 13902 14404 sub bx, strict byte 00008h ; 83 eb 08 13903 14405 cmp bx, strict byte 00005h ; 83 fb 05 13904 jnbe near 09 5aeh ; 0f 87 f5 0014406 jnbe near 09b59h ; 0f 87 f5 00 13905 14407 add bx, bx ; 01 db 13906 jmp word [cs:bx-06 c2eh] ; 2e ff a7 d2 9314408 jmp word [cs:bx-06683h] ; 2e ff a7 7d 99 13907 14409 mov bx, word [bp+01ch] ; 8b 5e 1c 13908 14410 xor bl, bl ; 30 db … … 13915 14417 or bx, ax ; 09 c3 13916 14418 mov word [bp+01ch], bx ; 89 5e 1c 13917 jmp near 09 5aeh ; e9 d4 0014419 jmp near 09b59h ; e9 d4 00 13918 14420 mov dx, word [bp+004h] ; 8b 56 04 13919 14421 xor dh, dh ; 30 f6 … … 13922 14424 in ax, DX ; ed 13923 14425 mov word [bp+01ch], ax ; 89 46 1c 13924 jmp near 09 5aeh ; e9 c1 0014426 jmp near 09b59h ; e9 c1 00 13925 14427 mov dx, 00cfch ; ba fc 0c 13926 14428 in eax, DX ; 66 ed … … 13931 14433 mov word [bp+01ch], ax ; 89 46 1c 13932 14434 mov word [bp+01eh], dx ; 89 56 1e 13933 jmp near 09 5aeh ; e9 ac 0014435 jmp near 09b59h ; e9 ac 00 13934 14436 mov ax, word [bp+01ch] ; 8b 46 1c 13935 14437 mov dx, word [bp+004h] ; 8b 56 04 … … 13938 14440 add dx, 00cfch ; 81 c2 fc 0c 13939 14441 out DX, AL ; ee 13940 jmp near 09 5aeh ; e9 99 0014442 jmp near 09b59h ; e9 99 00 13941 14443 mov ax, word [bp+01ch] ; 8b 46 1c 13942 14444 mov dx, word [bp+004h] ; 8b 56 04 … … 13945 14447 add dx, 00cfch ; 81 c2 fc 0c 13946 14448 out DX, ax ; ef 13947 jmp near 09 5aeh ; e9 86 0014449 jmp near 09b59h ; e9 86 00 13948 14450 mov ax, word [bp+01ch] ; 8b 46 1c 13949 14451 mov cx, word [bp+01eh] ; 8b 4e 1e … … 13954 14456 ; mov ax, cx ; 8b c1 13955 14457 out DX, eax ; 66 ef 13956 jmp short 09 5aeh ; eb 7214458 jmp short 09b59h ; eb 72 13957 14459 mov bx, word [bp+004h] ; 8b 5e 04 13958 14460 mov es, [bp+026h] ; 8e 46 26 … … 13961 14463 mov cx, word [0f4a0h] ; 8b 0e a0 f4 13962 14464 cmp cx, word [es:bx] ; 26 3b 0f 13963 jbe short 09 562h ; 76 1114465 jbe short 09b0dh ; 76 11 13964 14466 mov ax, word [bp+020h] ; 8b 46 20 13965 14467 xor ah, ah ; 30 e4 … … 13967 14469 mov word [bp+020h], ax ; 89 46 20 13968 14470 or word [bp+02ch], strict byte 00001h ; 83 4e 2c 01 13969 jmp short 09 576h ; eb 1414471 jmp short 09b21h ; eb 14 13970 14472 les di, [es:bx+002h] ; 26 c4 7f 02 13971 14473 mov si, 0f2c0h ; be c0 f2 … … 13979 14481 les bx, [bp-008h] ; c4 5e f8 13980 14482 mov word [es:bx], ax ; 26 89 07 13981 jmp short 09 5aeh ; eb 2d13982 mov bx, 00da 2h ; bb a20d14483 jmp short 09b59h ; eb 2d 14484 mov bx, 00da0h ; bb a0 0d 13983 14485 mov cx, ds ; 8c d9 13984 14486 mov ax, strict word 00004h ; b8 04 00 13985 call 01931h ; e8 a5 8314487 call 01931h ; e8 fa 7d 13986 14488 mov ax, word [bp+014h] ; 8b 46 14 13987 14489 push ax ; 50 13988 14490 mov ax, word [bp+020h] ; 8b 46 20 13989 14491 push ax ; 50 13990 push 00d5 eh ; 68 5e0d14492 push 00d5ch ; 68 5c 0d 13991 14493 push strict byte 00004h ; 6a 04 13992 call 01972h ; e8 d6 8314494 call 01972h ; e8 2b 7e 13993 14495 add sp, strict byte 00008h ; 83 c4 08 13994 14496 mov ax, word [bp+020h] ; 8b 46 20 … … 14002 14504 pop bp ; 5d 14003 14505 retn ; c3 14004 pci_find_classcode_: ; 0xf9 5b5LB 0x2b14506 pci_find_classcode_: ; 0xf9b60 LB 0x2b 14005 14507 push bp ; 55 14006 14508 mov bp, sp ; 89 e5 … … 14017 14519 int 01ah ; cd 1a 14018 14520 cmp ah, 000h ; 80 fc 00 14019 je near 09 5d6h ; 0f 84 03 0014521 je near 09b81h ; 0f 84 03 00 14020 14522 mov bx, strict word 0ffffh ; bb ff ff 14021 14523 mov ax, bx ; 89 d8 … … 14026 14528 pop bp ; 5d 14027 14529 retn ; c3 14028 pci_read_config_byte_: ; 0xf9 5e0LB 0x2414530 pci_read_config_byte_: ; 0xf9b8b LB 0x24 14029 14531 push bp ; 55 14030 14532 mov bp, sp ; 89 e5 … … 14045 14547 pop bp ; 5d 14046 14548 retn ; c3 14047 pci_read_config_word_: ; 0xf9 604LB 0x2214549 pci_read_config_word_: ; 0xf9baf LB 0x22 14048 14550 push bp ; 55 14049 14551 mov bp, sp ; 89 e5 … … 14064 14566 pop bp ; 5d 14065 14567 retn ; c3 14066 pci_read_config_dword_: ; 0xf9 626LB 0x2714568 pci_read_config_dword_: ; 0xf9bd1 LB 0x27 14067 14569 push bp ; 55 14068 14570 mov bp, sp ; 89 e5 … … 14085 14587 pop bp ; 5d 14086 14588 retn ; c3 14087 vds_is_present_: ; 0xf9 64dLB 0x1d14589 vds_is_present_: ; 0xf9bf8 LB 0x1d 14088 14590 push bx ; 53 14089 14591 push bp ; 55 … … 14093 14595 mov es, ax ; 8e c0 14094 14596 test byte [es:bx], 020h ; 26 f6 07 20 14095 je short 09 665h ; 74 0614597 je short 09c10h ; 74 06 14096 14598 mov ax, strict word 00001h ; b8 01 00 14097 14599 pop bp ; 5d … … 14102 14604 pop bx ; 5b 14103 14605 retn ; c3 14104 vds_real_to_lin_: ; 0xf9 66aLB 0x1e14606 vds_real_to_lin_: ; 0xf9c15 LB 0x1e 14105 14607 push bx ; 53 14106 14608 push cx ; 51 … … 14113 14615 sal ax, 1 ; d1 e0 14114 14616 rcl dx, 1 ; d1 d2 14115 loop 09 678h ; e2 fa14617 loop 09c23h ; e2 fa 14116 14618 xor cx, cx ; 31 c9 14117 14619 add ax, bx ; 01 d8 … … 14121 14623 pop bx ; 5b 14122 14624 retn ; c3 14123 vds_build_sg_list_: ; 0xf9 688LB 0x7914625 vds_build_sg_list_: ; 0xf9c33 LB 0x79 14124 14626 push bp ; 55 14125 14627 mov bp, sp ; 89 e5 … … 14135 14637 mov bx, word [bp+006h] ; 8b 5e 06 14136 14638 mov word [es:di+002h], bx ; 26 89 5d 02 14137 call 09 66ah ; e8 c3 ff14639 call 09c15h ; e8 c3 ff 14138 14640 mov es, si ; 8e c6 14139 14641 mov word [es:di+004h], ax ; 26 89 45 04 14140 14642 mov word [es:di+006h], dx ; 26 89 55 06 14141 14643 mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00 14142 call 09 64dh ; e8 93 ff14644 call 09bf8h ; e8 93 ff 14143 14645 test ax, ax ; 85 c0 14144 je short 09 6d1h ; 74 1314646 je short 09c7ch ; 74 13 14145 14647 mov es, si ; 8e c6 14146 14648 mov ax, 08105h ; b8 05 81 14147 14649 mov dx, strict word 00000h ; ba 00 00 14148 14650 int 04bh ; cd 4b 14149 jc near 09 6ceh ; 0f 82 02 0014651 jc near 09c79h ; 0f 82 02 00 14150 14652 db 032h, 0c0h 14151 14653 ; xor al, al ; 32 c0 14152 14654 cbw ; 98 14153 jmp short 09 6f8h ; eb 2714655 jmp short 09ca3h ; eb 27 14154 14656 mov es, si ; 8e c6 14155 14657 mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00 … … 14168 14670 pop bp ; 5d 14169 14671 retn 00004h ; c2 04 00 14170 vds_free_sg_list_: ; 0xf9 701 LB 0x3f14672 vds_free_sg_list_: ; 0xf9cac LB 0x34 14171 14673 push bp ; 55 14172 14674 mov bp, sp ; 89 e5 … … 14174 14676 push di ; 57 14175 14677 mov bx, ax ; 89 c3 14176 call 09 64dh ; e8 42 ff14678 call 09bf8h ; e8 42 ff 14177 14679 test ax, ax ; 85 c0 14178 je short 09 722h ; 74 1314680 je short 09ccdh ; 74 13 14179 14681 mov di, bx ; 89 df 14180 14682 mov es, dx ; 8e c2 … … 14182 14684 mov dx, strict word 00000h ; ba 00 00 14183 14685 int 04bh ; cd 4b 14184 jc near 09 721h ; 0f 82 02 0014686 jc near 09ccch ; 0f 82 02 00 14185 14687 db 032h, 0c0h 14186 14688 ; xor al, al ; 32 c0 … … 14193 14695 pop bp ; 5d 14194 14696 retn ; c3 14195 times 0x fdb 014196 __U4D: ; 0xf9 740 LB 0x3914697 times 0x4 db 0 14698 __U4D: ; 0xf9ce0 LB 0x39 14197 14699 pushfw ; 9c 14198 14700 push eax ; 66 50 … … 14224 14726 popfw ; 9d 14225 14727 retn ; c3 14226 __U4M: ; 0xf9 779 LB 0x3114728 __U4M: ; 0xf9d19 LB 0x31 14227 14729 pushfw ; 9c 14228 14730 push eax ; 66 50 … … 14249 14751 popfw ; 9d 14250 14752 retn ; c3 14251 _fmemset_: ; 0xf97aa LB 0xd 14753 __U8LS: ; 0xf9d4a LB 0x10 14754 test si, si ; 85 f6 14755 je short 09d59h ; 74 0b 14756 sal dx, 1 ; d1 e2 14757 rcl cx, 1 ; d1 d1 14758 rcl bx, 1 ; d1 d3 14759 rcl ax, 1 ; d1 d0 14760 dec si ; 4e 14761 jne short 09d4eh ; 75 f5 14762 retn ; c3 14763 __U8RS: ; 0xf9d5a LB 0x10 14764 test si, si ; 85 f6 14765 je short 09d69h ; 74 0b 14766 shr ax, 1 ; d1 e8 14767 rcr bx, 1 ; d1 db 14768 rcr cx, 1 ; d1 d9 14769 rcr dx, 1 ; d1 da 14770 dec si ; 4e 14771 jne short 09d5eh ; 75 f5 14772 retn ; c3 14773 _fmemset_: ; 0xf9d6a LB 0xd 14252 14774 push di ; 57 14253 14775 mov es, dx ; 8e c2 … … 14259 14781 pop di ; 5f 14260 14782 retn ; c3 14261 _fmemcpy_: ; 0xf9 7b7 LB 0x3314783 _fmemcpy_: ; 0xf9d77 LB 0x33 14262 14784 push bp ; 55 14263 14785 db 08bh, 0ech … … 14279 14801 leave ; c9 14280 14802 retn ; c3 14281 add byte [bx+si], al ; 00 00 14282 cbw ; 98 14283 add bl, byte [bx+si-067fah] ; 02 98 06 98 14284 push ES ; 06 14285 cbw ; 98 14286 push ES ; 06 14287 cbw ; 98 14288 or byte [bx+si-067f8h], bl ; 08 98 08 98 14289 or bl, byte [bx+si-067f2h] ; 0a 98 0e 98 14290 push CS ; 0e 14291 cbw ; 98 14292 adc byte [bx+si-067ebh], bl ; 10 98 15 98 14293 pop SS ; 17 14294 cbw ; 98 14295 apm_worker: ; 0xf97ea LB 0x3a 14803 add al, al ; 00 c0 14804 popfw ; 9d 14805 retn 0c69dh ; c2 9d c6 14806 popfw ; 9d 14807 db 0c6h, 09dh, 0c6h, 09dh, 0c8h 14808 ; mov byte [di-0623ah], 0c8h ; c6 9d c6 9d c8 14809 popfw ; 9d 14810 enter 0ca9dh, 09dh ; c8 9d ca 9d 14811 into ; ce 14812 popfw ; 9d 14813 into ; ce 14814 popfw ; 9d 14815 rcr byte [di-0622bh], 1 ; d0 9d d5 9d 14816 xlatb ; d7 14817 popfw ; 9d 14818 apm_worker: ; 0xf9daa LB 0x3a 14296 14819 sti ; fb 14297 14820 push ax ; 50 … … 14305 14828 pop ax ; 58 14306 14829 mov AH, strict byte 053h ; b4 53 14307 jnc short 09 820h ; 73 2514308 jmp word [cs:bp-06 830h] ; 2e ff a6 d0 9714309 jmp short 09 81eh ; eb 1c14830 jnc short 09de0h ; 73 25 14831 jmp word [cs:bp-06270h] ; 2e ff a6 90 9d 14832 jmp short 09ddeh ; eb 1c 14310 14833 sti ; fb 14311 14834 hlt ; f4 14312 jmp short 09 81eh ; eb 1814313 jmp short 09 81eh ; eb 1614314 jmp short 09 820h ; eb 1614835 jmp short 09ddeh ; eb 18 14836 jmp short 09ddeh ; eb 16 14837 jmp short 09de0h ; eb 16 14315 14838 mov AH, strict byte 080h ; b4 80 14316 jmp short 09 822h ; eb 1414317 jmp short 09 820h ; eb 1014839 jmp short 09de2h ; eb 14 14840 jmp short 09de0h ; eb 10 14318 14841 mov ax, 00102h ; b8 02 01 14319 jmp short 09 81eh ; eb 0914320 jmp short 09 81eh ; eb 0714842 jmp short 09ddeh ; eb 09 14843 jmp short 09ddeh ; eb 07 14321 14844 mov BL, strict byte 000h ; b3 00 14322 14845 mov cx, strict word 00000h ; b9 00 00 14323 jmp short 09 81eh ; eb 0014846 jmp short 09ddeh ; eb 00 14324 14847 clc ; f8 14325 14848 retn ; c3 … … 14327 14850 stc ; f9 14328 14851 retn ; c3 14329 apm_pm16_entry: ; 0xf9 824 LB 0x1114852 apm_pm16_entry: ; 0xf9de4 LB 0x11 14330 14853 mov AH, strict byte 002h ; b4 02 14331 14854 push DS ; 1e … … 14335 14858 add bp, strict byte 00008h ; 83 c5 08 14336 14859 mov ds, bp ; 8e dd 14337 call 09 7eah ; e8 b8 ff14860 call 09daah ; e8 b8 ff 14338 14861 pop bp ; 5d 14339 14862 pop DS ; 1f 14340 14863 retf ; cb 14341 14864 14342 ; Padding 0x 41cb bytes at 0xf983514343 times 1 6843db 014865 ; Padding 0x3c0b bytes at 0xf9df5 14866 times 15371 db 0 14344 14867 14345 14868 section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO … … 14388 14911 add bp, strict byte 00008h ; 83 c5 08 14389 14912 push ebp ; 66 55 14390 mov bp, 09 826h ; bd 26 9814913 mov bp, 09de6h ; bd e6 9d 14391 14914 add byte [bx+si], al ; 00 00 14392 14915 push ebp ; 66 55 … … 14994 15517 mov dx, 0c800h ; ba 00 c8 14995 15518 call 01600h ; e8 e7 33 14996 call 04 b77h ; e8 5b 6915519 call 04e4ch ; e8 30 6c 14997 15520 pop DS ; 1f 14998 15521 mov ax, 0ff53h ; b8 53 ff … … 15108 15631 pop DS ; 1f 15109 15632 cld ; fc 15110 call 01 badh ; e8 71 3815111 call 0 1fa7h ; e8 68 3c15112 call 09 097h ; e8 55 ad15113 call 08 0d3h ; e8 8e 9d15633 call 01cafh ; e8 73 39 15634 call 0213ch ; e8 fd 3d 15635 call 09642h ; e8 00 b3 15636 call 08526h ; e8 e1 a1 15114 15637 call 0ed2fh ; e8 e7 09 15115 15638 call 0e2d2h ; e8 87 ff … … 15121 15644 call 01600h ; e8 a9 32 15122 15645 call 01797h ; e8 3d 34 15123 call 03 85bh ; e8 fe 5415646 call 03b30h ; e8 d3 57 15124 15647 sti ; fb 15125 15648 int 019h ; cd 19 … … 15219 15742 pop DS ; 1f 15220 15743 cld ; fc 15221 call 0 5f61h ; e8 1f 7815744 call 062aeh ; e8 6c 7b 15222 15745 popaw ; 61 15223 15746 pop ES ; 07 … … 15294 15817 pop DS ; 1f 15295 15818 cld ; fc 15296 call 05 2cfh ; e8 8d 6a15819 call 055a4h ; e8 62 6d 15297 15820 popaw ; 61 15298 15821 pop DS ; 1f … … 15311 15834 pop DS ; 1f 15312 15835 cld ; fc 15313 call 05 2cfh ; e8 6f 6a15836 call 055a4h ; e8 44 6d 15314 15837 popaw ; 61 15315 15838 pop DS ; 1f … … 15413 15936 pop DS ; 1f 15414 15937 cld ; fc 15415 call 0 4e74h ; e8 a5 6415938 call 05149h ; e8 7a 67 15416 15939 pop ES ; 07 15417 15940 popaw ; 61 … … 15429 15952 pop DS ; 1f 15430 15953 cld ; fc 15431 call 06 9b9h ; e8 d4 7f15954 call 06d06h ; e8 21 83 15432 15955 pop DS ; 1f 15433 15956 pop ES ; 07 … … 15450 15973 cld ; fc 15451 15974 push 0ece9h ; 68 e9 ec 15452 jmp near 03 89fh ; e9 2e 4c15975 jmp near 03b74h ; e9 03 4f 15453 15976 push ES ; 06 15454 15977 push ax ; 50 … … 15456 15979 push cx ; 51 15457 15980 push dx ; 52 15458 call 03 873h ; e8 fa 4b15981 call 03b48h ; e8 cf 4e 15459 15982 cmp AL, strict byte 000h ; 3c 00 15460 15983 je short 0ecabh ; 74 2e 15461 call 03 889h ; e8 09 4c15984 call 03b5eh ; e8 de 4e 15462 15985 pop dx ; 5a 15463 15986 push dx ; 52 … … 15477 16000 cld ; fc 15478 16001 push 0ece9h ; 68 e9 ec 15479 jmp near 0 3e73h ; e9 dc 5116002 jmp near 04148h ; e9 b1 54 15480 16003 and dl, 0e0h ; 80 e2 e0 15481 16004 db 03ah, 0c2h … … 15517 16040 jne short 0ecc8h ; 75 06 15518 16041 push 0ece9h ; 68 e9 ec 15519 jmp near 0 2f2eh ; e9 66 4216042 jmp near 03203h ; e9 3b 45 15520 16043 int13_notfloppy: ; 0xfecc8 LB 0x14 15521 16044 cmp dl, 0e0h ; 80 fa e0 … … 15523 16046 shr ebx, 010h ; 66 c1 eb 10 15524 16047 push bx ; 53 15525 call 04 2a7h ; e8 d2 5516048 call 0457ch ; e8 a7 58 15526 16049 pop bx ; 5b 15527 16050 sal ebx, 010h ; 66 c1 e3 10 … … 15530 16053 cmp ah, 040h ; 80 fc 40 15531 16054 jnbe short 0ece6h ; 77 05 15532 call 05 654h ; e8 70 6916055 call 05970h ; e8 8c 6c 15533 16056 jmp short 0ece9h ; eb 03 15534 call 05 a95h ; e8 ac 6d16057 call 05dbah ; e8 d1 70 15535 16058 int13_out: ; 0xfece9 LB 0x4 15536 16059 pop DS ; 1f … … 15745 16268 pop DS ; 1f 15746 16269 cld ; fc 15747 call 07 313h ; e8 36 8316270 call 07660h ; e8 83 86 15748 16271 popaw ; 61 15749 16272 pop ES ; 07 … … 15793 16316 mov ax, strict word 00001h ; b8 01 00 15794 16317 push ax ; 50 15795 call 04 90eh ; e8 3e 5816318 call 04be3h ; e8 13 5b 15796 16319 inc sp ; 44 15797 16320 inc sp ; 44 … … 15800 16323 mov ax, strict word 00002h ; b8 02 00 15801 16324 push ax ; 50 15802 call 04 90eh ; e8 31 5816325 call 04be3h ; e8 06 5b 15803 16326 inc sp ; 44 15804 16327 inc sp ; 44 … … 15807 16330 mov ax, strict word 00003h ; b8 03 00 15808 16331 push strict byte 00003h ; 6a 03 15809 call 04 90eh ; e8 23 5816332 call 04be3h ; e8 f8 5a 15810 16333 inc sp ; 44 15811 16334 inc sp ; 44 … … 15814 16337 mov ax, strict word 00004h ; b8 04 00 15815 16338 push ax ; 50 15816 call 04 90eh ; e8 16 5816339 call 04be3h ; e8 eb 5a 15817 16340 inc sp ; 44 15818 16341 inc sp ; 44 … … 16105 16628 cmp ah, 0c2h ; 80 fc c2 16106 16629 je short 0f887h ; 74 0e 16107 call 06 16eh ; e8 f2 6816630 call 064bbh ; e8 3f 6c 16108 16631 popaw ; 61 16109 16632 pop ES ; 07 … … 16111 16634 popfw ; 9d 16112 16635 jmp short 0f895h ; eb 13 16113 call 09 1ceh ; e8 49 9916636 call 09779h ; e8 f4 9e 16114 16637 jmp short 0f87ch ; eb f5 16115 16638 int15_handler_mouse: ; 0xff887 LB 0x5 16116 call 0 6f88h ; e8 fe 7616639 call 072d5h ; e8 4b 7a 16117 16640 jmp short 0f87ch ; eb f0 16118 16641 int15_handler32: ; 0xff88c LB 0x9 16119 16642 pushad ; 66 60 16120 call 06 63bh ; e8 aa 6d16643 call 06988h ; e8 f7 70 16121 16644 popad ; 66 61 16122 16645 jmp short 0f87dh ; eb e8 … … 16148 16671 pop DS ; 1f 16149 16672 cld ; fc 16150 call 0 6ebeh ; e8 01 7616673 call 0720bh ; e8 4e 79 16151 16674 pop cx ; 59 16152 16675 jcxz 0f8cch ; e3 0c … … 16240 16763 db 018h, 018h, 018h, 000h, 018h, 018h, 018h, 000h, 0e0h, 030h, 030h, 01ch, 030h, 030h, 0e0h, 000h 16241 16764 db 076h, 0dch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 010h, 038h, 06ch, 0c6h, 0c6h, 0feh, 000h 16242 db 080h, 0fch, 0b1h, 075h, 00fh, 006h, 01eh, 00eh, 01fh, 0fch, 066h, 060h, 0e8h, 0 61h, 095h, 066h16243 db 061h, 01fh, 007h, 0cfh, 006h, 01eh, 060h, 00eh, 01fh, 0fch, 0e8h, 0 cah, 06dh, 061h, 01fh, 007h16765 db 080h, 0fch, 0b1h, 075h, 00fh, 006h, 01eh, 00eh, 01fh, 0fch, 066h, 060h, 0e8h, 00ch, 09bh, 066h 16766 db 061h, 01fh, 007h, 0cfh, 006h, 01eh, 060h, 00eh, 01fh, 0fch, 0e8h, 017h, 071h, 061h, 01fh, 007h 16244 16767 db 0cfh 16245 16768 int70_handler: ; 0xffe8f LB 0x16 … … 16250 16773 pop DS ; 1f 16251 16774 cld ; fc 16252 call 06 b97h ; e8 ff 6c16775 call 06ee4h ; e8 4c 70 16253 16776 popaw ; 61 16254 16777 pop DS ; 1f … … 16349 16872 cpu_reset: ; 0xffff0 LB 0x10 16350 16873 jmp far 0f000h:0e05bh ; ea 5b e0 00 f0 16351 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0 87h16874 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0e4h -
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative.md5sum
r57333 r58831 1 6d3230e23c6948548bc0468e6f090fbd*VBoxPcBios.rom1 ab1e993b060084077a7d481b70e44ab8 *VBoxPcBios.rom
Note:
See TracChangeset
for help on using the changeset viewer.